LCOV - code coverage report
Current view: top level - bin/default/librpc/gen_ndr - ndr_spoolss.c (source / functions) Hit Total Coverage
Test: coverage report for master 2b515b7d Lines: 10550 28384 37.2 %
Date: 2024-02-28 12:06:22 Functions: 411 1054 39.0 %

          Line data    Source code
       1             : /* parser auto-generated by pidl */
       2             : 
       3             : #include "includes.h"
       4             : #include "bin/default/librpc/gen_ndr/ndr_spoolss.h"
       5             : 
       6             : #include "librpc/gen_ndr/ndr_misc.h"
       7             : #include "librpc/gen_ndr/ndr_security.h"
       8             : #include "librpc/gen_ndr/ndr_winreg.h"
       9        1030 : static enum ndr_err_code ndr_push_spoolss_Time(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_Time *r)
      10             : {
      11        1030 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
      12        1030 :         if (ndr_flags & NDR_SCALARS) {
      13        1030 :                 NDR_CHECK(ndr_push_align(ndr, 2));
      14        1030 :                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->year));
      15        1030 :                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->month));
      16        1030 :                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->day_of_week));
      17        1030 :                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->day));
      18        1030 :                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->hour));
      19        1030 :                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->minute));
      20        1030 :                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->second));
      21        1030 :                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->millisecond));
      22        1030 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 2));
      23             :         }
      24        1030 :         if (ndr_flags & NDR_BUFFERS) {
      25           0 :         }
      26        1030 :         return NDR_ERR_SUCCESS;
      27             : }
      28             : 
      29         370 : static enum ndr_err_code ndr_pull_spoolss_Time(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_Time *r)
      30             : {
      31         370 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
      32         370 :         if (ndr_flags & NDR_SCALARS) {
      33         370 :                 NDR_CHECK(ndr_pull_align(ndr, 2));
      34         370 :                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->year));
      35         370 :                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->month));
      36         370 :                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->day_of_week));
      37         370 :                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->day));
      38         370 :                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->hour));
      39         370 :                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->minute));
      40         370 :                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->second));
      41         370 :                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->millisecond));
      42         370 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 2));
      43             :         }
      44         370 :         if (ndr_flags & NDR_BUFFERS) {
      45           4 :         }
      46         370 :         return NDR_ERR_SUCCESS;
      47             : }
      48             : 
      49           0 : static size_t ndr_size_spoolss_Time(const struct spoolss_Time *r, libndr_flags flags)
      50             : {
      51           0 :         return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_Time);
      52             : }
      53             : 
      54           0 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_TimeCtr(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_TimeCtr *r)
      55             : {
      56           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
      57           0 :         if (ndr_flags & NDR_SCALARS) {
      58           0 :                 NDR_CHECK(ndr_push_align(ndr, 5));
      59           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_Time(r->time, ndr->flags)));
      60           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->time));
      61           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
      62             :         }
      63           0 :         if (ndr_flags & NDR_BUFFERS) {
      64           0 :                 if (r->time) {
      65           0 :                         NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, r->time));
      66             :                 }
      67             :         }
      68           0 :         return NDR_ERR_SUCCESS;
      69             : }
      70             : 
      71           8 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_TimeCtr(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_TimeCtr *r)
      72             : {
      73           8 :         uint32_t _ptr_time;
      74           8 :         TALLOC_CTX *_mem_save_time_0 = NULL;
      75           8 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
      76           8 :         if (ndr_flags & NDR_SCALARS) {
      77           4 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
      78           4 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
      79           4 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_time));
      80           4 :                 if (_ptr_time) {
      81           4 :                         NDR_PULL_ALLOC(ndr, r->time);
      82             :                 } else {
      83           0 :                         r->time = NULL;
      84             :                 }
      85           4 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
      86             :         }
      87           8 :         if (ndr_flags & NDR_BUFFERS) {
      88           4 :                 if (r->time) {
      89           4 :                         _mem_save_time_0 = NDR_PULL_GET_MEM_CTX(ndr);
      90           4 :                         NDR_PULL_SET_MEM_CTX(ndr, r->time, 0);
      91           4 :                         NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, r->time));
      92           4 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_time_0, 0);
      93             :                 }
      94             :         }
      95           0 :         return NDR_ERR_SUCCESS;
      96             : }
      97             : 
      98           0 : static void ndr_print_flags_spoolss_TimeCtr(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_TimeCtr *r)
      99             : {
     100           0 :         ndr_print_spoolss_TimeCtr(ndr, name, r);
     101           0 : }
     102             : 
     103           4 : _PUBLIC_ void ndr_print_spoolss_TimeCtr(struct ndr_print *ndr, const char *name, const struct spoolss_TimeCtr *r)
     104             : {
     105           4 :         ndr_print_struct(ndr, name, "spoolss_TimeCtr");
     106           4 :         if (r == NULL) { ndr_print_null(ndr); return; }
     107           4 :         ndr->depth++;
     108           4 :         ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_spoolss_Time(r->time, ndr->flags):r->size);
     109           4 :         ndr_print_ptr(ndr, "time", r->time);
     110           4 :         ndr->depth++;
     111           4 :         if (r->time) {
     112           4 :                 ndr_print_spoolss_Time(ndr, "time", r->time);
     113             :         }
     114           4 :         ndr->depth--;
     115           4 :         ndr->depth--;
     116             : }
     117             : 
     118        1182 : static enum ndr_err_code ndr_push_spoolss_ProcessorArchitecture(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum spoolss_ProcessorArchitecture r)
     119             : {
     120        1182 :         NDR_CHECK(ndr_push_enum_uint1632(ndr, NDR_SCALARS, r));
     121        1182 :         return NDR_ERR_SUCCESS;
     122             : }
     123             : 
     124         918 : static enum ndr_err_code ndr_pull_spoolss_ProcessorArchitecture(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum spoolss_ProcessorArchitecture *r)
     125             : {
     126          12 :         uint16_t v;
     127         918 :         NDR_CHECK(ndr_pull_enum_uint1632(ndr, NDR_SCALARS, &v));
     128         918 :         *r = v;
     129         918 :         return NDR_ERR_SUCCESS;
     130             : }
     131             : 
     132          12 : _PUBLIC_ void ndr_print_spoolss_ProcessorArchitecture(struct ndr_print *ndr, const char *name, enum spoolss_ProcessorArchitecture r)
     133             : {
     134          12 :         const char *val = NULL;
     135             : 
     136          12 :         switch (r) {
     137           8 :                 case PROCESSOR_ARCHITECTURE_INTEL: val = "PROCESSOR_ARCHITECTURE_INTEL"; break;
     138           0 :                 case PROCESSOR_ARCHITECTURE_MIPS: val = "PROCESSOR_ARCHITECTURE_MIPS"; break;
     139           0 :                 case PROCESSOR_ARCHITECTURE_ALPHA: val = "PROCESSOR_ARCHITECTURE_ALPHA"; break;
     140           0 :                 case PROCESSOR_ARCHITECTURE_PPC: val = "PROCESSOR_ARCHITECTURE_PPC"; break;
     141           0 :                 case PROCESSOR_ARCHITECTURE_SHX: val = "PROCESSOR_ARCHITECTURE_SHX"; break;
     142           0 :                 case PROCESSOR_ARCHITECTURE_ARM: val = "PROCESSOR_ARCHITECTURE_ARM"; break;
     143           0 :                 case PROCESSOR_ARCHITECTURE_IA64: val = "PROCESSOR_ARCHITECTURE_IA64"; break;
     144           0 :                 case PROCESSOR_ARCHITECTURE_ALPHA64: val = "PROCESSOR_ARCHITECTURE_ALPHA64"; break;
     145           0 :                 case PROCESSOR_ARCHITECTURE_MSIL: val = "PROCESSOR_ARCHITECTURE_MSIL"; break;
     146           4 :                 case PROCESSOR_ARCHITECTURE_AMD64: val = "PROCESSOR_ARCHITECTURE_AMD64"; break;
     147           0 :                 case PROCESSOR_ARCHITECTURE_IA32_ON_WIN64: val = "PROCESSOR_ARCHITECTURE_IA32_ON_WIN64"; break;
     148           0 :                 case PROCESSOR_ARCHITECTURE_NEUTRAL: val = "PROCESSOR_ARCHITECTURE_NEUTRAL"; break;
     149           0 :                 case PROCESSOR_ARCHITECTURE_ARM64: val = "PROCESSOR_ARCHITECTURE_ARM64"; break;
     150           0 :                 case PROCESSOR_ARCHITECTURE_ARM32_ON_WIN64: val = "PROCESSOR_ARCHITECTURE_ARM32_ON_WIN64"; break;
     151           0 :                 case PROCESSOR_ARCHITECTURE_IA32_ON_ARM64: val = "PROCESSOR_ARCHITECTURE_IA32_ON_ARM64"; break;
     152           0 :                 case PROCESSOR_ARCHITECTURE_UNKNOWN: val = "PROCESSOR_ARCHITECTURE_UNKNOWN"; break;
     153             :         }
     154          12 :         ndr_print_enum(ndr, name, "ENUM", val, r);
     155          12 : }
     156             : 
     157         416 : static enum ndr_err_code ndr_push_spoolss_ProcessorType(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum spoolss_ProcessorType r)
     158             : {
     159         416 :         NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
     160         416 :         return NDR_ERR_SUCCESS;
     161             : }
     162             : 
     163         140 : static enum ndr_err_code ndr_pull_spoolss_ProcessorType(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum spoolss_ProcessorType *r)
     164             : {
     165           0 :         uint32_t v;
     166         140 :         NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
     167         140 :         *r = v;
     168         140 :         return NDR_ERR_SUCCESS;
     169             : }
     170             : 
     171           0 : _PUBLIC_ void ndr_print_spoolss_ProcessorType(struct ndr_print *ndr, const char *name, enum spoolss_ProcessorType r)
     172             : {
     173           0 :         const char *val = NULL;
     174             : 
     175           0 :         switch (r) {
     176           0 :                 case PROCESSOR_INTEL_386: val = "PROCESSOR_INTEL_386"; break;
     177           0 :                 case PROCESSOR_INTEL_486: val = "PROCESSOR_INTEL_486"; break;
     178           0 :                 case PROCESSOR_INTEL_PENTIUM: val = "PROCESSOR_INTEL_PENTIUM"; break;
     179           0 :                 case PROCESSOR_INTEL_860: val = "PROCESSOR_INTEL_860"; break;
     180           0 :                 case PROCESSOR_INTEL_IA64: val = "PROCESSOR_INTEL_IA64"; break;
     181           0 :                 case PROCESSOR_AMD_X8664: val = "PROCESSOR_AMD_X8664"; break;
     182           0 :                 case PROCESSOR_MIPS_R2000: val = "PROCESSOR_MIPS_R2000"; break;
     183           0 :                 case PROCESSOR_MIPS_R3000: val = "PROCESSOR_MIPS_R3000"; break;
     184           0 :                 case PROCESSOR_ALPHA_21064: val = "PROCESSOR_ALPHA_21064"; break;
     185           0 :                 case PROCESSOR_PPC_601: val = "PROCESSOR_PPC_601"; break;
     186           0 :                 case PROCESSOR_PPC_603: val = "PROCESSOR_PPC_603"; break;
     187           0 :                 case PROCESSOR_PPC_604: val = "PROCESSOR_PPC_604"; break;
     188           0 :                 case PROCESSOR_PPC_620: val = "PROCESSOR_PPC_620"; break;
     189           0 :                 case PROCESSOR_HITACHI_SH3: val = "PROCESSOR_HITACHI_SH3"; break;
     190           0 :                 case PROCESSOR_HITACHI_SH3E: val = "PROCESSOR_HITACHI_SH3E"; break;
     191           0 :                 case PROCESSOR_HITACHI_SH4: val = "PROCESSOR_HITACHI_SH4"; break;
     192           0 :                 case PROCESSOR_MOTOROLA_821: val = "PROCESSOR_MOTOROLA_821"; break;
     193           0 :                 case PROCESSOR_STRONGARM: val = "PROCESSOR_STRONGARM"; break;
     194           0 :                 case PROCESSOR_ARM720: val = "PROCESSOR_ARM720"; break;
     195           0 :                 case PROCESSOR_ARM820: val = "PROCESSOR_ARM820"; break;
     196           0 :                 case PROCESSOR_ARM920: val = "PROCESSOR_ARM920"; break;
     197           0 :                 case PROCESSOR_ARM_7TDMI: val = "PROCESSOR_ARM_7TDMI"; break;
     198           0 :                 case PROCESSOR_OPTIL: val = "PROCESSOR_OPTIL"; break;
     199             :         }
     200           0 :         ndr_print_enum(ndr, name, "ENUM", val, r);
     201           0 : }
     202             : 
     203         766 : static enum ndr_err_code ndr_push_spoolss_MajorVersion(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum spoolss_MajorVersion r)
     204             : {
     205         766 :         NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
     206         766 :         return NDR_ERR_SUCCESS;
     207             : }
     208             : 
     209         778 : static enum ndr_err_code ndr_pull_spoolss_MajorVersion(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum spoolss_MajorVersion *r)
     210             : {
     211          12 :         uint32_t v;
     212         778 :         NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
     213         778 :         *r = v;
     214         778 :         return NDR_ERR_SUCCESS;
     215             : }
     216             : 
     217          12 : _PUBLIC_ void ndr_print_spoolss_MajorVersion(struct ndr_print *ndr, const char *name, enum spoolss_MajorVersion r)
     218             : {
     219          12 :         const char *val = NULL;
     220             : 
     221          12 :         switch (r) {
     222           0 :                 case SPOOLSS_MAJOR_VERSION_NT4_95_98_ME: val = "SPOOLSS_MAJOR_VERSION_NT4_95_98_ME"; break;
     223           0 :                 case SPOOLSS_MAJOR_VERSION_2000_2003_XP: val = "SPOOLSS_MAJOR_VERSION_2000_2003_XP"; break;
     224           0 :                 case SPOOLSS_MAJOR_VERSION_2008_VISTA: val = "SPOOLSS_MAJOR_VERSION_2008_VISTA"; break;
     225             :         }
     226          12 :         ndr_print_enum(ndr, name, "ENUM", val, r);
     227          12 : }
     228             : 
     229         766 : static enum ndr_err_code ndr_push_spoolss_MinorVersion(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum spoolss_MinorVersion r)
     230             : {
     231         766 :         NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
     232         766 :         return NDR_ERR_SUCCESS;
     233             : }
     234             : 
     235         778 : static enum ndr_err_code ndr_pull_spoolss_MinorVersion(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum spoolss_MinorVersion *r)
     236             : {
     237          12 :         uint32_t v;
     238         778 :         NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
     239         778 :         *r = v;
     240         778 :         return NDR_ERR_SUCCESS;
     241             : }
     242             : 
     243          12 : _PUBLIC_ void ndr_print_spoolss_MinorVersion(struct ndr_print *ndr, const char *name, enum spoolss_MinorVersion r)
     244             : {
     245          12 :         const char *val = NULL;
     246             : 
     247          12 :         switch (r) {
     248          12 :                 case SPOOLSS_MINOR_VERSION_0: val = "SPOOLSS_MINOR_VERSION_0"; break;
     249           0 :                 case SPOOLSS_MINOR_VERSION_XP: val = "SPOOLSS_MINOR_VERSION_XP"; break;
     250           0 :                 case SPOOLSS_MINOR_VERSION_2003_XP64: val = "SPOOLSS_MINOR_VERSION_2003_XP64"; break;
     251           0 :                 case SPOOLSS_MINOR_VERSION_98: val = "SPOOLSS_MINOR_VERSION_98"; break;
     252           0 :                 case SPOOLSS_MINOR_VERSION_ME: val = "SPOOLSS_MINOR_VERSION_ME"; break;
     253             :         }
     254          12 :         ndr_print_enum(ndr, name, "ENUM", val, r);
     255          12 : }
     256             : 
     257        2612 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterStatus(struct ndr_push *ndr, ndr_flags_type ndr_flags, uint32_t r)
     258             : {
     259        2612 :         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
     260        2612 :         return NDR_ERR_SUCCESS;
     261             : }
     262             : 
     263         980 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterStatus(struct ndr_pull *ndr, ndr_flags_type ndr_flags, uint32_t *r)
     264             : {
     265           4 :         uint32_t v;
     266         980 :         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
     267         980 :         *r = v;
     268         980 :         return NDR_ERR_SUCCESS;
     269             : }
     270             : 
     271           4 : _PUBLIC_ void ndr_print_spoolss_PrinterStatus(struct ndr_print *ndr, const char *name, uint32_t r)
     272             : {
     273           4 :         ndr_print_uint32(ndr, name, r);
     274           4 :         ndr->depth++;
     275           4 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAUSED", PRINTER_STATUS_PAUSED, r);
     276           4 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_ERROR", PRINTER_STATUS_ERROR, r);
     277           4 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PENDING_DELETION", PRINTER_STATUS_PENDING_DELETION, r);
     278           4 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAPER_JAM", PRINTER_STATUS_PAPER_JAM, r);
     279           4 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAPER_OUT", PRINTER_STATUS_PAPER_OUT, r);
     280           4 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_MANUAL_FEED", PRINTER_STATUS_MANUAL_FEED, r);
     281           4 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAPER_PROBLEM", PRINTER_STATUS_PAPER_PROBLEM, r);
     282           4 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_OFFLINE", PRINTER_STATUS_OFFLINE, r);
     283           4 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_IO_ACTIVE", PRINTER_STATUS_IO_ACTIVE, r);
     284           4 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_BUSY", PRINTER_STATUS_BUSY, r);
     285           4 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PRINTING", PRINTER_STATUS_PRINTING, r);
     286           4 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_OUTPUT_BIN_FULL", PRINTER_STATUS_OUTPUT_BIN_FULL, r);
     287           4 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_NOT_AVAILABLE", PRINTER_STATUS_NOT_AVAILABLE, r);
     288           4 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_WAITING", PRINTER_STATUS_WAITING, r);
     289           4 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PROCESSING", PRINTER_STATUS_PROCESSING, r);
     290           4 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_INITIALIZING", PRINTER_STATUS_INITIALIZING, r);
     291           4 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_WARMING_UP", PRINTER_STATUS_WARMING_UP, r);
     292           4 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_TONER_LOW", PRINTER_STATUS_TONER_LOW, r);
     293           4 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_NO_TONER", PRINTER_STATUS_NO_TONER, r);
     294           4 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAGE_PUNT", PRINTER_STATUS_PAGE_PUNT, r);
     295           4 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_USER_INTERVENTION", PRINTER_STATUS_USER_INTERVENTION, r);
     296           4 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_OUT_OF_MEMORY", PRINTER_STATUS_OUT_OF_MEMORY, r);
     297           4 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_DOOR_OPEN", PRINTER_STATUS_DOOR_OPEN, r);
     298           4 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_SERVER_UNKNOWN", PRINTER_STATUS_SERVER_UNKNOWN, r);
     299           4 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_POWER_SAVE", PRINTER_STATUS_POWER_SAVE, r);
     300           4 :         ndr->depth--;
     301           4 : }
     302             : 
     303        1030 : static enum ndr_err_code ndr_push_spoolss_JobStatus(struct ndr_push *ndr, ndr_flags_type ndr_flags, uint32_t r)
     304             : {
     305        1030 :         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
     306        1030 :         return NDR_ERR_SUCCESS;
     307             : }
     308             : 
     309         366 : static enum ndr_err_code ndr_pull_spoolss_JobStatus(struct ndr_pull *ndr, ndr_flags_type ndr_flags, uint32_t *r)
     310             : {
     311           0 :         uint32_t v;
     312         366 :         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
     313         366 :         *r = v;
     314         366 :         return NDR_ERR_SUCCESS;
     315             : }
     316             : 
     317           0 : _PUBLIC_ void ndr_print_spoolss_JobStatus(struct ndr_print *ndr, const char *name, uint32_t r)
     318             : {
     319           0 :         ndr_print_uint32(ndr, name, r);
     320           0 :         ndr->depth++;
     321           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_PAUSED", JOB_STATUS_PAUSED, r);
     322           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_ERROR", JOB_STATUS_ERROR, r);
     323           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_DELETING", JOB_STATUS_DELETING, r);
     324           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_SPOOLING", JOB_STATUS_SPOOLING, r);
     325           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_PRINTING", JOB_STATUS_PRINTING, r);
     326           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_OFFLINE", JOB_STATUS_OFFLINE, r);
     327           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_PAPEROUT", JOB_STATUS_PAPEROUT, r);
     328           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_PRINTED", JOB_STATUS_PRINTED, r);
     329           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_DELETED", JOB_STATUS_DELETED, r);
     330           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_BLOCKED_DEVQ", JOB_STATUS_BLOCKED_DEVQ, r);
     331           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_USER_INTERVENTION", JOB_STATUS_USER_INTERVENTION, r);
     332           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_RESTART", JOB_STATUS_RESTART, r);
     333           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_COMPLETE", JOB_STATUS_COMPLETE, r);
     334           0 :         ndr->depth--;
     335           0 : }
     336             : 
     337         416 : static enum ndr_err_code ndr_push_spoolss_Build(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum spoolss_Build r)
     338             : {
     339         416 :         NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
     340         416 :         return NDR_ERR_SUCCESS;
     341             : }
     342             : 
     343         140 : static enum ndr_err_code ndr_pull_spoolss_Build(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum spoolss_Build *r)
     344             : {
     345           0 :         uint32_t v;
     346         140 :         NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
     347         140 :         *r = v;
     348         140 :         return NDR_ERR_SUCCESS;
     349             : }
     350             : 
     351           0 : _PUBLIC_ void ndr_print_spoolss_Build(struct ndr_print *ndr, const char *name, enum spoolss_Build r)
     352             : {
     353           0 :         const char *val = NULL;
     354             : 
     355           0 :         switch (r) {
     356           0 :                 case SPOOLSS_DEBUGGING_BUILD: val = "SPOOLSS_DEBUGGING_BUILD"; break;
     357           0 :                 case SPOOLSS_RELEASE_BUILD: val = "SPOOLSS_RELEASE_BUILD"; break;
     358             :         }
     359           0 :         ndr_print_enum(ndr, name, "ENUM", val, r);
     360           0 : }
     361             : 
     362         832 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo0(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_PrinterInfo0 *r)
     363             : {
     364         832 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
     365         832 :         if (ndr_flags & NDR_SCALARS) {
     366         416 :                 NDR_CHECK(ndr_push_align(ndr, 5));
     367             :                 {
     368         416 :                         libndr_flags _flags_save_string = ndr->flags;
     369         416 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
     370         416 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
     371         416 :                         ndr->flags = _flags_save_string;
     372             :                 }
     373             :                 {
     374         416 :                         libndr_flags _flags_save_string = ndr->flags;
     375         416 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
     376         416 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->servername));
     377         416 :                         ndr->flags = _flags_save_string;
     378             :                 }
     379         416 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
     380         416 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_jobs));
     381         416 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_bytes));
     382         416 :                 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->time));
     383         416 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->global_counter));
     384         416 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
     385         416 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
     386         416 :                 NDR_CHECK(ndr_push_spoolss_Build(ndr, NDR_SCALARS, r->free_build));
     387         416 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->spooling));
     388         416 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->max_spooling));
     389         416 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->session_counter));
     390         416 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_out_of_paper));
     391         416 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_not_ready));
     392         416 :                 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->job_error));
     393         416 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->number_of_processors));
     394         416 :                 NDR_CHECK(ndr_push_spoolss_ProcessorType(ndr, NDR_SCALARS, r->processor_type));
     395         416 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->high_part_total_bytes));
     396         416 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->change_id));
     397         416 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->last_error));
     398         416 :                 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
     399         416 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->enumerate_network_printers));
     400         416 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->c_setprinter));
     401         416 :                 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor_architecture));
     402         416 :                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->processor_level));
     403         416 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ref_ic));
     404         416 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved2));
     405         416 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved3));
     406         416 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
     407             :         }
     408         832 :         if (ndr_flags & NDR_BUFFERS) {
     409             :                 {
     410         416 :                         libndr_flags _flags_save_string = ndr->flags;
     411         416 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
     412         416 :                         if (r->printername) {
     413         416 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->printername));
     414         416 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
     415         416 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->printername));
     416             :                         }
     417         416 :                         ndr->flags = _flags_save_string;
     418             :                 }
     419             :                 {
     420         416 :                         libndr_flags _flags_save_string = ndr->flags;
     421         416 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
     422         416 :                         if (r->servername) {
     423         212 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->servername));
     424         212 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->servername));
     425         212 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->servername));
     426             :                         }
     427         416 :                         ndr->flags = _flags_save_string;
     428             :                 }
     429             :         }
     430         832 :         return NDR_ERR_SUCCESS;
     431             : }
     432             : 
     433         280 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo0(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_PrinterInfo0 *r)
     434             : {
     435           0 :         uint32_t _ptr_printername;
     436         280 :         TALLOC_CTX *_mem_save_printername_0 = NULL;
     437           0 :         uint32_t _ptr_servername;
     438         280 :         TALLOC_CTX *_mem_save_servername_0 = NULL;
     439         280 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
     440         280 :         if (ndr_flags & NDR_SCALARS) {
     441         140 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
     442             :                 {
     443         140 :                         libndr_flags _flags_save_string = ndr->flags;
     444         140 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
     445         140 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
     446         140 :                         if (_ptr_printername) {
     447         140 :                                 NDR_PULL_ALLOC(ndr, r->printername);
     448         140 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
     449             :                         } else {
     450           0 :                                 r->printername = NULL;
     451             :                         }
     452         140 :                         ndr->flags = _flags_save_string;
     453             :                 }
     454             :                 {
     455         140 :                         libndr_flags _flags_save_string = ndr->flags;
     456         140 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
     457         140 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
     458         140 :                         if (_ptr_servername) {
     459          72 :                                 NDR_PULL_ALLOC(ndr, r->servername);
     460          72 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->servername, _ptr_servername));
     461             :                         } else {
     462          68 :                                 r->servername = NULL;
     463             :                         }
     464         140 :                         ndr->flags = _flags_save_string;
     465             :                 }
     466         140 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
     467         140 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_jobs));
     468         140 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_bytes));
     469         140 :                 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->time));
     470         140 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->global_counter));
     471         140 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
     472         140 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
     473         140 :                 NDR_CHECK(ndr_pull_spoolss_Build(ndr, NDR_SCALARS, &r->free_build));
     474         140 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->spooling));
     475         140 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_spooling));
     476         140 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->session_counter));
     477         140 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_out_of_paper));
     478         140 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_not_ready));
     479         140 :                 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->job_error));
     480         140 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->number_of_processors));
     481         140 :                 NDR_CHECK(ndr_pull_spoolss_ProcessorType(ndr, NDR_SCALARS, &r->processor_type));
     482         140 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->high_part_total_bytes));
     483         140 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->change_id));
     484         140 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->last_error));
     485         140 :                 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
     486         140 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->enumerate_network_printers));
     487         140 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->c_setprinter));
     488         140 :                 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor_architecture));
     489         140 :                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->processor_level));
     490         140 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ref_ic));
     491         140 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
     492         140 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved3));
     493         140 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
     494             :         }
     495         280 :         if (ndr_flags & NDR_BUFFERS) {
     496             :                 {
     497         140 :                         libndr_flags _flags_save_string = ndr->flags;
     498         140 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
     499         140 :                         if (r->printername) {
     500           0 :                                 uint32_t _relative_save_offset;
     501         140 :                                 _relative_save_offset = ndr->offset;
     502         140 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
     503         140 :                                 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
     504         140 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
     505         140 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
     506         140 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
     507         140 :                                 if (ndr->offset > ndr->relative_highest_offset) {
     508         124 :                                         ndr->relative_highest_offset = ndr->offset;
     509             :                                 }
     510         140 :                                 ndr->offset = _relative_save_offset;
     511             :                         }
     512         140 :                         ndr->flags = _flags_save_string;
     513             :                 }
     514             :                 {
     515         140 :                         libndr_flags _flags_save_string = ndr->flags;
     516         140 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
     517         140 :                         if (r->servername) {
     518           0 :                                 uint32_t _relative_save_offset;
     519          72 :                                 _relative_save_offset = ndr->offset;
     520          72 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->servername));
     521          72 :                                 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
     522          72 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
     523          72 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->servername));
     524          72 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
     525          72 :                                 if (ndr->offset > ndr->relative_highest_offset) {
     526           0 :                                         ndr->relative_highest_offset = ndr->offset;
     527             :                                 }
     528          72 :                                 ndr->offset = _relative_save_offset;
     529             :                         }
     530         140 :                         ndr->flags = _flags_save_string;
     531             :                 }
     532             :         }
     533         280 :         return NDR_ERR_SUCCESS;
     534             : }
     535             : 
     536           0 : static void ndr_print_flags_spoolss_PrinterInfo0(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_PrinterInfo0 *r)
     537             : {
     538           0 :         ndr_print_spoolss_PrinterInfo0(ndr, name, r);
     539           0 : }
     540             : 
     541           0 : _PUBLIC_ void ndr_print_spoolss_PrinterInfo0(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo0 *r)
     542             : {
     543           0 :         ndr_print_struct(ndr, name, "spoolss_PrinterInfo0");
     544           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
     545           0 :         ndr->depth++;
     546             :         {
     547           0 :                 libndr_flags _flags_save_string = ndr->flags;
     548           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
     549           0 :                 ndr_print_ptr(ndr, "printername", r->printername);
     550           0 :                 ndr->depth++;
     551           0 :                 if (r->printername) {
     552           0 :                         ndr_print_string(ndr, "printername", r->printername);
     553             :                 }
     554           0 :                 ndr->depth--;
     555           0 :                 ndr->flags = _flags_save_string;
     556             :         }
     557             :         {
     558           0 :                 libndr_flags _flags_save_string = ndr->flags;
     559           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
     560           0 :                 ndr_print_ptr(ndr, "servername", r->servername);
     561           0 :                 ndr->depth++;
     562           0 :                 if (r->servername) {
     563           0 :                         ndr_print_string(ndr, "servername", r->servername);
     564             :                 }
     565           0 :                 ndr->depth--;
     566           0 :                 ndr->flags = _flags_save_string;
     567             :         }
     568           0 :         ndr_print_uint32(ndr, "cjobs", r->cjobs);
     569           0 :         ndr_print_uint32(ndr, "total_jobs", r->total_jobs);
     570           0 :         ndr_print_uint32(ndr, "total_bytes", r->total_bytes);
     571           0 :         ndr_print_spoolss_Time(ndr, "time", &r->time);
     572           0 :         ndr_print_uint32(ndr, "global_counter", r->global_counter);
     573           0 :         ndr_print_uint32(ndr, "total_pages", r->total_pages);
     574           0 :         ndr_print_uint32(ndr, "version", r->version);
     575           0 :         ndr_print_spoolss_Build(ndr, "free_build", r->free_build);
     576           0 :         ndr_print_uint32(ndr, "spooling", r->spooling);
     577           0 :         ndr_print_uint32(ndr, "max_spooling", r->max_spooling);
     578           0 :         ndr_print_uint32(ndr, "session_counter", r->session_counter);
     579           0 :         ndr_print_uint32(ndr, "num_error_out_of_paper", r->num_error_out_of_paper);
     580           0 :         ndr_print_uint32(ndr, "num_error_not_ready", r->num_error_not_ready);
     581           0 :         ndr_print_spoolss_JobStatus(ndr, "job_error", r->job_error);
     582           0 :         ndr_print_uint32(ndr, "number_of_processors", r->number_of_processors);
     583           0 :         ndr_print_spoolss_ProcessorType(ndr, "processor_type", r->processor_type);
     584           0 :         ndr_print_uint32(ndr, "high_part_total_bytes", r->high_part_total_bytes);
     585           0 :         ndr_print_uint32(ndr, "change_id", r->change_id);
     586           0 :         ndr_print_WERROR(ndr, "last_error", r->last_error);
     587           0 :         ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
     588           0 :         ndr_print_uint32(ndr, "enumerate_network_printers", r->enumerate_network_printers);
     589           0 :         ndr_print_uint32(ndr, "c_setprinter", r->c_setprinter);
     590           0 :         ndr_print_spoolss_ProcessorArchitecture(ndr, "processor_architecture", r->processor_architecture);
     591           0 :         ndr_print_uint16(ndr, "processor_level", r->processor_level);
     592           0 :         ndr_print_uint32(ndr, "ref_ic", r->ref_ic);
     593           0 :         ndr_print_uint32(ndr, "reserved2", r->reserved2);
     594           0 :         ndr_print_uint32(ndr, "reserved3", r->reserved3);
     595           0 :         ndr->depth--;
     596             : }
     597             : 
     598           0 : _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo0(const struct spoolss_PrinterInfo0 *r, libndr_flags flags)
     599             : {
     600           0 :         return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo0);
     601             : }
     602             : 
     603           0 : static enum ndr_err_code ndr_push_spoolss_DM_Signature(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum spoolss_DM_Signature r)
     604             : {
     605           0 :         NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
     606           0 :         return NDR_ERR_SUCCESS;
     607             : }
     608             : 
     609           0 : static enum ndr_err_code ndr_pull_spoolss_DM_Signature(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum spoolss_DM_Signature *r)
     610             : {
     611           0 :         uint32_t v;
     612           0 :         NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
     613           0 :         *r = v;
     614           0 :         return NDR_ERR_SUCCESS;
     615             : }
     616             : 
     617           0 : _PUBLIC_ void ndr_print_spoolss_DM_Signature(struct ndr_print *ndr, const char *name, enum spoolss_DM_Signature r)
     618             : {
     619           0 :         const char *val = NULL;
     620             : 
     621           0 :         switch (r) {
     622           0 :                 case SPOOLSS_DM_SIGNATURE_UNIDRVEXTRA: val = "SPOOLSS_DM_SIGNATURE_UNIDRVEXTRA"; break;
     623           0 :                 case SPOOLSS_DM_SIGNATURE_JTEXP: val = "SPOOLSS_DM_SIGNATURE_JTEXP"; break;
     624           0 :                 case SPOOLSS_DM_SIGNATURE_PSEXTRA: val = "SPOOLSS_DM_SIGNATURE_PSEXTRA"; break;
     625             :         }
     626           0 :         ndr_print_enum(ndr, name, "ENUM", val, r);
     627           0 : }
     628             : 
     629           0 : static enum ndr_err_code ndr_push_spoolss_DM_Layout(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum spoolss_DM_Layout r)
     630             : {
     631           0 :         NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
     632           0 :         return NDR_ERR_SUCCESS;
     633             : }
     634             : 
     635           0 : static enum ndr_err_code ndr_pull_spoolss_DM_Layout(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum spoolss_DM_Layout *r)
     636             : {
     637           0 :         uint32_t v;
     638           0 :         NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
     639           0 :         *r = v;
     640           0 :         return NDR_ERR_SUCCESS;
     641             : }
     642             : 
     643           0 : _PUBLIC_ void ndr_print_spoolss_DM_Layout(struct ndr_print *ndr, const char *name, enum spoolss_DM_Layout r)
     644             : {
     645           0 :         const char *val = NULL;
     646             : 
     647           0 :         switch (r) {
     648           0 :                 case SPOOLSS_DM_LAYOUT_NUP_DISABLED: val = "SPOOLSS_DM_LAYOUT_NUP_DISABLED"; break;
     649           0 :                 case SPOOLSS_DM_LAYOUT_NUP_2: val = "SPOOLSS_DM_LAYOUT_NUP_2"; break;
     650           0 :                 case SPOOLSS_DM_LAYOUT_NUP_4: val = "SPOOLSS_DM_LAYOUT_NUP_4"; break;
     651           0 :                 case SPOOLSS_DM_LAYOUT_NUP_6: val = "SPOOLSS_DM_LAYOUT_NUP_6"; break;
     652           0 :                 case SPOOLSS_DM_LAYOUT_NUP_9: val = "SPOOLSS_DM_LAYOUT_NUP_9"; break;
     653           0 :                 case SPOOLSS_DM_LAYOUT_NUP_16: val = "SPOOLSS_DM_LAYOUT_NUP_16"; break;
     654           0 :                 case SPOOLSS_DM_LAYOUT_BOOKLET: val = "SPOOLSS_DM_LAYOUT_BOOKLET"; break;
     655             :         }
     656           0 :         ndr_print_enum(ndr, name, "ENUM", val, r);
     657           0 : }
     658             : 
     659           0 : static enum ndr_err_code ndr_push_spoolss_DM_NupDirection(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum spoolss_DM_NupDirection r)
     660             : {
     661           0 :         NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
     662           0 :         return NDR_ERR_SUCCESS;
     663             : }
     664             : 
     665           0 : static enum ndr_err_code ndr_pull_spoolss_DM_NupDirection(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum spoolss_DM_NupDirection *r)
     666             : {
     667           0 :         uint32_t v;
     668           0 :         NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
     669           0 :         *r = v;
     670           0 :         return NDR_ERR_SUCCESS;
     671             : }
     672             : 
     673           0 : _PUBLIC_ void ndr_print_spoolss_DM_NupDirection(struct ndr_print *ndr, const char *name, enum spoolss_DM_NupDirection r)
     674             : {
     675           0 :         const char *val = NULL;
     676             : 
     677           0 :         switch (r) {
     678           0 :                 case SPOOLSS_DM_NUP_DIRECTION_L2R_T2B: val = "SPOOLSS_DM_NUP_DIRECTION_L2R_T2B"; break;
     679           0 :                 case SPOOLSS_DM_NUP_DIRECTION_T2B_L2R: val = "SPOOLSS_DM_NUP_DIRECTION_T2B_L2R"; break;
     680           0 :                 case SPOOLSS_DM_NUP_DIRECTION_R2L_T2B: val = "SPOOLSS_DM_NUP_DIRECTION_R2L_T2B"; break;
     681           0 :                 case SPOOLSS_DM_NUP_DIRECTION_T2B_R2L: val = "SPOOLSS_DM_NUP_DIRECTION_T2B_R2L"; break;
     682             :         }
     683           0 :         ndr_print_enum(ndr, name, "ENUM", val, r);
     684           0 : }
     685             : 
     686           0 : static enum ndr_err_code ndr_push_spoolss_DM_NupBorderFlags(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum spoolss_DM_NupBorderFlags r)
     687             : {
     688           0 :         NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
     689           0 :         return NDR_ERR_SUCCESS;
     690             : }
     691             : 
     692           0 : static enum ndr_err_code ndr_pull_spoolss_DM_NupBorderFlags(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum spoolss_DM_NupBorderFlags *r)
     693             : {
     694           0 :         uint32_t v;
     695           0 :         NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
     696           0 :         *r = v;
     697           0 :         return NDR_ERR_SUCCESS;
     698             : }
     699             : 
     700           0 : _PUBLIC_ void ndr_print_spoolss_DM_NupBorderFlags(struct ndr_print *ndr, const char *name, enum spoolss_DM_NupBorderFlags r)
     701             : {
     702           0 :         const char *val = NULL;
     703             : 
     704           0 :         switch (r) {
     705           0 :                 case SPOOLSS_DM_NUP_BORDER_PRINT: val = "SPOOLSS_DM_NUP_BORDER_PRINT"; break;
     706           0 :                 case SPOOLSS_DM_NUP_BORDER_NONE: val = "SPOOLSS_DM_NUP_BORDER_NONE"; break;
     707             :         }
     708           0 :         ndr_print_enum(ndr, name, "ENUM", val, r);
     709           0 : }
     710             : 
     711           0 : static enum ndr_err_code ndr_push_spoolss_DM_BookletFlags(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum spoolss_DM_BookletFlags r)
     712             : {
     713           0 :         NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
     714           0 :         return NDR_ERR_SUCCESS;
     715             : }
     716             : 
     717           0 : static enum ndr_err_code ndr_pull_spoolss_DM_BookletFlags(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum spoolss_DM_BookletFlags *r)
     718             : {
     719           0 :         uint32_t v;
     720           0 :         NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
     721           0 :         *r = v;
     722           0 :         return NDR_ERR_SUCCESS;
     723             : }
     724             : 
     725           0 : _PUBLIC_ void ndr_print_spoolss_DM_BookletFlags(struct ndr_print *ndr, const char *name, enum spoolss_DM_BookletFlags r)
     726             : {
     727           0 :         const char *val = NULL;
     728             : 
     729           0 :         switch (r) {
     730           0 :                 case SPOOLSS_DM_BOOKLET_LEFT_FLIP: val = "SPOOLSS_DM_BOOKLET_LEFT_FLIP"; break;
     731           0 :                 case SPOOLSS_DM_BOOKLET_RIGHT_FLIP: val = "SPOOLSS_DM_BOOKLET_RIGHT_FLIP"; break;
     732             :         }
     733           0 :         ndr_print_enum(ndr, name, "ENUM", val, r);
     734           0 : }
     735             : 
     736           0 : static enum ndr_err_code ndr_push_spoolss_DMUNI_Quality(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum spoolss_DMUNI_Quality r)
     737             : {
     738           0 :         NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
     739           0 :         return NDR_ERR_SUCCESS;
     740             : }
     741             : 
     742           0 : static enum ndr_err_code ndr_pull_spoolss_DMUNI_Quality(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum spoolss_DMUNI_Quality *r)
     743             : {
     744           0 :         uint32_t v;
     745           0 :         NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
     746           0 :         *r = v;
     747           0 :         return NDR_ERR_SUCCESS;
     748             : }
     749             : 
     750           0 : _PUBLIC_ void ndr_print_spoolss_DMUNI_Quality(struct ndr_print *ndr, const char *name, enum spoolss_DMUNI_Quality r)
     751             : {
     752           0 :         const char *val = NULL;
     753             : 
     754           0 :         switch (r) {
     755           0 :                 case SPOOLSS_DM_UNI_QUALITY_BEST: val = "SPOOLSS_DM_UNI_QUALITY_BEST"; break;
     756           0 :                 case SPOOLSS_DM_UNI_QUALITY_MEDIUM: val = "SPOOLSS_DM_UNI_QUALITY_MEDIUM"; break;
     757           0 :                 case SPOOLSS_DM_UNI_QUALITY_DRAFT: val = "SPOOLSS_DM_UNI_QUALITY_DRAFT"; break;
     758             :         }
     759           0 :         ndr_print_enum(ndr, name, "ENUM", val, r);
     760           0 : }
     761             : 
     762           0 : static enum ndr_err_code ndr_push_spoolss_DMUNI_Flags(struct ndr_push *ndr, ndr_flags_type ndr_flags, uint32_t r)
     763             : {
     764           0 :         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
     765           0 :         return NDR_ERR_SUCCESS;
     766             : }
     767             : 
     768           0 : static enum ndr_err_code ndr_pull_spoolss_DMUNI_Flags(struct ndr_pull *ndr, ndr_flags_type ndr_flags, uint32_t *r)
     769             : {
     770           0 :         uint32_t v;
     771           0 :         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
     772           0 :         *r = v;
     773           0 :         return NDR_ERR_SUCCESS;
     774             : }
     775             : 
     776           0 : _PUBLIC_ void ndr_print_spoolss_DMUNI_Flags(struct ndr_print *ndr, const char *name, uint32_t r)
     777             : {
     778           0 :         ndr_print_uint32(ndr, name, r);
     779           0 :         ndr->depth++;
     780           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_DM_UNI_FLAGS_PRINT_TEXT_AS_GRAPHICS", SPOOLSS_DM_UNI_FLAGS_PRINT_TEXT_AS_GRAPHICS, r);
     781           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_DM_UNI_FLAGS_AVOID_EMFSPOOL", SPOOLSS_DM_UNI_FLAGS_AVOID_EMFSPOOL, r);
     782           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_DM_UNI_FLAGS_CUSTOM_HALFTONING", SPOOLSS_DM_UNI_FLAGS_CUSTOM_HALFTONING, r);
     783           0 :         ndr->depth--;
     784           0 : }
     785             : 
     786           0 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_UNIDRVEXTRA(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_UNIDRVEXTRA *r)
     787             : {
     788           0 :         uint32_t cntr_wReserved_0;
     789           0 :         uint32_t cntr_aOptions_0;
     790           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
     791           0 :         if (ndr_flags & NDR_SCALARS) {
     792           0 :                 NDR_CHECK(ndr_push_align(ndr, 4));
     793           0 :                 NDR_CHECK(ndr_push_spoolss_DM_Signature(ndr, NDR_SCALARS, SPOOLSS_DM_SIGNATURE_UNIDRVEXTRA));
     794           0 :                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, 0x0022));
     795           0 :                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->wCoreJTExpSize));
     796           0 :                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, ndr_size_spoolss_UNIDRVEXTRA(r, ndr->flags) + r->wCoreJTExpSize));
     797           0 :                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->wOEMExtra));
     798           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwChecksum32));
     799           0 :                 NDR_CHECK(ndr_push_spoolss_DMUNI_Flags(ndr, NDR_SCALARS, r->dwFlags));
     800           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bReversePrint));
     801           0 :                 NDR_CHECK(ndr_push_spoolss_DM_Layout(ndr, NDR_SCALARS, r->iLayout));
     802           0 :                 NDR_CHECK(ndr_push_spoolss_DMUNI_Quality(ndr, NDR_SCALARS, r->iQuality));
     803           0 :                 for (cntr_wReserved_0 = 0; cntr_wReserved_0 < (6); cntr_wReserved_0++) {
     804           0 :                         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->wReserved[cntr_wReserved_0]));
     805             :                 }
     806           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwOptions));
     807           0 :                 for (cntr_aOptions_0 = 0; cntr_aOptions_0 < (128); cntr_aOptions_0++) {
     808           0 :                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->aOptions[cntr_aOptions_0]));
     809             :                 }
     810           0 :                 NDR_CHECK(ndr_push_spoolss_DM_NupDirection(ndr, NDR_SCALARS, r->dwNupDirection));
     811           0 :                 NDR_CHECK(ndr_push_spoolss_DM_NupBorderFlags(ndr, NDR_SCALARS, r->dwNupBorderFlags));
     812           0 :                 NDR_CHECK(ndr_push_spoolss_DM_BookletFlags(ndr, NDR_SCALARS, r->dwBookletFlags));
     813           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
     814             :         }
     815           0 :         if (ndr_flags & NDR_BUFFERS) {
     816           0 :         }
     817           0 :         return NDR_ERR_SUCCESS;
     818             : }
     819             : 
     820           0 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_UNIDRVEXTRA(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_UNIDRVEXTRA *r)
     821             : {
     822           0 :         uint32_t size_wReserved_0 = 0;
     823           0 :         uint32_t cntr_wReserved_0;
     824           0 :         uint32_t size_aOptions_0 = 0;
     825           0 :         uint32_t cntr_aOptions_0;
     826           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
     827           0 :         if (ndr_flags & NDR_SCALARS) {
     828           0 :                 NDR_CHECK(ndr_pull_align(ndr, 4));
     829           0 :                 NDR_CHECK(ndr_pull_spoolss_DM_Signature(ndr, NDR_SCALARS, &r->dwSignature));
     830           0 :                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->wVer));
     831           0 :                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->wCoreJTExpSize));
     832           0 :                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->wCoreFullSize));
     833           0 :                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->wOEMExtra));
     834           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwChecksum32));
     835           0 :                 NDR_CHECK(ndr_pull_spoolss_DMUNI_Flags(ndr, NDR_SCALARS, &r->dwFlags));
     836           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bReversePrint));
     837           0 :                 NDR_CHECK(ndr_pull_spoolss_DM_Layout(ndr, NDR_SCALARS, &r->iLayout));
     838           0 :                 NDR_CHECK(ndr_pull_spoolss_DMUNI_Quality(ndr, NDR_SCALARS, &r->iQuality));
     839           0 :                 size_wReserved_0 = 6;
     840           0 :                 for (cntr_wReserved_0 = 0; cntr_wReserved_0 < (size_wReserved_0); cntr_wReserved_0++) {
     841           0 :                         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->wReserved[cntr_wReserved_0]));
     842             :                 }
     843           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwOptions));
     844           0 :                 size_aOptions_0 = 128;
     845           0 :                 for (cntr_aOptions_0 = 0; cntr_aOptions_0 < (size_aOptions_0); cntr_aOptions_0++) {
     846           0 :                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->aOptions[cntr_aOptions_0]));
     847             :                 }
     848           0 :                 NDR_CHECK(ndr_pull_spoolss_DM_NupDirection(ndr, NDR_SCALARS, &r->dwNupDirection));
     849           0 :                 NDR_CHECK(ndr_pull_spoolss_DM_NupBorderFlags(ndr, NDR_SCALARS, &r->dwNupBorderFlags));
     850           0 :                 NDR_CHECK(ndr_pull_spoolss_DM_BookletFlags(ndr, NDR_SCALARS, &r->dwBookletFlags));
     851           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
     852             :         }
     853           0 :         if (ndr_flags & NDR_BUFFERS) {
     854           0 :         }
     855           0 :         return NDR_ERR_SUCCESS;
     856             : }
     857             : 
     858           0 : static void ndr_print_flags_spoolss_UNIDRVEXTRA(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_UNIDRVEXTRA *r)
     859             : {
     860           0 :         ndr_print_spoolss_UNIDRVEXTRA(ndr, name, r);
     861           0 : }
     862             : 
     863           0 : _PUBLIC_ void ndr_print_spoolss_UNIDRVEXTRA(struct ndr_print *ndr, const char *name, const struct spoolss_UNIDRVEXTRA *r)
     864             : {
     865           0 :         uint32_t cntr_wReserved_0;
     866           0 :         uint32_t cntr_aOptions_0;
     867           0 :         ndr_print_struct(ndr, name, "spoolss_UNIDRVEXTRA");
     868           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
     869           0 :         ndr->depth++;
     870           0 :         ndr_print_spoolss_DM_Signature(ndr, "dwSignature", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?SPOOLSS_DM_SIGNATURE_UNIDRVEXTRA:r->dwSignature);
     871           0 :         ndr_print_uint16(ndr, "wVer", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0x0022:r->wVer);
     872           0 :         ndr_print_uint16(ndr, "wCoreJTExpSize", r->wCoreJTExpSize);
     873           0 :         ndr_print_uint16(ndr, "wCoreFullSize", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_spoolss_UNIDRVEXTRA(r, ndr->flags) + r->wCoreJTExpSize:r->wCoreFullSize);
     874           0 :         ndr_print_uint16(ndr, "wOEMExtra", r->wOEMExtra);
     875           0 :         ndr_print_uint32(ndr, "dwChecksum32", r->dwChecksum32);
     876           0 :         ndr_print_spoolss_DMUNI_Flags(ndr, "dwFlags", r->dwFlags);
     877           0 :         ndr_print_uint32(ndr, "bReversePrint", r->bReversePrint);
     878           0 :         ndr_print_spoolss_DM_Layout(ndr, "iLayout", r->iLayout);
     879           0 :         ndr_print_spoolss_DMUNI_Quality(ndr, "iQuality", r->iQuality);
     880           0 :         ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "wReserved", (uint32_t)(6));
     881           0 :         ndr->depth++;
     882           0 :         for (cntr_wReserved_0 = 0; cntr_wReserved_0 < (6); cntr_wReserved_0++) {
     883           0 :                 ndr_print_uint16(ndr, "wReserved", r->wReserved[cntr_wReserved_0]);
     884             :         }
     885           0 :         ndr->depth--;
     886           0 :         ndr_print_uint32(ndr, "dwOptions", r->dwOptions);
     887           0 :         ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "aOptions", (uint32_t)(128));
     888           0 :         ndr->depth++;
     889           0 :         for (cntr_aOptions_0 = 0; cntr_aOptions_0 < (128); cntr_aOptions_0++) {
     890           0 :                 ndr_print_uint32(ndr, "aOptions", r->aOptions[cntr_aOptions_0]);
     891             :         }
     892           0 :         ndr->depth--;
     893           0 :         ndr_print_spoolss_DM_NupDirection(ndr, "dwNupDirection", r->dwNupDirection);
     894           0 :         ndr_print_spoolss_DM_NupBorderFlags(ndr, "dwNupBorderFlags", r->dwNupBorderFlags);
     895           0 :         ndr_print_spoolss_DM_BookletFlags(ndr, "dwBookletFlags", r->dwBookletFlags);
     896           0 :         ndr->depth--;
     897             : }
     898             : 
     899           0 : _PUBLIC_ size_t ndr_size_spoolss_UNIDRVEXTRA(const struct spoolss_UNIDRVEXTRA *r, libndr_flags flags)
     900             : {
     901           0 :         return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_UNIDRVEXTRA);
     902             : }
     903             : 
     904       16168 : static enum ndr_err_code ndr_push_spoolss_DeviceModeFields(struct ndr_push *ndr, ndr_flags_type ndr_flags, uint32_t r)
     905             : {
     906       16168 :         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
     907       16168 :         return NDR_ERR_SUCCESS;
     908             : }
     909             : 
     910        4678 : static enum ndr_err_code ndr_pull_spoolss_DeviceModeFields(struct ndr_pull *ndr, ndr_flags_type ndr_flags, uint32_t *r)
     911             : {
     912           4 :         uint32_t v;
     913        4678 :         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
     914        4678 :         *r = v;
     915        4678 :         return NDR_ERR_SUCCESS;
     916             : }
     917             : 
     918           4 : _PUBLIC_ void ndr_print_spoolss_DeviceModeFields(struct ndr_print *ndr, const char *name, uint32_t r)
     919             : {
     920           4 :         ndr_print_uint32(ndr, name, r);
     921           4 :         ndr->depth++;
     922           4 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_ORIENTATION", DEVMODE_ORIENTATION, r);
     923           4 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PAPERSIZE", DEVMODE_PAPERSIZE, r);
     924           4 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PAPERLENGTH", DEVMODE_PAPERLENGTH, r);
     925           4 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PAPERWIDTH", DEVMODE_PAPERWIDTH, r);
     926           4 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_SCALE", DEVMODE_SCALE, r);
     927           4 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_POSITION", DEVMODE_POSITION, r);
     928           4 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_NUP", DEVMODE_NUP, r);
     929           4 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_COPIES", DEVMODE_COPIES, r);
     930           4 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DEFAULTSOURCE", DEVMODE_DEFAULTSOURCE, r);
     931           4 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PRINTQUALITY", DEVMODE_PRINTQUALITY, r);
     932           4 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_COLOR", DEVMODE_COLOR, r);
     933           4 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DUPLEX", DEVMODE_DUPLEX, r);
     934           4 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_YRESOLUTION", DEVMODE_YRESOLUTION, r);
     935           4 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_TTOPTION", DEVMODE_TTOPTION, r);
     936           4 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_COLLATE", DEVMODE_COLLATE, r);
     937           4 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_FORMNAME", DEVMODE_FORMNAME, r);
     938           4 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_LOGPIXELS", DEVMODE_LOGPIXELS, r);
     939           4 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_BITSPERPEL", DEVMODE_BITSPERPEL, r);
     940           4 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PELSWIDTH", DEVMODE_PELSWIDTH, r);
     941           4 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PELSHEIGHT", DEVMODE_PELSHEIGHT, r);
     942           4 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DISPLAYFLAGS", DEVMODE_DISPLAYFLAGS, r);
     943           4 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DISPLAYFREQUENCY", DEVMODE_DISPLAYFREQUENCY, r);
     944           4 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_ICMMETHOD", DEVMODE_ICMMETHOD, r);
     945           4 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_ICMINTENT", DEVMODE_ICMINTENT, r);
     946           4 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_MEDIATYPE", DEVMODE_MEDIATYPE, r);
     947           4 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DITHERTYPE", DEVMODE_DITHERTYPE, r);
     948           4 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PANNINGWIDTH", DEVMODE_PANNINGWIDTH, r);
     949           4 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PANNINGHEIGHT", DEVMODE_PANNINGHEIGHT, r);
     950           4 :         ndr->depth--;
     951           4 : }
     952             : 
     953       16168 : static enum ndr_err_code ndr_push_spoolss_DeviceModeSpecVersion(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum spoolss_DeviceModeSpecVersion r)
     954             : {
     955       16168 :         NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
     956       16168 :         return NDR_ERR_SUCCESS;
     957             : }
     958             : 
     959        4678 : static enum ndr_err_code ndr_pull_spoolss_DeviceModeSpecVersion(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum spoolss_DeviceModeSpecVersion *r)
     960             : {
     961           4 :         uint16_t v;
     962        4678 :         NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
     963        4678 :         *r = v;
     964        4678 :         return NDR_ERR_SUCCESS;
     965             : }
     966             : 
     967           4 : _PUBLIC_ void ndr_print_spoolss_DeviceModeSpecVersion(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeSpecVersion r)
     968             : {
     969           4 :         const char *val = NULL;
     970             : 
     971           4 :         switch (r) {
     972           0 :                 case DMSPEC_NT3: val = "DMSPEC_NT3"; break;
     973           0 :                 case DMSPEC_WIN95_98_ME: val = "DMSPEC_WIN95_98_ME"; break;
     974           4 :                 case DMSPEC_NT4_AND_ABOVE: val = "DMSPEC_NT4_AND_ABOVE"; break;
     975             :         }
     976           4 :         ndr_print_enum(ndr, name, "ENUM", val, r);
     977           4 : }
     978             : 
     979       16168 : static enum ndr_err_code ndr_push_spoolss_DeviceModeOrientation(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum spoolss_DeviceModeOrientation r)
     980             : {
     981       16168 :         NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
     982       16168 :         return NDR_ERR_SUCCESS;
     983             : }
     984             : 
     985        4678 : static enum ndr_err_code ndr_pull_spoolss_DeviceModeOrientation(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum spoolss_DeviceModeOrientation *r)
     986             : {
     987           4 :         uint16_t v;
     988        4678 :         NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
     989        4678 :         *r = v;
     990        4678 :         return NDR_ERR_SUCCESS;
     991             : }
     992             : 
     993           4 : _PUBLIC_ void ndr_print_spoolss_DeviceModeOrientation(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeOrientation r)
     994             : {
     995           4 :         const char *val = NULL;
     996             : 
     997           4 :         switch (r) {
     998           4 :                 case DMORIENT_PORTRAIT: val = "DMORIENT_PORTRAIT"; break;
     999           0 :                 case DMORIENT_LANDSCAPE: val = "DMORIENT_LANDSCAPE"; break;
    1000             :         }
    1001           4 :         ndr_print_enum(ndr, name, "ENUM", val, r);
    1002           4 : }
    1003             : 
    1004       16168 : static enum ndr_err_code ndr_push_spoolss_DeviceModePaperSize(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum spoolss_DeviceModePaperSize r)
    1005             : {
    1006       16168 :         NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
    1007       16168 :         return NDR_ERR_SUCCESS;
    1008             : }
    1009             : 
    1010        4678 : static enum ndr_err_code ndr_pull_spoolss_DeviceModePaperSize(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum spoolss_DeviceModePaperSize *r)
    1011             : {
    1012           4 :         uint16_t v;
    1013        4678 :         NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
    1014        4678 :         *r = v;
    1015        4678 :         return NDR_ERR_SUCCESS;
    1016             : }
    1017             : 
    1018           4 : _PUBLIC_ void ndr_print_spoolss_DeviceModePaperSize(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModePaperSize r)
    1019             : {
    1020           4 :         const char *val = NULL;
    1021             : 
    1022           4 :         switch (r) {
    1023           4 :                 case DMPAPER_LETTER: val = "DMPAPER_LETTER"; break;
    1024           0 :                 case DMPAPER_LETTERSMALL: val = "DMPAPER_LETTERSMALL"; break;
    1025           0 :                 case DMPAPER_TABLOID: val = "DMPAPER_TABLOID"; break;
    1026           0 :                 case DMPAPER_LEDGER: val = "DMPAPER_LEDGER"; break;
    1027           0 :                 case DMPAPER_LEGAL: val = "DMPAPER_LEGAL"; break;
    1028           0 :                 case DMPAPER_STATEMENT: val = "DMPAPER_STATEMENT"; break;
    1029           0 :                 case DMPAPER_EXECUTIVE: val = "DMPAPER_EXECUTIVE"; break;
    1030           0 :                 case DMPAPER_A3: val = "DMPAPER_A3"; break;
    1031           0 :                 case DMPAPER_A4: val = "DMPAPER_A4"; break;
    1032           0 :                 case DMPAPER_A4SMALL: val = "DMPAPER_A4SMALL"; break;
    1033           0 :                 case DMPAPER_A5: val = "DMPAPER_A5"; break;
    1034           0 :                 case DMPAPER_B4: val = "DMPAPER_B4"; break;
    1035           0 :                 case DMPAPER_B5: val = "DMPAPER_B5"; break;
    1036           0 :                 case DMPAPER_FOLIO: val = "DMPAPER_FOLIO"; break;
    1037           0 :                 case DMPAPER_QUARTO: val = "DMPAPER_QUARTO"; break;
    1038           0 :                 case DMPAPER_10X14: val = "DMPAPER_10X14"; break;
    1039           0 :                 case DMPAPER_11X17: val = "DMPAPER_11X17"; break;
    1040           0 :                 case DMPAPER_NOTE: val = "DMPAPER_NOTE"; break;
    1041           0 :                 case DMPAPER_ENV_9: val = "DMPAPER_ENV_9"; break;
    1042           0 :                 case DMPAPER_ENV_10: val = "DMPAPER_ENV_10"; break;
    1043           0 :                 case DMPAPER_ENV_11: val = "DMPAPER_ENV_11"; break;
    1044           0 :                 case DMPAPER_ENV_12: val = "DMPAPER_ENV_12"; break;
    1045           0 :                 case DMPAPER_ENV_14: val = "DMPAPER_ENV_14"; break;
    1046           0 :                 case DMPAPER_CSHEET: val = "DMPAPER_CSHEET"; break;
    1047           0 :                 case DMPAPER_DSHEET: val = "DMPAPER_DSHEET"; break;
    1048           0 :                 case DMPAPER_ESHEET: val = "DMPAPER_ESHEET"; break;
    1049           0 :                 case DMPAPER_ENV_DL: val = "DMPAPER_ENV_DL"; break;
    1050           0 :                 case DMPAPER_ENV_C5: val = "DMPAPER_ENV_C5"; break;
    1051           0 :                 case DMPAPER_ENV_C3: val = "DMPAPER_ENV_C3"; break;
    1052           0 :                 case DMPAPER_ENV_C4: val = "DMPAPER_ENV_C4"; break;
    1053           0 :                 case DMPAPER_ENV_C6: val = "DMPAPER_ENV_C6"; break;
    1054           0 :                 case DMPAPER_ENV_C65: val = "DMPAPER_ENV_C65"; break;
    1055           0 :                 case DMPAPER_ENV_B4: val = "DMPAPER_ENV_B4"; break;
    1056           0 :                 case DMPAPER_ENV_B5: val = "DMPAPER_ENV_B5"; break;
    1057           0 :                 case DMPAPER_ENV_B6: val = "DMPAPER_ENV_B6"; break;
    1058           0 :                 case DMPAPER_ENV_ITALY: val = "DMPAPER_ENV_ITALY"; break;
    1059           0 :                 case DMPAPER_ENV_MONARCH: val = "DMPAPER_ENV_MONARCH"; break;
    1060           0 :                 case DMPAPER_ENV_PERSONAL: val = "DMPAPER_ENV_PERSONAL"; break;
    1061           0 :                 case DMPAPER_FANFOLD_US: val = "DMPAPER_FANFOLD_US"; break;
    1062           0 :                 case DMPAPER_FANFOLD_STD_GERMAN: val = "DMPAPER_FANFOLD_STD_GERMAN"; break;
    1063           0 :                 case DMPAPER_FANFOLD_LGL_GERMAN: val = "DMPAPER_FANFOLD_LGL_GERMAN"; break;
    1064           0 :                 case DMPAPER_DBL_JAPANESE_POSTCARD: val = "DMPAPER_DBL_JAPANESE_POSTCARD"; break;
    1065           0 :                 case DMPAPER_A6: val = "DMPAPER_A6"; break;
    1066           0 :                 case DMPAPER_JENV_KAKU2: val = "DMPAPER_JENV_KAKU2"; break;
    1067           0 :                 case DMPAPER_JENV_KAKU3: val = "DMPAPER_JENV_KAKU3"; break;
    1068           0 :                 case DMPAPER_JENV_CHOU3: val = "DMPAPER_JENV_CHOU3"; break;
    1069           0 :                 case DMPAPER_JENV_CHOU4: val = "DMPAPER_JENV_CHOU4"; break;
    1070           0 :                 case DMPAPER_LETTER_ROTATED: val = "DMPAPER_LETTER_ROTATED"; break;
    1071           0 :                 case DMPAPER_A3_ROTATED: val = "DMPAPER_A3_ROTATED"; break;
    1072           0 :                 case DMPAPER_A4_ROTATED: val = "DMPAPER_A4_ROTATED"; break;
    1073           0 :                 case DMPAPER_A5_ROTATED: val = "DMPAPER_A5_ROTATED"; break;
    1074           0 :                 case DMPAPER_B4_JIS_ROTATED: val = "DMPAPER_B4_JIS_ROTATED"; break;
    1075           0 :                 case DMPAPER_B5_JIS_ROTATED: val = "DMPAPER_B5_JIS_ROTATED"; break;
    1076           0 :                 case DMPAPER_JAPANESE_POSTCARD_ROTATED: val = "DMPAPER_JAPANESE_POSTCARD_ROTATED"; break;
    1077           0 :                 case DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED: val = "DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED"; break;
    1078           0 :                 case DMPAPER_A6_ROTATED: val = "DMPAPER_A6_ROTATED"; break;
    1079           0 :                 case DMPAPER_JENV_KAKU2_ROTATED: val = "DMPAPER_JENV_KAKU2_ROTATED"; break;
    1080           0 :                 case DMPAPER_JENV_KAKU3_ROTATED: val = "DMPAPER_JENV_KAKU3_ROTATED"; break;
    1081           0 :                 case DMPAPER_JENV_CHOU3_ROTATED: val = "DMPAPER_JENV_CHOU3_ROTATED"; break;
    1082           0 :                 case DMPAPER_JENV_CHOU4_ROTATED: val = "DMPAPER_JENV_CHOU4_ROTATED"; break;
    1083           0 :                 case DMPAPER_B6_JIS: val = "DMPAPER_B6_JIS"; break;
    1084           0 :                 case DMPAPER_B6_JIS_ROTATED: val = "DMPAPER_B6_JIS_ROTATED"; break;
    1085           0 :                 case DMPAPER_12X11: val = "DMPAPER_12X11"; break;
    1086           0 :                 case DMPAPER_JENV_YOU4: val = "DMPAPER_JENV_YOU4"; break;
    1087           0 :                 case DMPAPER_JENV_YOU4_ROTATED: val = "DMPAPER_JENV_YOU4_ROTATED"; break;
    1088           0 :                 case DMPAPER_P16K: val = "DMPAPER_P16K"; break;
    1089           0 :                 case DMPAPER_P32K: val = "DMPAPER_P32K"; break;
    1090           0 :                 case DMPAPER_P32KBIG: val = "DMPAPER_P32KBIG"; break;
    1091           0 :                 case DMPAPER_PENV_1: val = "DMPAPER_PENV_1"; break;
    1092           0 :                 case DMPAPER_PENV_2: val = "DMPAPER_PENV_2"; break;
    1093           0 :                 case DMPAPER_PENV_3: val = "DMPAPER_PENV_3"; break;
    1094           0 :                 case DMPAPER_PENV_4: val = "DMPAPER_PENV_4"; break;
    1095           0 :                 case DMPAPER_PENV_5: val = "DMPAPER_PENV_5"; break;
    1096           0 :                 case DMPAPER_PENV_6: val = "DMPAPER_PENV_6"; break;
    1097           0 :                 case DMPAPER_PENV_7: val = "DMPAPER_PENV_7"; break;
    1098           0 :                 case DMPAPER_PENV_8: val = "DMPAPER_PENV_8"; break;
    1099           0 :                 case DMPAPER_PENV_9: val = "DMPAPER_PENV_9"; break;
    1100           0 :                 case DMPAPER_PENV_10: val = "DMPAPER_PENV_10"; break;
    1101           0 :                 case DMPAPER_P16K_ROTATED: val = "DMPAPER_P16K_ROTATED"; break;
    1102           0 :                 case DMPAPER_P32K_ROTATED: val = "DMPAPER_P32K_ROTATED"; break;
    1103           0 :                 case DMPAPER_P32KBIG_ROTATED: val = "DMPAPER_P32KBIG_ROTATED"; break;
    1104           0 :                 case DMPAPER_PENV_1_ROTATED: val = "DMPAPER_PENV_1_ROTATED"; break;
    1105           0 :                 case DMPAPER_PENV_2_ROTATED: val = "DMPAPER_PENV_2_ROTATED"; break;
    1106           0 :                 case DMPAPER_PENV_3_ROTATED: val = "DMPAPER_PENV_3_ROTATED"; break;
    1107           0 :                 case DMPAPER_PENV_4_ROTATED: val = "DMPAPER_PENV_4_ROTATED"; break;
    1108           0 :                 case DMPAPER_PENV_5_ROTATED: val = "DMPAPER_PENV_5_ROTATED"; break;
    1109           0 :                 case DMPAPER_PENV_6_ROTATED: val = "DMPAPER_PENV_6_ROTATED"; break;
    1110           0 :                 case DMPAPER_PENV_7_ROTATED: val = "DMPAPER_PENV_7_ROTATED"; break;
    1111           0 :                 case DMPAPER_PENV_8_ROTATED: val = "DMPAPER_PENV_8_ROTATED"; break;
    1112           0 :                 case DMPAPER_PENV_9_ROTATED: val = "DMPAPER_PENV_9_ROTATED"; break;
    1113           0 :                 case DMPAPER_PENV_10_ROTATED: val = "DMPAPER_PENV_10_ROTATED"; break;
    1114             :         }
    1115           4 :         ndr_print_enum(ndr, name, "ENUM", val, r);
    1116           4 : }
    1117             : 
    1118       16168 : static enum ndr_err_code ndr_push_spoolss_DeviceModeDefaultSource(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum spoolss_DeviceModeDefaultSource r)
    1119             : {
    1120       16168 :         NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
    1121       16168 :         return NDR_ERR_SUCCESS;
    1122             : }
    1123             : 
    1124        4678 : static enum ndr_err_code ndr_pull_spoolss_DeviceModeDefaultSource(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum spoolss_DeviceModeDefaultSource *r)
    1125             : {
    1126           4 :         uint16_t v;
    1127        4678 :         NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
    1128        4678 :         *r = v;
    1129        4678 :         return NDR_ERR_SUCCESS;
    1130             : }
    1131             : 
    1132           4 : _PUBLIC_ void ndr_print_spoolss_DeviceModeDefaultSource(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeDefaultSource r)
    1133             : {
    1134           4 :         const char *val = NULL;
    1135             : 
    1136           4 :         switch (r) {
    1137           0 :                 case DMBIN_UPPER: val = "DMBIN_UPPER"; break;
    1138           0 :                 case DMBIN_LOWER: val = "DMBIN_LOWER"; break;
    1139           0 :                 case DMBIN_MIDDLE: val = "DMBIN_MIDDLE"; break;
    1140           0 :                 case DMBIN_MANUAL: val = "DMBIN_MANUAL"; break;
    1141           0 :                 case DMBIN_ENVELOPE: val = "DMBIN_ENVELOPE"; break;
    1142           0 :                 case DMBIN_ENVMANUAL: val = "DMBIN_ENVMANUAL"; break;
    1143           0 :                 case DMBIN_AUTO: val = "DMBIN_AUTO"; break;
    1144           0 :                 case DMBIN_TRACTOR: val = "DMBIN_TRACTOR"; break;
    1145           0 :                 case DMBIN_SMALLFMT: val = "DMBIN_SMALLFMT"; break;
    1146           0 :                 case DMBIN_LARGEFMT: val = "DMBIN_LARGEFMT"; break;
    1147           0 :                 case DMBIN_LARGECAPACITY: val = "DMBIN_LARGECAPACITY"; break;
    1148           0 :                 case DMBIN_CASSETTE: val = "DMBIN_CASSETTE"; break;
    1149           4 :                 case DMBIN_FORMSOURCE: val = "DMBIN_FORMSOURCE"; break;
    1150             :         }
    1151           4 :         ndr_print_enum(ndr, name, "ENUM", val, r);
    1152           4 : }
    1153             : 
    1154       16168 : static enum ndr_err_code ndr_push_spoolss_DeviceModePrintQuality(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum spoolss_DeviceModePrintQuality r)
    1155             : {
    1156       16168 :         NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
    1157       16168 :         return NDR_ERR_SUCCESS;
    1158             : }
    1159             : 
    1160        4678 : static enum ndr_err_code ndr_pull_spoolss_DeviceModePrintQuality(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum spoolss_DeviceModePrintQuality *r)
    1161             : {
    1162           4 :         uint16_t v;
    1163        4678 :         NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
    1164        4678 :         *r = v;
    1165        4678 :         return NDR_ERR_SUCCESS;
    1166             : }
    1167             : 
    1168           4 : _PUBLIC_ void ndr_print_spoolss_DeviceModePrintQuality(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModePrintQuality r)
    1169             : {
    1170           4 :         const char *val = NULL;
    1171             : 
    1172           4 :         switch (r) {
    1173           0 :                 case DMRES_HIGH: val = "DMRES_HIGH"; break;
    1174           0 :                 case DMRES_MEDIUM: val = "DMRES_MEDIUM"; break;
    1175           0 :                 case DMRES_LOW: val = "DMRES_LOW"; break;
    1176           0 :                 case DMRES_DRAFT: val = "DMRES_DRAFT"; break;
    1177             :         }
    1178           4 :         ndr_print_enum(ndr, name, "ENUM", val, r);
    1179           4 : }
    1180             : 
    1181       16168 : static enum ndr_err_code ndr_push_spoolss_DeviceModeColor(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum spoolss_DeviceModeColor r)
    1182             : {
    1183       16168 :         NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
    1184       16168 :         return NDR_ERR_SUCCESS;
    1185             : }
    1186             : 
    1187        4678 : static enum ndr_err_code ndr_pull_spoolss_DeviceModeColor(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum spoolss_DeviceModeColor *r)
    1188             : {
    1189           4 :         uint16_t v;
    1190        4678 :         NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
    1191        4678 :         *r = v;
    1192        4678 :         return NDR_ERR_SUCCESS;
    1193             : }
    1194             : 
    1195           4 : _PUBLIC_ void ndr_print_spoolss_DeviceModeColor(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeColor r)
    1196             : {
    1197           4 :         const char *val = NULL;
    1198             : 
    1199           4 :         switch (r) {
    1200           4 :                 case DMRES_MONOCHROME: val = "DMRES_MONOCHROME"; break;
    1201           0 :                 case DMRES_COLOR: val = "DMRES_COLOR"; break;
    1202             :         }
    1203           4 :         ndr_print_enum(ndr, name, "ENUM", val, r);
    1204           4 : }
    1205             : 
    1206       16168 : static enum ndr_err_code ndr_push_spoolss_DeviceModeDuplex(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum spoolss_DeviceModeDuplex r)
    1207             : {
    1208       16168 :         NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
    1209       16168 :         return NDR_ERR_SUCCESS;
    1210             : }
    1211             : 
    1212        4678 : static enum ndr_err_code ndr_pull_spoolss_DeviceModeDuplex(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum spoolss_DeviceModeDuplex *r)
    1213             : {
    1214           4 :         uint16_t v;
    1215        4678 :         NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
    1216        4678 :         *r = v;
    1217        4678 :         return NDR_ERR_SUCCESS;
    1218             : }
    1219             : 
    1220           4 : _PUBLIC_ void ndr_print_spoolss_DeviceModeDuplex(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeDuplex r)
    1221             : {
    1222           4 :         const char *val = NULL;
    1223             : 
    1224           4 :         switch (r) {
    1225           4 :                 case DMDUP_SIMPLEX: val = "DMDUP_SIMPLEX"; break;
    1226           0 :                 case DMDUP_VERTICAL: val = "DMDUP_VERTICAL"; break;
    1227           0 :                 case DMDUP_HORIZONTAL: val = "DMDUP_HORIZONTAL"; break;
    1228             :         }
    1229           4 :         ndr_print_enum(ndr, name, "ENUM", val, r);
    1230           4 : }
    1231             : 
    1232       16168 : static enum ndr_err_code ndr_push_spoolss_DeviceModeTTOption(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum spoolss_DeviceModeTTOption r)
    1233             : {
    1234       16168 :         NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
    1235       16168 :         return NDR_ERR_SUCCESS;
    1236             : }
    1237             : 
    1238        4678 : static enum ndr_err_code ndr_pull_spoolss_DeviceModeTTOption(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum spoolss_DeviceModeTTOption *r)
    1239             : {
    1240           4 :         uint16_t v;
    1241        4678 :         NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
    1242        4678 :         *r = v;
    1243        4678 :         return NDR_ERR_SUCCESS;
    1244             : }
    1245             : 
    1246           4 : _PUBLIC_ void ndr_print_spoolss_DeviceModeTTOption(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeTTOption r)
    1247             : {
    1248           4 :         const char *val = NULL;
    1249             : 
    1250           4 :         switch (r) {
    1251           0 :                 case DMTT_BITMAP: val = "DMTT_BITMAP"; break;
    1252           0 :                 case DMTT_DOWNLOAD: val = "DMTT_DOWNLOAD"; break;
    1253           4 :                 case DMTT_SUBDEV: val = "DMTT_SUBDEV"; break;
    1254           0 :                 case DMTT_DOWNLOAD_OUTLINE: val = "DMTT_DOWNLOAD_OUTLINE"; break;
    1255             :         }
    1256           4 :         ndr_print_enum(ndr, name, "ENUM", val, r);
    1257           4 : }
    1258             : 
    1259       16168 : static enum ndr_err_code ndr_push_spoolss_DeviceModeCollate(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum spoolss_DeviceModeCollate r)
    1260             : {
    1261       16168 :         NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
    1262       16168 :         return NDR_ERR_SUCCESS;
    1263             : }
    1264             : 
    1265        4678 : static enum ndr_err_code ndr_pull_spoolss_DeviceModeCollate(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum spoolss_DeviceModeCollate *r)
    1266             : {
    1267           4 :         uint16_t v;
    1268        4678 :         NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
    1269        4678 :         *r = v;
    1270        4678 :         return NDR_ERR_SUCCESS;
    1271             : }
    1272             : 
    1273           4 : _PUBLIC_ void ndr_print_spoolss_DeviceModeCollate(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeCollate r)
    1274             : {
    1275           4 :         const char *val = NULL;
    1276             : 
    1277           4 :         switch (r) {
    1278           0 :                 case DMCOLLATE_FALSE: val = "DMCOLLATE_FALSE"; break;
    1279           4 :                 case DMCOLLATE_TRUE: val = "DMCOLLATE_TRUE"; break;
    1280             :         }
    1281           4 :         ndr_print_enum(ndr, name, "ENUM", val, r);
    1282           4 : }
    1283             : 
    1284       16168 : static enum ndr_err_code ndr_push_spoolss_DeviceModeNUp(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum spoolss_DeviceModeNUp r)
    1285             : {
    1286       16168 :         NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
    1287       16168 :         return NDR_ERR_SUCCESS;
    1288             : }
    1289             : 
    1290        4678 : static enum ndr_err_code ndr_pull_spoolss_DeviceModeNUp(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum spoolss_DeviceModeNUp *r)
    1291             : {
    1292           4 :         uint32_t v;
    1293        4678 :         NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
    1294        4678 :         *r = v;
    1295        4678 :         return NDR_ERR_SUCCESS;
    1296             : }
    1297             : 
    1298           4 : _PUBLIC_ void ndr_print_spoolss_DeviceModeNUp(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeNUp r)
    1299             : {
    1300           4 :         const char *val = NULL;
    1301             : 
    1302           4 :         switch (r) {
    1303           4 :                 case DMNUP_SYSTEM: val = "DMNUP_SYSTEM"; break;
    1304           0 :                 case DMNUP_ONEUP: val = "DMNUP_ONEUP"; break;
    1305             :         }
    1306           4 :         ndr_print_enum(ndr, name, "ENUM", val, r);
    1307           4 : }
    1308             : 
    1309       16168 : static enum ndr_err_code ndr_push_spoolss_DeviceModeICMMethod(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum spoolss_DeviceModeICMMethod r)
    1310             : {
    1311       16168 :         NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
    1312       16168 :         return NDR_ERR_SUCCESS;
    1313             : }
    1314             : 
    1315        4678 : static enum ndr_err_code ndr_pull_spoolss_DeviceModeICMMethod(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum spoolss_DeviceModeICMMethod *r)
    1316             : {
    1317           4 :         uint32_t v;
    1318        4678 :         NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
    1319        4678 :         *r = v;
    1320        4678 :         return NDR_ERR_SUCCESS;
    1321             : }
    1322             : 
    1323           4 : _PUBLIC_ void ndr_print_spoolss_DeviceModeICMMethod(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeICMMethod r)
    1324             : {
    1325           4 :         const char *val = NULL;
    1326             : 
    1327           4 :         switch (r) {
    1328           4 :                 case DMICMMETHOD_NONE: val = "DMICMMETHOD_NONE"; break;
    1329           0 :                 case DMICMMETHOD_SYSTEM: val = "DMICMMETHOD_SYSTEM"; break;
    1330           0 :                 case DMICMMETHOD_DRIVER: val = "DMICMMETHOD_DRIVER"; break;
    1331           0 :                 case DMICMMETHOD_DEVICE: val = "DMICMMETHOD_DEVICE"; break;
    1332             :         }
    1333           4 :         ndr_print_enum(ndr, name, "ENUM", val, r);
    1334           4 : }
    1335             : 
    1336       16168 : static enum ndr_err_code ndr_push_spoolss_DeviceModeICMIntent(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum spoolss_DeviceModeICMIntent r)
    1337             : {
    1338       16168 :         NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
    1339       16168 :         return NDR_ERR_SUCCESS;
    1340             : }
    1341             : 
    1342        4678 : static enum ndr_err_code ndr_pull_spoolss_DeviceModeICMIntent(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum spoolss_DeviceModeICMIntent *r)
    1343             : {
    1344           4 :         uint32_t v;
    1345        4678 :         NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
    1346        4678 :         *r = v;
    1347        4678 :         return NDR_ERR_SUCCESS;
    1348             : }
    1349             : 
    1350           4 : _PUBLIC_ void ndr_print_spoolss_DeviceModeICMIntent(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeICMIntent r)
    1351             : {
    1352           4 :         const char *val = NULL;
    1353             : 
    1354           4 :         switch (r) {
    1355           0 :                 case DMICM_SATURATE: val = "DMICM_SATURATE"; break;
    1356           4 :                 case DMICM_CONTRAST: val = "DMICM_CONTRAST"; break;
    1357           0 :                 case DMICM_COLORIMETRIC: val = "DMICM_COLORIMETRIC"; break;
    1358           0 :                 case DMICM_ABS_COLORIMETRIC: val = "DMICM_ABS_COLORIMETRIC"; break;
    1359             :         }
    1360           4 :         ndr_print_enum(ndr, name, "ENUM", val, r);
    1361           4 : }
    1362             : 
    1363       16168 : static enum ndr_err_code ndr_push_spoolss_DeviceModeMediaType(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum spoolss_DeviceModeMediaType r)
    1364             : {
    1365       16168 :         NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
    1366       16168 :         return NDR_ERR_SUCCESS;
    1367             : }
    1368             : 
    1369        4678 : static enum ndr_err_code ndr_pull_spoolss_DeviceModeMediaType(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum spoolss_DeviceModeMediaType *r)
    1370             : {
    1371           4 :         uint32_t v;
    1372        4678 :         NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
    1373        4678 :         *r = v;
    1374        4678 :         return NDR_ERR_SUCCESS;
    1375             : }
    1376             : 
    1377           4 : _PUBLIC_ void ndr_print_spoolss_DeviceModeMediaType(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeMediaType r)
    1378             : {
    1379           4 :         const char *val = NULL;
    1380             : 
    1381           4 :         switch (r) {
    1382           0 :                 case DMMEDIA_STANDARD: val = "DMMEDIA_STANDARD"; break;
    1383           0 :                 case DMMEDIA_TRANSPARENCY: val = "DMMEDIA_TRANSPARENCY"; break;
    1384           0 :                 case DMMEDIA_GLOSSY: val = "DMMEDIA_GLOSSY"; break;
    1385             :         }
    1386           4 :         ndr_print_enum(ndr, name, "ENUM", val, r);
    1387           4 : }
    1388             : 
    1389       16168 : static enum ndr_err_code ndr_push_spoolss_DeviceModeDitherType(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum spoolss_DeviceModeDitherType r)
    1390             : {
    1391       16168 :         NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
    1392       16168 :         return NDR_ERR_SUCCESS;
    1393             : }
    1394             : 
    1395        4678 : static enum ndr_err_code ndr_pull_spoolss_DeviceModeDitherType(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum spoolss_DeviceModeDitherType *r)
    1396             : {
    1397           4 :         uint32_t v;
    1398        4678 :         NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
    1399        4678 :         *r = v;
    1400        4678 :         return NDR_ERR_SUCCESS;
    1401             : }
    1402             : 
    1403           4 : _PUBLIC_ void ndr_print_spoolss_DeviceModeDitherType(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeDitherType r)
    1404             : {
    1405           4 :         const char *val = NULL;
    1406             : 
    1407           4 :         switch (r) {
    1408           0 :                 case DMDITHER_NONE: val = "DMDITHER_NONE"; break;
    1409           0 :                 case DMDITHER_COARSE: val = "DMDITHER_COARSE"; break;
    1410           0 :                 case DMDITHER_FINE: val = "DMDITHER_FINE"; break;
    1411           0 :                 case DMDITHER_LINEART: val = "DMDITHER_LINEART"; break;
    1412           0 :                 case DMDITHER_ERRORDIFFUSION: val = "DMDITHER_ERRORDIFFUSION"; break;
    1413           0 :                 case DMDITHER_RESERVED6: val = "DMDITHER_RESERVED6"; break;
    1414           0 :                 case DMDITHER_RESERVED7: val = "DMDITHER_RESERVED7"; break;
    1415           0 :                 case DMDITHER_RESERVED8: val = "DMDITHER_RESERVED8"; break;
    1416           0 :                 case DMDITHER_RESERVED9: val = "DMDITHER_RESERVED9"; break;
    1417           0 :                 case DMDITHER_GRAYSCALE: val = "DMDITHER_GRAYSCALE"; break;
    1418             :         }
    1419           4 :         ndr_print_enum(ndr, name, "ENUM", val, r);
    1420           4 : }
    1421             : 
    1422       16168 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DeviceMode(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_DeviceMode *r)
    1423             : {
    1424       16168 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    1425       16168 :         if (ndr_flags & NDR_SCALARS) {
    1426       16168 :                 NDR_CHECK(ndr_push_align(ndr, 4));
    1427       16168 :                 NDR_CHECK(ndr_push_charset_to_null(ndr, NDR_SCALARS, r->devicename, MAXDEVICENAME, sizeof(uint16_t), CH_UTF16));
    1428       16168 :                 NDR_CHECK(ndr_push_spoolss_DeviceModeSpecVersion(ndr, NDR_SCALARS, r->specversion));
    1429       16168 :                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->driverversion));
    1430       16168 :                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->size));
    1431       16168 :                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->driverextra_data.length));
    1432       16168 :                 NDR_CHECK(ndr_push_spoolss_DeviceModeFields(ndr, NDR_SCALARS, r->fields));
    1433       16168 :                 NDR_CHECK(ndr_push_spoolss_DeviceModeOrientation(ndr, NDR_SCALARS, r->orientation));
    1434       16168 :                 NDR_CHECK(ndr_push_spoolss_DeviceModePaperSize(ndr, NDR_SCALARS, r->papersize));
    1435       16168 :                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->paperlength));
    1436       16168 :                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->paperwidth));
    1437       16168 :                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->scale));
    1438       16168 :                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->copies));
    1439       16168 :                 NDR_CHECK(ndr_push_spoolss_DeviceModeDefaultSource(ndr, NDR_SCALARS, r->defaultsource));
    1440       16168 :                 NDR_CHECK(ndr_push_spoolss_DeviceModePrintQuality(ndr, NDR_SCALARS, r->printquality));
    1441       16168 :                 NDR_CHECK(ndr_push_spoolss_DeviceModeColor(ndr, NDR_SCALARS, r->color));
    1442       16168 :                 NDR_CHECK(ndr_push_spoolss_DeviceModeDuplex(ndr, NDR_SCALARS, r->duplex));
    1443       16168 :                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->yresolution));
    1444       16168 :                 NDR_CHECK(ndr_push_spoolss_DeviceModeTTOption(ndr, NDR_SCALARS, r->ttoption));
    1445       16168 :                 NDR_CHECK(ndr_push_spoolss_DeviceModeCollate(ndr, NDR_SCALARS, r->collate));
    1446       16168 :                 NDR_CHECK(ndr_push_charset_to_null(ndr, NDR_SCALARS, r->formname, MAXDEVICENAME, sizeof(uint16_t), CH_UTF16));
    1447       16168 :                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->logpixels));
    1448       16168 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bitsperpel));
    1449       16168 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pelswidth));
    1450       16168 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pelsheight));
    1451       16168 :                 NDR_CHECK(ndr_push_spoolss_DeviceModeNUp(ndr, NDR_SCALARS, r->displayflags));
    1452       16168 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->displayfrequency));
    1453       16168 :                 NDR_CHECK(ndr_push_spoolss_DeviceModeICMMethod(ndr, NDR_SCALARS, r->icmmethod));
    1454       16168 :                 NDR_CHECK(ndr_push_spoolss_DeviceModeICMIntent(ndr, NDR_SCALARS, r->icmintent));
    1455       16168 :                 NDR_CHECK(ndr_push_spoolss_DeviceModeMediaType(ndr, NDR_SCALARS, r->mediatype));
    1456       16168 :                 NDR_CHECK(ndr_push_spoolss_DeviceModeDitherType(ndr, NDR_SCALARS, r->dithertype));
    1457       16168 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved1));
    1458       16168 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved2));
    1459       16168 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->panningwidth));
    1460       16168 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->panningheight));
    1461             :                 {
    1462       16168 :                         libndr_flags _flags_save_DATA_BLOB = ndr->flags;
    1463       16168 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
    1464             :                         {
    1465           0 :                                 struct ndr_push *_ndr_driverextra_data;
    1466       16168 :                                 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_driverextra_data, 0, r->driverextra_data.length));
    1467       16168 :                                 NDR_CHECK(ndr_push_DATA_BLOB(_ndr_driverextra_data, NDR_SCALARS, r->driverextra_data));
    1468       16168 :                                 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_driverextra_data, 0, r->driverextra_data.length));
    1469             :                         }
    1470       16168 :                         ndr->flags = _flags_save_DATA_BLOB;
    1471             :                 }
    1472       16168 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
    1473             :         }
    1474       16168 :         if (ndr_flags & NDR_BUFFERS) {
    1475           0 :         }
    1476       16168 :         return NDR_ERR_SUCCESS;
    1477             : }
    1478             : 
    1479        4678 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DeviceMode(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_DeviceMode *r)
    1480             : {
    1481        4678 :         uint32_t size_devicename_0 = 0;
    1482        4678 :         uint32_t size_formname_0 = 0;
    1483        4678 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    1484        4678 :         if (ndr_flags & NDR_SCALARS) {
    1485        4678 :                 NDR_CHECK(ndr_pull_align(ndr, 4));
    1486        4678 :                 size_devicename_0 = MAXDEVICENAME;
    1487        4678 :                 NDR_CHECK(ndr_pull_charset_to_null(ndr, NDR_SCALARS, &r->devicename, size_devicename_0, sizeof(uint16_t), CH_UTF16));
    1488        4682 :                 NDR_CHECK(ndr_pull_spoolss_DeviceModeSpecVersion(ndr, NDR_SCALARS, &r->specversion));
    1489        4678 :                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->driverversion));
    1490        4678 :                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
    1491        4678 :                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->__driverextra_length));
    1492        4682 :                 NDR_CHECK(ndr_pull_spoolss_DeviceModeFields(ndr, NDR_SCALARS, &r->fields));
    1493        4682 :                 NDR_CHECK(ndr_pull_spoolss_DeviceModeOrientation(ndr, NDR_SCALARS, &r->orientation));
    1494        4682 :                 NDR_CHECK(ndr_pull_spoolss_DeviceModePaperSize(ndr, NDR_SCALARS, &r->papersize));
    1495        4678 :                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->paperlength));
    1496        4678 :                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->paperwidth));
    1497        4678 :                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->scale));
    1498        4678 :                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->copies));
    1499        4682 :                 NDR_CHECK(ndr_pull_spoolss_DeviceModeDefaultSource(ndr, NDR_SCALARS, &r->defaultsource));
    1500        4682 :                 NDR_CHECK(ndr_pull_spoolss_DeviceModePrintQuality(ndr, NDR_SCALARS, &r->printquality));
    1501        4682 :                 NDR_CHECK(ndr_pull_spoolss_DeviceModeColor(ndr, NDR_SCALARS, &r->color));
    1502        4682 :                 NDR_CHECK(ndr_pull_spoolss_DeviceModeDuplex(ndr, NDR_SCALARS, &r->duplex));
    1503        4678 :                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->yresolution));
    1504        4682 :                 NDR_CHECK(ndr_pull_spoolss_DeviceModeTTOption(ndr, NDR_SCALARS, &r->ttoption));
    1505        4682 :                 NDR_CHECK(ndr_pull_spoolss_DeviceModeCollate(ndr, NDR_SCALARS, &r->collate));
    1506        4678 :                 size_formname_0 = MAXDEVICENAME;
    1507        4678 :                 NDR_CHECK(ndr_pull_charset_to_null(ndr, NDR_SCALARS, &r->formname, size_formname_0, sizeof(uint16_t), CH_UTF16));
    1508        4678 :                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logpixels));
    1509        4678 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bitsperpel));
    1510        4678 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pelswidth));
    1511        4678 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pelsheight));
    1512        4682 :                 NDR_CHECK(ndr_pull_spoolss_DeviceModeNUp(ndr, NDR_SCALARS, &r->displayflags));
    1513        4678 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->displayfrequency));
    1514        4682 :                 NDR_CHECK(ndr_pull_spoolss_DeviceModeICMMethod(ndr, NDR_SCALARS, &r->icmmethod));
    1515        4682 :                 NDR_CHECK(ndr_pull_spoolss_DeviceModeICMIntent(ndr, NDR_SCALARS, &r->icmintent));
    1516        4682 :                 NDR_CHECK(ndr_pull_spoolss_DeviceModeMediaType(ndr, NDR_SCALARS, &r->mediatype));
    1517        4682 :                 NDR_CHECK(ndr_pull_spoolss_DeviceModeDitherType(ndr, NDR_SCALARS, &r->dithertype));
    1518        4678 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved1));
    1519        4678 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
    1520        4678 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->panningwidth));
    1521        4678 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->panningheight));
    1522             :                 {
    1523        4678 :                         libndr_flags _flags_save_DATA_BLOB = ndr->flags;
    1524        4678 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
    1525             :                         {
    1526           4 :                                 struct ndr_pull *_ndr_driverextra_data;
    1527        4678 :                                 ssize_t sub_size = r->__driverextra_length;
    1528        4678 :                                 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_driverextra_data, 0, sub_size));
    1529        4678 :                                 NDR_CHECK(ndr_pull_DATA_BLOB(_ndr_driverextra_data, NDR_SCALARS, &r->driverextra_data));
    1530        4678 :                                 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_driverextra_data, 0, sub_size));
    1531             :                         }
    1532        4678 :                         ndr->flags = _flags_save_DATA_BLOB;
    1533             :                 }
    1534        4678 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
    1535             :         }
    1536        4678 :         if (ndr_flags & NDR_BUFFERS) {
    1537           4 :         }
    1538        4678 :         return NDR_ERR_SUCCESS;
    1539             : }
    1540             : 
    1541           0 : static void ndr_print_flags_spoolss_DeviceMode(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_DeviceMode *r)
    1542             : {
    1543           0 :         ndr_print_spoolss_DeviceMode(ndr, name, r);
    1544           0 : }
    1545             : 
    1546           4 : _PUBLIC_ void ndr_print_spoolss_DeviceMode(struct ndr_print *ndr, const char *name, const struct spoolss_DeviceMode *r)
    1547             : {
    1548           4 :         ndr_print_struct(ndr, name, "spoolss_DeviceMode");
    1549           4 :         if (r == NULL) { ndr_print_null(ndr); return; }
    1550           4 :         ndr->depth++;
    1551           4 :         ndr_print_string(ndr, "devicename", r->devicename);
    1552           4 :         ndr_print_spoolss_DeviceModeSpecVersion(ndr, "specversion", r->specversion);
    1553           4 :         ndr_print_uint16(ndr, "driverversion", r->driverversion);
    1554           4 :         ndr_print_uint16(ndr, "size", r->size);
    1555           4 :         ndr_print_uint16(ndr, "__driverextra_length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->driverextra_data.length:r->__driverextra_length);
    1556           4 :         ndr_print_spoolss_DeviceModeFields(ndr, "fields", r->fields);
    1557           4 :         ndr_print_spoolss_DeviceModeOrientation(ndr, "orientation", r->orientation);
    1558           4 :         ndr_print_spoolss_DeviceModePaperSize(ndr, "papersize", r->papersize);
    1559           4 :         ndr_print_uint16(ndr, "paperlength", r->paperlength);
    1560           4 :         ndr_print_uint16(ndr, "paperwidth", r->paperwidth);
    1561           4 :         ndr_print_uint16(ndr, "scale", r->scale);
    1562           4 :         ndr_print_uint16(ndr, "copies", r->copies);
    1563           4 :         ndr_print_spoolss_DeviceModeDefaultSource(ndr, "defaultsource", r->defaultsource);
    1564           4 :         ndr_print_spoolss_DeviceModePrintQuality(ndr, "printquality", r->printquality);
    1565           4 :         ndr_print_spoolss_DeviceModeColor(ndr, "color", r->color);
    1566           4 :         ndr_print_spoolss_DeviceModeDuplex(ndr, "duplex", r->duplex);
    1567           4 :         ndr_print_uint16(ndr, "yresolution", r->yresolution);
    1568           4 :         ndr_print_spoolss_DeviceModeTTOption(ndr, "ttoption", r->ttoption);
    1569           4 :         ndr_print_spoolss_DeviceModeCollate(ndr, "collate", r->collate);
    1570           4 :         ndr_print_string(ndr, "formname", r->formname);
    1571           4 :         ndr_print_uint16(ndr, "logpixels", r->logpixels);
    1572           4 :         ndr_print_uint32(ndr, "bitsperpel", r->bitsperpel);
    1573           4 :         ndr_print_uint32(ndr, "pelswidth", r->pelswidth);
    1574           4 :         ndr_print_uint32(ndr, "pelsheight", r->pelsheight);
    1575           4 :         ndr_print_spoolss_DeviceModeNUp(ndr, "displayflags", r->displayflags);
    1576           4 :         ndr_print_uint32(ndr, "displayfrequency", r->displayfrequency);
    1577           4 :         ndr_print_spoolss_DeviceModeICMMethod(ndr, "icmmethod", r->icmmethod);
    1578           4 :         ndr_print_spoolss_DeviceModeICMIntent(ndr, "icmintent", r->icmintent);
    1579           4 :         ndr_print_spoolss_DeviceModeMediaType(ndr, "mediatype", r->mediatype);
    1580           4 :         ndr_print_spoolss_DeviceModeDitherType(ndr, "dithertype", r->dithertype);
    1581           4 :         ndr_print_uint32(ndr, "reserved1", r->reserved1);
    1582           4 :         ndr_print_uint32(ndr, "reserved2", r->reserved2);
    1583           4 :         ndr_print_uint32(ndr, "panningwidth", r->panningwidth);
    1584           4 :         ndr_print_uint32(ndr, "panningheight", r->panningheight);
    1585             :         {
    1586           4 :                 libndr_flags _flags_save_DATA_BLOB = ndr->flags;
    1587           4 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
    1588           4 :                 ndr_print_DATA_BLOB(ndr, "driverextra_data", r->driverextra_data);
    1589           4 :                 ndr->flags = _flags_save_DATA_BLOB;
    1590             :         }
    1591           4 :         ndr->depth--;
    1592             : }
    1593             : 
    1594       11240 : _PUBLIC_ size_t ndr_size_spoolss_DeviceMode(const struct spoolss_DeviceMode *r, libndr_flags flags)
    1595             : {
    1596       11240 :         return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DeviceMode);
    1597             : }
    1598             : 
    1599         972 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_EnumPrinterFlags(struct ndr_push *ndr, ndr_flags_type ndr_flags, uint32_t r)
    1600             : {
    1601         972 :         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
    1602         972 :         return NDR_ERR_SUCCESS;
    1603             : }
    1604             : 
    1605         444 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_EnumPrinterFlags(struct ndr_pull *ndr, ndr_flags_type ndr_flags, uint32_t *r)
    1606             : {
    1607           0 :         uint32_t v;
    1608         444 :         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
    1609         444 :         *r = v;
    1610         444 :         return NDR_ERR_SUCCESS;
    1611             : }
    1612             : 
    1613           0 : _PUBLIC_ void ndr_print_spoolss_EnumPrinterFlags(struct ndr_print *ndr, const char *name, uint32_t r)
    1614             : {
    1615           0 :         ndr_print_uint32(ndr, name, r);
    1616           0 :         ndr->depth++;
    1617           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_DEFAULT", PRINTER_ENUM_DEFAULT, r);
    1618           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_LOCAL", PRINTER_ENUM_LOCAL, r);
    1619           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_CONNECTIONS", PRINTER_ENUM_CONNECTIONS, r);
    1620           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_FAVORITE", PRINTER_ENUM_FAVORITE, r);
    1621           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_NAME", PRINTER_ENUM_NAME, r);
    1622           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_REMOTE", PRINTER_ENUM_REMOTE, r);
    1623           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_SHARED", PRINTER_ENUM_SHARED, r);
    1624           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_NETWORK", PRINTER_ENUM_NETWORK, r);
    1625           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_EXPAND", PRINTER_ENUM_EXPAND, r);
    1626           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_CONTAINER", PRINTER_ENUM_CONTAINER, r);
    1627           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON1", PRINTER_ENUM_ICON1, r);
    1628           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON2", PRINTER_ENUM_ICON2, r);
    1629           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON3", PRINTER_ENUM_ICON3, r);
    1630           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON4", PRINTER_ENUM_ICON4, r);
    1631           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON5", PRINTER_ENUM_ICON5, r);
    1632           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON6", PRINTER_ENUM_ICON6, r);
    1633           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON7", PRINTER_ENUM_ICON7, r);
    1634           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON8", PRINTER_ENUM_ICON8, r);
    1635           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_HIDE", PRINTER_ENUM_HIDE, r);
    1636           0 :         ndr->depth--;
    1637           0 : }
    1638             : 
    1639        2568 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterAttributes(struct ndr_push *ndr, ndr_flags_type ndr_flags, uint32_t r)
    1640             : {
    1641        2568 :         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
    1642        2568 :         return NDR_ERR_SUCCESS;
    1643             : }
    1644             : 
    1645         964 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterAttributes(struct ndr_pull *ndr, ndr_flags_type ndr_flags, uint32_t *r)
    1646             : {
    1647           4 :         uint32_t v;
    1648         964 :         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
    1649         964 :         *r = v;
    1650         964 :         return NDR_ERR_SUCCESS;
    1651             : }
    1652             : 
    1653           4 : _PUBLIC_ void ndr_print_spoolss_PrinterAttributes(struct ndr_print *ndr, const char *name, uint32_t r)
    1654             : {
    1655           4 :         ndr_print_uint32(ndr, name, r);
    1656           4 :         ndr->depth++;
    1657           4 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_QUEUED", PRINTER_ATTRIBUTE_QUEUED, r);
    1658           4 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DIRECT", PRINTER_ATTRIBUTE_DIRECT, r);
    1659           4 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DEFAULT", PRINTER_ATTRIBUTE_DEFAULT, r);
    1660           4 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_SHARED", PRINTER_ATTRIBUTE_SHARED, r);
    1661           4 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_NETWORK", PRINTER_ATTRIBUTE_NETWORK, r);
    1662           4 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_HIDDEN", PRINTER_ATTRIBUTE_HIDDEN, r);
    1663           4 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_LOCAL", PRINTER_ATTRIBUTE_LOCAL, r);
    1664           4 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_ENABLE_DEVQ", PRINTER_ATTRIBUTE_ENABLE_DEVQ, r);
    1665           4 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS", PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS, r);
    1666           4 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST", PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST, r);
    1667           4 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_WORK_OFFLINE", PRINTER_ATTRIBUTE_WORK_OFFLINE, r);
    1668           4 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_ENABLE_BIDI", PRINTER_ATTRIBUTE_ENABLE_BIDI, r);
    1669           4 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_RAW_ONLY", PRINTER_ATTRIBUTE_RAW_ONLY, r);
    1670           4 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_PUBLISHED", PRINTER_ATTRIBUTE_PUBLISHED, r);
    1671           4 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_FAX", PRINTER_ATTRIBUTE_FAX, r);
    1672           4 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_TS", PRINTER_ATTRIBUTE_TS, r);
    1673           4 :         ndr->depth--;
    1674           4 : }
    1675             : 
    1676        1584 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo1(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_PrinterInfo1 *r)
    1677             : {
    1678        1584 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    1679        1584 :         if (ndr_flags & NDR_SCALARS) {
    1680         792 :                 NDR_CHECK(ndr_push_align(ndr, 5));
    1681         792 :                 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, r->flags));
    1682             :                 {
    1683         792 :                         libndr_flags _flags_save_string = ndr->flags;
    1684         792 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    1685         792 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->description));
    1686         792 :                         ndr->flags = _flags_save_string;
    1687             :                 }
    1688             :                 {
    1689         792 :                         libndr_flags _flags_save_string = ndr->flags;
    1690         792 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    1691         792 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->name));
    1692         792 :                         ndr->flags = _flags_save_string;
    1693             :                 }
    1694             :                 {
    1695         792 :                         libndr_flags _flags_save_string = ndr->flags;
    1696         792 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    1697         792 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->comment));
    1698         792 :                         ndr->flags = _flags_save_string;
    1699             :                 }
    1700         792 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
    1701             :         }
    1702        1584 :         if (ndr_flags & NDR_BUFFERS) {
    1703             :                 {
    1704         792 :                         libndr_flags _flags_save_string = ndr->flags;
    1705         792 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    1706         792 :                         if (r->description) {
    1707         792 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->description));
    1708         792 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->description));
    1709         792 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->description));
    1710             :                         }
    1711         792 :                         ndr->flags = _flags_save_string;
    1712             :                 }
    1713             :                 {
    1714         792 :                         libndr_flags _flags_save_string = ndr->flags;
    1715         792 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    1716         792 :                         if (r->name) {
    1717         792 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->name));
    1718         792 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->name));
    1719         792 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->name));
    1720             :                         }
    1721         792 :                         ndr->flags = _flags_save_string;
    1722             :                 }
    1723             :                 {
    1724         792 :                         libndr_flags _flags_save_string = ndr->flags;
    1725         792 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    1726         792 :                         if (r->comment) {
    1727         792 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->comment));
    1728         792 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->comment));
    1729         792 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->comment));
    1730             :                         }
    1731         792 :                         ndr->flags = _flags_save_string;
    1732             :                 }
    1733             :         }
    1734        1584 :         return NDR_ERR_SUCCESS;
    1735             : }
    1736             : 
    1737         528 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo1(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_PrinterInfo1 *r)
    1738             : {
    1739           0 :         uint32_t _ptr_description;
    1740         528 :         TALLOC_CTX *_mem_save_description_0 = NULL;
    1741           0 :         uint32_t _ptr_name;
    1742         528 :         TALLOC_CTX *_mem_save_name_0 = NULL;
    1743           0 :         uint32_t _ptr_comment;
    1744         528 :         TALLOC_CTX *_mem_save_comment_0 = NULL;
    1745         528 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    1746         528 :         if (ndr_flags & NDR_SCALARS) {
    1747         264 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
    1748         264 :                 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, &r->flags));
    1749             :                 {
    1750         264 :                         libndr_flags _flags_save_string = ndr->flags;
    1751         264 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    1752         264 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
    1753         264 :                         if (_ptr_description) {
    1754         264 :                                 NDR_PULL_ALLOC(ndr, r->description);
    1755         264 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->description, _ptr_description));
    1756             :                         } else {
    1757           0 :                                 r->description = NULL;
    1758             :                         }
    1759         264 :                         ndr->flags = _flags_save_string;
    1760             :                 }
    1761             :                 {
    1762         264 :                         libndr_flags _flags_save_string = ndr->flags;
    1763         264 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    1764         264 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
    1765         264 :                         if (_ptr_name) {
    1766         264 :                                 NDR_PULL_ALLOC(ndr, r->name);
    1767         264 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->name, _ptr_name));
    1768             :                         } else {
    1769           0 :                                 r->name = NULL;
    1770             :                         }
    1771         264 :                         ndr->flags = _flags_save_string;
    1772             :                 }
    1773             :                 {
    1774         264 :                         libndr_flags _flags_save_string = ndr->flags;
    1775         264 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    1776         264 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
    1777         264 :                         if (_ptr_comment) {
    1778         264 :                                 NDR_PULL_ALLOC(ndr, r->comment);
    1779         264 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->comment, _ptr_comment));
    1780             :                         } else {
    1781           0 :                                 r->comment = NULL;
    1782             :                         }
    1783         264 :                         ndr->flags = _flags_save_string;
    1784             :                 }
    1785         264 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
    1786             :         }
    1787         528 :         if (ndr_flags & NDR_BUFFERS) {
    1788             :                 {
    1789         264 :                         libndr_flags _flags_save_string = ndr->flags;
    1790         264 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    1791         264 :                         if (r->description) {
    1792           0 :                                 uint32_t _relative_save_offset;
    1793         264 :                                 _relative_save_offset = ndr->offset;
    1794         264 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->description));
    1795         264 :                                 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
    1796         264 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
    1797         264 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->description));
    1798         264 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
    1799         264 :                                 if (ndr->offset > ndr->relative_highest_offset) {
    1800          80 :                                         ndr->relative_highest_offset = ndr->offset;
    1801             :                                 }
    1802         264 :                                 ndr->offset = _relative_save_offset;
    1803             :                         }
    1804         264 :                         ndr->flags = _flags_save_string;
    1805             :                 }
    1806             :                 {
    1807         264 :                         libndr_flags _flags_save_string = ndr->flags;
    1808         264 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    1809         264 :                         if (r->name) {
    1810           0 :                                 uint32_t _relative_save_offset;
    1811         264 :                                 _relative_save_offset = ndr->offset;
    1812         264 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->name));
    1813         264 :                                 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
    1814         264 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
    1815         264 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->name));
    1816         264 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
    1817         264 :                                 if (ndr->offset > ndr->relative_highest_offset) {
    1818           0 :                                         ndr->relative_highest_offset = ndr->offset;
    1819             :                                 }
    1820         264 :                                 ndr->offset = _relative_save_offset;
    1821             :                         }
    1822         264 :                         ndr->flags = _flags_save_string;
    1823             :                 }
    1824             :                 {
    1825         264 :                         libndr_flags _flags_save_string = ndr->flags;
    1826         264 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    1827         264 :                         if (r->comment) {
    1828           0 :                                 uint32_t _relative_save_offset;
    1829         264 :                                 _relative_save_offset = ndr->offset;
    1830         264 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->comment));
    1831         264 :                                 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
    1832         264 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
    1833         264 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->comment));
    1834         264 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
    1835         264 :                                 if (ndr->offset > ndr->relative_highest_offset) {
    1836           0 :                                         ndr->relative_highest_offset = ndr->offset;
    1837             :                                 }
    1838         264 :                                 ndr->offset = _relative_save_offset;
    1839             :                         }
    1840         264 :                         ndr->flags = _flags_save_string;
    1841             :                 }
    1842             :         }
    1843         528 :         return NDR_ERR_SUCCESS;
    1844             : }
    1845             : 
    1846           0 : static void ndr_print_flags_spoolss_PrinterInfo1(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_PrinterInfo1 *r)
    1847             : {
    1848           0 :         ndr_print_spoolss_PrinterInfo1(ndr, name, r);
    1849           0 : }
    1850             : 
    1851           0 : _PUBLIC_ void ndr_print_spoolss_PrinterInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo1 *r)
    1852             : {
    1853           0 :         ndr_print_struct(ndr, name, "spoolss_PrinterInfo1");
    1854           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
    1855           0 :         ndr->depth++;
    1856           0 :         ndr_print_spoolss_EnumPrinterFlags(ndr, "flags", r->flags);
    1857             :         {
    1858           0 :                 libndr_flags _flags_save_string = ndr->flags;
    1859           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    1860           0 :                 ndr_print_ptr(ndr, "description", r->description);
    1861           0 :                 ndr->depth++;
    1862           0 :                 if (r->description) {
    1863           0 :                         ndr_print_string(ndr, "description", r->description);
    1864             :                 }
    1865           0 :                 ndr->depth--;
    1866           0 :                 ndr->flags = _flags_save_string;
    1867             :         }
    1868             :         {
    1869           0 :                 libndr_flags _flags_save_string = ndr->flags;
    1870           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    1871           0 :                 ndr_print_ptr(ndr, "name", r->name);
    1872           0 :                 ndr->depth++;
    1873           0 :                 if (r->name) {
    1874           0 :                         ndr_print_string(ndr, "name", r->name);
    1875             :                 }
    1876           0 :                 ndr->depth--;
    1877           0 :                 ndr->flags = _flags_save_string;
    1878             :         }
    1879             :         {
    1880           0 :                 libndr_flags _flags_save_string = ndr->flags;
    1881           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    1882           0 :                 ndr_print_ptr(ndr, "comment", r->comment);
    1883           0 :                 ndr->depth++;
    1884           0 :                 if (r->comment) {
    1885           0 :                         ndr_print_string(ndr, "comment", r->comment);
    1886             :                 }
    1887           0 :                 ndr->depth--;
    1888           0 :                 ndr->flags = _flags_save_string;
    1889             :         }
    1890           0 :         ndr->depth--;
    1891             : }
    1892             : 
    1893           0 : _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo1(const struct spoolss_PrinterInfo1 *r, libndr_flags flags)
    1894             : {
    1895           0 :         return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo1);
    1896             : }
    1897             : 
    1898        1224 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo2(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_PrinterInfo2 *r)
    1899             : {
    1900           0 :         uint32_t _ptr_servername;
    1901        1224 :         TALLOC_CTX *_mem_save_servername_0 = NULL;
    1902           0 :         uint32_t _ptr_printername;
    1903        1224 :         TALLOC_CTX *_mem_save_printername_0 = NULL;
    1904           0 :         uint32_t _ptr_sharename;
    1905        1224 :         TALLOC_CTX *_mem_save_sharename_0 = NULL;
    1906           0 :         uint32_t _ptr_portname;
    1907        1224 :         TALLOC_CTX *_mem_save_portname_0 = NULL;
    1908           0 :         uint32_t _ptr_drivername;
    1909        1224 :         TALLOC_CTX *_mem_save_drivername_0 = NULL;
    1910           0 :         uint32_t _ptr_comment;
    1911        1224 :         TALLOC_CTX *_mem_save_comment_0 = NULL;
    1912           0 :         uint32_t _ptr_location;
    1913        1224 :         TALLOC_CTX *_mem_save_location_0 = NULL;
    1914           0 :         uint32_t _ptr_devmode;
    1915        1224 :         TALLOC_CTX *_mem_save_devmode_0 = NULL;
    1916           0 :         uint32_t _ptr_sepfile;
    1917        1224 :         TALLOC_CTX *_mem_save_sepfile_0 = NULL;
    1918           0 :         uint32_t _ptr_printprocessor;
    1919        1224 :         TALLOC_CTX *_mem_save_printprocessor_0 = NULL;
    1920           0 :         uint32_t _ptr_datatype;
    1921        1224 :         TALLOC_CTX *_mem_save_datatype_0 = NULL;
    1922           0 :         uint32_t _ptr_parameters;
    1923        1224 :         TALLOC_CTX *_mem_save_parameters_0 = NULL;
    1924           0 :         uint32_t _ptr_secdesc;
    1925        1224 :         TALLOC_CTX *_mem_save_secdesc_0 = NULL;
    1926        1224 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    1927        1224 :         if (ndr_flags & NDR_SCALARS) {
    1928         612 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
    1929             :                 {
    1930         612 :                         libndr_flags _flags_save_string = ndr->flags;
    1931         612 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    1932         612 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
    1933         612 :                         if (_ptr_servername) {
    1934         292 :                                 NDR_PULL_ALLOC(ndr, r->servername);
    1935         292 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->servername, _ptr_servername));
    1936             :                         } else {
    1937         320 :                                 r->servername = NULL;
    1938             :                         }
    1939         612 :                         ndr->flags = _flags_save_string;
    1940             :                 }
    1941             :                 {
    1942         612 :                         libndr_flags _flags_save_string = ndr->flags;
    1943         612 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    1944         612 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
    1945         612 :                         if (_ptr_printername) {
    1946         612 :                                 NDR_PULL_ALLOC(ndr, r->printername);
    1947         612 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
    1948             :                         } else {
    1949           0 :                                 r->printername = NULL;
    1950             :                         }
    1951         612 :                         ndr->flags = _flags_save_string;
    1952             :                 }
    1953             :                 {
    1954         612 :                         libndr_flags _flags_save_string = ndr->flags;
    1955         612 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    1956         612 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sharename));
    1957         612 :                         if (_ptr_sharename) {
    1958         612 :                                 NDR_PULL_ALLOC(ndr, r->sharename);
    1959         612 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->sharename, _ptr_sharename));
    1960             :                         } else {
    1961           0 :                                 r->sharename = NULL;
    1962             :                         }
    1963         612 :                         ndr->flags = _flags_save_string;
    1964             :                 }
    1965             :                 {
    1966         612 :                         libndr_flags _flags_save_string = ndr->flags;
    1967         612 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    1968         612 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
    1969         612 :                         if (_ptr_portname) {
    1970         612 :                                 NDR_PULL_ALLOC(ndr, r->portname);
    1971         612 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->portname, _ptr_portname));
    1972             :                         } else {
    1973           0 :                                 r->portname = NULL;
    1974             :                         }
    1975         612 :                         ndr->flags = _flags_save_string;
    1976             :                 }
    1977             :                 {
    1978         612 :                         libndr_flags _flags_save_string = ndr->flags;
    1979         612 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    1980         612 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_drivername));
    1981         612 :                         if (_ptr_drivername) {
    1982         612 :                                 NDR_PULL_ALLOC(ndr, r->drivername);
    1983         612 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->drivername, _ptr_drivername));
    1984             :                         } else {
    1985           0 :                                 r->drivername = NULL;
    1986             :                         }
    1987         612 :                         ndr->flags = _flags_save_string;
    1988             :                 }
    1989             :                 {
    1990         612 :                         libndr_flags _flags_save_string = ndr->flags;
    1991         612 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    1992         612 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
    1993         612 :                         if (_ptr_comment) {
    1994         612 :                                 NDR_PULL_ALLOC(ndr, r->comment);
    1995         612 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->comment, _ptr_comment));
    1996             :                         } else {
    1997           0 :                                 r->comment = NULL;
    1998             :                         }
    1999         612 :                         ndr->flags = _flags_save_string;
    2000             :                 }
    2001             :                 {
    2002         612 :                         libndr_flags _flags_save_string = ndr->flags;
    2003         612 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    2004         612 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_location));
    2005         612 :                         if (_ptr_location) {
    2006         612 :                                 NDR_PULL_ALLOC(ndr, r->location);
    2007         612 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->location, _ptr_location));
    2008             :                         } else {
    2009           0 :                                 r->location = NULL;
    2010             :                         }
    2011         612 :                         ndr->flags = _flags_save_string;
    2012             :                 }
    2013             :                 {
    2014         612 :                         libndr_flags _flags_save_spoolss_DeviceMode = ndr->flags;
    2015         612 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
    2016         612 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
    2017         612 :                         if (_ptr_devmode) {
    2018         572 :                                 NDR_PULL_ALLOC(ndr, r->devmode);
    2019         572 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
    2020             :                         } else {
    2021          40 :                                 r->devmode = NULL;
    2022             :                         }
    2023         612 :                         ndr->flags = _flags_save_spoolss_DeviceMode;
    2024             :                 }
    2025             :                 {
    2026         612 :                         libndr_flags _flags_save_string = ndr->flags;
    2027         612 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    2028         612 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sepfile));
    2029         612 :                         if (_ptr_sepfile) {
    2030         612 :                                 NDR_PULL_ALLOC(ndr, r->sepfile);
    2031         612 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->sepfile, _ptr_sepfile));
    2032             :                         } else {
    2033           0 :                                 r->sepfile = NULL;
    2034             :                         }
    2035         612 :                         ndr->flags = _flags_save_string;
    2036             :                 }
    2037             :                 {
    2038         612 :                         libndr_flags _flags_save_string = ndr->flags;
    2039         612 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    2040         612 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printprocessor));
    2041         612 :                         if (_ptr_printprocessor) {
    2042         612 :                                 NDR_PULL_ALLOC(ndr, r->printprocessor);
    2043         612 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printprocessor, _ptr_printprocessor));
    2044             :                         } else {
    2045           0 :                                 r->printprocessor = NULL;
    2046             :                         }
    2047         612 :                         ndr->flags = _flags_save_string;
    2048             :                 }
    2049             :                 {
    2050         612 :                         libndr_flags _flags_save_string = ndr->flags;
    2051         612 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    2052         612 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
    2053         612 :                         if (_ptr_datatype) {
    2054         612 :                                 NDR_PULL_ALLOC(ndr, r->datatype);
    2055         612 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->datatype, _ptr_datatype));
    2056             :                         } else {
    2057           0 :                                 r->datatype = NULL;
    2058             :                         }
    2059         612 :                         ndr->flags = _flags_save_string;
    2060             :                 }
    2061             :                 {
    2062         612 :                         libndr_flags _flags_save_string = ndr->flags;
    2063         612 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    2064         612 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
    2065         612 :                         if (_ptr_parameters) {
    2066         612 :                                 NDR_PULL_ALLOC(ndr, r->parameters);
    2067         612 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->parameters, _ptr_parameters));
    2068             :                         } else {
    2069           0 :                                 r->parameters = NULL;
    2070             :                         }
    2071         612 :                         ndr->flags = _flags_save_string;
    2072             :                 }
    2073             :                 {
    2074         612 :                         libndr_flags _flags_save_spoolss_security_descriptor = ndr->flags;
    2075         612 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
    2076         612 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
    2077         612 :                         if (_ptr_secdesc) {
    2078         612 :                                 NDR_PULL_ALLOC(ndr, r->secdesc);
    2079         612 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
    2080             :                         } else {
    2081           0 :                                 r->secdesc = NULL;
    2082             :                         }
    2083         612 :                         ndr->flags = _flags_save_spoolss_security_descriptor;
    2084             :                 }
    2085         612 :                 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
    2086         612 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
    2087         612 :                 if (r->priority > 99) {
    2088           0 :                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value (%"PRIu32") out of range (%"PRIu32" - %"PRIu32")", (uint32_t)(r->priority), (uint32_t)(0), (uint32_t)(99));
    2089             :                 }
    2090         612 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->defaultpriority));
    2091         612 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->starttime));
    2092         612 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->untiltime));
    2093         612 :                 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
    2094         612 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
    2095         612 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->averageppm));
    2096         612 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
    2097             :         }
    2098        1224 :         if (ndr_flags & NDR_BUFFERS) {
    2099             :                 {
    2100         612 :                         libndr_flags _flags_save_string = ndr->flags;
    2101         612 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    2102         612 :                         if (r->servername) {
    2103           0 :                                 uint32_t _relative_save_offset;
    2104         292 :                                 _relative_save_offset = ndr->offset;
    2105         292 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->servername));
    2106         292 :                                 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
    2107         292 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
    2108         292 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->servername));
    2109         292 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
    2110         292 :                                 if (ndr->offset > ndr->relative_highest_offset) {
    2111         228 :                                         ndr->relative_highest_offset = ndr->offset;
    2112             :                                 }
    2113         292 :                                 ndr->offset = _relative_save_offset;
    2114             :                         }
    2115         612 :                         ndr->flags = _flags_save_string;
    2116             :                 }
    2117             :                 {
    2118         612 :                         libndr_flags _flags_save_string = ndr->flags;
    2119         612 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    2120         612 :                         if (r->printername) {
    2121           0 :                                 uint32_t _relative_save_offset;
    2122         612 :                                 _relative_save_offset = ndr->offset;
    2123         612 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
    2124         612 :                                 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
    2125         612 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
    2126         612 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
    2127         612 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
    2128         612 :                                 if (ndr->offset > ndr->relative_highest_offset) {
    2129         272 :                                         ndr->relative_highest_offset = ndr->offset;
    2130             :                                 }
    2131         612 :                                 ndr->offset = _relative_save_offset;
    2132             :                         }
    2133         612 :                         ndr->flags = _flags_save_string;
    2134             :                 }
    2135             :                 {
    2136         612 :                         libndr_flags _flags_save_string = ndr->flags;
    2137         612 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    2138         612 :                         if (r->sharename) {
    2139           0 :                                 uint32_t _relative_save_offset;
    2140         612 :                                 _relative_save_offset = ndr->offset;
    2141         612 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->sharename));
    2142         612 :                                 _mem_save_sharename_0 = NDR_PULL_GET_MEM_CTX(ndr);
    2143         612 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->sharename, 0);
    2144         612 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->sharename));
    2145         612 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sharename_0, 0);
    2146         612 :                                 if (ndr->offset > ndr->relative_highest_offset) {
    2147           0 :                                         ndr->relative_highest_offset = ndr->offset;
    2148             :                                 }
    2149         612 :                                 ndr->offset = _relative_save_offset;
    2150             :                         }
    2151         612 :                         ndr->flags = _flags_save_string;
    2152             :                 }
    2153             :                 {
    2154         612 :                         libndr_flags _flags_save_string = ndr->flags;
    2155         612 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    2156         612 :                         if (r->portname) {
    2157           0 :                                 uint32_t _relative_save_offset;
    2158         612 :                                 _relative_save_offset = ndr->offset;
    2159         612 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->portname));
    2160         612 :                                 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
    2161         612 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
    2162         612 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->portname));
    2163         612 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
    2164         612 :                                 if (ndr->offset > ndr->relative_highest_offset) {
    2165           0 :                                         ndr->relative_highest_offset = ndr->offset;
    2166             :                                 }
    2167         612 :                                 ndr->offset = _relative_save_offset;
    2168             :                         }
    2169         612 :                         ndr->flags = _flags_save_string;
    2170             :                 }
    2171             :                 {
    2172         612 :                         libndr_flags _flags_save_string = ndr->flags;
    2173         612 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    2174         612 :                         if (r->drivername) {
    2175           0 :                                 uint32_t _relative_save_offset;
    2176         612 :                                 _relative_save_offset = ndr->offset;
    2177         612 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->drivername));
    2178         612 :                                 _mem_save_drivername_0 = NDR_PULL_GET_MEM_CTX(ndr);
    2179         612 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->drivername, 0);
    2180         612 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->drivername));
    2181         612 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_drivername_0, 0);
    2182         612 :                                 if (ndr->offset > ndr->relative_highest_offset) {
    2183           0 :                                         ndr->relative_highest_offset = ndr->offset;
    2184             :                                 }
    2185         612 :                                 ndr->offset = _relative_save_offset;
    2186             :                         }
    2187         612 :                         ndr->flags = _flags_save_string;
    2188             :                 }
    2189             :                 {
    2190         612 :                         libndr_flags _flags_save_string = ndr->flags;
    2191         612 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    2192         612 :                         if (r->comment) {
    2193           0 :                                 uint32_t _relative_save_offset;
    2194         612 :                                 _relative_save_offset = ndr->offset;
    2195         612 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->comment));
    2196         612 :                                 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
    2197         612 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
    2198         612 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->comment));
    2199         612 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
    2200         612 :                                 if (ndr->offset > ndr->relative_highest_offset) {
    2201           0 :                                         ndr->relative_highest_offset = ndr->offset;
    2202             :                                 }
    2203         612 :                                 ndr->offset = _relative_save_offset;
    2204             :                         }
    2205         612 :                         ndr->flags = _flags_save_string;
    2206             :                 }
    2207             :                 {
    2208         612 :                         libndr_flags _flags_save_string = ndr->flags;
    2209         612 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    2210         612 :                         if (r->location) {
    2211           0 :                                 uint32_t _relative_save_offset;
    2212         612 :                                 _relative_save_offset = ndr->offset;
    2213         612 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->location));
    2214         612 :                                 _mem_save_location_0 = NDR_PULL_GET_MEM_CTX(ndr);
    2215         612 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->location, 0);
    2216         612 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->location));
    2217         612 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_location_0, 0);
    2218         612 :                                 if (ndr->offset > ndr->relative_highest_offset) {
    2219           0 :                                         ndr->relative_highest_offset = ndr->offset;
    2220             :                                 }
    2221         612 :                                 ndr->offset = _relative_save_offset;
    2222             :                         }
    2223         612 :                         ndr->flags = _flags_save_string;
    2224             :                 }
    2225             :                 {
    2226         612 :                         libndr_flags _flags_save_spoolss_DeviceMode = ndr->flags;
    2227         612 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
    2228         612 :                         if (r->devmode) {
    2229           0 :                                 uint32_t _relative_save_offset;
    2230         572 :                                 _relative_save_offset = ndr->offset;
    2231         572 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
    2232         572 :                                 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
    2233         572 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
    2234             :                                 {
    2235           0 :                                         struct ndr_pull *_ndr_devmode;
    2236         572 :                                         ssize_t sub_size = -1;
    2237         572 :                                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, sub_size));
    2238         572 :                                         NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
    2239         572 :                                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, sub_size));
    2240             :                                 }
    2241         572 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
    2242         572 :                                 if (ndr->offset > ndr->relative_highest_offset) {
    2243           0 :                                         ndr->relative_highest_offset = ndr->offset;
    2244             :                                 }
    2245         572 :                                 ndr->offset = _relative_save_offset;
    2246             :                         }
    2247         612 :                         ndr->flags = _flags_save_spoolss_DeviceMode;
    2248             :                 }
    2249             :                 {
    2250         612 :                         libndr_flags _flags_save_string = ndr->flags;
    2251         612 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    2252         612 :                         if (r->sepfile) {
    2253           0 :                                 uint32_t _relative_save_offset;
    2254         612 :                                 _relative_save_offset = ndr->offset;
    2255         612 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->sepfile));
    2256         612 :                                 _mem_save_sepfile_0 = NDR_PULL_GET_MEM_CTX(ndr);
    2257         612 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->sepfile, 0);
    2258         612 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->sepfile));
    2259         612 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sepfile_0, 0);
    2260         612 :                                 if (ndr->offset > ndr->relative_highest_offset) {
    2261           0 :                                         ndr->relative_highest_offset = ndr->offset;
    2262             :                                 }
    2263         612 :                                 ndr->offset = _relative_save_offset;
    2264             :                         }
    2265         612 :                         ndr->flags = _flags_save_string;
    2266             :                 }
    2267             :                 {
    2268         612 :                         libndr_flags _flags_save_string = ndr->flags;
    2269         612 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    2270         612 :                         if (r->printprocessor) {
    2271           0 :                                 uint32_t _relative_save_offset;
    2272         612 :                                 _relative_save_offset = ndr->offset;
    2273         612 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printprocessor));
    2274         612 :                                 _mem_save_printprocessor_0 = NDR_PULL_GET_MEM_CTX(ndr);
    2275         612 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->printprocessor, 0);
    2276         612 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printprocessor));
    2277         612 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printprocessor_0, 0);
    2278         612 :                                 if (ndr->offset > ndr->relative_highest_offset) {
    2279           0 :                                         ndr->relative_highest_offset = ndr->offset;
    2280             :                                 }
    2281         612 :                                 ndr->offset = _relative_save_offset;
    2282             :                         }
    2283         612 :                         ndr->flags = _flags_save_string;
    2284             :                 }
    2285             :                 {
    2286         612 :                         libndr_flags _flags_save_string = ndr->flags;
    2287         612 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    2288         612 :                         if (r->datatype) {
    2289           0 :                                 uint32_t _relative_save_offset;
    2290         612 :                                 _relative_save_offset = ndr->offset;
    2291         612 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->datatype));
    2292         612 :                                 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
    2293         612 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
    2294         612 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->datatype));
    2295         612 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
    2296         612 :                                 if (ndr->offset > ndr->relative_highest_offset) {
    2297           0 :                                         ndr->relative_highest_offset = ndr->offset;
    2298             :                                 }
    2299         612 :                                 ndr->offset = _relative_save_offset;
    2300             :                         }
    2301         612 :                         ndr->flags = _flags_save_string;
    2302             :                 }
    2303             :                 {
    2304         612 :                         libndr_flags _flags_save_string = ndr->flags;
    2305         612 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    2306         612 :                         if (r->parameters) {
    2307           0 :                                 uint32_t _relative_save_offset;
    2308         612 :                                 _relative_save_offset = ndr->offset;
    2309         612 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->parameters));
    2310         612 :                                 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
    2311         612 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
    2312         612 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->parameters));
    2313         612 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
    2314         612 :                                 if (ndr->offset > ndr->relative_highest_offset) {
    2315           0 :                                         ndr->relative_highest_offset = ndr->offset;
    2316             :                                 }
    2317         612 :                                 ndr->offset = _relative_save_offset;
    2318             :                         }
    2319         612 :                         ndr->flags = _flags_save_string;
    2320             :                 }
    2321             :                 {
    2322         612 :                         libndr_flags _flags_save_spoolss_security_descriptor = ndr->flags;
    2323         612 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
    2324         612 :                         if (r->secdesc) {
    2325           0 :                                 uint32_t _relative_save_offset;
    2326         612 :                                 _relative_save_offset = ndr->offset;
    2327         612 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
    2328         612 :                                 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
    2329         612 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
    2330             :                                 {
    2331           0 :                                         struct ndr_pull *_ndr_secdesc;
    2332         612 :                                         ssize_t sub_size = -1;
    2333         612 :                                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, sub_size));
    2334         612 :                                         NDR_CHECK(ndr_pull_spoolss_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
    2335         612 :                                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, sub_size));
    2336             :                                 }
    2337         612 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
    2338         612 :                                 if (ndr->offset > ndr->relative_highest_offset) {
    2339           0 :                                         ndr->relative_highest_offset = ndr->offset;
    2340             :                                 }
    2341         612 :                                 ndr->offset = _relative_save_offset;
    2342             :                         }
    2343         612 :                         ndr->flags = _flags_save_spoolss_security_descriptor;
    2344             :                 }
    2345             :         }
    2346        1224 :         return NDR_ERR_SUCCESS;
    2347             : }
    2348             : 
    2349           0 : static void ndr_print_flags_spoolss_PrinterInfo2(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_PrinterInfo2 *r)
    2350             : {
    2351           0 :         ndr_print_spoolss_PrinterInfo2(ndr, name, r);
    2352           0 : }
    2353             : 
    2354           0 : _PUBLIC_ void ndr_print_spoolss_PrinterInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo2 *r)
    2355             : {
    2356           0 :         ndr_print_struct(ndr, name, "spoolss_PrinterInfo2");
    2357           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
    2358           0 :         ndr->depth++;
    2359             :         {
    2360           0 :                 libndr_flags _flags_save_string = ndr->flags;
    2361           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    2362           0 :                 ndr_print_ptr(ndr, "servername", r->servername);
    2363           0 :                 ndr->depth++;
    2364           0 :                 if (r->servername) {
    2365           0 :                         ndr_print_string(ndr, "servername", r->servername);
    2366             :                 }
    2367           0 :                 ndr->depth--;
    2368           0 :                 ndr->flags = _flags_save_string;
    2369             :         }
    2370             :         {
    2371           0 :                 libndr_flags _flags_save_string = ndr->flags;
    2372           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    2373           0 :                 ndr_print_ptr(ndr, "printername", r->printername);
    2374           0 :                 ndr->depth++;
    2375           0 :                 if (r->printername) {
    2376           0 :                         ndr_print_string(ndr, "printername", r->printername);
    2377             :                 }
    2378           0 :                 ndr->depth--;
    2379           0 :                 ndr->flags = _flags_save_string;
    2380             :         }
    2381             :         {
    2382           0 :                 libndr_flags _flags_save_string = ndr->flags;
    2383           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    2384           0 :                 ndr_print_ptr(ndr, "sharename", r->sharename);
    2385           0 :                 ndr->depth++;
    2386           0 :                 if (r->sharename) {
    2387           0 :                         ndr_print_string(ndr, "sharename", r->sharename);
    2388             :                 }
    2389           0 :                 ndr->depth--;
    2390           0 :                 ndr->flags = _flags_save_string;
    2391             :         }
    2392             :         {
    2393           0 :                 libndr_flags _flags_save_string = ndr->flags;
    2394           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    2395           0 :                 ndr_print_ptr(ndr, "portname", r->portname);
    2396           0 :                 ndr->depth++;
    2397           0 :                 if (r->portname) {
    2398           0 :                         ndr_print_string(ndr, "portname", r->portname);
    2399             :                 }
    2400           0 :                 ndr->depth--;
    2401           0 :                 ndr->flags = _flags_save_string;
    2402             :         }
    2403             :         {
    2404           0 :                 libndr_flags _flags_save_string = ndr->flags;
    2405           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    2406           0 :                 ndr_print_ptr(ndr, "drivername", r->drivername);
    2407           0 :                 ndr->depth++;
    2408           0 :                 if (r->drivername) {
    2409           0 :                         ndr_print_string(ndr, "drivername", r->drivername);
    2410             :                 }
    2411           0 :                 ndr->depth--;
    2412           0 :                 ndr->flags = _flags_save_string;
    2413             :         }
    2414             :         {
    2415           0 :                 libndr_flags _flags_save_string = ndr->flags;
    2416           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    2417           0 :                 ndr_print_ptr(ndr, "comment", r->comment);
    2418           0 :                 ndr->depth++;
    2419           0 :                 if (r->comment) {
    2420           0 :                         ndr_print_string(ndr, "comment", r->comment);
    2421             :                 }
    2422           0 :                 ndr->depth--;
    2423           0 :                 ndr->flags = _flags_save_string;
    2424             :         }
    2425             :         {
    2426           0 :                 libndr_flags _flags_save_string = ndr->flags;
    2427           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    2428           0 :                 ndr_print_ptr(ndr, "location", r->location);
    2429           0 :                 ndr->depth++;
    2430           0 :                 if (r->location) {
    2431           0 :                         ndr_print_string(ndr, "location", r->location);
    2432             :                 }
    2433           0 :                 ndr->depth--;
    2434           0 :                 ndr->flags = _flags_save_string;
    2435             :         }
    2436             :         {
    2437           0 :                 libndr_flags _flags_save_spoolss_DeviceMode = ndr->flags;
    2438           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
    2439           0 :                 ndr_print_ptr(ndr, "devmode", r->devmode);
    2440           0 :                 ndr->depth++;
    2441           0 :                 if (r->devmode) {
    2442           0 :                         ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
    2443             :                 }
    2444           0 :                 ndr->depth--;
    2445           0 :                 ndr->flags = _flags_save_spoolss_DeviceMode;
    2446             :         }
    2447             :         {
    2448           0 :                 libndr_flags _flags_save_string = ndr->flags;
    2449           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    2450           0 :                 ndr_print_ptr(ndr, "sepfile", r->sepfile);
    2451           0 :                 ndr->depth++;
    2452           0 :                 if (r->sepfile) {
    2453           0 :                         ndr_print_string(ndr, "sepfile", r->sepfile);
    2454             :                 }
    2455           0 :                 ndr->depth--;
    2456           0 :                 ndr->flags = _flags_save_string;
    2457             :         }
    2458             :         {
    2459           0 :                 libndr_flags _flags_save_string = ndr->flags;
    2460           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    2461           0 :                 ndr_print_ptr(ndr, "printprocessor", r->printprocessor);
    2462           0 :                 ndr->depth++;
    2463           0 :                 if (r->printprocessor) {
    2464           0 :                         ndr_print_string(ndr, "printprocessor", r->printprocessor);
    2465             :                 }
    2466           0 :                 ndr->depth--;
    2467           0 :                 ndr->flags = _flags_save_string;
    2468             :         }
    2469             :         {
    2470           0 :                 libndr_flags _flags_save_string = ndr->flags;
    2471           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    2472           0 :                 ndr_print_ptr(ndr, "datatype", r->datatype);
    2473           0 :                 ndr->depth++;
    2474           0 :                 if (r->datatype) {
    2475           0 :                         ndr_print_string(ndr, "datatype", r->datatype);
    2476             :                 }
    2477           0 :                 ndr->depth--;
    2478           0 :                 ndr->flags = _flags_save_string;
    2479             :         }
    2480             :         {
    2481           0 :                 libndr_flags _flags_save_string = ndr->flags;
    2482           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    2483           0 :                 ndr_print_ptr(ndr, "parameters", r->parameters);
    2484           0 :                 ndr->depth++;
    2485           0 :                 if (r->parameters) {
    2486           0 :                         ndr_print_string(ndr, "parameters", r->parameters);
    2487             :                 }
    2488           0 :                 ndr->depth--;
    2489           0 :                 ndr->flags = _flags_save_string;
    2490             :         }
    2491             :         {
    2492           0 :                 libndr_flags _flags_save_spoolss_security_descriptor = ndr->flags;
    2493           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
    2494           0 :                 ndr_print_ptr(ndr, "secdesc", r->secdesc);
    2495           0 :                 ndr->depth++;
    2496           0 :                 if (r->secdesc) {
    2497           0 :                         ndr_print_spoolss_security_descriptor(ndr, "secdesc", r->secdesc);
    2498             :                 }
    2499           0 :                 ndr->depth--;
    2500           0 :                 ndr->flags = _flags_save_spoolss_security_descriptor;
    2501             :         }
    2502           0 :         ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
    2503           0 :         ndr_print_uint32(ndr, "priority", r->priority);
    2504           0 :         ndr_print_uint32(ndr, "defaultpriority", r->defaultpriority);
    2505           0 :         ndr_print_uint32(ndr, "starttime", r->starttime);
    2506           0 :         ndr_print_uint32(ndr, "untiltime", r->untiltime);
    2507           0 :         ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
    2508           0 :         ndr_print_uint32(ndr, "cjobs", r->cjobs);
    2509           0 :         ndr_print_uint32(ndr, "averageppm", r->averageppm);
    2510           0 :         ndr->depth--;
    2511             : }
    2512             : 
    2513           0 : _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo2(const struct spoolss_PrinterInfo2 *r, libndr_flags flags)
    2514             : {
    2515           0 :         return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo2);
    2516             : }
    2517             : 
    2518         552 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo3(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_PrinterInfo3 *r)
    2519             : {
    2520         552 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    2521         552 :         if (ndr_flags & NDR_SCALARS) {
    2522         276 :                 NDR_CHECK(ndr_push_align(ndr, 5));
    2523             :                 {
    2524         276 :                         libndr_flags _flags_save_spoolss_security_descriptor = ndr->flags;
    2525         276 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
    2526         276 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
    2527         276 :                         ndr->flags = _flags_save_spoolss_security_descriptor;
    2528             :                 }
    2529         276 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
    2530             :         }
    2531         552 :         if (ndr_flags & NDR_BUFFERS) {
    2532             :                 {
    2533         276 :                         libndr_flags _flags_save_spoolss_security_descriptor = ndr->flags;
    2534         276 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
    2535         276 :                         if (r->secdesc) {
    2536         276 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->secdesc));
    2537             :                                 {
    2538           0 :                                         struct ndr_push *_ndr_secdesc;
    2539         276 :                                         NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
    2540         276 :                                         NDR_CHECK(ndr_push_spoolss_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
    2541         276 :                                         NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_secdesc, 0, -1));
    2542             :                                 }
    2543         276 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->secdesc));
    2544             :                         }
    2545         276 :                         ndr->flags = _flags_save_spoolss_security_descriptor;
    2546             :                 }
    2547             :         }
    2548         552 :         return NDR_ERR_SUCCESS;
    2549             : }
    2550             : 
    2551         184 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo3(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_PrinterInfo3 *r)
    2552             : {
    2553           0 :         uint32_t _ptr_secdesc;
    2554         184 :         TALLOC_CTX *_mem_save_secdesc_0 = NULL;
    2555         184 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    2556         184 :         if (ndr_flags & NDR_SCALARS) {
    2557          92 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
    2558             :                 {
    2559          92 :                         libndr_flags _flags_save_spoolss_security_descriptor = ndr->flags;
    2560          92 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
    2561          92 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
    2562          92 :                         if (_ptr_secdesc) {
    2563          92 :                                 NDR_PULL_ALLOC(ndr, r->secdesc);
    2564          92 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
    2565             :                         } else {
    2566           0 :                                 r->secdesc = NULL;
    2567             :                         }
    2568          92 :                         ndr->flags = _flags_save_spoolss_security_descriptor;
    2569             :                 }
    2570          92 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
    2571             :         }
    2572         184 :         if (ndr_flags & NDR_BUFFERS) {
    2573             :                 {
    2574          92 :                         libndr_flags _flags_save_spoolss_security_descriptor = ndr->flags;
    2575          92 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
    2576          92 :                         if (r->secdesc) {
    2577           0 :                                 uint32_t _relative_save_offset;
    2578          92 :                                 _relative_save_offset = ndr->offset;
    2579          92 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
    2580          92 :                                 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
    2581          92 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
    2582             :                                 {
    2583           0 :                                         struct ndr_pull *_ndr_secdesc;
    2584          92 :                                         ssize_t sub_size = -1;
    2585          92 :                                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, sub_size));
    2586          92 :                                         NDR_CHECK(ndr_pull_spoolss_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
    2587          92 :                                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, sub_size));
    2588             :                                 }
    2589          92 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
    2590          92 :                                 if (ndr->offset > ndr->relative_highest_offset) {
    2591          92 :                                         ndr->relative_highest_offset = ndr->offset;
    2592             :                                 }
    2593          92 :                                 ndr->offset = _relative_save_offset;
    2594             :                         }
    2595          92 :                         ndr->flags = _flags_save_spoolss_security_descriptor;
    2596             :                 }
    2597             :         }
    2598         184 :         return NDR_ERR_SUCCESS;
    2599             : }
    2600             : 
    2601           0 : static void ndr_print_flags_spoolss_PrinterInfo3(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_PrinterInfo3 *r)
    2602             : {
    2603           0 :         ndr_print_spoolss_PrinterInfo3(ndr, name, r);
    2604           0 : }
    2605             : 
    2606           0 : _PUBLIC_ void ndr_print_spoolss_PrinterInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo3 *r)
    2607             : {
    2608           0 :         ndr_print_struct(ndr, name, "spoolss_PrinterInfo3");
    2609           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
    2610           0 :         ndr->depth++;
    2611             :         {
    2612           0 :                 libndr_flags _flags_save_spoolss_security_descriptor = ndr->flags;
    2613           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
    2614           0 :                 ndr_print_ptr(ndr, "secdesc", r->secdesc);
    2615           0 :                 ndr->depth++;
    2616           0 :                 if (r->secdesc) {
    2617           0 :                         ndr_print_spoolss_security_descriptor(ndr, "secdesc", r->secdesc);
    2618             :                 }
    2619           0 :                 ndr->depth--;
    2620           0 :                 ndr->flags = _flags_save_spoolss_security_descriptor;
    2621             :         }
    2622           0 :         ndr->depth--;
    2623             : }
    2624             : 
    2625           0 : _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo3(const struct spoolss_PrinterInfo3 *r, libndr_flags flags)
    2626             : {
    2627           0 :         return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo3);
    2628             : }
    2629             : 
    2630         504 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo4(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_PrinterInfo4 *r)
    2631             : {
    2632         504 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    2633         504 :         if (ndr_flags & NDR_SCALARS) {
    2634         252 :                 NDR_CHECK(ndr_push_align(ndr, 5));
    2635             :                 {
    2636         252 :                         libndr_flags _flags_save_string = ndr->flags;
    2637         252 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    2638         252 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
    2639         252 :                         ndr->flags = _flags_save_string;
    2640             :                 }
    2641             :                 {
    2642         252 :                         libndr_flags _flags_save_string = ndr->flags;
    2643         252 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    2644         252 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->servername));
    2645         252 :                         ndr->flags = _flags_save_string;
    2646             :                 }
    2647         252 :                 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
    2648         252 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
    2649             :         }
    2650         504 :         if (ndr_flags & NDR_BUFFERS) {
    2651             :                 {
    2652         252 :                         libndr_flags _flags_save_string = ndr->flags;
    2653         252 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    2654         252 :                         if (r->printername) {
    2655         252 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->printername));
    2656         252 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
    2657         252 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->printername));
    2658             :                         }
    2659         252 :                         ndr->flags = _flags_save_string;
    2660             :                 }
    2661             :                 {
    2662         252 :                         libndr_flags _flags_save_string = ndr->flags;
    2663         252 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    2664         252 :                         if (r->servername) {
    2665          12 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->servername));
    2666          12 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->servername));
    2667          12 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->servername));
    2668             :                         }
    2669         252 :                         ndr->flags = _flags_save_string;
    2670             :                 }
    2671             :         }
    2672         504 :         return NDR_ERR_SUCCESS;
    2673             : }
    2674             : 
    2675         168 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo4(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_PrinterInfo4 *r)
    2676             : {
    2677           0 :         uint32_t _ptr_printername;
    2678         168 :         TALLOC_CTX *_mem_save_printername_0 = NULL;
    2679           0 :         uint32_t _ptr_servername;
    2680         168 :         TALLOC_CTX *_mem_save_servername_0 = NULL;
    2681         168 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    2682         168 :         if (ndr_flags & NDR_SCALARS) {
    2683          84 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
    2684             :                 {
    2685          84 :                         libndr_flags _flags_save_string = ndr->flags;
    2686          84 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    2687          84 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
    2688          84 :                         if (_ptr_printername) {
    2689          84 :                                 NDR_PULL_ALLOC(ndr, r->printername);
    2690          84 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
    2691             :                         } else {
    2692           0 :                                 r->printername = NULL;
    2693             :                         }
    2694          84 :                         ndr->flags = _flags_save_string;
    2695             :                 }
    2696             :                 {
    2697          84 :                         libndr_flags _flags_save_string = ndr->flags;
    2698          84 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    2699          84 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
    2700          84 :                         if (_ptr_servername) {
    2701           4 :                                 NDR_PULL_ALLOC(ndr, r->servername);
    2702           4 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->servername, _ptr_servername));
    2703             :                         } else {
    2704          80 :                                 r->servername = NULL;
    2705             :                         }
    2706          84 :                         ndr->flags = _flags_save_string;
    2707             :                 }
    2708          84 :                 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
    2709          84 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
    2710             :         }
    2711         168 :         if (ndr_flags & NDR_BUFFERS) {
    2712             :                 {
    2713          84 :                         libndr_flags _flags_save_string = ndr->flags;
    2714          84 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    2715          84 :                         if (r->printername) {
    2716           0 :                                 uint32_t _relative_save_offset;
    2717          84 :                                 _relative_save_offset = ndr->offset;
    2718          84 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
    2719          84 :                                 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
    2720          84 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
    2721          84 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
    2722          84 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
    2723          84 :                                 if (ndr->offset > ndr->relative_highest_offset) {
    2724          52 :                                         ndr->relative_highest_offset = ndr->offset;
    2725             :                                 }
    2726          84 :                                 ndr->offset = _relative_save_offset;
    2727             :                         }
    2728          84 :                         ndr->flags = _flags_save_string;
    2729             :                 }
    2730             :                 {
    2731          84 :                         libndr_flags _flags_save_string = ndr->flags;
    2732          84 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    2733          84 :                         if (r->servername) {
    2734           0 :                                 uint32_t _relative_save_offset;
    2735           4 :                                 _relative_save_offset = ndr->offset;
    2736           4 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->servername));
    2737           4 :                                 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
    2738           4 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
    2739           4 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->servername));
    2740           4 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
    2741           4 :                                 if (ndr->offset > ndr->relative_highest_offset) {
    2742           0 :                                         ndr->relative_highest_offset = ndr->offset;
    2743             :                                 }
    2744           4 :                                 ndr->offset = _relative_save_offset;
    2745             :                         }
    2746          84 :                         ndr->flags = _flags_save_string;
    2747             :                 }
    2748             :         }
    2749         168 :         return NDR_ERR_SUCCESS;
    2750             : }
    2751             : 
    2752           0 : static void ndr_print_flags_spoolss_PrinterInfo4(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_PrinterInfo4 *r)
    2753             : {
    2754           0 :         ndr_print_spoolss_PrinterInfo4(ndr, name, r);
    2755           0 : }
    2756             : 
    2757           0 : _PUBLIC_ void ndr_print_spoolss_PrinterInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo4 *r)
    2758             : {
    2759           0 :         ndr_print_struct(ndr, name, "spoolss_PrinterInfo4");
    2760           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
    2761           0 :         ndr->depth++;
    2762             :         {
    2763           0 :                 libndr_flags _flags_save_string = ndr->flags;
    2764           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    2765           0 :                 ndr_print_ptr(ndr, "printername", r->printername);
    2766           0 :                 ndr->depth++;
    2767           0 :                 if (r->printername) {
    2768           0 :                         ndr_print_string(ndr, "printername", r->printername);
    2769             :                 }
    2770           0 :                 ndr->depth--;
    2771           0 :                 ndr->flags = _flags_save_string;
    2772             :         }
    2773             :         {
    2774           0 :                 libndr_flags _flags_save_string = ndr->flags;
    2775           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    2776           0 :                 ndr_print_ptr(ndr, "servername", r->servername);
    2777           0 :                 ndr->depth++;
    2778           0 :                 if (r->servername) {
    2779           0 :                         ndr_print_string(ndr, "servername", r->servername);
    2780             :                 }
    2781           0 :                 ndr->depth--;
    2782           0 :                 ndr->flags = _flags_save_string;
    2783             :         }
    2784           0 :         ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
    2785           0 :         ndr->depth--;
    2786             : }
    2787             : 
    2788           0 : _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo4(const struct spoolss_PrinterInfo4 *r, libndr_flags flags)
    2789             : {
    2790           0 :         return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo4);
    2791             : }
    2792             : 
    2793         504 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo5(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_PrinterInfo5 *r)
    2794             : {
    2795         504 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    2796         504 :         if (ndr_flags & NDR_SCALARS) {
    2797         252 :                 NDR_CHECK(ndr_push_align(ndr, 5));
    2798             :                 {
    2799         252 :                         libndr_flags _flags_save_string = ndr->flags;
    2800         252 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    2801         252 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
    2802         252 :                         ndr->flags = _flags_save_string;
    2803             :                 }
    2804             :                 {
    2805         252 :                         libndr_flags _flags_save_string = ndr->flags;
    2806         252 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    2807         252 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->portname));
    2808         252 :                         ndr->flags = _flags_save_string;
    2809             :                 }
    2810         252 :                 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
    2811         252 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->device_not_selected_timeout));
    2812         252 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->transmission_retry_timeout));
    2813         252 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
    2814             :         }
    2815         504 :         if (ndr_flags & NDR_BUFFERS) {
    2816             :                 {
    2817         252 :                         libndr_flags _flags_save_string = ndr->flags;
    2818         252 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    2819         252 :                         if (r->printername) {
    2820         252 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->printername));
    2821         252 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
    2822         252 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->printername));
    2823             :                         }
    2824         252 :                         ndr->flags = _flags_save_string;
    2825             :                 }
    2826             :                 {
    2827         252 :                         libndr_flags _flags_save_string = ndr->flags;
    2828         252 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    2829         252 :                         if (r->portname) {
    2830         252 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->portname));
    2831         252 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->portname));
    2832         252 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->portname));
    2833             :                         }
    2834         252 :                         ndr->flags = _flags_save_string;
    2835             :                 }
    2836             :         }
    2837         504 :         return NDR_ERR_SUCCESS;
    2838             : }
    2839             : 
    2840         168 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo5(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_PrinterInfo5 *r)
    2841             : {
    2842           0 :         uint32_t _ptr_printername;
    2843         168 :         TALLOC_CTX *_mem_save_printername_0 = NULL;
    2844           0 :         uint32_t _ptr_portname;
    2845         168 :         TALLOC_CTX *_mem_save_portname_0 = NULL;
    2846         168 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    2847         168 :         if (ndr_flags & NDR_SCALARS) {
    2848          84 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
    2849             :                 {
    2850          84 :                         libndr_flags _flags_save_string = ndr->flags;
    2851          84 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    2852          84 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
    2853          84 :                         if (_ptr_printername) {
    2854          84 :                                 NDR_PULL_ALLOC(ndr, r->printername);
    2855          84 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
    2856             :                         } else {
    2857           0 :                                 r->printername = NULL;
    2858             :                         }
    2859          84 :                         ndr->flags = _flags_save_string;
    2860             :                 }
    2861             :                 {
    2862          84 :                         libndr_flags _flags_save_string = ndr->flags;
    2863          84 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    2864          84 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
    2865          84 :                         if (_ptr_portname) {
    2866          84 :                                 NDR_PULL_ALLOC(ndr, r->portname);
    2867          84 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->portname, _ptr_portname));
    2868             :                         } else {
    2869           0 :                                 r->portname = NULL;
    2870             :                         }
    2871          84 :                         ndr->flags = _flags_save_string;
    2872             :                 }
    2873          84 :                 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
    2874          84 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->device_not_selected_timeout));
    2875          84 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->transmission_retry_timeout));
    2876          84 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
    2877             :         }
    2878         168 :         if (ndr_flags & NDR_BUFFERS) {
    2879             :                 {
    2880          84 :                         libndr_flags _flags_save_string = ndr->flags;
    2881          84 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    2882          84 :                         if (r->printername) {
    2883           0 :                                 uint32_t _relative_save_offset;
    2884          84 :                                 _relative_save_offset = ndr->offset;
    2885          84 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
    2886          84 :                                 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
    2887          84 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
    2888          84 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
    2889          84 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
    2890          84 :                                 if (ndr->offset > ndr->relative_highest_offset) {
    2891          52 :                                         ndr->relative_highest_offset = ndr->offset;
    2892             :                                 }
    2893          84 :                                 ndr->offset = _relative_save_offset;
    2894             :                         }
    2895          84 :                         ndr->flags = _flags_save_string;
    2896             :                 }
    2897             :                 {
    2898          84 :                         libndr_flags _flags_save_string = ndr->flags;
    2899          84 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    2900          84 :                         if (r->portname) {
    2901           0 :                                 uint32_t _relative_save_offset;
    2902          84 :                                 _relative_save_offset = ndr->offset;
    2903          84 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->portname));
    2904          84 :                                 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
    2905          84 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
    2906          84 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->portname));
    2907          84 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
    2908          84 :                                 if (ndr->offset > ndr->relative_highest_offset) {
    2909           0 :                                         ndr->relative_highest_offset = ndr->offset;
    2910             :                                 }
    2911          84 :                                 ndr->offset = _relative_save_offset;
    2912             :                         }
    2913          84 :                         ndr->flags = _flags_save_string;
    2914             :                 }
    2915             :         }
    2916         168 :         return NDR_ERR_SUCCESS;
    2917             : }
    2918             : 
    2919           0 : static void ndr_print_flags_spoolss_PrinterInfo5(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_PrinterInfo5 *r)
    2920             : {
    2921           0 :         ndr_print_spoolss_PrinterInfo5(ndr, name, r);
    2922           0 : }
    2923             : 
    2924           0 : _PUBLIC_ void ndr_print_spoolss_PrinterInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo5 *r)
    2925             : {
    2926           0 :         ndr_print_struct(ndr, name, "spoolss_PrinterInfo5");
    2927           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
    2928           0 :         ndr->depth++;
    2929             :         {
    2930           0 :                 libndr_flags _flags_save_string = ndr->flags;
    2931           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    2932           0 :                 ndr_print_ptr(ndr, "printername", r->printername);
    2933           0 :                 ndr->depth++;
    2934           0 :                 if (r->printername) {
    2935           0 :                         ndr_print_string(ndr, "printername", r->printername);
    2936             :                 }
    2937           0 :                 ndr->depth--;
    2938           0 :                 ndr->flags = _flags_save_string;
    2939             :         }
    2940             :         {
    2941           0 :                 libndr_flags _flags_save_string = ndr->flags;
    2942           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    2943           0 :                 ndr_print_ptr(ndr, "portname", r->portname);
    2944           0 :                 ndr->depth++;
    2945           0 :                 if (r->portname) {
    2946           0 :                         ndr_print_string(ndr, "portname", r->portname);
    2947             :                 }
    2948           0 :                 ndr->depth--;
    2949           0 :                 ndr->flags = _flags_save_string;
    2950             :         }
    2951           0 :         ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
    2952           0 :         ndr_print_uint32(ndr, "device_not_selected_timeout", r->device_not_selected_timeout);
    2953           0 :         ndr_print_uint32(ndr, "transmission_retry_timeout", r->transmission_retry_timeout);
    2954           0 :         ndr->depth--;
    2955             : }
    2956             : 
    2957           0 : _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo5(const struct spoolss_PrinterInfo5 *r, libndr_flags flags)
    2958             : {
    2959           0 :         return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo5);
    2960             : }
    2961             : 
    2962         132 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo6(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_PrinterInfo6 *r)
    2963             : {
    2964         132 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    2965         132 :         if (ndr_flags & NDR_SCALARS) {
    2966         132 :                 NDR_CHECK(ndr_push_align(ndr, 4));
    2967         132 :                 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
    2968         132 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
    2969             :         }
    2970         132 :         if (ndr_flags & NDR_BUFFERS) {
    2971           0 :         }
    2972         132 :         return NDR_ERR_SUCCESS;
    2973             : }
    2974             : 
    2975          44 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo6(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_PrinterInfo6 *r)
    2976             : {
    2977          44 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    2978          44 :         if (ndr_flags & NDR_SCALARS) {
    2979          44 :                 NDR_CHECK(ndr_pull_align(ndr, 4));
    2980          44 :                 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
    2981          44 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
    2982             :         }
    2983          44 :         if (ndr_flags & NDR_BUFFERS) {
    2984           0 :         }
    2985          44 :         return NDR_ERR_SUCCESS;
    2986             : }
    2987             : 
    2988           0 : static void ndr_print_flags_spoolss_PrinterInfo6(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_PrinterInfo6 *r)
    2989             : {
    2990           0 :         ndr_print_spoolss_PrinterInfo6(ndr, name, r);
    2991           0 : }
    2992             : 
    2993           0 : _PUBLIC_ void ndr_print_spoolss_PrinterInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo6 *r)
    2994             : {
    2995           0 :         ndr_print_struct(ndr, name, "spoolss_PrinterInfo6");
    2996           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
    2997           0 :         ndr->depth++;
    2998           0 :         ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
    2999           0 :         ndr->depth--;
    3000             : }
    3001             : 
    3002           0 : _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo6(const struct spoolss_PrinterInfo6 *r, libndr_flags flags)
    3003             : {
    3004           0 :         return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo6);
    3005             : }
    3006             : 
    3007         176 : static enum ndr_err_code ndr_push_spoolss_DsPrintAction(struct ndr_push *ndr, ndr_flags_type ndr_flags, uint32_t r)
    3008             : {
    3009         176 :         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
    3010         176 :         return NDR_ERR_SUCCESS;
    3011             : }
    3012             : 
    3013          64 : static enum ndr_err_code ndr_pull_spoolss_DsPrintAction(struct ndr_pull *ndr, ndr_flags_type ndr_flags, uint32_t *r)
    3014             : {
    3015           0 :         uint32_t v;
    3016          64 :         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
    3017          64 :         *r = v;
    3018          64 :         return NDR_ERR_SUCCESS;
    3019             : }
    3020             : 
    3021           0 : _PUBLIC_ void ndr_print_spoolss_DsPrintAction(struct ndr_print *ndr, const char *name, uint32_t r)
    3022             : {
    3023           0 :         ndr_print_uint32(ndr, name, r);
    3024           0 :         ndr->depth++;
    3025           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_PUBLISH", DSPRINT_PUBLISH, r);
    3026           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_UPDATE", DSPRINT_UPDATE, r);
    3027           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_UNPUBLISH", DSPRINT_UNPUBLISH, r);
    3028           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_REPUBLISH", DSPRINT_REPUBLISH, r);
    3029           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_PENDING", DSPRINT_PENDING, r);
    3030           0 :         ndr->depth--;
    3031           0 : }
    3032             : 
    3033         336 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo7(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_PrinterInfo7 *r)
    3034             : {
    3035         336 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    3036         336 :         if (ndr_flags & NDR_SCALARS) {
    3037         168 :                 NDR_CHECK(ndr_push_align(ndr, 5));
    3038             :                 {
    3039         168 :                         libndr_flags _flags_save_string = ndr->flags;
    3040         168 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    3041         168 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->guid));
    3042         168 :                         ndr->flags = _flags_save_string;
    3043             :                 }
    3044         168 :                 NDR_CHECK(ndr_push_spoolss_DsPrintAction(ndr, NDR_SCALARS, r->action));
    3045         168 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
    3046             :         }
    3047         336 :         if (ndr_flags & NDR_BUFFERS) {
    3048             :                 {
    3049         168 :                         libndr_flags _flags_save_string = ndr->flags;
    3050         168 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    3051         168 :                         if (r->guid) {
    3052         168 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->guid));
    3053         168 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->guid));
    3054         168 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->guid));
    3055             :                         }
    3056         168 :                         ndr->flags = _flags_save_string;
    3057             :                 }
    3058             :         }
    3059         336 :         return NDR_ERR_SUCCESS;
    3060             : }
    3061             : 
    3062         112 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo7(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_PrinterInfo7 *r)
    3063             : {
    3064           0 :         uint32_t _ptr_guid;
    3065         112 :         TALLOC_CTX *_mem_save_guid_0 = NULL;
    3066         112 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    3067         112 :         if (ndr_flags & NDR_SCALARS) {
    3068          56 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
    3069             :                 {
    3070          56 :                         libndr_flags _flags_save_string = ndr->flags;
    3071          56 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    3072          56 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_guid));
    3073          56 :                         if (_ptr_guid) {
    3074          56 :                                 NDR_PULL_ALLOC(ndr, r->guid);
    3075          56 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->guid, _ptr_guid));
    3076             :                         } else {
    3077           0 :                                 r->guid = NULL;
    3078             :                         }
    3079          56 :                         ndr->flags = _flags_save_string;
    3080             :                 }
    3081          56 :                 NDR_CHECK(ndr_pull_spoolss_DsPrintAction(ndr, NDR_SCALARS, &r->action));
    3082          56 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
    3083             :         }
    3084         112 :         if (ndr_flags & NDR_BUFFERS) {
    3085             :                 {
    3086          56 :                         libndr_flags _flags_save_string = ndr->flags;
    3087          56 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    3088          56 :                         if (r->guid) {
    3089           0 :                                 uint32_t _relative_save_offset;
    3090          56 :                                 _relative_save_offset = ndr->offset;
    3091          56 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->guid));
    3092          56 :                                 _mem_save_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
    3093          56 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->guid, 0);
    3094          56 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->guid));
    3095          56 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_guid_0, 0);
    3096          56 :                                 if (ndr->offset > ndr->relative_highest_offset) {
    3097          56 :                                         ndr->relative_highest_offset = ndr->offset;
    3098             :                                 }
    3099          56 :                                 ndr->offset = _relative_save_offset;
    3100             :                         }
    3101          56 :                         ndr->flags = _flags_save_string;
    3102             :                 }
    3103             :         }
    3104         112 :         return NDR_ERR_SUCCESS;
    3105             : }
    3106             : 
    3107           0 : static void ndr_print_flags_spoolss_PrinterInfo7(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_PrinterInfo7 *r)
    3108             : {
    3109           0 :         ndr_print_spoolss_PrinterInfo7(ndr, name, r);
    3110           0 : }
    3111             : 
    3112           0 : _PUBLIC_ void ndr_print_spoolss_PrinterInfo7(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo7 *r)
    3113             : {
    3114           0 :         ndr_print_struct(ndr, name, "spoolss_PrinterInfo7");
    3115           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
    3116           0 :         ndr->depth++;
    3117             :         {
    3118           0 :                 libndr_flags _flags_save_string = ndr->flags;
    3119           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    3120           0 :                 ndr_print_ptr(ndr, "guid", r->guid);
    3121           0 :                 ndr->depth++;
    3122           0 :                 if (r->guid) {
    3123           0 :                         ndr_print_string(ndr, "guid", r->guid);
    3124             :                 }
    3125           0 :                 ndr->depth--;
    3126           0 :                 ndr->flags = _flags_save_string;
    3127             :         }
    3128           0 :         ndr_print_spoolss_DsPrintAction(ndr, "action", r->action);
    3129           0 :         ndr->depth--;
    3130             : }
    3131             : 
    3132           0 : _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo7(const struct spoolss_PrinterInfo7 *r, libndr_flags flags)
    3133             : {
    3134           0 :         return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo7);
    3135             : }
    3136             : 
    3137        4992 : static enum ndr_err_code ndr_push_spoolss_DeviceModeInfo(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_DeviceModeInfo *r)
    3138             : {
    3139        4992 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    3140        4992 :         if (ndr_flags & NDR_SCALARS) {
    3141        2496 :                 NDR_CHECK(ndr_push_align(ndr, 5));
    3142             :                 {
    3143        2496 :                         libndr_flags _flags_save_spoolss_DeviceMode = ndr->flags;
    3144        2496 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
    3145        2496 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
    3146        2496 :                         ndr->flags = _flags_save_spoolss_DeviceMode;
    3147             :                 }
    3148        2496 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
    3149             :         }
    3150        4992 :         if (ndr_flags & NDR_BUFFERS) {
    3151             :                 {
    3152        2496 :                         libndr_flags _flags_save_spoolss_DeviceMode = ndr->flags;
    3153        2496 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
    3154        2496 :                         if (r->devmode) {
    3155        2484 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->devmode));
    3156             :                                 {
    3157           0 :                                         struct ndr_push *_ndr_devmode;
    3158        2484 :                                         NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 0, -1));
    3159        2484 :                                         NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
    3160        2484 :                                         NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 0, -1));
    3161             :                                 }
    3162        2484 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->devmode));
    3163             :                         }
    3164        2496 :                         ndr->flags = _flags_save_spoolss_DeviceMode;
    3165             :                 }
    3166             :         }
    3167        4992 :         return NDR_ERR_SUCCESS;
    3168             : }
    3169             : 
    3170        1664 : static enum ndr_err_code ndr_pull_spoolss_DeviceModeInfo(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_DeviceModeInfo *r)
    3171             : {
    3172           0 :         uint32_t _ptr_devmode;
    3173        1664 :         TALLOC_CTX *_mem_save_devmode_0 = NULL;
    3174        1664 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    3175        1664 :         if (ndr_flags & NDR_SCALARS) {
    3176         832 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
    3177             :                 {
    3178         832 :                         libndr_flags _flags_save_spoolss_DeviceMode = ndr->flags;
    3179         832 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
    3180         832 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
    3181         832 :                         if (_ptr_devmode) {
    3182         828 :                                 NDR_PULL_ALLOC(ndr, r->devmode);
    3183         828 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
    3184             :                         } else {
    3185           4 :                                 r->devmode = NULL;
    3186             :                         }
    3187         832 :                         ndr->flags = _flags_save_spoolss_DeviceMode;
    3188             :                 }
    3189         832 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
    3190             :         }
    3191        1664 :         if (ndr_flags & NDR_BUFFERS) {
    3192             :                 {
    3193         832 :                         libndr_flags _flags_save_spoolss_DeviceMode = ndr->flags;
    3194         832 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
    3195         832 :                         if (r->devmode) {
    3196           0 :                                 uint32_t _relative_save_offset;
    3197         828 :                                 _relative_save_offset = ndr->offset;
    3198         828 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
    3199         828 :                                 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
    3200         828 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
    3201             :                                 {
    3202           0 :                                         struct ndr_pull *_ndr_devmode;
    3203         828 :                                         ssize_t sub_size = -1;
    3204         828 :                                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, sub_size));
    3205         828 :                                         NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
    3206         828 :                                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, sub_size));
    3207             :                                 }
    3208         828 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
    3209         828 :                                 if (ndr->offset > ndr->relative_highest_offset) {
    3210         828 :                                         ndr->relative_highest_offset = ndr->offset;
    3211             :                                 }
    3212         828 :                                 ndr->offset = _relative_save_offset;
    3213             :                         }
    3214         832 :                         ndr->flags = _flags_save_spoolss_DeviceMode;
    3215             :                 }
    3216             :         }
    3217        1664 :         return NDR_ERR_SUCCESS;
    3218             : }
    3219             : 
    3220           0 : _PUBLIC_ void ndr_print_spoolss_DeviceModeInfo(struct ndr_print *ndr, const char *name, const struct spoolss_DeviceModeInfo *r)
    3221             : {
    3222           0 :         ndr_print_struct(ndr, name, "spoolss_DeviceModeInfo");
    3223           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
    3224           0 :         ndr->depth++;
    3225             :         {
    3226           0 :                 libndr_flags _flags_save_spoolss_DeviceMode = ndr->flags;
    3227           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
    3228           0 :                 ndr_print_ptr(ndr, "devmode", r->devmode);
    3229           0 :                 ndr->depth++;
    3230           0 :                 if (r->devmode) {
    3231           0 :                         ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
    3232             :                 }
    3233           0 :                 ndr->depth--;
    3234           0 :                 ndr->flags = _flags_save_spoolss_DeviceMode;
    3235             :         }
    3236           0 :         ndr->depth--;
    3237             : }
    3238             : 
    3239        8108 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo(struct ndr_push *ndr, ndr_flags_type ndr_flags, const union spoolss_PrinterInfo *r)
    3240             : {
    3241        8108 :         uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
    3242           0 :         uint32_t level;
    3243             :         {
    3244        8108 :                 libndr_flags _flags_save_UNION = ndr->flags;
    3245        8108 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
    3246        8108 :                 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    3247        8108 :                 if (ndr_flags & NDR_SCALARS) {
    3248             :                         /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
    3249        6668 :                         NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
    3250        6668 :                         NDR_CHECK(ndr_push_union_align(ndr, 5));
    3251        6668 :                         switch (level) {
    3252         416 :                                 case 0: {
    3253         416 :                                         NDR_CHECK(ndr_push_align(ndr, 5));
    3254         416 :                                         NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
    3255         416 :                                         NDR_CHECK(ndr_push_spoolss_PrinterInfo0(ndr, NDR_SCALARS, &r->info0));
    3256         416 :                                 break; }
    3257             : 
    3258         792 :                                 case 1: {
    3259         792 :                                         NDR_CHECK(ndr_push_align(ndr, 5));
    3260         792 :                                         NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
    3261         792 :                                         NDR_CHECK(ndr_push_spoolss_PrinterInfo1(ndr, NDR_SCALARS, &r->info1));
    3262         792 :                                 break; }
    3263             : 
    3264        1884 :                                 case 2: {
    3265        1884 :                                         NDR_CHECK(ndr_push_align(ndr, 5));
    3266        1884 :                                         NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
    3267        1884 :                                         NDR_CHECK(ndr_push_spoolss_PrinterInfo2(ndr, NDR_SCALARS, &r->info2));
    3268        1884 :                                 break; }
    3269             : 
    3270         276 :                                 case 3: {
    3271         276 :                                         NDR_CHECK(ndr_push_align(ndr, 5));
    3272         276 :                                         NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
    3273         276 :                                         NDR_CHECK(ndr_push_spoolss_PrinterInfo3(ndr, NDR_SCALARS, &r->info3));
    3274         276 :                                 break; }
    3275             : 
    3276         252 :                                 case 4: {
    3277         252 :                                         NDR_CHECK(ndr_push_align(ndr, 5));
    3278         252 :                                         NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
    3279         252 :                                         NDR_CHECK(ndr_push_spoolss_PrinterInfo4(ndr, NDR_SCALARS, &r->info4));
    3280         252 :                                 break; }
    3281             : 
    3282         252 :                                 case 5: {
    3283         252 :                                         NDR_CHECK(ndr_push_align(ndr, 5));
    3284         252 :                                         NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
    3285         252 :                                         NDR_CHECK(ndr_push_spoolss_PrinterInfo5(ndr, NDR_SCALARS, &r->info5));
    3286         252 :                                 break; }
    3287             : 
    3288         132 :                                 case 6: {
    3289         132 :                                         NDR_CHECK(ndr_push_align(ndr, 4));
    3290         132 :                                         NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
    3291         132 :                                         NDR_CHECK(ndr_push_spoolss_PrinterInfo6(ndr, NDR_SCALARS, &r->info6));
    3292         132 :                                 break; }
    3293             : 
    3294         168 :                                 case 7: {
    3295         168 :                                         NDR_CHECK(ndr_push_align(ndr, 5));
    3296         168 :                                         NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
    3297         168 :                                         NDR_CHECK(ndr_push_spoolss_PrinterInfo7(ndr, NDR_SCALARS, &r->info7));
    3298         168 :                                 break; }
    3299             : 
    3300        2496 :                                 case 8: {
    3301        2496 :                                         NDR_CHECK(ndr_push_align(ndr, 5));
    3302        2496 :                                         NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
    3303        2496 :                                         NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info8));
    3304        2496 :                                 break; }
    3305             : 
    3306           0 :                                 case 9: {
    3307           0 :                                         NDR_CHECK(ndr_push_align(ndr, 5));
    3308           0 :                                         NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
    3309           0 :                                         NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info9));
    3310           0 :                                 break; }
    3311             : 
    3312           0 :                                 default: {
    3313           0 :                                 break; }
    3314             : 
    3315             :                         }
    3316             :                 }
    3317        8108 :                 if (ndr_flags & NDR_BUFFERS) {
    3318        6668 :                         if (!(ndr_flags & NDR_SCALARS)) {
    3319             :                                 /* We didn't get it above, and the token is not needed after this. */
    3320        1440 :                                 NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
    3321             :                         }
    3322        6668 :                         NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
    3323        6668 :                         switch (level) {
    3324         416 :                                 case 0:
    3325         416 :                                         NDR_CHECK(ndr_push_spoolss_PrinterInfo0(ndr, NDR_BUFFERS, &r->info0));
    3326         416 :                                 break;
    3327             : 
    3328         792 :                                 case 1:
    3329         792 :                                         NDR_CHECK(ndr_push_spoolss_PrinterInfo1(ndr, NDR_BUFFERS, &r->info1));
    3330         792 :                                 break;
    3331             : 
    3332        1884 :                                 case 2:
    3333        1884 :                                         NDR_CHECK(ndr_push_spoolss_PrinterInfo2(ndr, NDR_BUFFERS, &r->info2));
    3334        1884 :                                 break;
    3335             : 
    3336         276 :                                 case 3:
    3337         276 :                                         NDR_CHECK(ndr_push_spoolss_PrinterInfo3(ndr, NDR_BUFFERS, &r->info3));
    3338         276 :                                 break;
    3339             : 
    3340         252 :                                 case 4:
    3341         252 :                                         NDR_CHECK(ndr_push_spoolss_PrinterInfo4(ndr, NDR_BUFFERS, &r->info4));
    3342         252 :                                 break;
    3343             : 
    3344         252 :                                 case 5:
    3345         252 :                                         NDR_CHECK(ndr_push_spoolss_PrinterInfo5(ndr, NDR_BUFFERS, &r->info5));
    3346         252 :                                 break;
    3347             : 
    3348         132 :                                 case 6:
    3349         132 :                                 break;
    3350             : 
    3351         168 :                                 case 7:
    3352         168 :                                         NDR_CHECK(ndr_push_spoolss_PrinterInfo7(ndr, NDR_BUFFERS, &r->info7));
    3353         168 :                                 break;
    3354             : 
    3355        2496 :                                 case 8:
    3356        2496 :                                         NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info8));
    3357        2496 :                                 break;
    3358             : 
    3359           0 :                                 case 9:
    3360           0 :                                         NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info9));
    3361           0 :                                 break;
    3362             : 
    3363           0 :                                 default:
    3364           0 :                                 break;
    3365             : 
    3366             :                         }
    3367             :                 }
    3368        8108 :                 ndr->flags = _flags_save_UNION;
    3369             :         }
    3370        8108 :         ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
    3371        8108 :         return NDR_ERR_SUCCESS;
    3372             : }
    3373             : 
    3374        2668 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo(struct ndr_pull *ndr, ndr_flags_type ndr_flags, union spoolss_PrinterInfo *r)
    3375             : {
    3376        2668 :         uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
    3377           0 :         uint32_t level;
    3378             :         {
    3379        2668 :                 libndr_flags _flags_save_UNION = ndr->flags;
    3380        2668 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
    3381        2668 :                 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    3382        2668 :                 if (ndr_flags & NDR_SCALARS) {
    3383             :                         /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
    3384        2208 :                         NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
    3385        2208 :                         NDR_CHECK(ndr_pull_union_align(ndr, 5));
    3386        2208 :                         switch (level) {
    3387         140 :                                 case 0: {
    3388         140 :                                         NDR_CHECK(ndr_pull_align(ndr, 5));
    3389         140 :                                         NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
    3390         140 :                                         NDR_CHECK(ndr_pull_spoolss_PrinterInfo0(ndr, NDR_SCALARS, &r->info0));
    3391         140 :                                 break; }
    3392             : 
    3393         264 :                                 case 1: {
    3394         264 :                                         NDR_CHECK(ndr_pull_align(ndr, 5));
    3395         264 :                                         NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
    3396         264 :                                         NDR_CHECK(ndr_pull_spoolss_PrinterInfo1(ndr, NDR_SCALARS, &r->info1));
    3397         264 :                                 break; }
    3398             : 
    3399         612 :                                 case 2: {
    3400         612 :                                         NDR_CHECK(ndr_pull_align(ndr, 5));
    3401         612 :                                         NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
    3402         612 :                                         NDR_CHECK(ndr_pull_spoolss_PrinterInfo2(ndr, NDR_SCALARS, &r->info2));
    3403         612 :                                 break; }
    3404             : 
    3405          92 :                                 case 3: {
    3406          92 :                                         NDR_CHECK(ndr_pull_align(ndr, 5));
    3407          92 :                                         NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
    3408          92 :                                         NDR_CHECK(ndr_pull_spoolss_PrinterInfo3(ndr, NDR_SCALARS, &r->info3));
    3409          92 :                                 break; }
    3410             : 
    3411          84 :                                 case 4: {
    3412          84 :                                         NDR_CHECK(ndr_pull_align(ndr, 5));
    3413          84 :                                         NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
    3414          84 :                                         NDR_CHECK(ndr_pull_spoolss_PrinterInfo4(ndr, NDR_SCALARS, &r->info4));
    3415          84 :                                 break; }
    3416             : 
    3417          84 :                                 case 5: {
    3418          84 :                                         NDR_CHECK(ndr_pull_align(ndr, 5));
    3419          84 :                                         NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
    3420          84 :                                         NDR_CHECK(ndr_pull_spoolss_PrinterInfo5(ndr, NDR_SCALARS, &r->info5));
    3421          84 :                                 break; }
    3422             : 
    3423          44 :                                 case 6: {
    3424          44 :                                         NDR_CHECK(ndr_pull_align(ndr, 4));
    3425          44 :                                         NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
    3426          44 :                                         NDR_CHECK(ndr_pull_spoolss_PrinterInfo6(ndr, NDR_SCALARS, &r->info6));
    3427          44 :                                 break; }
    3428             : 
    3429          56 :                                 case 7: {
    3430          56 :                                         NDR_CHECK(ndr_pull_align(ndr, 5));
    3431          56 :                                         NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
    3432          56 :                                         NDR_CHECK(ndr_pull_spoolss_PrinterInfo7(ndr, NDR_SCALARS, &r->info7));
    3433          56 :                                 break; }
    3434             : 
    3435         832 :                                 case 8: {
    3436         832 :                                         NDR_CHECK(ndr_pull_align(ndr, 5));
    3437         832 :                                         NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
    3438         832 :                                         NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info8));
    3439         832 :                                 break; }
    3440             : 
    3441           0 :                                 case 9: {
    3442           0 :                                         NDR_CHECK(ndr_pull_align(ndr, 5));
    3443           0 :                                         NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
    3444           0 :                                         NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info9));
    3445           0 :                                 break; }
    3446             : 
    3447           0 :                                 default: {
    3448           0 :                                 break; }
    3449             : 
    3450             :                         }
    3451             :                 }
    3452        2668 :                 if (ndr_flags & NDR_BUFFERS) {
    3453        2208 :                         if (!(ndr_flags & NDR_SCALARS)) {
    3454             :                                 /* We didn't get it above, and the token is not needed after this. */
    3455         460 :                                 NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
    3456             :                         }
    3457        2208 :                         switch (level) {
    3458         140 :                                 case 0:
    3459         140 :                                         NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
    3460         140 :                                         NDR_CHECK(ndr_pull_spoolss_PrinterInfo0(ndr, NDR_BUFFERS, &r->info0));
    3461         140 :                                 break;
    3462             : 
    3463         264 :                                 case 1:
    3464         264 :                                         NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
    3465         264 :                                         NDR_CHECK(ndr_pull_spoolss_PrinterInfo1(ndr, NDR_BUFFERS, &r->info1));
    3466         264 :                                 break;
    3467             : 
    3468         612 :                                 case 2:
    3469         612 :                                         NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
    3470         612 :                                         NDR_CHECK(ndr_pull_spoolss_PrinterInfo2(ndr, NDR_BUFFERS, &r->info2));
    3471         612 :                                 break;
    3472             : 
    3473          92 :                                 case 3:
    3474          92 :                                         NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
    3475          92 :                                         NDR_CHECK(ndr_pull_spoolss_PrinterInfo3(ndr, NDR_BUFFERS, &r->info3));
    3476          92 :                                 break;
    3477             : 
    3478          84 :                                 case 4:
    3479          84 :                                         NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
    3480          84 :                                         NDR_CHECK(ndr_pull_spoolss_PrinterInfo4(ndr, NDR_BUFFERS, &r->info4));
    3481          84 :                                 break;
    3482             : 
    3483          84 :                                 case 5:
    3484          84 :                                         NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
    3485          84 :                                         NDR_CHECK(ndr_pull_spoolss_PrinterInfo5(ndr, NDR_BUFFERS, &r->info5));
    3486          84 :                                 break;
    3487             : 
    3488          44 :                                 case 6:
    3489          44 :                                         NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
    3490          44 :                                 break;
    3491             : 
    3492          56 :                                 case 7:
    3493          56 :                                         NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
    3494          56 :                                         NDR_CHECK(ndr_pull_spoolss_PrinterInfo7(ndr, NDR_BUFFERS, &r->info7));
    3495          56 :                                 break;
    3496             : 
    3497         832 :                                 case 8:
    3498         832 :                                         NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
    3499         832 :                                         NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info8));
    3500         832 :                                 break;
    3501             : 
    3502           0 :                                 case 9:
    3503           0 :                                         NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
    3504           0 :                                         NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info9));
    3505           0 :                                 break;
    3506             : 
    3507           0 :                                 default:
    3508           0 :                                 break;
    3509             : 
    3510             :                         }
    3511             :                 }
    3512        2668 :                 ndr->flags = _flags_save_UNION;
    3513             :         }
    3514        2668 :         ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
    3515        2668 :         return NDR_ERR_SUCCESS;
    3516             : }
    3517             : 
    3518           0 : _PUBLIC_ void ndr_print_spoolss_PrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrinterInfo *r)
    3519             : {
    3520           0 :         uint32_t level;
    3521             :         {
    3522           0 :                 libndr_flags _flags_save_UNION = ndr->flags;
    3523           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
    3524           0 :                 level = ndr_print_steal_switch_value(ndr, r);
    3525           0 :                 ndr_print_union(ndr, name, level, "spoolss_PrinterInfo");
    3526           0 :                 switch (level) {
    3527           0 :                         case 0:
    3528           0 :                                 ndr_print_spoolss_PrinterInfo0(ndr, "info0", &r->info0);
    3529           0 :                         break;
    3530             : 
    3531           0 :                         case 1:
    3532           0 :                                 ndr_print_spoolss_PrinterInfo1(ndr, "info1", &r->info1);
    3533           0 :                         break;
    3534             : 
    3535           0 :                         case 2:
    3536           0 :                                 ndr_print_spoolss_PrinterInfo2(ndr, "info2", &r->info2);
    3537           0 :                         break;
    3538             : 
    3539           0 :                         case 3:
    3540           0 :                                 ndr_print_spoolss_PrinterInfo3(ndr, "info3", &r->info3);
    3541           0 :                         break;
    3542             : 
    3543           0 :                         case 4:
    3544           0 :                                 ndr_print_spoolss_PrinterInfo4(ndr, "info4", &r->info4);
    3545           0 :                         break;
    3546             : 
    3547           0 :                         case 5:
    3548           0 :                                 ndr_print_spoolss_PrinterInfo5(ndr, "info5", &r->info5);
    3549           0 :                         break;
    3550             : 
    3551           0 :                         case 6:
    3552           0 :                                 ndr_print_spoolss_PrinterInfo6(ndr, "info6", &r->info6);
    3553           0 :                         break;
    3554             : 
    3555           0 :                         case 7:
    3556           0 :                                 ndr_print_spoolss_PrinterInfo7(ndr, "info7", &r->info7);
    3557           0 :                         break;
    3558             : 
    3559           0 :                         case 8:
    3560           0 :                                 ndr_print_spoolss_DeviceModeInfo(ndr, "info8", &r->info8);
    3561           0 :                         break;
    3562             : 
    3563           0 :                         case 9:
    3564           0 :                                 ndr_print_spoolss_DeviceModeInfo(ndr, "info9", &r->info9);
    3565           0 :                         break;
    3566             : 
    3567           0 :                         default:
    3568           0 :                         break;
    3569             : 
    3570             :                 }
    3571           0 :                 ndr->flags = _flags_save_UNION;
    3572             :         }
    3573           0 : }
    3574             : 
    3575        3480 : _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo(const union spoolss_PrinterInfo *r, uint32_t level, libndr_flags flags)
    3576             : {
    3577        3480 :         flags |= LIBNDR_FLAG_RELATIVE_REVERSE;
    3578        3480 :         return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo);
    3579             : }
    3580             : 
    3581        1668 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DevmodeContainer(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_DevmodeContainer *r)
    3582             : {
    3583        1668 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    3584        1668 :         if (ndr_flags & NDR_SCALARS) {
    3585        1668 :                 NDR_CHECK(ndr_push_align(ndr, 5));
    3586        1668 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, _ndr_size_spoolss_DeviceMode(r->devmode, ndr->flags)));
    3587        1668 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->devmode));
    3588        1668 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
    3589             :         }
    3590        1668 :         if (ndr_flags & NDR_BUFFERS) {
    3591        1668 :                 if (r->devmode) {
    3592             :                         {
    3593           0 :                                 struct ndr_push *_ndr_devmode;
    3594         312 :                                 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 4, _ndr_size_spoolss_DeviceMode(r->devmode, ndr->flags)));
    3595         312 :                                 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
    3596         312 :                                 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 4, _ndr_size_spoolss_DeviceMode(r->devmode, ndr->flags)));
    3597             :                         }
    3598             :                 }
    3599             :         }
    3600        1668 :         return NDR_ERR_SUCCESS;
    3601             : }
    3602             : 
    3603        1688 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DevmodeContainer(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_DevmodeContainer *r)
    3604             : {
    3605          20 :         uint32_t _ptr_devmode;
    3606        1688 :         TALLOC_CTX *_mem_save_devmode_0 = NULL;
    3607        1688 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    3608        1688 :         if (ndr_flags & NDR_SCALARS) {
    3609        1688 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
    3610        1688 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
    3611        1688 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
    3612        1688 :                 if (_ptr_devmode) {
    3613         316 :                         NDR_PULL_ALLOC(ndr, r->devmode);
    3614             :                 } else {
    3615        1372 :                         r->devmode = NULL;
    3616             :                 }
    3617        1688 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
    3618             :         }
    3619        1688 :         if (ndr_flags & NDR_BUFFERS) {
    3620        1688 :                 if (r->devmode) {
    3621         316 :                         _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
    3622         316 :                         NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
    3623             :                         {
    3624           4 :                                 struct ndr_pull *_ndr_devmode;
    3625         316 :                                 ssize_t sub_size = r->_ndr_size;
    3626         316 :                                 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 4, sub_size));
    3627         316 :                                 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
    3628         316 :                                 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 4, sub_size));
    3629             :                         }
    3630         316 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
    3631             :                 }
    3632             :         }
    3633        1668 :         return NDR_ERR_SUCCESS;
    3634             : }
    3635             : 
    3636           0 : static void ndr_print_flags_spoolss_DevmodeContainer(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_DevmodeContainer *r)
    3637             : {
    3638           0 :         ndr_print_spoolss_DevmodeContainer(ndr, name, r);
    3639           0 : }
    3640             : 
    3641          20 : _PUBLIC_ void ndr_print_spoolss_DevmodeContainer(struct ndr_print *ndr, const char *name, const struct spoolss_DevmodeContainer *r)
    3642             : {
    3643          20 :         ndr_print_struct(ndr, name, "spoolss_DevmodeContainer");
    3644          20 :         if (r == NULL) { ndr_print_null(ndr); return; }
    3645          20 :         ndr->depth++;
    3646          20 :         ndr_print_uint32(ndr, "_ndr_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?_ndr_size_spoolss_DeviceMode(r->devmode, ndr->flags):r->_ndr_size);
    3647          20 :         ndr_print_ptr(ndr, "devmode", r->devmode);
    3648          20 :         ndr->depth++;
    3649          20 :         if (r->devmode) {
    3650           4 :                 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
    3651             :         }
    3652          20 :         ndr->depth--;
    3653          20 :         ndr->depth--;
    3654             : }
    3655             : 
    3656         960 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo1(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_JobInfo1 *r)
    3657             : {
    3658         960 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    3659         960 :         if (ndr_flags & NDR_SCALARS) {
    3660         480 :                 NDR_CHECK(ndr_push_align(ndr, 5));
    3661         480 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
    3662             :                 {
    3663         480 :                         libndr_flags _flags_save_string = ndr->flags;
    3664         480 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    3665         480 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printer_name));
    3666         480 :                         ndr->flags = _flags_save_string;
    3667             :                 }
    3668             :                 {
    3669         480 :                         libndr_flags _flags_save_string = ndr->flags;
    3670         480 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    3671         480 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->server_name));
    3672         480 :                         ndr->flags = _flags_save_string;
    3673             :                 }
    3674             :                 {
    3675         480 :                         libndr_flags _flags_save_string = ndr->flags;
    3676         480 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    3677         480 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->user_name));
    3678         480 :                         ndr->flags = _flags_save_string;
    3679             :                 }
    3680             :                 {
    3681         480 :                         libndr_flags _flags_save_string = ndr->flags;
    3682         480 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    3683         480 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->document_name));
    3684         480 :                         ndr->flags = _flags_save_string;
    3685             :                 }
    3686             :                 {
    3687         480 :                         libndr_flags _flags_save_string = ndr->flags;
    3688         480 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    3689         480 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_type));
    3690         480 :                         ndr->flags = _flags_save_string;
    3691             :                 }
    3692             :                 {
    3693         480 :                         libndr_flags _flags_save_string = ndr->flags;
    3694         480 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    3695         480 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->text_status));
    3696         480 :                         ndr->flags = _flags_save_string;
    3697             :                 }
    3698         480 :                 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
    3699         480 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
    3700         480 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
    3701         480 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
    3702         480 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
    3703         480 :                 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
    3704         480 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
    3705             :         }
    3706         960 :         if (ndr_flags & NDR_BUFFERS) {
    3707             :                 {
    3708         480 :                         libndr_flags _flags_save_string = ndr->flags;
    3709         480 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    3710         480 :                         if (r->printer_name) {
    3711         480 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->printer_name));
    3712         480 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printer_name));
    3713         480 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->printer_name));
    3714             :                         }
    3715         480 :                         ndr->flags = _flags_save_string;
    3716             :                 }
    3717             :                 {
    3718         480 :                         libndr_flags _flags_save_string = ndr->flags;
    3719         480 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    3720         480 :                         if (r->server_name) {
    3721         480 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->server_name));
    3722         480 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->server_name));
    3723         480 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->server_name));
    3724             :                         }
    3725         480 :                         ndr->flags = _flags_save_string;
    3726             :                 }
    3727             :                 {
    3728         480 :                         libndr_flags _flags_save_string = ndr->flags;
    3729         480 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    3730         480 :                         if (r->user_name) {
    3731         480 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->user_name));
    3732         480 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
    3733         480 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->user_name));
    3734             :                         }
    3735         480 :                         ndr->flags = _flags_save_string;
    3736             :                 }
    3737             :                 {
    3738         480 :                         libndr_flags _flags_save_string = ndr->flags;
    3739         480 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    3740         480 :                         if (r->document_name) {
    3741         480 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->document_name));
    3742         480 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->document_name));
    3743         480 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->document_name));
    3744             :                         }
    3745         480 :                         ndr->flags = _flags_save_string;
    3746             :                 }
    3747             :                 {
    3748         480 :                         libndr_flags _flags_save_string = ndr->flags;
    3749         480 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    3750         480 :                         if (r->data_type) {
    3751         480 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_type));
    3752         480 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_type));
    3753         480 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_type));
    3754             :                         }
    3755         480 :                         ndr->flags = _flags_save_string;
    3756             :                 }
    3757             :                 {
    3758         480 :                         libndr_flags _flags_save_string = ndr->flags;
    3759         480 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    3760         480 :                         if (r->text_status) {
    3761         480 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->text_status));
    3762         480 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->text_status));
    3763         480 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->text_status));
    3764             :                         }
    3765         480 :                         ndr->flags = _flags_save_string;
    3766             :                 }
    3767             :         }
    3768         960 :         return NDR_ERR_SUCCESS;
    3769             : }
    3770             : 
    3771         320 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo1(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_JobInfo1 *r)
    3772             : {
    3773           0 :         uint32_t _ptr_printer_name;
    3774         320 :         TALLOC_CTX *_mem_save_printer_name_0 = NULL;
    3775           0 :         uint32_t _ptr_server_name;
    3776         320 :         TALLOC_CTX *_mem_save_server_name_0 = NULL;
    3777           0 :         uint32_t _ptr_user_name;
    3778         320 :         TALLOC_CTX *_mem_save_user_name_0 = NULL;
    3779           0 :         uint32_t _ptr_document_name;
    3780         320 :         TALLOC_CTX *_mem_save_document_name_0 = NULL;
    3781           0 :         uint32_t _ptr_data_type;
    3782         320 :         TALLOC_CTX *_mem_save_data_type_0 = NULL;
    3783           0 :         uint32_t _ptr_text_status;
    3784         320 :         TALLOC_CTX *_mem_save_text_status_0 = NULL;
    3785         320 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    3786         320 :         if (ndr_flags & NDR_SCALARS) {
    3787         160 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
    3788         160 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
    3789             :                 {
    3790         160 :                         libndr_flags _flags_save_string = ndr->flags;
    3791         160 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    3792         160 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
    3793         160 :                         if (_ptr_printer_name) {
    3794         160 :                                 NDR_PULL_ALLOC(ndr, r->printer_name);
    3795         160 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printer_name, _ptr_printer_name));
    3796             :                         } else {
    3797           0 :                                 r->printer_name = NULL;
    3798             :                         }
    3799         160 :                         ndr->flags = _flags_save_string;
    3800             :                 }
    3801             :                 {
    3802         160 :                         libndr_flags _flags_save_string = ndr->flags;
    3803         160 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    3804         160 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
    3805         160 :                         if (_ptr_server_name) {
    3806         160 :                                 NDR_PULL_ALLOC(ndr, r->server_name);
    3807         160 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->server_name, _ptr_server_name));
    3808             :                         } else {
    3809           0 :                                 r->server_name = NULL;
    3810             :                         }
    3811         160 :                         ndr->flags = _flags_save_string;
    3812             :                 }
    3813             :                 {
    3814         160 :                         libndr_flags _flags_save_string = ndr->flags;
    3815         160 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    3816         160 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
    3817         160 :                         if (_ptr_user_name) {
    3818         160 :                                 NDR_PULL_ALLOC(ndr, r->user_name);
    3819         160 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->user_name, _ptr_user_name));
    3820             :                         } else {
    3821           0 :                                 r->user_name = NULL;
    3822             :                         }
    3823         160 :                         ndr->flags = _flags_save_string;
    3824             :                 }
    3825             :                 {
    3826         160 :                         libndr_flags _flags_save_string = ndr->flags;
    3827         160 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    3828         160 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
    3829         160 :                         if (_ptr_document_name) {
    3830         160 :                                 NDR_PULL_ALLOC(ndr, r->document_name);
    3831         160 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->document_name, _ptr_document_name));
    3832             :                         } else {
    3833           0 :                                 r->document_name = NULL;
    3834             :                         }
    3835         160 :                         ndr->flags = _flags_save_string;
    3836             :                 }
    3837             :                 {
    3838         160 :                         libndr_flags _flags_save_string = ndr->flags;
    3839         160 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    3840         160 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
    3841         160 :                         if (_ptr_data_type) {
    3842         160 :                                 NDR_PULL_ALLOC(ndr, r->data_type);
    3843         160 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_type, _ptr_data_type));
    3844             :                         } else {
    3845           0 :                                 r->data_type = NULL;
    3846             :                         }
    3847         160 :                         ndr->flags = _flags_save_string;
    3848             :                 }
    3849             :                 {
    3850         160 :                         libndr_flags _flags_save_string = ndr->flags;
    3851         160 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    3852         160 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
    3853         160 :                         if (_ptr_text_status) {
    3854         160 :                                 NDR_PULL_ALLOC(ndr, r->text_status);
    3855         160 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->text_status, _ptr_text_status));
    3856             :                         } else {
    3857           0 :                                 r->text_status = NULL;
    3858             :                         }
    3859         160 :                         ndr->flags = _flags_save_string;
    3860             :                 }
    3861         160 :                 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
    3862         160 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
    3863         160 :                 if (r->priority > 99) {
    3864           0 :                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value (%"PRIu32") out of range (%"PRIu32" - %"PRIu32")", (uint32_t)(r->priority), (uint32_t)(0), (uint32_t)(99));
    3865             :                 }
    3866         160 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
    3867         160 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
    3868         160 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
    3869         160 :                 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
    3870         160 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
    3871             :         }
    3872         320 :         if (ndr_flags & NDR_BUFFERS) {
    3873             :                 {
    3874         160 :                         libndr_flags _flags_save_string = ndr->flags;
    3875         160 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    3876         160 :                         if (r->printer_name) {
    3877           0 :                                 uint32_t _relative_save_offset;
    3878         160 :                                 _relative_save_offset = ndr->offset;
    3879         160 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printer_name));
    3880         160 :                                 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
    3881         160 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
    3882         160 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printer_name));
    3883         160 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
    3884         160 :                                 if (ndr->offset > ndr->relative_highest_offset) {
    3885          76 :                                         ndr->relative_highest_offset = ndr->offset;
    3886             :                                 }
    3887         160 :                                 ndr->offset = _relative_save_offset;
    3888             :                         }
    3889         160 :                         ndr->flags = _flags_save_string;
    3890             :                 }
    3891             :                 {
    3892         160 :                         libndr_flags _flags_save_string = ndr->flags;
    3893         160 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    3894         160 :                         if (r->server_name) {
    3895           0 :                                 uint32_t _relative_save_offset;
    3896         160 :                                 _relative_save_offset = ndr->offset;
    3897         160 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->server_name));
    3898         160 :                                 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
    3899         160 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
    3900         160 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->server_name));
    3901         160 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
    3902         160 :                                 if (ndr->offset > ndr->relative_highest_offset) {
    3903           0 :                                         ndr->relative_highest_offset = ndr->offset;
    3904             :                                 }
    3905         160 :                                 ndr->offset = _relative_save_offset;
    3906             :                         }
    3907         160 :                         ndr->flags = _flags_save_string;
    3908             :                 }
    3909             :                 {
    3910         160 :                         libndr_flags _flags_save_string = ndr->flags;
    3911         160 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    3912         160 :                         if (r->user_name) {
    3913           0 :                                 uint32_t _relative_save_offset;
    3914         160 :                                 _relative_save_offset = ndr->offset;
    3915         160 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->user_name));
    3916         160 :                                 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
    3917         160 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
    3918         160 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
    3919         160 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
    3920         160 :                                 if (ndr->offset > ndr->relative_highest_offset) {
    3921           0 :                                         ndr->relative_highest_offset = ndr->offset;
    3922             :                                 }
    3923         160 :                                 ndr->offset = _relative_save_offset;
    3924             :                         }
    3925         160 :                         ndr->flags = _flags_save_string;
    3926             :                 }
    3927             :                 {
    3928         160 :                         libndr_flags _flags_save_string = ndr->flags;
    3929         160 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    3930         160 :                         if (r->document_name) {
    3931           0 :                                 uint32_t _relative_save_offset;
    3932         160 :                                 _relative_save_offset = ndr->offset;
    3933         160 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->document_name));
    3934         160 :                                 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
    3935         160 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
    3936         160 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->document_name));
    3937         160 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
    3938         160 :                                 if (ndr->offset > ndr->relative_highest_offset) {
    3939           0 :                                         ndr->relative_highest_offset = ndr->offset;
    3940             :                                 }
    3941         160 :                                 ndr->offset = _relative_save_offset;
    3942             :                         }
    3943         160 :                         ndr->flags = _flags_save_string;
    3944             :                 }
    3945             :                 {
    3946         160 :                         libndr_flags _flags_save_string = ndr->flags;
    3947         160 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    3948         160 :                         if (r->data_type) {
    3949           0 :                                 uint32_t _relative_save_offset;
    3950         160 :                                 _relative_save_offset = ndr->offset;
    3951         160 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_type));
    3952         160 :                                 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
    3953         160 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
    3954         160 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_type));
    3955         160 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
    3956         160 :                                 if (ndr->offset > ndr->relative_highest_offset) {
    3957           0 :                                         ndr->relative_highest_offset = ndr->offset;
    3958             :                                 }
    3959         160 :                                 ndr->offset = _relative_save_offset;
    3960             :                         }
    3961         160 :                         ndr->flags = _flags_save_string;
    3962             :                 }
    3963             :                 {
    3964         160 :                         libndr_flags _flags_save_string = ndr->flags;
    3965         160 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    3966         160 :                         if (r->text_status) {
    3967           0 :                                 uint32_t _relative_save_offset;
    3968         160 :                                 _relative_save_offset = ndr->offset;
    3969         160 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->text_status));
    3970         160 :                                 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
    3971         160 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
    3972         160 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->text_status));
    3973         160 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
    3974         160 :                                 if (ndr->offset > ndr->relative_highest_offset) {
    3975           0 :                                         ndr->relative_highest_offset = ndr->offset;
    3976             :                                 }
    3977         160 :                                 ndr->offset = _relative_save_offset;
    3978             :                         }
    3979         160 :                         ndr->flags = _flags_save_string;
    3980             :                 }
    3981             :         }
    3982         320 :         return NDR_ERR_SUCCESS;
    3983             : }
    3984             : 
    3985           0 : static void ndr_print_flags_spoolss_JobInfo1(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_JobInfo1 *r)
    3986             : {
    3987           0 :         ndr_print_spoolss_JobInfo1(ndr, name, r);
    3988           0 : }
    3989             : 
    3990           0 : _PUBLIC_ void ndr_print_spoolss_JobInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo1 *r)
    3991             : {
    3992           0 :         ndr_print_struct(ndr, name, "spoolss_JobInfo1");
    3993           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
    3994           0 :         ndr->depth++;
    3995           0 :         ndr_print_uint32(ndr, "job_id", r->job_id);
    3996             :         {
    3997           0 :                 libndr_flags _flags_save_string = ndr->flags;
    3998           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    3999           0 :                 ndr_print_ptr(ndr, "printer_name", r->printer_name);
    4000           0 :                 ndr->depth++;
    4001           0 :                 if (r->printer_name) {
    4002           0 :                         ndr_print_string(ndr, "printer_name", r->printer_name);
    4003             :                 }
    4004           0 :                 ndr->depth--;
    4005           0 :                 ndr->flags = _flags_save_string;
    4006             :         }
    4007             :         {
    4008           0 :                 libndr_flags _flags_save_string = ndr->flags;
    4009           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    4010           0 :                 ndr_print_ptr(ndr, "server_name", r->server_name);
    4011           0 :                 ndr->depth++;
    4012           0 :                 if (r->server_name) {
    4013           0 :                         ndr_print_string(ndr, "server_name", r->server_name);
    4014             :                 }
    4015           0 :                 ndr->depth--;
    4016           0 :                 ndr->flags = _flags_save_string;
    4017             :         }
    4018             :         {
    4019           0 :                 libndr_flags _flags_save_string = ndr->flags;
    4020           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    4021           0 :                 ndr_print_ptr(ndr, "user_name", r->user_name);
    4022           0 :                 ndr->depth++;
    4023           0 :                 if (r->user_name) {
    4024           0 :                         ndr_print_string(ndr, "user_name", r->user_name);
    4025             :                 }
    4026           0 :                 ndr->depth--;
    4027           0 :                 ndr->flags = _flags_save_string;
    4028             :         }
    4029             :         {
    4030           0 :                 libndr_flags _flags_save_string = ndr->flags;
    4031           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    4032           0 :                 ndr_print_ptr(ndr, "document_name", r->document_name);
    4033           0 :                 ndr->depth++;
    4034           0 :                 if (r->document_name) {
    4035           0 :                         ndr_print_string(ndr, "document_name", r->document_name);
    4036             :                 }
    4037           0 :                 ndr->depth--;
    4038           0 :                 ndr->flags = _flags_save_string;
    4039             :         }
    4040             :         {
    4041           0 :                 libndr_flags _flags_save_string = ndr->flags;
    4042           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    4043           0 :                 ndr_print_ptr(ndr, "data_type", r->data_type);
    4044           0 :                 ndr->depth++;
    4045           0 :                 if (r->data_type) {
    4046           0 :                         ndr_print_string(ndr, "data_type", r->data_type);
    4047             :                 }
    4048           0 :                 ndr->depth--;
    4049           0 :                 ndr->flags = _flags_save_string;
    4050             :         }
    4051             :         {
    4052           0 :                 libndr_flags _flags_save_string = ndr->flags;
    4053           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    4054           0 :                 ndr_print_ptr(ndr, "text_status", r->text_status);
    4055           0 :                 ndr->depth++;
    4056           0 :                 if (r->text_status) {
    4057           0 :                         ndr_print_string(ndr, "text_status", r->text_status);
    4058             :                 }
    4059           0 :                 ndr->depth--;
    4060           0 :                 ndr->flags = _flags_save_string;
    4061             :         }
    4062           0 :         ndr_print_spoolss_JobStatus(ndr, "status", r->status);
    4063           0 :         ndr_print_uint32(ndr, "priority", r->priority);
    4064           0 :         ndr_print_uint32(ndr, "position", r->position);
    4065           0 :         ndr_print_uint32(ndr, "total_pages", r->total_pages);
    4066           0 :         ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
    4067           0 :         ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
    4068           0 :         ndr->depth--;
    4069             : }
    4070             : 
    4071           0 : _PUBLIC_ size_t ndr_size_spoolss_JobInfo1(const struct spoolss_JobInfo1 *r, libndr_flags flags)
    4072             : {
    4073           0 :         return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo1);
    4074             : }
    4075             : 
    4076         204 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo2(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_JobInfo2 *r)
    4077             : {
    4078         204 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    4079         204 :         if (ndr_flags & NDR_SCALARS) {
    4080         102 :                 NDR_CHECK(ndr_push_align(ndr, 5));
    4081         102 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
    4082             :                 {
    4083         102 :                         libndr_flags _flags_save_string = ndr->flags;
    4084         102 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    4085         102 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printer_name));
    4086         102 :                         ndr->flags = _flags_save_string;
    4087             :                 }
    4088             :                 {
    4089         102 :                         libndr_flags _flags_save_string = ndr->flags;
    4090         102 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    4091         102 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->server_name));
    4092         102 :                         ndr->flags = _flags_save_string;
    4093             :                 }
    4094             :                 {
    4095         102 :                         libndr_flags _flags_save_string = ndr->flags;
    4096         102 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    4097         102 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->user_name));
    4098         102 :                         ndr->flags = _flags_save_string;
    4099             :                 }
    4100             :                 {
    4101         102 :                         libndr_flags _flags_save_string = ndr->flags;
    4102         102 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    4103         102 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->document_name));
    4104         102 :                         ndr->flags = _flags_save_string;
    4105             :                 }
    4106             :                 {
    4107         102 :                         libndr_flags _flags_save_string = ndr->flags;
    4108         102 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    4109         102 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->notify_name));
    4110         102 :                         ndr->flags = _flags_save_string;
    4111             :                 }
    4112             :                 {
    4113         102 :                         libndr_flags _flags_save_string = ndr->flags;
    4114         102 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    4115         102 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_type));
    4116         102 :                         ndr->flags = _flags_save_string;
    4117             :                 }
    4118             :                 {
    4119         102 :                         libndr_flags _flags_save_string = ndr->flags;
    4120         102 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    4121         102 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor));
    4122         102 :                         ndr->flags = _flags_save_string;
    4123             :                 }
    4124             :                 {
    4125         102 :                         libndr_flags _flags_save_string = ndr->flags;
    4126         102 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    4127         102 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->parameters));
    4128         102 :                         ndr->flags = _flags_save_string;
    4129             :                 }
    4130             :                 {
    4131         102 :                         libndr_flags _flags_save_string = ndr->flags;
    4132         102 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    4133         102 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
    4134         102 :                         ndr->flags = _flags_save_string;
    4135             :                 }
    4136             :                 {
    4137         102 :                         libndr_flags _flags_save_spoolss_DeviceMode = ndr->flags;
    4138         102 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
    4139         102 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
    4140         102 :                         ndr->flags = _flags_save_spoolss_DeviceMode;
    4141             :                 }
    4142             :                 {
    4143         102 :                         libndr_flags _flags_save_string = ndr->flags;
    4144         102 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    4145         102 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->text_status));
    4146         102 :                         ndr->flags = _flags_save_string;
    4147             :                 }
    4148             :                 {
    4149         102 :                         libndr_flags _flags_save_spoolss_security_descriptor = ndr->flags;
    4150         102 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
    4151         102 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
    4152         102 :                         ndr->flags = _flags_save_spoolss_security_descriptor;
    4153             :                 }
    4154         102 :                 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
    4155         102 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
    4156         102 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
    4157         102 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
    4158         102 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
    4159         102 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
    4160         102 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
    4161         102 :                 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
    4162         102 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
    4163         102 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
    4164         102 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
    4165             :         }
    4166         204 :         if (ndr_flags & NDR_BUFFERS) {
    4167             :                 {
    4168         102 :                         libndr_flags _flags_save_string = ndr->flags;
    4169         102 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    4170         102 :                         if (r->printer_name) {
    4171         102 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->printer_name));
    4172         102 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printer_name));
    4173         102 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->printer_name));
    4174             :                         }
    4175         102 :                         ndr->flags = _flags_save_string;
    4176             :                 }
    4177             :                 {
    4178         102 :                         libndr_flags _flags_save_string = ndr->flags;
    4179         102 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    4180         102 :                         if (r->server_name) {
    4181         102 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->server_name));
    4182         102 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->server_name));
    4183         102 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->server_name));
    4184             :                         }
    4185         102 :                         ndr->flags = _flags_save_string;
    4186             :                 }
    4187             :                 {
    4188         102 :                         libndr_flags _flags_save_string = ndr->flags;
    4189         102 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    4190         102 :                         if (r->user_name) {
    4191         102 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->user_name));
    4192         102 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
    4193         102 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->user_name));
    4194             :                         }
    4195         102 :                         ndr->flags = _flags_save_string;
    4196             :                 }
    4197             :                 {
    4198         102 :                         libndr_flags _flags_save_string = ndr->flags;
    4199         102 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    4200         102 :                         if (r->document_name) {
    4201         102 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->document_name));
    4202         102 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->document_name));
    4203         102 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->document_name));
    4204             :                         }
    4205         102 :                         ndr->flags = _flags_save_string;
    4206             :                 }
    4207             :                 {
    4208         102 :                         libndr_flags _flags_save_string = ndr->flags;
    4209         102 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    4210         102 :                         if (r->notify_name) {
    4211         102 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->notify_name));
    4212         102 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->notify_name));
    4213         102 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->notify_name));
    4214             :                         }
    4215         102 :                         ndr->flags = _flags_save_string;
    4216             :                 }
    4217             :                 {
    4218         102 :                         libndr_flags _flags_save_string = ndr->flags;
    4219         102 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    4220         102 :                         if (r->data_type) {
    4221         102 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_type));
    4222         102 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_type));
    4223         102 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_type));
    4224             :                         }
    4225         102 :                         ndr->flags = _flags_save_string;
    4226             :                 }
    4227             :                 {
    4228         102 :                         libndr_flags _flags_save_string = ndr->flags;
    4229         102 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    4230         102 :                         if (r->print_processor) {
    4231         102 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->print_processor));
    4232         102 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor));
    4233         102 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->print_processor));
    4234             :                         }
    4235         102 :                         ndr->flags = _flags_save_string;
    4236             :                 }
    4237             :                 {
    4238         102 :                         libndr_flags _flags_save_string = ndr->flags;
    4239         102 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    4240         102 :                         if (r->parameters) {
    4241         102 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->parameters));
    4242         102 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->parameters));
    4243         102 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->parameters));
    4244             :                         }
    4245         102 :                         ndr->flags = _flags_save_string;
    4246             :                 }
    4247             :                 {
    4248         102 :                         libndr_flags _flags_save_string = ndr->flags;
    4249         102 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    4250         102 :                         if (r->driver_name) {
    4251         102 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
    4252         102 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
    4253         102 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
    4254             :                         }
    4255         102 :                         ndr->flags = _flags_save_string;
    4256             :                 }
    4257             :                 {
    4258         102 :                         libndr_flags _flags_save_spoolss_DeviceMode = ndr->flags;
    4259         102 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
    4260         102 :                         if (r->devmode) {
    4261         102 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->devmode));
    4262             :                                 {
    4263           0 :                                         struct ndr_push *_ndr_devmode;
    4264         102 :                                         NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 0, -1));
    4265         102 :                                         NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
    4266         102 :                                         NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 0, -1));
    4267             :                                 }
    4268         102 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->devmode));
    4269             :                         }
    4270         102 :                         ndr->flags = _flags_save_spoolss_DeviceMode;
    4271             :                 }
    4272             :                 {
    4273         102 :                         libndr_flags _flags_save_string = ndr->flags;
    4274         102 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    4275         102 :                         if (r->text_status) {
    4276         102 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->text_status));
    4277         102 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->text_status));
    4278         102 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->text_status));
    4279             :                         }
    4280         102 :                         ndr->flags = _flags_save_string;
    4281             :                 }
    4282             :                 {
    4283         102 :                         libndr_flags _flags_save_spoolss_security_descriptor = ndr->flags;
    4284         102 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
    4285         102 :                         if (r->secdesc) {
    4286           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->secdesc));
    4287             :                                 {
    4288           0 :                                         struct ndr_push *_ndr_secdesc;
    4289           0 :                                         NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
    4290           0 :                                         NDR_CHECK(ndr_push_spoolss_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
    4291           0 :                                         NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_secdesc, 0, -1));
    4292             :                                 }
    4293           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->secdesc));
    4294             :                         }
    4295         102 :                         ndr->flags = _flags_save_spoolss_security_descriptor;
    4296             :                 }
    4297             :         }
    4298         204 :         return NDR_ERR_SUCCESS;
    4299             : }
    4300             : 
    4301          68 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo2(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_JobInfo2 *r)
    4302             : {
    4303           0 :         uint32_t _ptr_printer_name;
    4304          68 :         TALLOC_CTX *_mem_save_printer_name_0 = NULL;
    4305           0 :         uint32_t _ptr_server_name;
    4306          68 :         TALLOC_CTX *_mem_save_server_name_0 = NULL;
    4307           0 :         uint32_t _ptr_user_name;
    4308          68 :         TALLOC_CTX *_mem_save_user_name_0 = NULL;
    4309           0 :         uint32_t _ptr_document_name;
    4310          68 :         TALLOC_CTX *_mem_save_document_name_0 = NULL;
    4311           0 :         uint32_t _ptr_notify_name;
    4312          68 :         TALLOC_CTX *_mem_save_notify_name_0 = NULL;
    4313           0 :         uint32_t _ptr_data_type;
    4314          68 :         TALLOC_CTX *_mem_save_data_type_0 = NULL;
    4315           0 :         uint32_t _ptr_print_processor;
    4316          68 :         TALLOC_CTX *_mem_save_print_processor_0 = NULL;
    4317           0 :         uint32_t _ptr_parameters;
    4318          68 :         TALLOC_CTX *_mem_save_parameters_0 = NULL;
    4319           0 :         uint32_t _ptr_driver_name;
    4320          68 :         TALLOC_CTX *_mem_save_driver_name_0 = NULL;
    4321           0 :         uint32_t _ptr_devmode;
    4322          68 :         TALLOC_CTX *_mem_save_devmode_0 = NULL;
    4323           0 :         uint32_t _ptr_text_status;
    4324          68 :         TALLOC_CTX *_mem_save_text_status_0 = NULL;
    4325           0 :         uint32_t _ptr_secdesc;
    4326          68 :         TALLOC_CTX *_mem_save_secdesc_0 = NULL;
    4327          68 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    4328          68 :         if (ndr_flags & NDR_SCALARS) {
    4329          34 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
    4330          34 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
    4331             :                 {
    4332          34 :                         libndr_flags _flags_save_string = ndr->flags;
    4333          34 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    4334          34 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
    4335          34 :                         if (_ptr_printer_name) {
    4336          34 :                                 NDR_PULL_ALLOC(ndr, r->printer_name);
    4337          34 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printer_name, _ptr_printer_name));
    4338             :                         } else {
    4339           0 :                                 r->printer_name = NULL;
    4340             :                         }
    4341          34 :                         ndr->flags = _flags_save_string;
    4342             :                 }
    4343             :                 {
    4344          34 :                         libndr_flags _flags_save_string = ndr->flags;
    4345          34 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    4346          34 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
    4347          34 :                         if (_ptr_server_name) {
    4348          34 :                                 NDR_PULL_ALLOC(ndr, r->server_name);
    4349          34 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->server_name, _ptr_server_name));
    4350             :                         } else {
    4351           0 :                                 r->server_name = NULL;
    4352             :                         }
    4353          34 :                         ndr->flags = _flags_save_string;
    4354             :                 }
    4355             :                 {
    4356          34 :                         libndr_flags _flags_save_string = ndr->flags;
    4357          34 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    4358          34 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
    4359          34 :                         if (_ptr_user_name) {
    4360          34 :                                 NDR_PULL_ALLOC(ndr, r->user_name);
    4361          34 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->user_name, _ptr_user_name));
    4362             :                         } else {
    4363           0 :                                 r->user_name = NULL;
    4364             :                         }
    4365          34 :                         ndr->flags = _flags_save_string;
    4366             :                 }
    4367             :                 {
    4368          34 :                         libndr_flags _flags_save_string = ndr->flags;
    4369          34 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    4370          34 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
    4371          34 :                         if (_ptr_document_name) {
    4372          34 :                                 NDR_PULL_ALLOC(ndr, r->document_name);
    4373          34 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->document_name, _ptr_document_name));
    4374             :                         } else {
    4375           0 :                                 r->document_name = NULL;
    4376             :                         }
    4377          34 :                         ndr->flags = _flags_save_string;
    4378             :                 }
    4379             :                 {
    4380          34 :                         libndr_flags _flags_save_string = ndr->flags;
    4381          34 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    4382          34 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
    4383          34 :                         if (_ptr_notify_name) {
    4384          34 :                                 NDR_PULL_ALLOC(ndr, r->notify_name);
    4385          34 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->notify_name, _ptr_notify_name));
    4386             :                         } else {
    4387           0 :                                 r->notify_name = NULL;
    4388             :                         }
    4389          34 :                         ndr->flags = _flags_save_string;
    4390             :                 }
    4391             :                 {
    4392          34 :                         libndr_flags _flags_save_string = ndr->flags;
    4393          34 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    4394          34 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
    4395          34 :                         if (_ptr_data_type) {
    4396          34 :                                 NDR_PULL_ALLOC(ndr, r->data_type);
    4397          34 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_type, _ptr_data_type));
    4398             :                         } else {
    4399           0 :                                 r->data_type = NULL;
    4400             :                         }
    4401          34 :                         ndr->flags = _flags_save_string;
    4402             :                 }
    4403             :                 {
    4404          34 :                         libndr_flags _flags_save_string = ndr->flags;
    4405          34 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    4406          34 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
    4407          34 :                         if (_ptr_print_processor) {
    4408          34 :                                 NDR_PULL_ALLOC(ndr, r->print_processor);
    4409          34 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor, _ptr_print_processor));
    4410             :                         } else {
    4411           0 :                                 r->print_processor = NULL;
    4412             :                         }
    4413          34 :                         ndr->flags = _flags_save_string;
    4414             :                 }
    4415             :                 {
    4416          34 :                         libndr_flags _flags_save_string = ndr->flags;
    4417          34 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    4418          34 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
    4419          34 :                         if (_ptr_parameters) {
    4420          34 :                                 NDR_PULL_ALLOC(ndr, r->parameters);
    4421          34 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->parameters, _ptr_parameters));
    4422             :                         } else {
    4423           0 :                                 r->parameters = NULL;
    4424             :                         }
    4425          34 :                         ndr->flags = _flags_save_string;
    4426             :                 }
    4427             :                 {
    4428          34 :                         libndr_flags _flags_save_string = ndr->flags;
    4429          34 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    4430          34 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
    4431          34 :                         if (_ptr_driver_name) {
    4432          34 :                                 NDR_PULL_ALLOC(ndr, r->driver_name);
    4433          34 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
    4434             :                         } else {
    4435           0 :                                 r->driver_name = NULL;
    4436             :                         }
    4437          34 :                         ndr->flags = _flags_save_string;
    4438             :                 }
    4439             :                 {
    4440          34 :                         libndr_flags _flags_save_spoolss_DeviceMode = ndr->flags;
    4441          34 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
    4442          34 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
    4443          34 :                         if (_ptr_devmode) {
    4444          34 :                                 NDR_PULL_ALLOC(ndr, r->devmode);
    4445          34 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
    4446             :                         } else {
    4447           0 :                                 r->devmode = NULL;
    4448             :                         }
    4449          34 :                         ndr->flags = _flags_save_spoolss_DeviceMode;
    4450             :                 }
    4451             :                 {
    4452          34 :                         libndr_flags _flags_save_string = ndr->flags;
    4453          34 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    4454          34 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
    4455          34 :                         if (_ptr_text_status) {
    4456          34 :                                 NDR_PULL_ALLOC(ndr, r->text_status);
    4457          34 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->text_status, _ptr_text_status));
    4458             :                         } else {
    4459           0 :                                 r->text_status = NULL;
    4460             :                         }
    4461          34 :                         ndr->flags = _flags_save_string;
    4462             :                 }
    4463             :                 {
    4464          34 :                         libndr_flags _flags_save_spoolss_security_descriptor = ndr->flags;
    4465          34 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
    4466          34 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
    4467          34 :                         if (_ptr_secdesc) {
    4468           0 :                                 NDR_PULL_ALLOC(ndr, r->secdesc);
    4469           0 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
    4470             :                         } else {
    4471          34 :                                 r->secdesc = NULL;
    4472             :                         }
    4473          34 :                         ndr->flags = _flags_save_spoolss_security_descriptor;
    4474             :                 }
    4475          34 :                 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
    4476          34 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
    4477          34 :                 if (r->priority > 99) {
    4478           0 :                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value (%"PRIu32") out of range (%"PRIu32" - %"PRIu32")", (uint32_t)(r->priority), (uint32_t)(0), (uint32_t)(99));
    4479             :                 }
    4480          34 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
    4481          34 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
    4482          34 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
    4483          34 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
    4484          34 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
    4485          34 :                 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
    4486          34 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
    4487          34 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
    4488          34 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
    4489             :         }
    4490          68 :         if (ndr_flags & NDR_BUFFERS) {
    4491             :                 {
    4492          34 :                         libndr_flags _flags_save_string = ndr->flags;
    4493          34 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    4494          34 :                         if (r->printer_name) {
    4495           0 :                                 uint32_t _relative_save_offset;
    4496          34 :                                 _relative_save_offset = ndr->offset;
    4497          34 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printer_name));
    4498          34 :                                 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
    4499          34 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
    4500          34 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printer_name));
    4501          34 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
    4502          34 :                                 if (ndr->offset > ndr->relative_highest_offset) {
    4503           6 :                                         ndr->relative_highest_offset = ndr->offset;
    4504             :                                 }
    4505          34 :                                 ndr->offset = _relative_save_offset;
    4506             :                         }
    4507          34 :                         ndr->flags = _flags_save_string;
    4508             :                 }
    4509             :                 {
    4510          34 :                         libndr_flags _flags_save_string = ndr->flags;
    4511          34 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    4512          34 :                         if (r->server_name) {
    4513           0 :                                 uint32_t _relative_save_offset;
    4514          34 :                                 _relative_save_offset = ndr->offset;
    4515          34 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->server_name));
    4516          34 :                                 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
    4517          34 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
    4518          34 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->server_name));
    4519          34 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
    4520          34 :                                 if (ndr->offset > ndr->relative_highest_offset) {
    4521           0 :                                         ndr->relative_highest_offset = ndr->offset;
    4522             :                                 }
    4523          34 :                                 ndr->offset = _relative_save_offset;
    4524             :                         }
    4525          34 :                         ndr->flags = _flags_save_string;
    4526             :                 }
    4527             :                 {
    4528          34 :                         libndr_flags _flags_save_string = ndr->flags;
    4529          34 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    4530          34 :                         if (r->user_name) {
    4531           0 :                                 uint32_t _relative_save_offset;
    4532          34 :                                 _relative_save_offset = ndr->offset;
    4533          34 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->user_name));
    4534          34 :                                 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
    4535          34 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
    4536          34 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
    4537          34 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
    4538          34 :                                 if (ndr->offset > ndr->relative_highest_offset) {
    4539           0 :                                         ndr->relative_highest_offset = ndr->offset;
    4540             :                                 }
    4541          34 :                                 ndr->offset = _relative_save_offset;
    4542             :                         }
    4543          34 :                         ndr->flags = _flags_save_string;
    4544             :                 }
    4545             :                 {
    4546          34 :                         libndr_flags _flags_save_string = ndr->flags;
    4547          34 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    4548          34 :                         if (r->document_name) {
    4549           0 :                                 uint32_t _relative_save_offset;
    4550          34 :                                 _relative_save_offset = ndr->offset;
    4551          34 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->document_name));
    4552          34 :                                 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
    4553          34 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
    4554          34 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->document_name));
    4555          34 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
    4556          34 :                                 if (ndr->offset > ndr->relative_highest_offset) {
    4557           0 :                                         ndr->relative_highest_offset = ndr->offset;
    4558             :                                 }
    4559          34 :                                 ndr->offset = _relative_save_offset;
    4560             :                         }
    4561          34 :                         ndr->flags = _flags_save_string;
    4562             :                 }
    4563             :                 {
    4564          34 :                         libndr_flags _flags_save_string = ndr->flags;
    4565          34 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    4566          34 :                         if (r->notify_name) {
    4567           0 :                                 uint32_t _relative_save_offset;
    4568          34 :                                 _relative_save_offset = ndr->offset;
    4569          34 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->notify_name));
    4570          34 :                                 _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
    4571          34 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
    4572          34 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->notify_name));
    4573          34 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
    4574          34 :                                 if (ndr->offset > ndr->relative_highest_offset) {
    4575           0 :                                         ndr->relative_highest_offset = ndr->offset;
    4576             :                                 }
    4577          34 :                                 ndr->offset = _relative_save_offset;
    4578             :                         }
    4579          34 :                         ndr->flags = _flags_save_string;
    4580             :                 }
    4581             :                 {
    4582          34 :                         libndr_flags _flags_save_string = ndr->flags;
    4583          34 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    4584          34 :                         if (r->data_type) {
    4585           0 :                                 uint32_t _relative_save_offset;
    4586          34 :                                 _relative_save_offset = ndr->offset;
    4587          34 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_type));
    4588          34 :                                 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
    4589          34 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
    4590          34 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_type));
    4591          34 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
    4592          34 :                                 if (ndr->offset > ndr->relative_highest_offset) {
    4593           0 :                                         ndr->relative_highest_offset = ndr->offset;
    4594             :                                 }
    4595          34 :                                 ndr->offset = _relative_save_offset;
    4596             :                         }
    4597          34 :                         ndr->flags = _flags_save_string;
    4598             :                 }
    4599             :                 {
    4600          34 :                         libndr_flags _flags_save_string = ndr->flags;
    4601          34 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    4602          34 :                         if (r->print_processor) {
    4603           0 :                                 uint32_t _relative_save_offset;
    4604          34 :                                 _relative_save_offset = ndr->offset;
    4605          34 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor));
    4606          34 :                                 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
    4607          34 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
    4608          34 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor));
    4609          34 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
    4610          34 :                                 if (ndr->offset > ndr->relative_highest_offset) {
    4611           0 :                                         ndr->relative_highest_offset = ndr->offset;
    4612             :                                 }
    4613          34 :                                 ndr->offset = _relative_save_offset;
    4614             :                         }
    4615          34 :                         ndr->flags = _flags_save_string;
    4616             :                 }
    4617             :                 {
    4618          34 :                         libndr_flags _flags_save_string = ndr->flags;
    4619          34 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    4620          34 :                         if (r->parameters) {
    4621           0 :                                 uint32_t _relative_save_offset;
    4622          34 :                                 _relative_save_offset = ndr->offset;
    4623          34 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->parameters));
    4624          34 :                                 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
    4625          34 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
    4626          34 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->parameters));
    4627          34 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
    4628          34 :                                 if (ndr->offset > ndr->relative_highest_offset) {
    4629           0 :                                         ndr->relative_highest_offset = ndr->offset;
    4630             :                                 }
    4631          34 :                                 ndr->offset = _relative_save_offset;
    4632             :                         }
    4633          34 :                         ndr->flags = _flags_save_string;
    4634             :                 }
    4635             :                 {
    4636          34 :                         libndr_flags _flags_save_string = ndr->flags;
    4637          34 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    4638          34 :                         if (r->driver_name) {
    4639           0 :                                 uint32_t _relative_save_offset;
    4640          34 :                                 _relative_save_offset = ndr->offset;
    4641          34 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
    4642          34 :                                 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
    4643          34 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
    4644          34 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
    4645          34 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
    4646          34 :                                 if (ndr->offset > ndr->relative_highest_offset) {
    4647           0 :                                         ndr->relative_highest_offset = ndr->offset;
    4648             :                                 }
    4649          34 :                                 ndr->offset = _relative_save_offset;
    4650             :                         }
    4651          34 :                         ndr->flags = _flags_save_string;
    4652             :                 }
    4653             :                 {
    4654          34 :                         libndr_flags _flags_save_spoolss_DeviceMode = ndr->flags;
    4655          34 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
    4656          34 :                         if (r->devmode) {
    4657           0 :                                 uint32_t _relative_save_offset;
    4658          34 :                                 _relative_save_offset = ndr->offset;
    4659          34 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
    4660          34 :                                 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
    4661          34 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
    4662             :                                 {
    4663           0 :                                         struct ndr_pull *_ndr_devmode;
    4664          34 :                                         ssize_t sub_size = -1;
    4665          34 :                                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, sub_size));
    4666          34 :                                         NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
    4667          34 :                                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, sub_size));
    4668             :                                 }
    4669          34 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
    4670          34 :                                 if (ndr->offset > ndr->relative_highest_offset) {
    4671           0 :                                         ndr->relative_highest_offset = ndr->offset;
    4672             :                                 }
    4673          34 :                                 ndr->offset = _relative_save_offset;
    4674             :                         }
    4675          34 :                         ndr->flags = _flags_save_spoolss_DeviceMode;
    4676             :                 }
    4677             :                 {
    4678          34 :                         libndr_flags _flags_save_string = ndr->flags;
    4679          34 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    4680          34 :                         if (r->text_status) {
    4681           0 :                                 uint32_t _relative_save_offset;
    4682          34 :                                 _relative_save_offset = ndr->offset;
    4683          34 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->text_status));
    4684          34 :                                 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
    4685          34 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
    4686          34 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->text_status));
    4687          34 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
    4688          34 :                                 if (ndr->offset > ndr->relative_highest_offset) {
    4689           0 :                                         ndr->relative_highest_offset = ndr->offset;
    4690             :                                 }
    4691          34 :                                 ndr->offset = _relative_save_offset;
    4692             :                         }
    4693          34 :                         ndr->flags = _flags_save_string;
    4694             :                 }
    4695             :                 {
    4696          34 :                         libndr_flags _flags_save_spoolss_security_descriptor = ndr->flags;
    4697          34 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
    4698          34 :                         if (r->secdesc) {
    4699           0 :                                 uint32_t _relative_save_offset;
    4700           0 :                                 _relative_save_offset = ndr->offset;
    4701           0 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
    4702           0 :                                 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
    4703           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
    4704             :                                 {
    4705           0 :                                         struct ndr_pull *_ndr_secdesc;
    4706           0 :                                         ssize_t sub_size = -1;
    4707           0 :                                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, sub_size));
    4708           0 :                                         NDR_CHECK(ndr_pull_spoolss_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
    4709           0 :                                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, sub_size));
    4710             :                                 }
    4711           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
    4712           0 :                                 if (ndr->offset > ndr->relative_highest_offset) {
    4713           0 :                                         ndr->relative_highest_offset = ndr->offset;
    4714             :                                 }
    4715           0 :                                 ndr->offset = _relative_save_offset;
    4716             :                         }
    4717          34 :                         ndr->flags = _flags_save_spoolss_security_descriptor;
    4718             :                 }
    4719             :         }
    4720          68 :         return NDR_ERR_SUCCESS;
    4721             : }
    4722             : 
    4723           0 : static void ndr_print_flags_spoolss_JobInfo2(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_JobInfo2 *r)
    4724             : {
    4725           0 :         ndr_print_spoolss_JobInfo2(ndr, name, r);
    4726           0 : }
    4727             : 
    4728           0 : _PUBLIC_ void ndr_print_spoolss_JobInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo2 *r)
    4729             : {
    4730           0 :         ndr_print_struct(ndr, name, "spoolss_JobInfo2");
    4731           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
    4732           0 :         ndr->depth++;
    4733           0 :         ndr_print_uint32(ndr, "job_id", r->job_id);
    4734             :         {
    4735           0 :                 libndr_flags _flags_save_string = ndr->flags;
    4736           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    4737           0 :                 ndr_print_ptr(ndr, "printer_name", r->printer_name);
    4738           0 :                 ndr->depth++;
    4739           0 :                 if (r->printer_name) {
    4740           0 :                         ndr_print_string(ndr, "printer_name", r->printer_name);
    4741             :                 }
    4742           0 :                 ndr->depth--;
    4743           0 :                 ndr->flags = _flags_save_string;
    4744             :         }
    4745             :         {
    4746           0 :                 libndr_flags _flags_save_string = ndr->flags;
    4747           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    4748           0 :                 ndr_print_ptr(ndr, "server_name", r->server_name);
    4749           0 :                 ndr->depth++;
    4750           0 :                 if (r->server_name) {
    4751           0 :                         ndr_print_string(ndr, "server_name", r->server_name);
    4752             :                 }
    4753           0 :                 ndr->depth--;
    4754           0 :                 ndr->flags = _flags_save_string;
    4755             :         }
    4756             :         {
    4757           0 :                 libndr_flags _flags_save_string = ndr->flags;
    4758           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    4759           0 :                 ndr_print_ptr(ndr, "user_name", r->user_name);
    4760           0 :                 ndr->depth++;
    4761           0 :                 if (r->user_name) {
    4762           0 :                         ndr_print_string(ndr, "user_name", r->user_name);
    4763             :                 }
    4764           0 :                 ndr->depth--;
    4765           0 :                 ndr->flags = _flags_save_string;
    4766             :         }
    4767             :         {
    4768           0 :                 libndr_flags _flags_save_string = ndr->flags;
    4769           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    4770           0 :                 ndr_print_ptr(ndr, "document_name", r->document_name);
    4771           0 :                 ndr->depth++;
    4772           0 :                 if (r->document_name) {
    4773           0 :                         ndr_print_string(ndr, "document_name", r->document_name);
    4774             :                 }
    4775           0 :                 ndr->depth--;
    4776           0 :                 ndr->flags = _flags_save_string;
    4777             :         }
    4778             :         {
    4779           0 :                 libndr_flags _flags_save_string = ndr->flags;
    4780           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    4781           0 :                 ndr_print_ptr(ndr, "notify_name", r->notify_name);
    4782           0 :                 ndr->depth++;
    4783           0 :                 if (r->notify_name) {
    4784           0 :                         ndr_print_string(ndr, "notify_name", r->notify_name);
    4785             :                 }
    4786           0 :                 ndr->depth--;
    4787           0 :                 ndr->flags = _flags_save_string;
    4788             :         }
    4789             :         {
    4790           0 :                 libndr_flags _flags_save_string = ndr->flags;
    4791           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    4792           0 :                 ndr_print_ptr(ndr, "data_type", r->data_type);
    4793           0 :                 ndr->depth++;
    4794           0 :                 if (r->data_type) {
    4795           0 :                         ndr_print_string(ndr, "data_type", r->data_type);
    4796             :                 }
    4797           0 :                 ndr->depth--;
    4798           0 :                 ndr->flags = _flags_save_string;
    4799             :         }
    4800             :         {
    4801           0 :                 libndr_flags _flags_save_string = ndr->flags;
    4802           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    4803           0 :                 ndr_print_ptr(ndr, "print_processor", r->print_processor);
    4804           0 :                 ndr->depth++;
    4805           0 :                 if (r->print_processor) {
    4806           0 :                         ndr_print_string(ndr, "print_processor", r->print_processor);
    4807             :                 }
    4808           0 :                 ndr->depth--;
    4809           0 :                 ndr->flags = _flags_save_string;
    4810             :         }
    4811             :         {
    4812           0 :                 libndr_flags _flags_save_string = ndr->flags;
    4813           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    4814           0 :                 ndr_print_ptr(ndr, "parameters", r->parameters);
    4815           0 :                 ndr->depth++;
    4816           0 :                 if (r->parameters) {
    4817           0 :                         ndr_print_string(ndr, "parameters", r->parameters);
    4818             :                 }
    4819           0 :                 ndr->depth--;
    4820           0 :                 ndr->flags = _flags_save_string;
    4821             :         }
    4822             :         {
    4823           0 :                 libndr_flags _flags_save_string = ndr->flags;
    4824           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    4825           0 :                 ndr_print_ptr(ndr, "driver_name", r->driver_name);
    4826           0 :                 ndr->depth++;
    4827           0 :                 if (r->driver_name) {
    4828           0 :                         ndr_print_string(ndr, "driver_name", r->driver_name);
    4829             :                 }
    4830           0 :                 ndr->depth--;
    4831           0 :                 ndr->flags = _flags_save_string;
    4832             :         }
    4833             :         {
    4834           0 :                 libndr_flags _flags_save_spoolss_DeviceMode = ndr->flags;
    4835           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
    4836           0 :                 ndr_print_ptr(ndr, "devmode", r->devmode);
    4837           0 :                 ndr->depth++;
    4838           0 :                 if (r->devmode) {
    4839           0 :                         ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
    4840             :                 }
    4841           0 :                 ndr->depth--;
    4842           0 :                 ndr->flags = _flags_save_spoolss_DeviceMode;
    4843             :         }
    4844             :         {
    4845           0 :                 libndr_flags _flags_save_string = ndr->flags;
    4846           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    4847           0 :                 ndr_print_ptr(ndr, "text_status", r->text_status);
    4848           0 :                 ndr->depth++;
    4849           0 :                 if (r->text_status) {
    4850           0 :                         ndr_print_string(ndr, "text_status", r->text_status);
    4851             :                 }
    4852           0 :                 ndr->depth--;
    4853           0 :                 ndr->flags = _flags_save_string;
    4854             :         }
    4855             :         {
    4856           0 :                 libndr_flags _flags_save_spoolss_security_descriptor = ndr->flags;
    4857           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
    4858           0 :                 ndr_print_ptr(ndr, "secdesc", r->secdesc);
    4859           0 :                 ndr->depth++;
    4860           0 :                 if (r->secdesc) {
    4861           0 :                         ndr_print_spoolss_security_descriptor(ndr, "secdesc", r->secdesc);
    4862             :                 }
    4863           0 :                 ndr->depth--;
    4864           0 :                 ndr->flags = _flags_save_spoolss_security_descriptor;
    4865             :         }
    4866           0 :         ndr_print_spoolss_JobStatus(ndr, "status", r->status);
    4867           0 :         ndr_print_uint32(ndr, "priority", r->priority);
    4868           0 :         ndr_print_uint32(ndr, "position", r->position);
    4869           0 :         ndr_print_uint32(ndr, "start_time", r->start_time);
    4870           0 :         ndr_print_uint32(ndr, "until_time", r->until_time);
    4871           0 :         ndr_print_uint32(ndr, "total_pages", r->total_pages);
    4872           0 :         ndr_print_uint32(ndr, "size", r->size);
    4873           0 :         ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
    4874           0 :         ndr_print_uint32(ndr, "time", r->time);
    4875           0 :         ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
    4876           0 :         ndr->depth--;
    4877             : }
    4878             : 
    4879           0 : _PUBLIC_ size_t ndr_size_spoolss_JobInfo2(const struct spoolss_JobInfo2 *r, libndr_flags flags)
    4880             : {
    4881           0 :         return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo2);
    4882             : }
    4883             : 
    4884           0 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo3(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_JobInfo3 *r)
    4885             : {
    4886           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    4887           0 :         if (ndr_flags & NDR_SCALARS) {
    4888           0 :                 NDR_CHECK(ndr_push_align(ndr, 4));
    4889           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
    4890           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->next_job_id));
    4891           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
    4892           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
    4893             :         }
    4894           0 :         if (ndr_flags & NDR_BUFFERS) {
    4895           0 :         }
    4896           0 :         return NDR_ERR_SUCCESS;
    4897             : }
    4898             : 
    4899           0 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo3(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_JobInfo3 *r)
    4900             : {
    4901           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    4902           0 :         if (ndr_flags & NDR_SCALARS) {
    4903           0 :                 NDR_CHECK(ndr_pull_align(ndr, 4));
    4904           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
    4905           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->next_job_id));
    4906           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
    4907           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
    4908             :         }
    4909           0 :         if (ndr_flags & NDR_BUFFERS) {
    4910           0 :         }
    4911           0 :         return NDR_ERR_SUCCESS;
    4912             : }
    4913             : 
    4914           0 : static void ndr_print_flags_spoolss_JobInfo3(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_JobInfo3 *r)
    4915             : {
    4916           0 :         ndr_print_spoolss_JobInfo3(ndr, name, r);
    4917           0 : }
    4918             : 
    4919           0 : _PUBLIC_ void ndr_print_spoolss_JobInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo3 *r)
    4920             : {
    4921           0 :         ndr_print_struct(ndr, name, "spoolss_JobInfo3");
    4922           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
    4923           0 :         ndr->depth++;
    4924           0 :         ndr_print_uint32(ndr, "job_id", r->job_id);
    4925           0 :         ndr_print_uint32(ndr, "next_job_id", r->next_job_id);
    4926           0 :         ndr_print_uint32(ndr, "reserved", r->reserved);
    4927           0 :         ndr->depth--;
    4928             : }
    4929             : 
    4930           0 : _PUBLIC_ size_t ndr_size_spoolss_JobInfo3(const struct spoolss_JobInfo3 *r, libndr_flags flags)
    4931             : {
    4932           0 :         return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo3);
    4933             : }
    4934             : 
    4935           0 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo4(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_JobInfo4 *r)
    4936             : {
    4937           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    4938           0 :         if (ndr_flags & NDR_SCALARS) {
    4939           0 :                 NDR_CHECK(ndr_push_align(ndr, 5));
    4940           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
    4941             :                 {
    4942           0 :                         libndr_flags _flags_save_string = ndr->flags;
    4943           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    4944           0 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printer_name));
    4945           0 :                         ndr->flags = _flags_save_string;
    4946             :                 }
    4947             :                 {
    4948           0 :                         libndr_flags _flags_save_string = ndr->flags;
    4949           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    4950           0 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->server_name));
    4951           0 :                         ndr->flags = _flags_save_string;
    4952             :                 }
    4953             :                 {
    4954           0 :                         libndr_flags _flags_save_string = ndr->flags;
    4955           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    4956           0 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->user_name));
    4957           0 :                         ndr->flags = _flags_save_string;
    4958             :                 }
    4959             :                 {
    4960           0 :                         libndr_flags _flags_save_string = ndr->flags;
    4961           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    4962           0 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->document_name));
    4963           0 :                         ndr->flags = _flags_save_string;
    4964             :                 }
    4965             :                 {
    4966           0 :                         libndr_flags _flags_save_string = ndr->flags;
    4967           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    4968           0 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->notify_name));
    4969           0 :                         ndr->flags = _flags_save_string;
    4970             :                 }
    4971             :                 {
    4972           0 :                         libndr_flags _flags_save_string = ndr->flags;
    4973           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    4974           0 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_type));
    4975           0 :                         ndr->flags = _flags_save_string;
    4976             :                 }
    4977             :                 {
    4978           0 :                         libndr_flags _flags_save_string = ndr->flags;
    4979           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    4980           0 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor));
    4981           0 :                         ndr->flags = _flags_save_string;
    4982             :                 }
    4983             :                 {
    4984           0 :                         libndr_flags _flags_save_string = ndr->flags;
    4985           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    4986           0 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->parameters));
    4987           0 :                         ndr->flags = _flags_save_string;
    4988             :                 }
    4989             :                 {
    4990           0 :                         libndr_flags _flags_save_string = ndr->flags;
    4991           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    4992           0 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
    4993           0 :                         ndr->flags = _flags_save_string;
    4994             :                 }
    4995             :                 {
    4996           0 :                         libndr_flags _flags_save_spoolss_DeviceMode = ndr->flags;
    4997           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
    4998           0 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
    4999           0 :                         ndr->flags = _flags_save_spoolss_DeviceMode;
    5000             :                 }
    5001             :                 {
    5002           0 :                         libndr_flags _flags_save_string = ndr->flags;
    5003           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    5004           0 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->text_status));
    5005           0 :                         ndr->flags = _flags_save_string;
    5006             :                 }
    5007             :                 {
    5008           0 :                         libndr_flags _flags_save_spoolss_security_descriptor = ndr->flags;
    5009           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
    5010           0 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
    5011           0 :                         ndr->flags = _flags_save_spoolss_security_descriptor;
    5012             :                 }
    5013           0 :                 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
    5014           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
    5015           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
    5016           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
    5017           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
    5018           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
    5019           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
    5020           0 :                 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
    5021           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
    5022           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
    5023           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size_high));
    5024           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
    5025             :         }
    5026           0 :         if (ndr_flags & NDR_BUFFERS) {
    5027             :                 {
    5028           0 :                         libndr_flags _flags_save_string = ndr->flags;
    5029           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    5030           0 :                         if (r->printer_name) {
    5031           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->printer_name));
    5032           0 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printer_name));
    5033           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->printer_name));
    5034             :                         }
    5035           0 :                         ndr->flags = _flags_save_string;
    5036             :                 }
    5037             :                 {
    5038           0 :                         libndr_flags _flags_save_string = ndr->flags;
    5039           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    5040           0 :                         if (r->server_name) {
    5041           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->server_name));
    5042           0 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->server_name));
    5043           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->server_name));
    5044             :                         }
    5045           0 :                         ndr->flags = _flags_save_string;
    5046             :                 }
    5047             :                 {
    5048           0 :                         libndr_flags _flags_save_string = ndr->flags;
    5049           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    5050           0 :                         if (r->user_name) {
    5051           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->user_name));
    5052           0 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
    5053           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->user_name));
    5054             :                         }
    5055           0 :                         ndr->flags = _flags_save_string;
    5056             :                 }
    5057             :                 {
    5058           0 :                         libndr_flags _flags_save_string = ndr->flags;
    5059           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    5060           0 :                         if (r->document_name) {
    5061           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->document_name));
    5062           0 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->document_name));
    5063           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->document_name));
    5064             :                         }
    5065           0 :                         ndr->flags = _flags_save_string;
    5066             :                 }
    5067             :                 {
    5068           0 :                         libndr_flags _flags_save_string = ndr->flags;
    5069           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    5070           0 :                         if (r->notify_name) {
    5071           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->notify_name));
    5072           0 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->notify_name));
    5073           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->notify_name));
    5074             :                         }
    5075           0 :                         ndr->flags = _flags_save_string;
    5076             :                 }
    5077             :                 {
    5078           0 :                         libndr_flags _flags_save_string = ndr->flags;
    5079           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    5080           0 :                         if (r->data_type) {
    5081           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_type));
    5082           0 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_type));
    5083           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_type));
    5084             :                         }
    5085           0 :                         ndr->flags = _flags_save_string;
    5086             :                 }
    5087             :                 {
    5088           0 :                         libndr_flags _flags_save_string = ndr->flags;
    5089           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    5090           0 :                         if (r->print_processor) {
    5091           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->print_processor));
    5092           0 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor));
    5093           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->print_processor));
    5094             :                         }
    5095           0 :                         ndr->flags = _flags_save_string;
    5096             :                 }
    5097             :                 {
    5098           0 :                         libndr_flags _flags_save_string = ndr->flags;
    5099           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    5100           0 :                         if (r->parameters) {
    5101           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->parameters));
    5102           0 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->parameters));
    5103           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->parameters));
    5104             :                         }
    5105           0 :                         ndr->flags = _flags_save_string;
    5106             :                 }
    5107             :                 {
    5108           0 :                         libndr_flags _flags_save_string = ndr->flags;
    5109           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    5110           0 :                         if (r->driver_name) {
    5111           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
    5112           0 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
    5113           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
    5114             :                         }
    5115           0 :                         ndr->flags = _flags_save_string;
    5116             :                 }
    5117             :                 {
    5118           0 :                         libndr_flags _flags_save_spoolss_DeviceMode = ndr->flags;
    5119           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
    5120           0 :                         if (r->devmode) {
    5121           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->devmode));
    5122             :                                 {
    5123           0 :                                         struct ndr_push *_ndr_devmode;
    5124           0 :                                         NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 0, -1));
    5125           0 :                                         NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
    5126           0 :                                         NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 0, -1));
    5127             :                                 }
    5128           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->devmode));
    5129             :                         }
    5130           0 :                         ndr->flags = _flags_save_spoolss_DeviceMode;
    5131             :                 }
    5132             :                 {
    5133           0 :                         libndr_flags _flags_save_string = ndr->flags;
    5134           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    5135           0 :                         if (r->text_status) {
    5136           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->text_status));
    5137           0 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->text_status));
    5138           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->text_status));
    5139             :                         }
    5140           0 :                         ndr->flags = _flags_save_string;
    5141             :                 }
    5142             :                 {
    5143           0 :                         libndr_flags _flags_save_spoolss_security_descriptor = ndr->flags;
    5144           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
    5145           0 :                         if (r->secdesc) {
    5146           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->secdesc));
    5147             :                                 {
    5148           0 :                                         struct ndr_push *_ndr_secdesc;
    5149           0 :                                         NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
    5150           0 :                                         NDR_CHECK(ndr_push_spoolss_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
    5151           0 :                                         NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_secdesc, 0, -1));
    5152             :                                 }
    5153           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->secdesc));
    5154             :                         }
    5155           0 :                         ndr->flags = _flags_save_spoolss_security_descriptor;
    5156             :                 }
    5157             :         }
    5158           0 :         return NDR_ERR_SUCCESS;
    5159             : }
    5160             : 
    5161           0 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo4(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_JobInfo4 *r)
    5162             : {
    5163           0 :         uint32_t _ptr_printer_name;
    5164           0 :         TALLOC_CTX *_mem_save_printer_name_0 = NULL;
    5165           0 :         uint32_t _ptr_server_name;
    5166           0 :         TALLOC_CTX *_mem_save_server_name_0 = NULL;
    5167           0 :         uint32_t _ptr_user_name;
    5168           0 :         TALLOC_CTX *_mem_save_user_name_0 = NULL;
    5169           0 :         uint32_t _ptr_document_name;
    5170           0 :         TALLOC_CTX *_mem_save_document_name_0 = NULL;
    5171           0 :         uint32_t _ptr_notify_name;
    5172           0 :         TALLOC_CTX *_mem_save_notify_name_0 = NULL;
    5173           0 :         uint32_t _ptr_data_type;
    5174           0 :         TALLOC_CTX *_mem_save_data_type_0 = NULL;
    5175           0 :         uint32_t _ptr_print_processor;
    5176           0 :         TALLOC_CTX *_mem_save_print_processor_0 = NULL;
    5177           0 :         uint32_t _ptr_parameters;
    5178           0 :         TALLOC_CTX *_mem_save_parameters_0 = NULL;
    5179           0 :         uint32_t _ptr_driver_name;
    5180           0 :         TALLOC_CTX *_mem_save_driver_name_0 = NULL;
    5181           0 :         uint32_t _ptr_devmode;
    5182           0 :         TALLOC_CTX *_mem_save_devmode_0 = NULL;
    5183           0 :         uint32_t _ptr_text_status;
    5184           0 :         TALLOC_CTX *_mem_save_text_status_0 = NULL;
    5185           0 :         uint32_t _ptr_secdesc;
    5186           0 :         TALLOC_CTX *_mem_save_secdesc_0 = NULL;
    5187           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    5188           0 :         if (ndr_flags & NDR_SCALARS) {
    5189           0 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
    5190           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
    5191             :                 {
    5192           0 :                         libndr_flags _flags_save_string = ndr->flags;
    5193           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    5194           0 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
    5195           0 :                         if (_ptr_printer_name) {
    5196           0 :                                 NDR_PULL_ALLOC(ndr, r->printer_name);
    5197           0 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printer_name, _ptr_printer_name));
    5198             :                         } else {
    5199           0 :                                 r->printer_name = NULL;
    5200             :                         }
    5201           0 :                         ndr->flags = _flags_save_string;
    5202             :                 }
    5203             :                 {
    5204           0 :                         libndr_flags _flags_save_string = ndr->flags;
    5205           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    5206           0 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
    5207           0 :                         if (_ptr_server_name) {
    5208           0 :                                 NDR_PULL_ALLOC(ndr, r->server_name);
    5209           0 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->server_name, _ptr_server_name));
    5210             :                         } else {
    5211           0 :                                 r->server_name = NULL;
    5212             :                         }
    5213           0 :                         ndr->flags = _flags_save_string;
    5214             :                 }
    5215             :                 {
    5216           0 :                         libndr_flags _flags_save_string = ndr->flags;
    5217           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    5218           0 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
    5219           0 :                         if (_ptr_user_name) {
    5220           0 :                                 NDR_PULL_ALLOC(ndr, r->user_name);
    5221           0 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->user_name, _ptr_user_name));
    5222             :                         } else {
    5223           0 :                                 r->user_name = NULL;
    5224             :                         }
    5225           0 :                         ndr->flags = _flags_save_string;
    5226             :                 }
    5227             :                 {
    5228           0 :                         libndr_flags _flags_save_string = ndr->flags;
    5229           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    5230           0 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
    5231           0 :                         if (_ptr_document_name) {
    5232           0 :                                 NDR_PULL_ALLOC(ndr, r->document_name);
    5233           0 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->document_name, _ptr_document_name));
    5234             :                         } else {
    5235           0 :                                 r->document_name = NULL;
    5236             :                         }
    5237           0 :                         ndr->flags = _flags_save_string;
    5238             :                 }
    5239             :                 {
    5240           0 :                         libndr_flags _flags_save_string = ndr->flags;
    5241           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    5242           0 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
    5243           0 :                         if (_ptr_notify_name) {
    5244           0 :                                 NDR_PULL_ALLOC(ndr, r->notify_name);
    5245           0 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->notify_name, _ptr_notify_name));
    5246             :                         } else {
    5247           0 :                                 r->notify_name = NULL;
    5248             :                         }
    5249           0 :                         ndr->flags = _flags_save_string;
    5250             :                 }
    5251             :                 {
    5252           0 :                         libndr_flags _flags_save_string = ndr->flags;
    5253           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    5254           0 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
    5255           0 :                         if (_ptr_data_type) {
    5256           0 :                                 NDR_PULL_ALLOC(ndr, r->data_type);
    5257           0 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_type, _ptr_data_type));
    5258             :                         } else {
    5259           0 :                                 r->data_type = NULL;
    5260             :                         }
    5261           0 :                         ndr->flags = _flags_save_string;
    5262             :                 }
    5263             :                 {
    5264           0 :                         libndr_flags _flags_save_string = ndr->flags;
    5265           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    5266           0 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
    5267           0 :                         if (_ptr_print_processor) {
    5268           0 :                                 NDR_PULL_ALLOC(ndr, r->print_processor);
    5269           0 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor, _ptr_print_processor));
    5270             :                         } else {
    5271           0 :                                 r->print_processor = NULL;
    5272             :                         }
    5273           0 :                         ndr->flags = _flags_save_string;
    5274             :                 }
    5275             :                 {
    5276           0 :                         libndr_flags _flags_save_string = ndr->flags;
    5277           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    5278           0 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
    5279           0 :                         if (_ptr_parameters) {
    5280           0 :                                 NDR_PULL_ALLOC(ndr, r->parameters);
    5281           0 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->parameters, _ptr_parameters));
    5282             :                         } else {
    5283           0 :                                 r->parameters = NULL;
    5284             :                         }
    5285           0 :                         ndr->flags = _flags_save_string;
    5286             :                 }
    5287             :                 {
    5288           0 :                         libndr_flags _flags_save_string = ndr->flags;
    5289           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    5290           0 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
    5291           0 :                         if (_ptr_driver_name) {
    5292           0 :                                 NDR_PULL_ALLOC(ndr, r->driver_name);
    5293           0 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
    5294             :                         } else {
    5295           0 :                                 r->driver_name = NULL;
    5296             :                         }
    5297           0 :                         ndr->flags = _flags_save_string;
    5298             :                 }
    5299             :                 {
    5300           0 :                         libndr_flags _flags_save_spoolss_DeviceMode = ndr->flags;
    5301           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
    5302           0 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
    5303           0 :                         if (_ptr_devmode) {
    5304           0 :                                 NDR_PULL_ALLOC(ndr, r->devmode);
    5305           0 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
    5306             :                         } else {
    5307           0 :                                 r->devmode = NULL;
    5308             :                         }
    5309           0 :                         ndr->flags = _flags_save_spoolss_DeviceMode;
    5310             :                 }
    5311             :                 {
    5312           0 :                         libndr_flags _flags_save_string = ndr->flags;
    5313           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    5314           0 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
    5315           0 :                         if (_ptr_text_status) {
    5316           0 :                                 NDR_PULL_ALLOC(ndr, r->text_status);
    5317           0 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->text_status, _ptr_text_status));
    5318             :                         } else {
    5319           0 :                                 r->text_status = NULL;
    5320             :                         }
    5321           0 :                         ndr->flags = _flags_save_string;
    5322             :                 }
    5323             :                 {
    5324           0 :                         libndr_flags _flags_save_spoolss_security_descriptor = ndr->flags;
    5325           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
    5326           0 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
    5327           0 :                         if (_ptr_secdesc) {
    5328           0 :                                 NDR_PULL_ALLOC(ndr, r->secdesc);
    5329           0 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
    5330             :                         } else {
    5331           0 :                                 r->secdesc = NULL;
    5332             :                         }
    5333           0 :                         ndr->flags = _flags_save_spoolss_security_descriptor;
    5334             :                 }
    5335           0 :                 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
    5336           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
    5337           0 :                 if (r->priority > 99) {
    5338           0 :                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value (%"PRIu32") out of range (%"PRIu32" - %"PRIu32")", (uint32_t)(r->priority), (uint32_t)(0), (uint32_t)(99));
    5339             :                 }
    5340           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
    5341           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
    5342           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
    5343           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
    5344           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
    5345           0 :                 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
    5346           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
    5347           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
    5348           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size_high));
    5349           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
    5350             :         }
    5351           0 :         if (ndr_flags & NDR_BUFFERS) {
    5352             :                 {
    5353           0 :                         libndr_flags _flags_save_string = ndr->flags;
    5354           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    5355           0 :                         if (r->printer_name) {
    5356           0 :                                 uint32_t _relative_save_offset;
    5357           0 :                                 _relative_save_offset = ndr->offset;
    5358           0 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printer_name));
    5359           0 :                                 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
    5360           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
    5361           0 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printer_name));
    5362           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
    5363           0 :                                 if (ndr->offset > ndr->relative_highest_offset) {
    5364           0 :                                         ndr->relative_highest_offset = ndr->offset;
    5365             :                                 }
    5366           0 :                                 ndr->offset = _relative_save_offset;
    5367             :                         }
    5368           0 :                         ndr->flags = _flags_save_string;
    5369             :                 }
    5370             :                 {
    5371           0 :                         libndr_flags _flags_save_string = ndr->flags;
    5372           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    5373           0 :                         if (r->server_name) {
    5374           0 :                                 uint32_t _relative_save_offset;
    5375           0 :                                 _relative_save_offset = ndr->offset;
    5376           0 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->server_name));
    5377           0 :                                 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
    5378           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
    5379           0 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->server_name));
    5380           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
    5381           0 :                                 if (ndr->offset > ndr->relative_highest_offset) {
    5382           0 :                                         ndr->relative_highest_offset = ndr->offset;
    5383             :                                 }
    5384           0 :                                 ndr->offset = _relative_save_offset;
    5385             :                         }
    5386           0 :                         ndr->flags = _flags_save_string;
    5387             :                 }
    5388             :                 {
    5389           0 :                         libndr_flags _flags_save_string = ndr->flags;
    5390           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    5391           0 :                         if (r->user_name) {
    5392           0 :                                 uint32_t _relative_save_offset;
    5393           0 :                                 _relative_save_offset = ndr->offset;
    5394           0 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->user_name));
    5395           0 :                                 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
    5396           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
    5397           0 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
    5398           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
    5399           0 :                                 if (ndr->offset > ndr->relative_highest_offset) {
    5400           0 :                                         ndr->relative_highest_offset = ndr->offset;
    5401             :                                 }
    5402           0 :                                 ndr->offset = _relative_save_offset;
    5403             :                         }
    5404           0 :                         ndr->flags = _flags_save_string;
    5405             :                 }
    5406             :                 {
    5407           0 :                         libndr_flags _flags_save_string = ndr->flags;
    5408           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    5409           0 :                         if (r->document_name) {
    5410           0 :                                 uint32_t _relative_save_offset;
    5411           0 :                                 _relative_save_offset = ndr->offset;
    5412           0 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->document_name));
    5413           0 :                                 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
    5414           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
    5415           0 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->document_name));
    5416           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
    5417           0 :                                 if (ndr->offset > ndr->relative_highest_offset) {
    5418           0 :                                         ndr->relative_highest_offset = ndr->offset;
    5419             :                                 }
    5420           0 :                                 ndr->offset = _relative_save_offset;
    5421             :                         }
    5422           0 :                         ndr->flags = _flags_save_string;
    5423             :                 }
    5424             :                 {
    5425           0 :                         libndr_flags _flags_save_string = ndr->flags;
    5426           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    5427           0 :                         if (r->notify_name) {
    5428           0 :                                 uint32_t _relative_save_offset;
    5429           0 :                                 _relative_save_offset = ndr->offset;
    5430           0 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->notify_name));
    5431           0 :                                 _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
    5432           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
    5433           0 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->notify_name));
    5434           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
    5435           0 :                                 if (ndr->offset > ndr->relative_highest_offset) {
    5436           0 :                                         ndr->relative_highest_offset = ndr->offset;
    5437             :                                 }
    5438           0 :                                 ndr->offset = _relative_save_offset;
    5439             :                         }
    5440           0 :                         ndr->flags = _flags_save_string;
    5441             :                 }
    5442             :                 {
    5443           0 :                         libndr_flags _flags_save_string = ndr->flags;
    5444           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    5445           0 :                         if (r->data_type) {
    5446           0 :                                 uint32_t _relative_save_offset;
    5447           0 :                                 _relative_save_offset = ndr->offset;
    5448           0 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_type));
    5449           0 :                                 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
    5450           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
    5451           0 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_type));
    5452           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
    5453           0 :                                 if (ndr->offset > ndr->relative_highest_offset) {
    5454           0 :                                         ndr->relative_highest_offset = ndr->offset;
    5455             :                                 }
    5456           0 :                                 ndr->offset = _relative_save_offset;
    5457             :                         }
    5458           0 :                         ndr->flags = _flags_save_string;
    5459             :                 }
    5460             :                 {
    5461           0 :                         libndr_flags _flags_save_string = ndr->flags;
    5462           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    5463           0 :                         if (r->print_processor) {
    5464           0 :                                 uint32_t _relative_save_offset;
    5465           0 :                                 _relative_save_offset = ndr->offset;
    5466           0 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor));
    5467           0 :                                 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
    5468           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
    5469           0 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor));
    5470           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
    5471           0 :                                 if (ndr->offset > ndr->relative_highest_offset) {
    5472           0 :                                         ndr->relative_highest_offset = ndr->offset;
    5473             :                                 }
    5474           0 :                                 ndr->offset = _relative_save_offset;
    5475             :                         }
    5476           0 :                         ndr->flags = _flags_save_string;
    5477             :                 }
    5478             :                 {
    5479           0 :                         libndr_flags _flags_save_string = ndr->flags;
    5480           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    5481           0 :                         if (r->parameters) {
    5482           0 :                                 uint32_t _relative_save_offset;
    5483           0 :                                 _relative_save_offset = ndr->offset;
    5484           0 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->parameters));
    5485           0 :                                 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
    5486           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
    5487           0 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->parameters));
    5488           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
    5489           0 :                                 if (ndr->offset > ndr->relative_highest_offset) {
    5490           0 :                                         ndr->relative_highest_offset = ndr->offset;
    5491             :                                 }
    5492           0 :                                 ndr->offset = _relative_save_offset;
    5493             :                         }
    5494           0 :                         ndr->flags = _flags_save_string;
    5495             :                 }
    5496             :                 {
    5497           0 :                         libndr_flags _flags_save_string = ndr->flags;
    5498           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    5499           0 :                         if (r->driver_name) {
    5500           0 :                                 uint32_t _relative_save_offset;
    5501           0 :                                 _relative_save_offset = ndr->offset;
    5502           0 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
    5503           0 :                                 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
    5504           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
    5505           0 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
    5506           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
    5507           0 :                                 if (ndr->offset > ndr->relative_highest_offset) {
    5508           0 :                                         ndr->relative_highest_offset = ndr->offset;
    5509             :                                 }
    5510           0 :                                 ndr->offset = _relative_save_offset;
    5511             :                         }
    5512           0 :                         ndr->flags = _flags_save_string;
    5513             :                 }
    5514             :                 {
    5515           0 :                         libndr_flags _flags_save_spoolss_DeviceMode = ndr->flags;
    5516           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
    5517           0 :                         if (r->devmode) {
    5518           0 :                                 uint32_t _relative_save_offset;
    5519           0 :                                 _relative_save_offset = ndr->offset;
    5520           0 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
    5521           0 :                                 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
    5522           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
    5523             :                                 {
    5524           0 :                                         struct ndr_pull *_ndr_devmode;
    5525           0 :                                         ssize_t sub_size = -1;
    5526           0 :                                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, sub_size));
    5527           0 :                                         NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
    5528           0 :                                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, sub_size));
    5529             :                                 }
    5530           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
    5531           0 :                                 if (ndr->offset > ndr->relative_highest_offset) {
    5532           0 :                                         ndr->relative_highest_offset = ndr->offset;
    5533             :                                 }
    5534           0 :                                 ndr->offset = _relative_save_offset;
    5535             :                         }
    5536           0 :                         ndr->flags = _flags_save_spoolss_DeviceMode;
    5537             :                 }
    5538             :                 {
    5539           0 :                         libndr_flags _flags_save_string = ndr->flags;
    5540           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    5541           0 :                         if (r->text_status) {
    5542           0 :                                 uint32_t _relative_save_offset;
    5543           0 :                                 _relative_save_offset = ndr->offset;
    5544           0 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->text_status));
    5545           0 :                                 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
    5546           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
    5547           0 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->text_status));
    5548           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
    5549           0 :                                 if (ndr->offset > ndr->relative_highest_offset) {
    5550           0 :                                         ndr->relative_highest_offset = ndr->offset;
    5551             :                                 }
    5552           0 :                                 ndr->offset = _relative_save_offset;
    5553             :                         }
    5554           0 :                         ndr->flags = _flags_save_string;
    5555             :                 }
    5556             :                 {
    5557           0 :                         libndr_flags _flags_save_spoolss_security_descriptor = ndr->flags;
    5558           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
    5559           0 :                         if (r->secdesc) {
    5560           0 :                                 uint32_t _relative_save_offset;
    5561           0 :                                 _relative_save_offset = ndr->offset;
    5562           0 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
    5563           0 :                                 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
    5564           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
    5565             :                                 {
    5566           0 :                                         struct ndr_pull *_ndr_secdesc;
    5567           0 :                                         ssize_t sub_size = -1;
    5568           0 :                                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, sub_size));
    5569           0 :                                         NDR_CHECK(ndr_pull_spoolss_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
    5570           0 :                                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, sub_size));
    5571             :                                 }
    5572           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
    5573           0 :                                 if (ndr->offset > ndr->relative_highest_offset) {
    5574           0 :                                         ndr->relative_highest_offset = ndr->offset;
    5575             :                                 }
    5576           0 :                                 ndr->offset = _relative_save_offset;
    5577             :                         }
    5578           0 :                         ndr->flags = _flags_save_spoolss_security_descriptor;
    5579             :                 }
    5580             :         }
    5581           0 :         return NDR_ERR_SUCCESS;
    5582             : }
    5583             : 
    5584           0 : static void ndr_print_flags_spoolss_JobInfo4(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_JobInfo4 *r)
    5585             : {
    5586           0 :         ndr_print_spoolss_JobInfo4(ndr, name, r);
    5587           0 : }
    5588             : 
    5589           0 : _PUBLIC_ void ndr_print_spoolss_JobInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo4 *r)
    5590             : {
    5591           0 :         ndr_print_struct(ndr, name, "spoolss_JobInfo4");
    5592           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
    5593           0 :         ndr->depth++;
    5594           0 :         ndr_print_uint32(ndr, "job_id", r->job_id);
    5595             :         {
    5596           0 :                 libndr_flags _flags_save_string = ndr->flags;
    5597           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    5598           0 :                 ndr_print_ptr(ndr, "printer_name", r->printer_name);
    5599           0 :                 ndr->depth++;
    5600           0 :                 if (r->printer_name) {
    5601           0 :                         ndr_print_string(ndr, "printer_name", r->printer_name);
    5602             :                 }
    5603           0 :                 ndr->depth--;
    5604           0 :                 ndr->flags = _flags_save_string;
    5605             :         }
    5606             :         {
    5607           0 :                 libndr_flags _flags_save_string = ndr->flags;
    5608           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    5609           0 :                 ndr_print_ptr(ndr, "server_name", r->server_name);
    5610           0 :                 ndr->depth++;
    5611           0 :                 if (r->server_name) {
    5612           0 :                         ndr_print_string(ndr, "server_name", r->server_name);
    5613             :                 }
    5614           0 :                 ndr->depth--;
    5615           0 :                 ndr->flags = _flags_save_string;
    5616             :         }
    5617             :         {
    5618           0 :                 libndr_flags _flags_save_string = ndr->flags;
    5619           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    5620           0 :                 ndr_print_ptr(ndr, "user_name", r->user_name);
    5621           0 :                 ndr->depth++;
    5622           0 :                 if (r->user_name) {
    5623           0 :                         ndr_print_string(ndr, "user_name", r->user_name);
    5624             :                 }
    5625           0 :                 ndr->depth--;
    5626           0 :                 ndr->flags = _flags_save_string;
    5627             :         }
    5628             :         {
    5629           0 :                 libndr_flags _flags_save_string = ndr->flags;
    5630           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    5631           0 :                 ndr_print_ptr(ndr, "document_name", r->document_name);
    5632           0 :                 ndr->depth++;
    5633           0 :                 if (r->document_name) {
    5634           0 :                         ndr_print_string(ndr, "document_name", r->document_name);
    5635             :                 }
    5636           0 :                 ndr->depth--;
    5637           0 :                 ndr->flags = _flags_save_string;
    5638             :         }
    5639             :         {
    5640           0 :                 libndr_flags _flags_save_string = ndr->flags;
    5641           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    5642           0 :                 ndr_print_ptr(ndr, "notify_name", r->notify_name);
    5643           0 :                 ndr->depth++;
    5644           0 :                 if (r->notify_name) {
    5645           0 :                         ndr_print_string(ndr, "notify_name", r->notify_name);
    5646             :                 }
    5647           0 :                 ndr->depth--;
    5648           0 :                 ndr->flags = _flags_save_string;
    5649             :         }
    5650             :         {
    5651           0 :                 libndr_flags _flags_save_string = ndr->flags;
    5652           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    5653           0 :                 ndr_print_ptr(ndr, "data_type", r->data_type);
    5654           0 :                 ndr->depth++;
    5655           0 :                 if (r->data_type) {
    5656           0 :                         ndr_print_string(ndr, "data_type", r->data_type);
    5657             :                 }
    5658           0 :                 ndr->depth--;
    5659           0 :                 ndr->flags = _flags_save_string;
    5660             :         }
    5661             :         {
    5662           0 :                 libndr_flags _flags_save_string = ndr->flags;
    5663           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    5664           0 :                 ndr_print_ptr(ndr, "print_processor", r->print_processor);
    5665           0 :                 ndr->depth++;
    5666           0 :                 if (r->print_processor) {
    5667           0 :                         ndr_print_string(ndr, "print_processor", r->print_processor);
    5668             :                 }
    5669           0 :                 ndr->depth--;
    5670           0 :                 ndr->flags = _flags_save_string;
    5671             :         }
    5672             :         {
    5673           0 :                 libndr_flags _flags_save_string = ndr->flags;
    5674           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    5675           0 :                 ndr_print_ptr(ndr, "parameters", r->parameters);
    5676           0 :                 ndr->depth++;
    5677           0 :                 if (r->parameters) {
    5678           0 :                         ndr_print_string(ndr, "parameters", r->parameters);
    5679             :                 }
    5680           0 :                 ndr->depth--;
    5681           0 :                 ndr->flags = _flags_save_string;
    5682             :         }
    5683             :         {
    5684           0 :                 libndr_flags _flags_save_string = ndr->flags;
    5685           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    5686           0 :                 ndr_print_ptr(ndr, "driver_name", r->driver_name);
    5687           0 :                 ndr->depth++;
    5688           0 :                 if (r->driver_name) {
    5689           0 :                         ndr_print_string(ndr, "driver_name", r->driver_name);
    5690             :                 }
    5691           0 :                 ndr->depth--;
    5692           0 :                 ndr->flags = _flags_save_string;
    5693             :         }
    5694             :         {
    5695           0 :                 libndr_flags _flags_save_spoolss_DeviceMode = ndr->flags;
    5696           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
    5697           0 :                 ndr_print_ptr(ndr, "devmode", r->devmode);
    5698           0 :                 ndr->depth++;
    5699           0 :                 if (r->devmode) {
    5700           0 :                         ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
    5701             :                 }
    5702           0 :                 ndr->depth--;
    5703           0 :                 ndr->flags = _flags_save_spoolss_DeviceMode;
    5704             :         }
    5705             :         {
    5706           0 :                 libndr_flags _flags_save_string = ndr->flags;
    5707           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    5708           0 :                 ndr_print_ptr(ndr, "text_status", r->text_status);
    5709           0 :                 ndr->depth++;
    5710           0 :                 if (r->text_status) {
    5711           0 :                         ndr_print_string(ndr, "text_status", r->text_status);
    5712             :                 }
    5713           0 :                 ndr->depth--;
    5714           0 :                 ndr->flags = _flags_save_string;
    5715             :         }
    5716             :         {
    5717           0 :                 libndr_flags _flags_save_spoolss_security_descriptor = ndr->flags;
    5718           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
    5719           0 :                 ndr_print_ptr(ndr, "secdesc", r->secdesc);
    5720           0 :                 ndr->depth++;
    5721           0 :                 if (r->secdesc) {
    5722           0 :                         ndr_print_spoolss_security_descriptor(ndr, "secdesc", r->secdesc);
    5723             :                 }
    5724           0 :                 ndr->depth--;
    5725           0 :                 ndr->flags = _flags_save_spoolss_security_descriptor;
    5726             :         }
    5727           0 :         ndr_print_spoolss_JobStatus(ndr, "status", r->status);
    5728           0 :         ndr_print_uint32(ndr, "priority", r->priority);
    5729           0 :         ndr_print_uint32(ndr, "position", r->position);
    5730           0 :         ndr_print_uint32(ndr, "start_time", r->start_time);
    5731           0 :         ndr_print_uint32(ndr, "until_time", r->until_time);
    5732           0 :         ndr_print_uint32(ndr, "total_pages", r->total_pages);
    5733           0 :         ndr_print_uint32(ndr, "size", r->size);
    5734           0 :         ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
    5735           0 :         ndr_print_uint32(ndr, "time", r->time);
    5736           0 :         ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
    5737           0 :         ndr_print_uint32(ndr, "size_high", r->size_high);
    5738           0 :         ndr->depth--;
    5739             : }
    5740             : 
    5741           0 : _PUBLIC_ size_t ndr_size_spoolss_JobInfo4(const struct spoolss_JobInfo4 *r, libndr_flags flags)
    5742             : {
    5743           0 :         return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo4);
    5744             : }
    5745             : 
    5746         972 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo(struct ndr_push *ndr, ndr_flags_type ndr_flags, const union spoolss_JobInfo *r)
    5747             : {
    5748         972 :         uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
    5749           0 :         uint32_t level;
    5750             :         {
    5751         972 :                 libndr_flags _flags_save_UNION = ndr->flags;
    5752         972 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
    5753         972 :                 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    5754         972 :                 if (ndr_flags & NDR_SCALARS) {
    5755             :                         /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
    5756         582 :                         NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
    5757         582 :                         NDR_CHECK(ndr_push_union_align(ndr, 5));
    5758         582 :                         switch (level) {
    5759         480 :                                 case 1: {
    5760         480 :                                         NDR_CHECK(ndr_push_align(ndr, 5));
    5761         480 :                                         NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
    5762         480 :                                         NDR_CHECK(ndr_push_spoolss_JobInfo1(ndr, NDR_SCALARS, &r->info1));
    5763         480 :                                 break; }
    5764             : 
    5765         102 :                                 case 2: {
    5766         102 :                                         NDR_CHECK(ndr_push_align(ndr, 5));
    5767         102 :                                         NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
    5768         102 :                                         NDR_CHECK(ndr_push_spoolss_JobInfo2(ndr, NDR_SCALARS, &r->info2));
    5769         102 :                                 break; }
    5770             : 
    5771           0 :                                 case 3: {
    5772           0 :                                         NDR_CHECK(ndr_push_align(ndr, 4));
    5773           0 :                                         NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
    5774           0 :                                         NDR_CHECK(ndr_push_spoolss_JobInfo3(ndr, NDR_SCALARS, &r->info3));
    5775           0 :                                 break; }
    5776             : 
    5777           0 :                                 case 4: {
    5778           0 :                                         NDR_CHECK(ndr_push_align(ndr, 5));
    5779           0 :                                         NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
    5780           0 :                                         NDR_CHECK(ndr_push_spoolss_JobInfo4(ndr, NDR_SCALARS, &r->info4));
    5781           0 :                                 break; }
    5782             : 
    5783           0 :                                 default: {
    5784           0 :                                 break; }
    5785             : 
    5786             :                         }
    5787             :                 }
    5788         972 :                 if (ndr_flags & NDR_BUFFERS) {
    5789         582 :                         if (!(ndr_flags & NDR_SCALARS)) {
    5790             :                                 /* We didn't get it above, and the token is not needed after this. */
    5791         390 :                                 NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
    5792             :                         }
    5793         582 :                         NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
    5794         582 :                         switch (level) {
    5795         480 :                                 case 1:
    5796         480 :                                         NDR_CHECK(ndr_push_spoolss_JobInfo1(ndr, NDR_BUFFERS, &r->info1));
    5797         480 :                                 break;
    5798             : 
    5799         102 :                                 case 2:
    5800         102 :                                         NDR_CHECK(ndr_push_spoolss_JobInfo2(ndr, NDR_BUFFERS, &r->info2));
    5801         102 :                                 break;
    5802             : 
    5803           0 :                                 case 3:
    5804           0 :                                 break;
    5805             : 
    5806           0 :                                 case 4:
    5807           0 :                                         NDR_CHECK(ndr_push_spoolss_JobInfo4(ndr, NDR_BUFFERS, &r->info4));
    5808           0 :                                 break;
    5809             : 
    5810           0 :                                 default:
    5811           0 :                                 break;
    5812             : 
    5813             :                         }
    5814             :                 }
    5815         972 :                 ndr->flags = _flags_save_UNION;
    5816             :         }
    5817         972 :         ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
    5818         972 :         return NDR_ERR_SUCCESS;
    5819             : }
    5820             : 
    5821         324 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo(struct ndr_pull *ndr, ndr_flags_type ndr_flags, union spoolss_JobInfo *r)
    5822             : {
    5823         324 :         uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
    5824           0 :         uint32_t level;
    5825             :         {
    5826         324 :                 libndr_flags _flags_save_UNION = ndr->flags;
    5827         324 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
    5828         324 :                 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    5829         324 :                 if (ndr_flags & NDR_SCALARS) {
    5830             :                         /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
    5831         194 :                         NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
    5832         194 :                         NDR_CHECK(ndr_pull_union_align(ndr, 5));
    5833         194 :                         switch (level) {
    5834         160 :                                 case 1: {
    5835         160 :                                         NDR_CHECK(ndr_pull_align(ndr, 5));
    5836         160 :                                         NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
    5837         160 :                                         NDR_CHECK(ndr_pull_spoolss_JobInfo1(ndr, NDR_SCALARS, &r->info1));
    5838         160 :                                 break; }
    5839             : 
    5840          34 :                                 case 2: {
    5841          34 :                                         NDR_CHECK(ndr_pull_align(ndr, 5));
    5842          34 :                                         NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
    5843          34 :                                         NDR_CHECK(ndr_pull_spoolss_JobInfo2(ndr, NDR_SCALARS, &r->info2));
    5844          34 :                                 break; }
    5845             : 
    5846           0 :                                 case 3: {
    5847           0 :                                         NDR_CHECK(ndr_pull_align(ndr, 4));
    5848           0 :                                         NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
    5849           0 :                                         NDR_CHECK(ndr_pull_spoolss_JobInfo3(ndr, NDR_SCALARS, &r->info3));
    5850           0 :                                 break; }
    5851             : 
    5852           0 :                                 case 4: {
    5853           0 :                                         NDR_CHECK(ndr_pull_align(ndr, 5));
    5854           0 :                                         NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
    5855           0 :                                         NDR_CHECK(ndr_pull_spoolss_JobInfo4(ndr, NDR_SCALARS, &r->info4));
    5856           0 :                                 break; }
    5857             : 
    5858           0 :                                 default: {
    5859           0 :                                 break; }
    5860             : 
    5861             :                         }
    5862             :                 }
    5863         324 :                 if (ndr_flags & NDR_BUFFERS) {
    5864         194 :                         if (!(ndr_flags & NDR_SCALARS)) {
    5865             :                                 /* We didn't get it above, and the token is not needed after this. */
    5866         130 :                                 NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
    5867             :                         }
    5868         194 :                         switch (level) {
    5869         160 :                                 case 1:
    5870         160 :                                         NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
    5871         160 :                                         NDR_CHECK(ndr_pull_spoolss_JobInfo1(ndr, NDR_BUFFERS, &r->info1));
    5872         160 :                                 break;
    5873             : 
    5874          34 :                                 case 2:
    5875          34 :                                         NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
    5876          34 :                                         NDR_CHECK(ndr_pull_spoolss_JobInfo2(ndr, NDR_BUFFERS, &r->info2));
    5877          34 :                                 break;
    5878             : 
    5879           0 :                                 case 3:
    5880           0 :                                         NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
    5881           0 :                                 break;
    5882             : 
    5883           0 :                                 case 4:
    5884           0 :                                         NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
    5885           0 :                                         NDR_CHECK(ndr_pull_spoolss_JobInfo4(ndr, NDR_BUFFERS, &r->info4));
    5886           0 :                                 break;
    5887             : 
    5888           0 :                                 default:
    5889           0 :                                 break;
    5890             : 
    5891             :                         }
    5892             :                 }
    5893         324 :                 ndr->flags = _flags_save_UNION;
    5894             :         }
    5895         324 :         ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
    5896         324 :         return NDR_ERR_SUCCESS;
    5897             : }
    5898             : 
    5899           0 : _PUBLIC_ void ndr_print_spoolss_JobInfo(struct ndr_print *ndr, const char *name, const union spoolss_JobInfo *r)
    5900             : {
    5901           0 :         uint32_t level;
    5902             :         {
    5903           0 :                 libndr_flags _flags_save_UNION = ndr->flags;
    5904           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
    5905           0 :                 level = ndr_print_steal_switch_value(ndr, r);
    5906           0 :                 ndr_print_union(ndr, name, level, "spoolss_JobInfo");
    5907           0 :                 switch (level) {
    5908           0 :                         case 1:
    5909           0 :                                 ndr_print_spoolss_JobInfo1(ndr, "info1", &r->info1);
    5910           0 :                         break;
    5911             : 
    5912           0 :                         case 2:
    5913           0 :                                 ndr_print_spoolss_JobInfo2(ndr, "info2", &r->info2);
    5914           0 :                         break;
    5915             : 
    5916           0 :                         case 3:
    5917           0 :                                 ndr_print_spoolss_JobInfo3(ndr, "info3", &r->info3);
    5918           0 :                         break;
    5919             : 
    5920           0 :                         case 4:
    5921           0 :                                 ndr_print_spoolss_JobInfo4(ndr, "info4", &r->info4);
    5922           0 :                         break;
    5923             : 
    5924           0 :                         default:
    5925           0 :                         break;
    5926             : 
    5927             :                 }
    5928           0 :                 ndr->flags = _flags_save_UNION;
    5929             :         }
    5930           0 : }
    5931             : 
    5932         128 : _PUBLIC_ size_t ndr_size_spoolss_JobInfo(const union spoolss_JobInfo *r, uint32_t level, libndr_flags flags)
    5933             : {
    5934         128 :         flags |= LIBNDR_FLAG_RELATIVE_REVERSE;
    5935         128 :         return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo);
    5936             : }
    5937             : 
    5938          32 : static enum ndr_err_code ndr_push_spoolss_SetJobInfo1(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_SetJobInfo1 *r)
    5939             : {
    5940          32 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    5941          32 :         if (ndr_flags & NDR_SCALARS) {
    5942          32 :                 NDR_CHECK(ndr_push_align(ndr, 5));
    5943          32 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
    5944          32 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printer_name));
    5945          32 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_name));
    5946          32 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user_name));
    5947          32 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
    5948          32 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_type));
    5949          32 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->text_status));
    5950          32 :                 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
    5951          32 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
    5952          32 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
    5953          32 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
    5954          32 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
    5955          32 :                 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
    5956          32 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
    5957             :         }
    5958          32 :         if (ndr_flags & NDR_BUFFERS) {
    5959          32 :                 if (r->printer_name) {
    5960          32 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
    5961          32 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    5962          32 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
    5963          32 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printer_name, ndr_charset_length(r->printer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
    5964             :                 }
    5965          32 :                 if (r->server_name) {
    5966          32 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
    5967          32 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    5968          32 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
    5969          32 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_name, ndr_charset_length(r->server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
    5970             :                 }
    5971          32 :                 if (r->user_name) {
    5972          32 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
    5973          32 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    5974          32 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
    5975          32 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user_name, ndr_charset_length(r->user_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
    5976             :                 }
    5977          32 :                 if (r->document_name) {
    5978          32 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
    5979          32 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    5980          32 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
    5981          32 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
    5982             :                 }
    5983          32 :                 if (r->data_type) {
    5984          32 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
    5985          32 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    5986          32 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
    5987          32 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_type, ndr_charset_length(r->data_type, CH_UTF16), sizeof(uint16_t), CH_UTF16));
    5988             :                 }
    5989          32 :                 if (r->text_status) {
    5990          32 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
    5991          32 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    5992          32 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
    5993          32 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->text_status, ndr_charset_length(r->text_status, CH_UTF16), sizeof(uint16_t), CH_UTF16));
    5994             :                 }
    5995             :         }
    5996          32 :         return NDR_ERR_SUCCESS;
    5997             : }
    5998             : 
    5999          32 : static enum ndr_err_code ndr_pull_spoolss_SetJobInfo1(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_SetJobInfo1 *r)
    6000             : {
    6001           0 :         uint32_t _ptr_printer_name;
    6002          32 :         uint32_t size_printer_name_1 = 0;
    6003          32 :         uint32_t length_printer_name_1 = 0;
    6004          32 :         TALLOC_CTX *_mem_save_printer_name_0 = NULL;
    6005           0 :         uint32_t _ptr_server_name;
    6006          32 :         uint32_t size_server_name_1 = 0;
    6007          32 :         uint32_t length_server_name_1 = 0;
    6008          32 :         TALLOC_CTX *_mem_save_server_name_0 = NULL;
    6009           0 :         uint32_t _ptr_user_name;
    6010          32 :         uint32_t size_user_name_1 = 0;
    6011          32 :         uint32_t length_user_name_1 = 0;
    6012          32 :         TALLOC_CTX *_mem_save_user_name_0 = NULL;
    6013           0 :         uint32_t _ptr_document_name;
    6014          32 :         uint32_t size_document_name_1 = 0;
    6015          32 :         uint32_t length_document_name_1 = 0;
    6016          32 :         TALLOC_CTX *_mem_save_document_name_0 = NULL;
    6017           0 :         uint32_t _ptr_data_type;
    6018          32 :         uint32_t size_data_type_1 = 0;
    6019          32 :         uint32_t length_data_type_1 = 0;
    6020          32 :         TALLOC_CTX *_mem_save_data_type_0 = NULL;
    6021           0 :         uint32_t _ptr_text_status;
    6022          32 :         uint32_t size_text_status_1 = 0;
    6023          32 :         uint32_t length_text_status_1 = 0;
    6024          32 :         TALLOC_CTX *_mem_save_text_status_0 = NULL;
    6025          32 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    6026          32 :         if (ndr_flags & NDR_SCALARS) {
    6027          32 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
    6028          32 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
    6029          32 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
    6030          32 :                 if (_ptr_printer_name) {
    6031          32 :                         NDR_PULL_ALLOC(ndr, r->printer_name);
    6032             :                 } else {
    6033           0 :                         r->printer_name = NULL;
    6034             :                 }
    6035          32 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
    6036          32 :                 if (_ptr_server_name) {
    6037          32 :                         NDR_PULL_ALLOC(ndr, r->server_name);
    6038             :                 } else {
    6039           0 :                         r->server_name = NULL;
    6040             :                 }
    6041          32 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
    6042          32 :                 if (_ptr_user_name) {
    6043          32 :                         NDR_PULL_ALLOC(ndr, r->user_name);
    6044             :                 } else {
    6045           0 :                         r->user_name = NULL;
    6046             :                 }
    6047          32 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
    6048          32 :                 if (_ptr_document_name) {
    6049          32 :                         NDR_PULL_ALLOC(ndr, r->document_name);
    6050             :                 } else {
    6051           0 :                         r->document_name = NULL;
    6052             :                 }
    6053          32 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
    6054          32 :                 if (_ptr_data_type) {
    6055          32 :                         NDR_PULL_ALLOC(ndr, r->data_type);
    6056             :                 } else {
    6057           0 :                         r->data_type = NULL;
    6058             :                 }
    6059          32 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
    6060          32 :                 if (_ptr_text_status) {
    6061          32 :                         NDR_PULL_ALLOC(ndr, r->text_status);
    6062             :                 } else {
    6063           0 :                         r->text_status = NULL;
    6064             :                 }
    6065          32 :                 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
    6066          32 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
    6067          32 :                 if (r->priority > 99) {
    6068           0 :                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value (%"PRIu32") out of range (%"PRIu32" - %"PRIu32")", (uint32_t)(r->priority), (uint32_t)(0), (uint32_t)(99));
    6069             :                 }
    6070          32 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
    6071          32 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
    6072          32 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
    6073          32 :                 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
    6074          32 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
    6075             :         }
    6076          32 :         if (ndr_flags & NDR_BUFFERS) {
    6077          32 :                 if (r->printer_name) {
    6078          32 :                         _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
    6079          32 :                         NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
    6080          32 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->printer_name));
    6081          32 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->printer_name));
    6082          32 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->printer_name, &size_printer_name_1));
    6083          32 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->printer_name, &length_printer_name_1));
    6084          32 :                         if (length_printer_name_1 > size_printer_name_1) {
    6085           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_printer_name_1, length_printer_name_1);
    6086             :                         }
    6087          32 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_printer_name_1, sizeof(uint16_t)));
    6088          32 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printer_name, length_printer_name_1, sizeof(uint16_t), CH_UTF16));
    6089          32 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
    6090             :                 }
    6091          32 :                 if (r->server_name) {
    6092          32 :                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
    6093          32 :                         NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
    6094          32 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->server_name));
    6095          32 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->server_name));
    6096          32 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->server_name, &size_server_name_1));
    6097          32 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->server_name, &length_server_name_1));
    6098          32 :                         if (length_server_name_1 > size_server_name_1) {
    6099           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_server_name_1, length_server_name_1);
    6100             :                         }
    6101          32 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_1, sizeof(uint16_t)));
    6102          32 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, length_server_name_1, sizeof(uint16_t), CH_UTF16));
    6103          32 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
    6104             :                 }
    6105          32 :                 if (r->user_name) {
    6106          32 :                         _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
    6107          32 :                         NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
    6108          32 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->user_name));
    6109          32 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->user_name));
    6110          32 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->user_name, &size_user_name_1));
    6111          32 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->user_name, &length_user_name_1));
    6112          32 :                         if (length_user_name_1 > size_user_name_1) {
    6113           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_user_name_1, length_user_name_1);
    6114             :                         }
    6115          32 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_user_name_1, sizeof(uint16_t)));
    6116          32 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user_name, length_user_name_1, sizeof(uint16_t), CH_UTF16));
    6117          32 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
    6118             :                 }
    6119          32 :                 if (r->document_name) {
    6120          32 :                         _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
    6121          32 :                         NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
    6122          32 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
    6123          32 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
    6124          32 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->document_name, &size_document_name_1));
    6125          32 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->document_name, &length_document_name_1));
    6126          32 :                         if (length_document_name_1 > size_document_name_1) {
    6127           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_document_name_1, length_document_name_1);
    6128             :                         }
    6129          32 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_document_name_1, sizeof(uint16_t)));
    6130          32 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, length_document_name_1, sizeof(uint16_t), CH_UTF16));
    6131          32 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
    6132             :                 }
    6133          32 :                 if (r->data_type) {
    6134          32 :                         _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
    6135          32 :                         NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
    6136          32 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->data_type));
    6137          32 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->data_type));
    6138          32 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->data_type, &size_data_type_1));
    6139          32 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->data_type, &length_data_type_1));
    6140          32 :                         if (length_data_type_1 > size_data_type_1) {
    6141           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_data_type_1, length_data_type_1);
    6142             :                         }
    6143          32 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_data_type_1, sizeof(uint16_t)));
    6144          32 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_type, length_data_type_1, sizeof(uint16_t), CH_UTF16));
    6145          32 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
    6146             :                 }
    6147          32 :                 if (r->text_status) {
    6148          32 :                         _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
    6149          32 :                         NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
    6150          32 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->text_status));
    6151          32 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->text_status));
    6152          32 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->text_status, &size_text_status_1));
    6153          32 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->text_status, &length_text_status_1));
    6154          32 :                         if (length_text_status_1 > size_text_status_1) {
    6155           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_text_status_1, length_text_status_1);
    6156             :                         }
    6157          32 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_text_status_1, sizeof(uint16_t)));
    6158          32 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->text_status, length_text_status_1, sizeof(uint16_t), CH_UTF16));
    6159          32 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
    6160             :                 }
    6161             :         }
    6162          32 :         return NDR_ERR_SUCCESS;
    6163             : }
    6164             : 
    6165           0 : _PUBLIC_ void ndr_print_spoolss_SetJobInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_SetJobInfo1 *r)
    6166             : {
    6167           0 :         ndr_print_struct(ndr, name, "spoolss_SetJobInfo1");
    6168           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
    6169           0 :         ndr->depth++;
    6170           0 :         ndr_print_uint32(ndr, "job_id", r->job_id);
    6171           0 :         ndr_print_ptr(ndr, "printer_name", r->printer_name);
    6172           0 :         ndr->depth++;
    6173           0 :         if (r->printer_name) {
    6174           0 :                 ndr_print_string(ndr, "printer_name", r->printer_name);
    6175             :         }
    6176           0 :         ndr->depth--;
    6177           0 :         ndr_print_ptr(ndr, "server_name", r->server_name);
    6178           0 :         ndr->depth++;
    6179           0 :         if (r->server_name) {
    6180           0 :                 ndr_print_string(ndr, "server_name", r->server_name);
    6181             :         }
    6182           0 :         ndr->depth--;
    6183           0 :         ndr_print_ptr(ndr, "user_name", r->user_name);
    6184           0 :         ndr->depth++;
    6185           0 :         if (r->user_name) {
    6186           0 :                 ndr_print_string(ndr, "user_name", r->user_name);
    6187             :         }
    6188           0 :         ndr->depth--;
    6189           0 :         ndr_print_ptr(ndr, "document_name", r->document_name);
    6190           0 :         ndr->depth++;
    6191           0 :         if (r->document_name) {
    6192           0 :                 ndr_print_string(ndr, "document_name", r->document_name);
    6193             :         }
    6194           0 :         ndr->depth--;
    6195           0 :         ndr_print_ptr(ndr, "data_type", r->data_type);
    6196           0 :         ndr->depth++;
    6197           0 :         if (r->data_type) {
    6198           0 :                 ndr_print_string(ndr, "data_type", r->data_type);
    6199             :         }
    6200           0 :         ndr->depth--;
    6201           0 :         ndr_print_ptr(ndr, "text_status", r->text_status);
    6202           0 :         ndr->depth++;
    6203           0 :         if (r->text_status) {
    6204           0 :                 ndr_print_string(ndr, "text_status", r->text_status);
    6205             :         }
    6206           0 :         ndr->depth--;
    6207           0 :         ndr_print_spoolss_JobStatus(ndr, "status", r->status);
    6208           0 :         ndr_print_uint32(ndr, "priority", r->priority);
    6209           0 :         ndr_print_uint32(ndr, "position", r->position);
    6210           0 :         ndr_print_uint32(ndr, "total_pages", r->total_pages);
    6211           0 :         ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
    6212           0 :         ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
    6213           0 :         ndr->depth--;
    6214             : }
    6215             : 
    6216           0 : static enum ndr_err_code ndr_push_spoolss_SetJobInfo2(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_SetJobInfo2 *r)
    6217             : {
    6218           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    6219           0 :         if (ndr_flags & NDR_SCALARS) {
    6220           0 :                 NDR_CHECK(ndr_push_align(ndr, 5));
    6221           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
    6222           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printer_name));
    6223           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_name));
    6224           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user_name));
    6225           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
    6226           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->notify_name));
    6227           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_type));
    6228           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->print_processor));
    6229           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->parameters));
    6230           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
    6231           0 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->_devmode_ptr));
    6232           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->text_status));
    6233           0 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->_secdesc_ptr));
    6234           0 :                 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
    6235           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
    6236           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
    6237           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
    6238           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
    6239           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
    6240           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
    6241           0 :                 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
    6242           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
    6243           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
    6244           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
    6245             :         }
    6246           0 :         if (ndr_flags & NDR_BUFFERS) {
    6247           0 :                 if (r->printer_name) {
    6248           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
    6249           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    6250           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
    6251           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printer_name, ndr_charset_length(r->printer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
    6252             :                 }
    6253           0 :                 if (r->server_name) {
    6254           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
    6255           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    6256           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
    6257           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_name, ndr_charset_length(r->server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
    6258             :                 }
    6259           0 :                 if (r->user_name) {
    6260           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
    6261           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    6262           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
    6263           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user_name, ndr_charset_length(r->user_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
    6264             :                 }
    6265           0 :                 if (r->document_name) {
    6266           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
    6267           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    6268           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
    6269           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
    6270             :                 }
    6271           0 :                 if (r->notify_name) {
    6272           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
    6273           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    6274           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
    6275           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->notify_name, ndr_charset_length(r->notify_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
    6276             :                 }
    6277           0 :                 if (r->data_type) {
    6278           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
    6279           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    6280           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
    6281           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_type, ndr_charset_length(r->data_type, CH_UTF16), sizeof(uint16_t), CH_UTF16));
    6282             :                 }
    6283           0 :                 if (r->print_processor) {
    6284           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
    6285           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    6286           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
    6287           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->print_processor, ndr_charset_length(r->print_processor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
    6288             :                 }
    6289           0 :                 if (r->parameters) {
    6290           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
    6291           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    6292           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
    6293           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->parameters, ndr_charset_length(r->parameters, CH_UTF16), sizeof(uint16_t), CH_UTF16));
    6294             :                 }
    6295           0 :                 if (r->driver_name) {
    6296           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
    6297           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    6298           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
    6299           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
    6300             :                 }
    6301           0 :                 if (r->text_status) {
    6302           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
    6303           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    6304           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
    6305           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->text_status, ndr_charset_length(r->text_status, CH_UTF16), sizeof(uint16_t), CH_UTF16));
    6306             :                 }
    6307             :         }
    6308           0 :         return NDR_ERR_SUCCESS;
    6309             : }
    6310             : 
    6311           0 : static enum ndr_err_code ndr_pull_spoolss_SetJobInfo2(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_SetJobInfo2 *r)
    6312             : {
    6313           0 :         uint32_t _ptr_printer_name;
    6314           0 :         uint32_t size_printer_name_1 = 0;
    6315           0 :         uint32_t length_printer_name_1 = 0;
    6316           0 :         TALLOC_CTX *_mem_save_printer_name_0 = NULL;
    6317           0 :         uint32_t _ptr_server_name;
    6318           0 :         uint32_t size_server_name_1 = 0;
    6319           0 :         uint32_t length_server_name_1 = 0;
    6320           0 :         TALLOC_CTX *_mem_save_server_name_0 = NULL;
    6321           0 :         uint32_t _ptr_user_name;
    6322           0 :         uint32_t size_user_name_1 = 0;
    6323           0 :         uint32_t length_user_name_1 = 0;
    6324           0 :         TALLOC_CTX *_mem_save_user_name_0 = NULL;
    6325           0 :         uint32_t _ptr_document_name;
    6326           0 :         uint32_t size_document_name_1 = 0;
    6327           0 :         uint32_t length_document_name_1 = 0;
    6328           0 :         TALLOC_CTX *_mem_save_document_name_0 = NULL;
    6329           0 :         uint32_t _ptr_notify_name;
    6330           0 :         uint32_t size_notify_name_1 = 0;
    6331           0 :         uint32_t length_notify_name_1 = 0;
    6332           0 :         TALLOC_CTX *_mem_save_notify_name_0 = NULL;
    6333           0 :         uint32_t _ptr_data_type;
    6334           0 :         uint32_t size_data_type_1 = 0;
    6335           0 :         uint32_t length_data_type_1 = 0;
    6336           0 :         TALLOC_CTX *_mem_save_data_type_0 = NULL;
    6337           0 :         uint32_t _ptr_print_processor;
    6338           0 :         uint32_t size_print_processor_1 = 0;
    6339           0 :         uint32_t length_print_processor_1 = 0;
    6340           0 :         TALLOC_CTX *_mem_save_print_processor_0 = NULL;
    6341           0 :         uint32_t _ptr_parameters;
    6342           0 :         uint32_t size_parameters_1 = 0;
    6343           0 :         uint32_t length_parameters_1 = 0;
    6344           0 :         TALLOC_CTX *_mem_save_parameters_0 = NULL;
    6345           0 :         uint32_t _ptr_driver_name;
    6346           0 :         uint32_t size_driver_name_1 = 0;
    6347           0 :         uint32_t length_driver_name_1 = 0;
    6348           0 :         TALLOC_CTX *_mem_save_driver_name_0 = NULL;
    6349           0 :         uint32_t _ptr_text_status;
    6350           0 :         uint32_t size_text_status_1 = 0;
    6351           0 :         uint32_t length_text_status_1 = 0;
    6352           0 :         TALLOC_CTX *_mem_save_text_status_0 = NULL;
    6353           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    6354           0 :         if (ndr_flags & NDR_SCALARS) {
    6355           0 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
    6356           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
    6357           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
    6358           0 :                 if (_ptr_printer_name) {
    6359           0 :                         NDR_PULL_ALLOC(ndr, r->printer_name);
    6360             :                 } else {
    6361           0 :                         r->printer_name = NULL;
    6362             :                 }
    6363           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
    6364           0 :                 if (_ptr_server_name) {
    6365           0 :                         NDR_PULL_ALLOC(ndr, r->server_name);
    6366             :                 } else {
    6367           0 :                         r->server_name = NULL;
    6368             :                 }
    6369           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
    6370           0 :                 if (_ptr_user_name) {
    6371           0 :                         NDR_PULL_ALLOC(ndr, r->user_name);
    6372             :                 } else {
    6373           0 :                         r->user_name = NULL;
    6374             :                 }
    6375           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
    6376           0 :                 if (_ptr_document_name) {
    6377           0 :                         NDR_PULL_ALLOC(ndr, r->document_name);
    6378             :                 } else {
    6379           0 :                         r->document_name = NULL;
    6380             :                 }
    6381           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
    6382           0 :                 if (_ptr_notify_name) {
    6383           0 :                         NDR_PULL_ALLOC(ndr, r->notify_name);
    6384             :                 } else {
    6385           0 :                         r->notify_name = NULL;
    6386             :                 }
    6387           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
    6388           0 :                 if (_ptr_data_type) {
    6389           0 :                         NDR_PULL_ALLOC(ndr, r->data_type);
    6390             :                 } else {
    6391           0 :                         r->data_type = NULL;
    6392             :                 }
    6393           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
    6394           0 :                 if (_ptr_print_processor) {
    6395           0 :                         NDR_PULL_ALLOC(ndr, r->print_processor);
    6396             :                 } else {
    6397           0 :                         r->print_processor = NULL;
    6398             :                 }
    6399           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
    6400           0 :                 if (_ptr_parameters) {
    6401           0 :                         NDR_PULL_ALLOC(ndr, r->parameters);
    6402             :                 } else {
    6403           0 :                         r->parameters = NULL;
    6404             :                 }
    6405           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
    6406           0 :                 if (_ptr_driver_name) {
    6407           0 :                         NDR_PULL_ALLOC(ndr, r->driver_name);
    6408             :                 } else {
    6409           0 :                         r->driver_name = NULL;
    6410             :                 }
    6411           0 :                 NDR_CHECK(ndr_pull_uint3264(ndr, NDR_SCALARS, &r->_devmode_ptr));
    6412           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
    6413           0 :                 if (_ptr_text_status) {
    6414           0 :                         NDR_PULL_ALLOC(ndr, r->text_status);
    6415             :                 } else {
    6416           0 :                         r->text_status = NULL;
    6417             :                 }
    6418           0 :                 NDR_CHECK(ndr_pull_uint3264(ndr, NDR_SCALARS, &r->_secdesc_ptr));
    6419           0 :                 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
    6420           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
    6421           0 :                 if (r->priority > 99) {
    6422           0 :                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value (%"PRIu32") out of range (%"PRIu32" - %"PRIu32")", (uint32_t)(r->priority), (uint32_t)(0), (uint32_t)(99));
    6423             :                 }
    6424           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
    6425           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
    6426           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
    6427           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
    6428           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
    6429           0 :                 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
    6430           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
    6431           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
    6432           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
    6433             :         }
    6434           0 :         if (ndr_flags & NDR_BUFFERS) {
    6435           0 :                 if (r->printer_name) {
    6436           0 :                         _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
    6437           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
    6438           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->printer_name));
    6439           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->printer_name));
    6440           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->printer_name, &size_printer_name_1));
    6441           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->printer_name, &length_printer_name_1));
    6442           0 :                         if (length_printer_name_1 > size_printer_name_1) {
    6443           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_printer_name_1, length_printer_name_1);
    6444             :                         }
    6445           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_printer_name_1, sizeof(uint16_t)));
    6446           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printer_name, length_printer_name_1, sizeof(uint16_t), CH_UTF16));
    6447           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
    6448             :                 }
    6449           0 :                 if (r->server_name) {
    6450           0 :                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
    6451           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
    6452           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->server_name));
    6453           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->server_name));
    6454           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->server_name, &size_server_name_1));
    6455           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->server_name, &length_server_name_1));
    6456           0 :                         if (length_server_name_1 > size_server_name_1) {
    6457           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_server_name_1, length_server_name_1);
    6458             :                         }
    6459           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_1, sizeof(uint16_t)));
    6460           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, length_server_name_1, sizeof(uint16_t), CH_UTF16));
    6461           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
    6462             :                 }
    6463           0 :                 if (r->user_name) {
    6464           0 :                         _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
    6465           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
    6466           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->user_name));
    6467           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->user_name));
    6468           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->user_name, &size_user_name_1));
    6469           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->user_name, &length_user_name_1));
    6470           0 :                         if (length_user_name_1 > size_user_name_1) {
    6471           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_user_name_1, length_user_name_1);
    6472             :                         }
    6473           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_user_name_1, sizeof(uint16_t)));
    6474           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user_name, length_user_name_1, sizeof(uint16_t), CH_UTF16));
    6475           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
    6476             :                 }
    6477           0 :                 if (r->document_name) {
    6478           0 :                         _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
    6479           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
    6480           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
    6481           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
    6482           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->document_name, &size_document_name_1));
    6483           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->document_name, &length_document_name_1));
    6484           0 :                         if (length_document_name_1 > size_document_name_1) {
    6485           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_document_name_1, length_document_name_1);
    6486             :                         }
    6487           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_document_name_1, sizeof(uint16_t)));
    6488           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, length_document_name_1, sizeof(uint16_t), CH_UTF16));
    6489           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
    6490             :                 }
    6491           0 :                 if (r->notify_name) {
    6492           0 :                         _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
    6493           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
    6494           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->notify_name));
    6495           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->notify_name));
    6496           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->notify_name, &size_notify_name_1));
    6497           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->notify_name, &length_notify_name_1));
    6498           0 :                         if (length_notify_name_1 > size_notify_name_1) {
    6499           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_notify_name_1, length_notify_name_1);
    6500             :                         }
    6501           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_notify_name_1, sizeof(uint16_t)));
    6502           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->notify_name, length_notify_name_1, sizeof(uint16_t), CH_UTF16));
    6503           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
    6504             :                 }
    6505           0 :                 if (r->data_type) {
    6506           0 :                         _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
    6507           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
    6508           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->data_type));
    6509           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->data_type));
    6510           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->data_type, &size_data_type_1));
    6511           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->data_type, &length_data_type_1));
    6512           0 :                         if (length_data_type_1 > size_data_type_1) {
    6513           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_data_type_1, length_data_type_1);
    6514             :                         }
    6515           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_data_type_1, sizeof(uint16_t)));
    6516           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_type, length_data_type_1, sizeof(uint16_t), CH_UTF16));
    6517           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
    6518             :                 }
    6519           0 :                 if (r->print_processor) {
    6520           0 :                         _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
    6521           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
    6522           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->print_processor));
    6523           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->print_processor));
    6524           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->print_processor, &size_print_processor_1));
    6525           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->print_processor, &length_print_processor_1));
    6526           0 :                         if (length_print_processor_1 > size_print_processor_1) {
    6527           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_print_processor_1, length_print_processor_1);
    6528             :                         }
    6529           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_print_processor_1, sizeof(uint16_t)));
    6530           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->print_processor, length_print_processor_1, sizeof(uint16_t), CH_UTF16));
    6531           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
    6532             :                 }
    6533           0 :                 if (r->parameters) {
    6534           0 :                         _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
    6535           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
    6536           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->parameters));
    6537           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->parameters));
    6538           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->parameters, &size_parameters_1));
    6539           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->parameters, &length_parameters_1));
    6540           0 :                         if (length_parameters_1 > size_parameters_1) {
    6541           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_parameters_1, length_parameters_1);
    6542             :                         }
    6543           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_parameters_1, sizeof(uint16_t)));
    6544           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->parameters, length_parameters_1, sizeof(uint16_t), CH_UTF16));
    6545           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
    6546             :                 }
    6547           0 :                 if (r->driver_name) {
    6548           0 :                         _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
    6549           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
    6550           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
    6551           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
    6552           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->driver_name, &size_driver_name_1));
    6553           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->driver_name, &length_driver_name_1));
    6554           0 :                         if (length_driver_name_1 > size_driver_name_1) {
    6555           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_driver_name_1, length_driver_name_1);
    6556             :                         }
    6557           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_driver_name_1, sizeof(uint16_t)));
    6558           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, length_driver_name_1, sizeof(uint16_t), CH_UTF16));
    6559           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
    6560             :                 }
    6561           0 :                 if (r->text_status) {
    6562           0 :                         _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
    6563           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
    6564           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->text_status));
    6565           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->text_status));
    6566           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->text_status, &size_text_status_1));
    6567           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->text_status, &length_text_status_1));
    6568           0 :                         if (length_text_status_1 > size_text_status_1) {
    6569           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_text_status_1, length_text_status_1);
    6570             :                         }
    6571           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_text_status_1, sizeof(uint16_t)));
    6572           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->text_status, length_text_status_1, sizeof(uint16_t), CH_UTF16));
    6573           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
    6574             :                 }
    6575             :         }
    6576           0 :         return NDR_ERR_SUCCESS;
    6577             : }
    6578             : 
    6579           0 : _PUBLIC_ void ndr_print_spoolss_SetJobInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_SetJobInfo2 *r)
    6580             : {
    6581           0 :         ndr_print_struct(ndr, name, "spoolss_SetJobInfo2");
    6582           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
    6583           0 :         ndr->depth++;
    6584           0 :         ndr_print_uint32(ndr, "job_id", r->job_id);
    6585           0 :         ndr_print_ptr(ndr, "printer_name", r->printer_name);
    6586           0 :         ndr->depth++;
    6587           0 :         if (r->printer_name) {
    6588           0 :                 ndr_print_string(ndr, "printer_name", r->printer_name);
    6589             :         }
    6590           0 :         ndr->depth--;
    6591           0 :         ndr_print_ptr(ndr, "server_name", r->server_name);
    6592           0 :         ndr->depth++;
    6593           0 :         if (r->server_name) {
    6594           0 :                 ndr_print_string(ndr, "server_name", r->server_name);
    6595             :         }
    6596           0 :         ndr->depth--;
    6597           0 :         ndr_print_ptr(ndr, "user_name", r->user_name);
    6598           0 :         ndr->depth++;
    6599           0 :         if (r->user_name) {
    6600           0 :                 ndr_print_string(ndr, "user_name", r->user_name);
    6601             :         }
    6602           0 :         ndr->depth--;
    6603           0 :         ndr_print_ptr(ndr, "document_name", r->document_name);
    6604           0 :         ndr->depth++;
    6605           0 :         if (r->document_name) {
    6606           0 :                 ndr_print_string(ndr, "document_name", r->document_name);
    6607             :         }
    6608           0 :         ndr->depth--;
    6609           0 :         ndr_print_ptr(ndr, "notify_name", r->notify_name);
    6610           0 :         ndr->depth++;
    6611           0 :         if (r->notify_name) {
    6612           0 :                 ndr_print_string(ndr, "notify_name", r->notify_name);
    6613             :         }
    6614           0 :         ndr->depth--;
    6615           0 :         ndr_print_ptr(ndr, "data_type", r->data_type);
    6616           0 :         ndr->depth++;
    6617           0 :         if (r->data_type) {
    6618           0 :                 ndr_print_string(ndr, "data_type", r->data_type);
    6619             :         }
    6620           0 :         ndr->depth--;
    6621           0 :         ndr_print_ptr(ndr, "print_processor", r->print_processor);
    6622           0 :         ndr->depth++;
    6623           0 :         if (r->print_processor) {
    6624           0 :                 ndr_print_string(ndr, "print_processor", r->print_processor);
    6625             :         }
    6626           0 :         ndr->depth--;
    6627           0 :         ndr_print_ptr(ndr, "parameters", r->parameters);
    6628           0 :         ndr->depth++;
    6629           0 :         if (r->parameters) {
    6630           0 :                 ndr_print_string(ndr, "parameters", r->parameters);
    6631             :         }
    6632           0 :         ndr->depth--;
    6633           0 :         ndr_print_ptr(ndr, "driver_name", r->driver_name);
    6634           0 :         ndr->depth++;
    6635           0 :         if (r->driver_name) {
    6636           0 :                 ndr_print_string(ndr, "driver_name", r->driver_name);
    6637             :         }
    6638           0 :         ndr->depth--;
    6639           0 :         ndr_print_uint3264(ndr, "_devmode_ptr", r->_devmode_ptr);
    6640           0 :         ndr_print_ptr(ndr, "text_status", r->text_status);
    6641           0 :         ndr->depth++;
    6642           0 :         if (r->text_status) {
    6643           0 :                 ndr_print_string(ndr, "text_status", r->text_status);
    6644             :         }
    6645           0 :         ndr->depth--;
    6646           0 :         ndr_print_uint3264(ndr, "_secdesc_ptr", r->_secdesc_ptr);
    6647           0 :         ndr_print_spoolss_JobStatus(ndr, "status", r->status);
    6648           0 :         ndr_print_uint32(ndr, "priority", r->priority);
    6649           0 :         ndr_print_uint32(ndr, "position", r->position);
    6650           0 :         ndr_print_uint32(ndr, "start_time", r->start_time);
    6651           0 :         ndr_print_uint32(ndr, "until_time", r->until_time);
    6652           0 :         ndr_print_uint32(ndr, "total_pages", r->total_pages);
    6653           0 :         ndr_print_uint32(ndr, "size", r->size);
    6654           0 :         ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
    6655           0 :         ndr_print_uint32(ndr, "time", r->time);
    6656           0 :         ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
    6657           0 :         ndr->depth--;
    6658             : }
    6659             : 
    6660           0 : static enum ndr_err_code ndr_push_spoolss_SetJobInfo4(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_SetJobInfo4 *r)
    6661             : {
    6662           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    6663           0 :         if (ndr_flags & NDR_SCALARS) {
    6664           0 :                 NDR_CHECK(ndr_push_align(ndr, 5));
    6665           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
    6666           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printer_name));
    6667           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_name));
    6668           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user_name));
    6669           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
    6670           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->notify_name));
    6671           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_type));
    6672           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->print_processor));
    6673           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->parameters));
    6674           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
    6675           0 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->_devmode_ptr));
    6676           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->text_status));
    6677           0 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->_secdesc_ptr));
    6678           0 :                 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
    6679           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
    6680           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
    6681           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
    6682           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
    6683           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
    6684           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
    6685           0 :                 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
    6686           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
    6687           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
    6688           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size_high));
    6689           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
    6690             :         }
    6691           0 :         if (ndr_flags & NDR_BUFFERS) {
    6692           0 :                 if (r->printer_name) {
    6693           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
    6694           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    6695           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
    6696           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printer_name, ndr_charset_length(r->printer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
    6697             :                 }
    6698           0 :                 if (r->server_name) {
    6699           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
    6700           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    6701           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
    6702           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_name, ndr_charset_length(r->server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
    6703             :                 }
    6704           0 :                 if (r->user_name) {
    6705           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
    6706           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    6707           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
    6708           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user_name, ndr_charset_length(r->user_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
    6709             :                 }
    6710           0 :                 if (r->document_name) {
    6711           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
    6712           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    6713           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
    6714           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
    6715             :                 }
    6716           0 :                 if (r->notify_name) {
    6717           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
    6718           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    6719           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
    6720           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->notify_name, ndr_charset_length(r->notify_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
    6721             :                 }
    6722           0 :                 if (r->data_type) {
    6723           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
    6724           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    6725           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
    6726           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_type, ndr_charset_length(r->data_type, CH_UTF16), sizeof(uint16_t), CH_UTF16));
    6727             :                 }
    6728           0 :                 if (r->print_processor) {
    6729           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
    6730           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    6731           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
    6732           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->print_processor, ndr_charset_length(r->print_processor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
    6733             :                 }
    6734           0 :                 if (r->parameters) {
    6735           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
    6736           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    6737           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
    6738           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->parameters, ndr_charset_length(r->parameters, CH_UTF16), sizeof(uint16_t), CH_UTF16));
    6739             :                 }
    6740           0 :                 if (r->driver_name) {
    6741           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
    6742           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    6743           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
    6744           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
    6745             :                 }
    6746           0 :                 if (r->text_status) {
    6747           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
    6748           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    6749           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
    6750           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->text_status, ndr_charset_length(r->text_status, CH_UTF16), sizeof(uint16_t), CH_UTF16));
    6751             :                 }
    6752             :         }
    6753           0 :         return NDR_ERR_SUCCESS;
    6754             : }
    6755             : 
    6756           0 : static enum ndr_err_code ndr_pull_spoolss_SetJobInfo4(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_SetJobInfo4 *r)
    6757             : {
    6758           0 :         uint32_t _ptr_printer_name;
    6759           0 :         uint32_t size_printer_name_1 = 0;
    6760           0 :         uint32_t length_printer_name_1 = 0;
    6761           0 :         TALLOC_CTX *_mem_save_printer_name_0 = NULL;
    6762           0 :         uint32_t _ptr_server_name;
    6763           0 :         uint32_t size_server_name_1 = 0;
    6764           0 :         uint32_t length_server_name_1 = 0;
    6765           0 :         TALLOC_CTX *_mem_save_server_name_0 = NULL;
    6766           0 :         uint32_t _ptr_user_name;
    6767           0 :         uint32_t size_user_name_1 = 0;
    6768           0 :         uint32_t length_user_name_1 = 0;
    6769           0 :         TALLOC_CTX *_mem_save_user_name_0 = NULL;
    6770           0 :         uint32_t _ptr_document_name;
    6771           0 :         uint32_t size_document_name_1 = 0;
    6772           0 :         uint32_t length_document_name_1 = 0;
    6773           0 :         TALLOC_CTX *_mem_save_document_name_0 = NULL;
    6774           0 :         uint32_t _ptr_notify_name;
    6775           0 :         uint32_t size_notify_name_1 = 0;
    6776           0 :         uint32_t length_notify_name_1 = 0;
    6777           0 :         TALLOC_CTX *_mem_save_notify_name_0 = NULL;
    6778           0 :         uint32_t _ptr_data_type;
    6779           0 :         uint32_t size_data_type_1 = 0;
    6780           0 :         uint32_t length_data_type_1 = 0;
    6781           0 :         TALLOC_CTX *_mem_save_data_type_0 = NULL;
    6782           0 :         uint32_t _ptr_print_processor;
    6783           0 :         uint32_t size_print_processor_1 = 0;
    6784           0 :         uint32_t length_print_processor_1 = 0;
    6785           0 :         TALLOC_CTX *_mem_save_print_processor_0 = NULL;
    6786           0 :         uint32_t _ptr_parameters;
    6787           0 :         uint32_t size_parameters_1 = 0;
    6788           0 :         uint32_t length_parameters_1 = 0;
    6789           0 :         TALLOC_CTX *_mem_save_parameters_0 = NULL;
    6790           0 :         uint32_t _ptr_driver_name;
    6791           0 :         uint32_t size_driver_name_1 = 0;
    6792           0 :         uint32_t length_driver_name_1 = 0;
    6793           0 :         TALLOC_CTX *_mem_save_driver_name_0 = NULL;
    6794           0 :         uint32_t _ptr_text_status;
    6795           0 :         uint32_t size_text_status_1 = 0;
    6796           0 :         uint32_t length_text_status_1 = 0;
    6797           0 :         TALLOC_CTX *_mem_save_text_status_0 = NULL;
    6798           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    6799           0 :         if (ndr_flags & NDR_SCALARS) {
    6800           0 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
    6801           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
    6802           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
    6803           0 :                 if (_ptr_printer_name) {
    6804           0 :                         NDR_PULL_ALLOC(ndr, r->printer_name);
    6805             :                 } else {
    6806           0 :                         r->printer_name = NULL;
    6807             :                 }
    6808           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
    6809           0 :                 if (_ptr_server_name) {
    6810           0 :                         NDR_PULL_ALLOC(ndr, r->server_name);
    6811             :                 } else {
    6812           0 :                         r->server_name = NULL;
    6813             :                 }
    6814           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
    6815           0 :                 if (_ptr_user_name) {
    6816           0 :                         NDR_PULL_ALLOC(ndr, r->user_name);
    6817             :                 } else {
    6818           0 :                         r->user_name = NULL;
    6819             :                 }
    6820           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
    6821           0 :                 if (_ptr_document_name) {
    6822           0 :                         NDR_PULL_ALLOC(ndr, r->document_name);
    6823             :                 } else {
    6824           0 :                         r->document_name = NULL;
    6825             :                 }
    6826           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
    6827           0 :                 if (_ptr_notify_name) {
    6828           0 :                         NDR_PULL_ALLOC(ndr, r->notify_name);
    6829             :                 } else {
    6830           0 :                         r->notify_name = NULL;
    6831             :                 }
    6832           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
    6833           0 :                 if (_ptr_data_type) {
    6834           0 :                         NDR_PULL_ALLOC(ndr, r->data_type);
    6835             :                 } else {
    6836           0 :                         r->data_type = NULL;
    6837             :                 }
    6838           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
    6839           0 :                 if (_ptr_print_processor) {
    6840           0 :                         NDR_PULL_ALLOC(ndr, r->print_processor);
    6841             :                 } else {
    6842           0 :                         r->print_processor = NULL;
    6843             :                 }
    6844           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
    6845           0 :                 if (_ptr_parameters) {
    6846           0 :                         NDR_PULL_ALLOC(ndr, r->parameters);
    6847             :                 } else {
    6848           0 :                         r->parameters = NULL;
    6849             :                 }
    6850           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
    6851           0 :                 if (_ptr_driver_name) {
    6852           0 :                         NDR_PULL_ALLOC(ndr, r->driver_name);
    6853             :                 } else {
    6854           0 :                         r->driver_name = NULL;
    6855             :                 }
    6856           0 :                 NDR_CHECK(ndr_pull_uint3264(ndr, NDR_SCALARS, &r->_devmode_ptr));
    6857           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
    6858           0 :                 if (_ptr_text_status) {
    6859           0 :                         NDR_PULL_ALLOC(ndr, r->text_status);
    6860             :                 } else {
    6861           0 :                         r->text_status = NULL;
    6862             :                 }
    6863           0 :                 NDR_CHECK(ndr_pull_uint3264(ndr, NDR_SCALARS, &r->_secdesc_ptr));
    6864           0 :                 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
    6865           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
    6866           0 :                 if (r->priority > 99) {
    6867           0 :                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value (%"PRIu32") out of range (%"PRIu32" - %"PRIu32")", (uint32_t)(r->priority), (uint32_t)(0), (uint32_t)(99));
    6868             :                 }
    6869           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
    6870           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
    6871           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
    6872           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
    6873           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
    6874           0 :                 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
    6875           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
    6876           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
    6877           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size_high));
    6878           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
    6879             :         }
    6880           0 :         if (ndr_flags & NDR_BUFFERS) {
    6881           0 :                 if (r->printer_name) {
    6882           0 :                         _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
    6883           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
    6884           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->printer_name));
    6885           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->printer_name));
    6886           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->printer_name, &size_printer_name_1));
    6887           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->printer_name, &length_printer_name_1));
    6888           0 :                         if (length_printer_name_1 > size_printer_name_1) {
    6889           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_printer_name_1, length_printer_name_1);
    6890             :                         }
    6891           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_printer_name_1, sizeof(uint16_t)));
    6892           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printer_name, length_printer_name_1, sizeof(uint16_t), CH_UTF16));
    6893           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
    6894             :                 }
    6895           0 :                 if (r->server_name) {
    6896           0 :                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
    6897           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
    6898           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->server_name));
    6899           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->server_name));
    6900           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->server_name, &size_server_name_1));
    6901           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->server_name, &length_server_name_1));
    6902           0 :                         if (length_server_name_1 > size_server_name_1) {
    6903           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_server_name_1, length_server_name_1);
    6904             :                         }
    6905           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_1, sizeof(uint16_t)));
    6906           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, length_server_name_1, sizeof(uint16_t), CH_UTF16));
    6907           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
    6908             :                 }
    6909           0 :                 if (r->user_name) {
    6910           0 :                         _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
    6911           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
    6912           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->user_name));
    6913           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->user_name));
    6914           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->user_name, &size_user_name_1));
    6915           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->user_name, &length_user_name_1));
    6916           0 :                         if (length_user_name_1 > size_user_name_1) {
    6917           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_user_name_1, length_user_name_1);
    6918             :                         }
    6919           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_user_name_1, sizeof(uint16_t)));
    6920           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user_name, length_user_name_1, sizeof(uint16_t), CH_UTF16));
    6921           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
    6922             :                 }
    6923           0 :                 if (r->document_name) {
    6924           0 :                         _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
    6925           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
    6926           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
    6927           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
    6928           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->document_name, &size_document_name_1));
    6929           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->document_name, &length_document_name_1));
    6930           0 :                         if (length_document_name_1 > size_document_name_1) {
    6931           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_document_name_1, length_document_name_1);
    6932             :                         }
    6933           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_document_name_1, sizeof(uint16_t)));
    6934           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, length_document_name_1, sizeof(uint16_t), CH_UTF16));
    6935           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
    6936             :                 }
    6937           0 :                 if (r->notify_name) {
    6938           0 :                         _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
    6939           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
    6940           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->notify_name));
    6941           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->notify_name));
    6942           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->notify_name, &size_notify_name_1));
    6943           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->notify_name, &length_notify_name_1));
    6944           0 :                         if (length_notify_name_1 > size_notify_name_1) {
    6945           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_notify_name_1, length_notify_name_1);
    6946             :                         }
    6947           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_notify_name_1, sizeof(uint16_t)));
    6948           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->notify_name, length_notify_name_1, sizeof(uint16_t), CH_UTF16));
    6949           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
    6950             :                 }
    6951           0 :                 if (r->data_type) {
    6952           0 :                         _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
    6953           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
    6954           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->data_type));
    6955           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->data_type));
    6956           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->data_type, &size_data_type_1));
    6957           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->data_type, &length_data_type_1));
    6958           0 :                         if (length_data_type_1 > size_data_type_1) {
    6959           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_data_type_1, length_data_type_1);
    6960             :                         }
    6961           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_data_type_1, sizeof(uint16_t)));
    6962           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_type, length_data_type_1, sizeof(uint16_t), CH_UTF16));
    6963           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
    6964             :                 }
    6965           0 :                 if (r->print_processor) {
    6966           0 :                         _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
    6967           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
    6968           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->print_processor));
    6969           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->print_processor));
    6970           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->print_processor, &size_print_processor_1));
    6971           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->print_processor, &length_print_processor_1));
    6972           0 :                         if (length_print_processor_1 > size_print_processor_1) {
    6973           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_print_processor_1, length_print_processor_1);
    6974             :                         }
    6975           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_print_processor_1, sizeof(uint16_t)));
    6976           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->print_processor, length_print_processor_1, sizeof(uint16_t), CH_UTF16));
    6977           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
    6978             :                 }
    6979           0 :                 if (r->parameters) {
    6980           0 :                         _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
    6981           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
    6982           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->parameters));
    6983           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->parameters));
    6984           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->parameters, &size_parameters_1));
    6985           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->parameters, &length_parameters_1));
    6986           0 :                         if (length_parameters_1 > size_parameters_1) {
    6987           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_parameters_1, length_parameters_1);
    6988             :                         }
    6989           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_parameters_1, sizeof(uint16_t)));
    6990           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->parameters, length_parameters_1, sizeof(uint16_t), CH_UTF16));
    6991           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
    6992             :                 }
    6993           0 :                 if (r->driver_name) {
    6994           0 :                         _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
    6995           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
    6996           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
    6997           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
    6998           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->driver_name, &size_driver_name_1));
    6999           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->driver_name, &length_driver_name_1));
    7000           0 :                         if (length_driver_name_1 > size_driver_name_1) {
    7001           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_driver_name_1, length_driver_name_1);
    7002             :                         }
    7003           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_driver_name_1, sizeof(uint16_t)));
    7004           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, length_driver_name_1, sizeof(uint16_t), CH_UTF16));
    7005           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
    7006             :                 }
    7007           0 :                 if (r->text_status) {
    7008           0 :                         _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
    7009           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
    7010           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->text_status));
    7011           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->text_status));
    7012           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->text_status, &size_text_status_1));
    7013           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->text_status, &length_text_status_1));
    7014           0 :                         if (length_text_status_1 > size_text_status_1) {
    7015           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_text_status_1, length_text_status_1);
    7016             :                         }
    7017           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_text_status_1, sizeof(uint16_t)));
    7018           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->text_status, length_text_status_1, sizeof(uint16_t), CH_UTF16));
    7019           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
    7020             :                 }
    7021             :         }
    7022           0 :         return NDR_ERR_SUCCESS;
    7023             : }
    7024             : 
    7025           0 : _PUBLIC_ void ndr_print_spoolss_SetJobInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_SetJobInfo4 *r)
    7026             : {
    7027           0 :         ndr_print_struct(ndr, name, "spoolss_SetJobInfo4");
    7028           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
    7029           0 :         ndr->depth++;
    7030           0 :         ndr_print_uint32(ndr, "job_id", r->job_id);
    7031           0 :         ndr_print_ptr(ndr, "printer_name", r->printer_name);
    7032           0 :         ndr->depth++;
    7033           0 :         if (r->printer_name) {
    7034           0 :                 ndr_print_string(ndr, "printer_name", r->printer_name);
    7035             :         }
    7036           0 :         ndr->depth--;
    7037           0 :         ndr_print_ptr(ndr, "server_name", r->server_name);
    7038           0 :         ndr->depth++;
    7039           0 :         if (r->server_name) {
    7040           0 :                 ndr_print_string(ndr, "server_name", r->server_name);
    7041             :         }
    7042           0 :         ndr->depth--;
    7043           0 :         ndr_print_ptr(ndr, "user_name", r->user_name);
    7044           0 :         ndr->depth++;
    7045           0 :         if (r->user_name) {
    7046           0 :                 ndr_print_string(ndr, "user_name", r->user_name);
    7047             :         }
    7048           0 :         ndr->depth--;
    7049           0 :         ndr_print_ptr(ndr, "document_name", r->document_name);
    7050           0 :         ndr->depth++;
    7051           0 :         if (r->document_name) {
    7052           0 :                 ndr_print_string(ndr, "document_name", r->document_name);
    7053             :         }
    7054           0 :         ndr->depth--;
    7055           0 :         ndr_print_ptr(ndr, "notify_name", r->notify_name);
    7056           0 :         ndr->depth++;
    7057           0 :         if (r->notify_name) {
    7058           0 :                 ndr_print_string(ndr, "notify_name", r->notify_name);
    7059             :         }
    7060           0 :         ndr->depth--;
    7061           0 :         ndr_print_ptr(ndr, "data_type", r->data_type);
    7062           0 :         ndr->depth++;
    7063           0 :         if (r->data_type) {
    7064           0 :                 ndr_print_string(ndr, "data_type", r->data_type);
    7065             :         }
    7066           0 :         ndr->depth--;
    7067           0 :         ndr_print_ptr(ndr, "print_processor", r->print_processor);
    7068           0 :         ndr->depth++;
    7069           0 :         if (r->print_processor) {
    7070           0 :                 ndr_print_string(ndr, "print_processor", r->print_processor);
    7071             :         }
    7072           0 :         ndr->depth--;
    7073           0 :         ndr_print_ptr(ndr, "parameters", r->parameters);
    7074           0 :         ndr->depth++;
    7075           0 :         if (r->parameters) {
    7076           0 :                 ndr_print_string(ndr, "parameters", r->parameters);
    7077             :         }
    7078           0 :         ndr->depth--;
    7079           0 :         ndr_print_ptr(ndr, "driver_name", r->driver_name);
    7080           0 :         ndr->depth++;
    7081           0 :         if (r->driver_name) {
    7082           0 :                 ndr_print_string(ndr, "driver_name", r->driver_name);
    7083             :         }
    7084           0 :         ndr->depth--;
    7085           0 :         ndr_print_uint3264(ndr, "_devmode_ptr", r->_devmode_ptr);
    7086           0 :         ndr_print_ptr(ndr, "text_status", r->text_status);
    7087           0 :         ndr->depth++;
    7088           0 :         if (r->text_status) {
    7089           0 :                 ndr_print_string(ndr, "text_status", r->text_status);
    7090             :         }
    7091           0 :         ndr->depth--;
    7092           0 :         ndr_print_uint3264(ndr, "_secdesc_ptr", r->_secdesc_ptr);
    7093           0 :         ndr_print_spoolss_JobStatus(ndr, "status", r->status);
    7094           0 :         ndr_print_uint32(ndr, "priority", r->priority);
    7095           0 :         ndr_print_uint32(ndr, "position", r->position);
    7096           0 :         ndr_print_uint32(ndr, "start_time", r->start_time);
    7097           0 :         ndr_print_uint32(ndr, "until_time", r->until_time);
    7098           0 :         ndr_print_uint32(ndr, "total_pages", r->total_pages);
    7099           0 :         ndr_print_uint32(ndr, "size", r->size);
    7100           0 :         ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
    7101           0 :         ndr_print_uint32(ndr, "time", r->time);
    7102           0 :         ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
    7103           0 :         ndr_print_uint32(ndr, "size_high", r->size_high);
    7104           0 :         ndr->depth--;
    7105             : }
    7106             : 
    7107          64 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_SetJobInfo(struct ndr_push *ndr, ndr_flags_type ndr_flags, const union spoolss_SetJobInfo *r)
    7108             : {
    7109           0 :         uint32_t level;
    7110          64 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    7111          64 :         if (ndr_flags & NDR_SCALARS) {
    7112             :                 /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
    7113          32 :                 NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
    7114          32 :                 NDR_CHECK(ndr_push_union_align(ndr, 5));
    7115          32 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
    7116             :                 /* ms_union is always aligned to the largest union arm*/
    7117          32 :                 NDR_CHECK(ndr_push_align(ndr, 5));
    7118          32 :                 switch (level) {
    7119          32 :                         case 1: {
    7120          32 :                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
    7121          32 :                         break; }
    7122             : 
    7123           0 :                         case 2: {
    7124           0 :                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
    7125           0 :                         break; }
    7126             : 
    7127           0 :                         case 3: {
    7128           0 :                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
    7129           0 :                         break; }
    7130             : 
    7131           0 :                         case 4: {
    7132           0 :                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
    7133           0 :                         break; }
    7134             : 
    7135           0 :                         default: {
    7136           0 :                         break; }
    7137             : 
    7138             :                 }
    7139             :         }
    7140          64 :         if (ndr_flags & NDR_BUFFERS) {
    7141          32 :                 if (!(ndr_flags & NDR_SCALARS)) {
    7142             :                         /* We didn't get it above, and the token is not needed after this. */
    7143          32 :                         NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
    7144             :                 }
    7145          32 :                 switch (level) {
    7146          32 :                         case 1:
    7147          32 :                                 if (r->info1) {
    7148          32 :                                         NDR_CHECK(ndr_push_spoolss_SetJobInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
    7149             :                                 }
    7150          32 :                         break;
    7151             : 
    7152           0 :                         case 2:
    7153           0 :                                 if (r->info2) {
    7154           0 :                                         NDR_CHECK(ndr_push_spoolss_SetJobInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
    7155             :                                 }
    7156           0 :                         break;
    7157             : 
    7158           0 :                         case 3:
    7159           0 :                                 if (r->info3) {
    7160           0 :                                         NDR_CHECK(ndr_push_spoolss_JobInfo3(ndr, NDR_SCALARS, r->info3));
    7161             :                                 }
    7162           0 :                         break;
    7163             : 
    7164           0 :                         case 4:
    7165           0 :                                 if (r->info4) {
    7166           0 :                                         NDR_CHECK(ndr_push_spoolss_SetJobInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
    7167             :                                 }
    7168           0 :                         break;
    7169             : 
    7170           0 :                         default:
    7171           0 :                         break;
    7172             : 
    7173             :                 }
    7174             :         }
    7175          64 :         return NDR_ERR_SUCCESS;
    7176             : }
    7177             : 
    7178          64 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_SetJobInfo(struct ndr_pull *ndr, ndr_flags_type ndr_flags, union spoolss_SetJobInfo *r)
    7179             : {
    7180           0 :         uint32_t level;
    7181           0 :         uint32_t _level;
    7182          64 :         TALLOC_CTX *_mem_save_info1_0 = NULL;
    7183           0 :         uint32_t _ptr_info1;
    7184          64 :         TALLOC_CTX *_mem_save_info2_0 = NULL;
    7185           0 :         uint32_t _ptr_info2;
    7186          64 :         TALLOC_CTX *_mem_save_info3_0 = NULL;
    7187           0 :         uint32_t _ptr_info3;
    7188          64 :         TALLOC_CTX *_mem_save_info4_0 = NULL;
    7189           0 :         uint32_t _ptr_info4;
    7190          64 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    7191          64 :         if (ndr_flags & NDR_SCALARS) {
    7192             :                 /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
    7193          32 :                 NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
    7194          32 :                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
    7195          32 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
    7196          32 :                 if (_level != level) {
    7197           0 :                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32" for r at %s", (uint32_t)_level, __location__);
    7198             :                 }
    7199             :                 /* ms_union is always aligned to the largest union arm*/
    7200          32 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
    7201          32 :                 switch (level) {
    7202          32 :                         case 1: {
    7203          32 :                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
    7204          32 :                                 if (_ptr_info1) {
    7205          32 :                                         NDR_PULL_ALLOC(ndr, r->info1);
    7206             :                                 } else {
    7207           0 :                                         r->info1 = NULL;
    7208             :                                 }
    7209          32 :                         break; }
    7210             : 
    7211           0 :                         case 2: {
    7212           0 :                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
    7213           0 :                                 if (_ptr_info2) {
    7214           0 :                                         NDR_PULL_ALLOC(ndr, r->info2);
    7215             :                                 } else {
    7216           0 :                                         r->info2 = NULL;
    7217             :                                 }
    7218           0 :                         break; }
    7219             : 
    7220           0 :                         case 3: {
    7221           0 :                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
    7222           0 :                                 if (_ptr_info3) {
    7223           0 :                                         NDR_PULL_ALLOC(ndr, r->info3);
    7224             :                                 } else {
    7225           0 :                                         r->info3 = NULL;
    7226             :                                 }
    7227           0 :                         break; }
    7228             : 
    7229           0 :                         case 4: {
    7230           0 :                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
    7231           0 :                                 if (_ptr_info4) {
    7232           0 :                                         NDR_PULL_ALLOC(ndr, r->info4);
    7233             :                                 } else {
    7234           0 :                                         r->info4 = NULL;
    7235             :                                 }
    7236           0 :                         break; }
    7237             : 
    7238           0 :                         default: {
    7239           0 :                         break; }
    7240             : 
    7241             :                 }
    7242             :         }
    7243          64 :         if (ndr_flags & NDR_BUFFERS) {
    7244          32 :                 if (!(ndr_flags & NDR_SCALARS)) {
    7245             :                         /* We didn't get it above, and the token is not needed after this. */
    7246          32 :                         NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
    7247             :                 }
    7248          32 :                 switch (level) {
    7249          32 :                         case 1:
    7250          32 :                                 if (r->info1) {
    7251          32 :                                         _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
    7252          32 :                                         NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
    7253          32 :                                         NDR_CHECK(ndr_pull_spoolss_SetJobInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
    7254          32 :                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
    7255             :                                 }
    7256          32 :                         break;
    7257             : 
    7258           0 :                         case 2:
    7259           0 :                                 if (r->info2) {
    7260           0 :                                         _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
    7261           0 :                                         NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
    7262           0 :                                         NDR_CHECK(ndr_pull_spoolss_SetJobInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
    7263           0 :                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
    7264             :                                 }
    7265           0 :                         break;
    7266             : 
    7267           0 :                         case 3:
    7268           0 :                                 if (r->info3) {
    7269           0 :                                         _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
    7270           0 :                                         NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
    7271           0 :                                         NDR_CHECK(ndr_pull_spoolss_JobInfo3(ndr, NDR_SCALARS, r->info3));
    7272           0 :                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
    7273             :                                 }
    7274           0 :                         break;
    7275             : 
    7276           0 :                         case 4:
    7277           0 :                                 if (r->info4) {
    7278           0 :                                         _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
    7279           0 :                                         NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
    7280           0 :                                         NDR_CHECK(ndr_pull_spoolss_SetJobInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
    7281           0 :                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
    7282             :                                 }
    7283           0 :                         break;
    7284             : 
    7285           0 :                         default:
    7286           0 :                         break;
    7287             : 
    7288             :                 }
    7289             :         }
    7290          64 :         return NDR_ERR_SUCCESS;
    7291             : }
    7292             : 
    7293           0 : _PUBLIC_ void ndr_print_spoolss_SetJobInfo(struct ndr_print *ndr, const char *name, const union spoolss_SetJobInfo *r)
    7294             : {
    7295           0 :         uint32_t level;
    7296           0 :         level = ndr_print_steal_switch_value(ndr, r);
    7297           0 :         ndr_print_union(ndr, name, level, "spoolss_SetJobInfo");
    7298           0 :         switch (level) {
    7299           0 :                 case 1:
    7300           0 :                         ndr_print_ptr(ndr, "info1", r->info1);
    7301           0 :                         ndr->depth++;
    7302           0 :                         if (r->info1) {
    7303           0 :                                 ndr_print_spoolss_SetJobInfo1(ndr, "info1", r->info1);
    7304             :                         }
    7305           0 :                         ndr->depth--;
    7306           0 :                 break;
    7307             : 
    7308           0 :                 case 2:
    7309           0 :                         ndr_print_ptr(ndr, "info2", r->info2);
    7310           0 :                         ndr->depth++;
    7311           0 :                         if (r->info2) {
    7312           0 :                                 ndr_print_spoolss_SetJobInfo2(ndr, "info2", r->info2);
    7313             :                         }
    7314           0 :                         ndr->depth--;
    7315           0 :                 break;
    7316             : 
    7317           0 :                 case 3:
    7318           0 :                         ndr_print_ptr(ndr, "info3", r->info3);
    7319           0 :                         ndr->depth++;
    7320           0 :                         if (r->info3) {
    7321           0 :                                 ndr_print_spoolss_JobInfo3(ndr, "info3", r->info3);
    7322             :                         }
    7323           0 :                         ndr->depth--;
    7324           0 :                 break;
    7325             : 
    7326           0 :                 case 4:
    7327           0 :                         ndr_print_ptr(ndr, "info4", r->info4);
    7328           0 :                         ndr->depth++;
    7329           0 :                         if (r->info4) {
    7330           0 :                                 ndr_print_spoolss_SetJobInfo4(ndr, "info4", r->info4);
    7331             :                         }
    7332           0 :                         ndr->depth--;
    7333           0 :                 break;
    7334             : 
    7335           0 :                 default:
    7336           0 :                 break;
    7337             : 
    7338             :         }
    7339           0 : }
    7340             : 
    7341          32 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfoContainer(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_JobInfoContainer *r)
    7342             : {
    7343          32 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    7344          32 :         if (ndr_flags & NDR_SCALARS) {
    7345          32 :                 NDR_CHECK(ndr_push_align(ndr, 5));
    7346          32 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
    7347          32 :                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
    7348          32 :                 NDR_CHECK(ndr_push_spoolss_SetJobInfo(ndr, NDR_SCALARS, &r->info));
    7349          32 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
    7350             :         }
    7351          32 :         if (ndr_flags & NDR_BUFFERS) {
    7352          32 :                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
    7353          32 :                 NDR_CHECK(ndr_push_spoolss_SetJobInfo(ndr, NDR_BUFFERS, &r->info));
    7354             :         }
    7355          32 :         return NDR_ERR_SUCCESS;
    7356             : }
    7357             : 
    7358          32 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfoContainer(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_JobInfoContainer *r)
    7359             : {
    7360          32 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    7361          32 :         if (ndr_flags & NDR_SCALARS) {
    7362          32 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
    7363          32 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
    7364          32 :                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
    7365          32 :                 NDR_CHECK(ndr_pull_spoolss_SetJobInfo(ndr, NDR_SCALARS, &r->info));
    7366          32 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
    7367             :         }
    7368          32 :         if (ndr_flags & NDR_BUFFERS) {
    7369          32 :                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
    7370          32 :                 NDR_CHECK(ndr_pull_spoolss_SetJobInfo(ndr, NDR_BUFFERS, &r->info));
    7371             :         }
    7372          32 :         return NDR_ERR_SUCCESS;
    7373             : }
    7374             : 
    7375           0 : static void ndr_print_flags_spoolss_JobInfoContainer(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_JobInfoContainer *r)
    7376             : {
    7377           0 :         ndr_print_spoolss_JobInfoContainer(ndr, name, r);
    7378           0 : }
    7379             : 
    7380           0 : _PUBLIC_ void ndr_print_spoolss_JobInfoContainer(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfoContainer *r)
    7381             : {
    7382           0 :         ndr_print_struct(ndr, name, "spoolss_JobInfoContainer");
    7383           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
    7384           0 :         ndr->depth++;
    7385           0 :         ndr_print_uint32(ndr, "level", r->level);
    7386           0 :         ndr_print_set_switch_value(ndr, &r->info, r->level);
    7387           0 :         ndr_print_spoolss_SetJobInfo(ndr, "info", &r->info);
    7388           0 :         ndr->depth--;
    7389             : }
    7390             : 
    7391         640 : static enum ndr_err_code ndr_push_spoolss_JobControl(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum spoolss_JobControl r)
    7392             : {
    7393         640 :         NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
    7394         640 :         return NDR_ERR_SUCCESS;
    7395             : }
    7396             : 
    7397         640 : static enum ndr_err_code ndr_pull_spoolss_JobControl(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum spoolss_JobControl *r)
    7398             : {
    7399           0 :         uint32_t v;
    7400         640 :         NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
    7401         640 :         *r = v;
    7402         640 :         return NDR_ERR_SUCCESS;
    7403             : }
    7404             : 
    7405           0 : _PUBLIC_ void ndr_print_spoolss_JobControl(struct ndr_print *ndr, const char *name, enum spoolss_JobControl r)
    7406             : {
    7407           0 :         const char *val = NULL;
    7408             : 
    7409           0 :         switch (r) {
    7410           0 :                 case SPOOLSS_JOB_CONTROL_NOOP: val = "SPOOLSS_JOB_CONTROL_NOOP"; break;
    7411           0 :                 case SPOOLSS_JOB_CONTROL_PAUSE: val = "SPOOLSS_JOB_CONTROL_PAUSE"; break;
    7412           0 :                 case SPOOLSS_JOB_CONTROL_RESUME: val = "SPOOLSS_JOB_CONTROL_RESUME"; break;
    7413           0 :                 case SPOOLSS_JOB_CONTROL_CANCEL: val = "SPOOLSS_JOB_CONTROL_CANCEL"; break;
    7414           0 :                 case SPOOLSS_JOB_CONTROL_RESTART: val = "SPOOLSS_JOB_CONTROL_RESTART"; break;
    7415           0 :                 case SPOOLSS_JOB_CONTROL_DELETE: val = "SPOOLSS_JOB_CONTROL_DELETE"; break;
    7416           0 :                 case SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER: val = "SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER"; break;
    7417           0 :                 case SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED: val = "SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED"; break;
    7418           0 :                 case SPOOLSS_JOB_CONTROL_RETAIN: val = "SPOOLSS_JOB_CONTROL_RETAIN"; break;
    7419           0 :                 case SPOOLSS_JOB_CONTROL_RELEASE: val = "SPOOLSS_JOB_CONTROL_RELEASE"; break;
    7420             :         }
    7421           0 :         ndr_print_enum(ndr, name, "ENUM", val, r);
    7422           0 : }
    7423             : 
    7424         584 : static enum ndr_err_code ndr_push_spoolss_PrinterControl(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum spoolss_PrinterControl r)
    7425             : {
    7426         584 :         NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
    7427         584 :         return NDR_ERR_SUCCESS;
    7428             : }
    7429             : 
    7430         588 : static enum ndr_err_code ndr_pull_spoolss_PrinterControl(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum spoolss_PrinterControl *r)
    7431             : {
    7432           4 :         uint32_t v;
    7433         588 :         NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
    7434         588 :         *r = v;
    7435         588 :         return NDR_ERR_SUCCESS;
    7436             : }
    7437             : 
    7438           4 : _PUBLIC_ void ndr_print_spoolss_PrinterControl(struct ndr_print *ndr, const char *name, enum spoolss_PrinterControl r)
    7439             : {
    7440           4 :         const char *val = NULL;
    7441             : 
    7442           4 :         switch (r) {
    7443           4 :                 case SPOOLSS_PRINTER_CONTROL_UNPAUSE: val = "SPOOLSS_PRINTER_CONTROL_UNPAUSE"; break;
    7444           0 :                 case SPOOLSS_PRINTER_CONTROL_PAUSE: val = "SPOOLSS_PRINTER_CONTROL_PAUSE"; break;
    7445           0 :                 case SPOOLSS_PRINTER_CONTROL_RESUME: val = "SPOOLSS_PRINTER_CONTROL_RESUME"; break;
    7446           0 :                 case SPOOLSS_PRINTER_CONTROL_PURGE: val = "SPOOLSS_PRINTER_CONTROL_PURGE"; break;
    7447           0 :                 case SPOOLSS_PRINTER_CONTROL_SET_STATUS: val = "SPOOLSS_PRINTER_CONTROL_SET_STATUS"; break;
    7448             :         }
    7449           4 :         ndr_print_enum(ndr, name, "ENUM", val, r);
    7450           4 : }
    7451             : 
    7452           0 : static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo0(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_SetPrinterInfo0 *r)
    7453             : {
    7454           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    7455           0 :         if (ndr_flags & NDR_SCALARS) {
    7456           0 :                 NDR_CHECK(ndr_push_align(ndr, 5));
    7457           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->servername));
    7458           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
    7459           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
    7460           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_jobs));
    7461           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_bytes));
    7462           0 :                 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->time));
    7463           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->global_counter));
    7464           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
    7465           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
    7466           0 :                 NDR_CHECK(ndr_push_spoolss_Build(ndr, NDR_SCALARS, r->free_build));
    7467           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->spooling));
    7468           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->max_spooling));
    7469           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->session_counter));
    7470           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_out_of_paper));
    7471           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_not_ready));
    7472           0 :                 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->job_error));
    7473           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->number_of_processors));
    7474           0 :                 NDR_CHECK(ndr_push_spoolss_ProcessorType(ndr, NDR_SCALARS, r->processor_type));
    7475           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->high_part_total_bytes));
    7476           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->change_id));
    7477           0 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->last_error));
    7478           0 :                 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
    7479           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->enumerate_network_printers));
    7480           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->c_setprinter));
    7481           0 :                 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor_architecture));
    7482           0 :                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->processor_level));
    7483           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ref_ic));
    7484           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved2));
    7485           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved3));
    7486           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
    7487             :         }
    7488           0 :         if (ndr_flags & NDR_BUFFERS) {
    7489           0 :                 if (r->servername) {
    7490           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
    7491           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    7492           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
    7493           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->servername, ndr_charset_length(r->servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
    7494             :                 }
    7495           0 :                 if (r->printername) {
    7496           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
    7497           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    7498           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
    7499           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
    7500             :                 }
    7501             :         }
    7502           0 :         return NDR_ERR_SUCCESS;
    7503             : }
    7504             : 
    7505           0 : static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo0(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_SetPrinterInfo0 *r)
    7506             : {
    7507           0 :         uint32_t _ptr_servername;
    7508           0 :         uint32_t size_servername_1 = 0;
    7509           0 :         uint32_t length_servername_1 = 0;
    7510           0 :         TALLOC_CTX *_mem_save_servername_0 = NULL;
    7511           0 :         uint32_t _ptr_printername;
    7512           0 :         uint32_t size_printername_1 = 0;
    7513           0 :         uint32_t length_printername_1 = 0;
    7514           0 :         TALLOC_CTX *_mem_save_printername_0 = NULL;
    7515           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    7516           0 :         if (ndr_flags & NDR_SCALARS) {
    7517           0 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
    7518           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
    7519           0 :                 if (_ptr_servername) {
    7520           0 :                         NDR_PULL_ALLOC(ndr, r->servername);
    7521             :                 } else {
    7522           0 :                         r->servername = NULL;
    7523             :                 }
    7524           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
    7525           0 :                 if (_ptr_printername) {
    7526           0 :                         NDR_PULL_ALLOC(ndr, r->printername);
    7527             :                 } else {
    7528           0 :                         r->printername = NULL;
    7529             :                 }
    7530           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
    7531           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_jobs));
    7532           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_bytes));
    7533           0 :                 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->time));
    7534           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->global_counter));
    7535           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
    7536           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
    7537           0 :                 NDR_CHECK(ndr_pull_spoolss_Build(ndr, NDR_SCALARS, &r->free_build));
    7538           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->spooling));
    7539           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_spooling));
    7540           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->session_counter));
    7541           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_out_of_paper));
    7542           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_not_ready));
    7543           0 :                 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->job_error));
    7544           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->number_of_processors));
    7545           0 :                 NDR_CHECK(ndr_pull_spoolss_ProcessorType(ndr, NDR_SCALARS, &r->processor_type));
    7546           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->high_part_total_bytes));
    7547           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->change_id));
    7548           0 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->last_error));
    7549           0 :                 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
    7550           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->enumerate_network_printers));
    7551           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->c_setprinter));
    7552           0 :                 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor_architecture));
    7553           0 :                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->processor_level));
    7554           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ref_ic));
    7555           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
    7556           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved3));
    7557           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
    7558             :         }
    7559           0 :         if (ndr_flags & NDR_BUFFERS) {
    7560           0 :                 if (r->servername) {
    7561           0 :                         _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
    7562           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
    7563           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->servername));
    7564           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->servername));
    7565           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->servername, &size_servername_1));
    7566           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->servername, &length_servername_1));
    7567           0 :                         if (length_servername_1 > size_servername_1) {
    7568           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_servername_1, length_servername_1);
    7569             :                         }
    7570           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_servername_1, sizeof(uint16_t)));
    7571           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, length_servername_1, sizeof(uint16_t), CH_UTF16));
    7572           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
    7573             :                 }
    7574           0 :                 if (r->printername) {
    7575           0 :                         _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
    7576           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
    7577           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
    7578           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
    7579           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->printername, &size_printername_1));
    7580           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->printername, &length_printername_1));
    7581           0 :                         if (length_printername_1 > size_printername_1) {
    7582           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_printername_1, length_printername_1);
    7583             :                         }
    7584           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_printername_1, sizeof(uint16_t)));
    7585           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, length_printername_1, sizeof(uint16_t), CH_UTF16));
    7586           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
    7587             :                 }
    7588             :         }
    7589           0 :         return NDR_ERR_SUCCESS;
    7590             : }
    7591             : 
    7592           0 : _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo0(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo0 *r)
    7593             : {
    7594           0 :         ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo0");
    7595           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
    7596           0 :         ndr->depth++;
    7597           0 :         ndr_print_ptr(ndr, "servername", r->servername);
    7598           0 :         ndr->depth++;
    7599           0 :         if (r->servername) {
    7600           0 :                 ndr_print_string(ndr, "servername", r->servername);
    7601             :         }
    7602           0 :         ndr->depth--;
    7603           0 :         ndr_print_ptr(ndr, "printername", r->printername);
    7604           0 :         ndr->depth++;
    7605           0 :         if (r->printername) {
    7606           0 :                 ndr_print_string(ndr, "printername", r->printername);
    7607             :         }
    7608           0 :         ndr->depth--;
    7609           0 :         ndr_print_uint32(ndr, "cjobs", r->cjobs);
    7610           0 :         ndr_print_uint32(ndr, "total_jobs", r->total_jobs);
    7611           0 :         ndr_print_uint32(ndr, "total_bytes", r->total_bytes);
    7612           0 :         ndr_print_spoolss_Time(ndr, "time", &r->time);
    7613           0 :         ndr_print_uint32(ndr, "global_counter", r->global_counter);
    7614           0 :         ndr_print_uint32(ndr, "total_pages", r->total_pages);
    7615           0 :         ndr_print_uint32(ndr, "version", r->version);
    7616           0 :         ndr_print_spoolss_Build(ndr, "free_build", r->free_build);
    7617           0 :         ndr_print_uint32(ndr, "spooling", r->spooling);
    7618           0 :         ndr_print_uint32(ndr, "max_spooling", r->max_spooling);
    7619           0 :         ndr_print_uint32(ndr, "session_counter", r->session_counter);
    7620           0 :         ndr_print_uint32(ndr, "num_error_out_of_paper", r->num_error_out_of_paper);
    7621           0 :         ndr_print_uint32(ndr, "num_error_not_ready", r->num_error_not_ready);
    7622           0 :         ndr_print_spoolss_JobStatus(ndr, "job_error", r->job_error);
    7623           0 :         ndr_print_uint32(ndr, "number_of_processors", r->number_of_processors);
    7624           0 :         ndr_print_spoolss_ProcessorType(ndr, "processor_type", r->processor_type);
    7625           0 :         ndr_print_uint32(ndr, "high_part_total_bytes", r->high_part_total_bytes);
    7626           0 :         ndr_print_uint32(ndr, "change_id", r->change_id);
    7627           0 :         ndr_print_WERROR(ndr, "last_error", r->last_error);
    7628           0 :         ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
    7629           0 :         ndr_print_uint32(ndr, "enumerate_network_printers", r->enumerate_network_printers);
    7630           0 :         ndr_print_uint32(ndr, "c_setprinter", r->c_setprinter);
    7631           0 :         ndr_print_spoolss_ProcessorArchitecture(ndr, "processor_architecture", r->processor_architecture);
    7632           0 :         ndr_print_uint16(ndr, "processor_level", r->processor_level);
    7633           0 :         ndr_print_uint32(ndr, "ref_ic", r->ref_ic);
    7634           0 :         ndr_print_uint32(ndr, "reserved2", r->reserved2);
    7635           0 :         ndr_print_uint32(ndr, "reserved3", r->reserved3);
    7636           0 :         ndr->depth--;
    7637             : }
    7638             : 
    7639           0 : static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo1(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_SetPrinterInfo1 *r)
    7640             : {
    7641           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    7642           0 :         if (ndr_flags & NDR_SCALARS) {
    7643           0 :                 NDR_CHECK(ndr_push_align(ndr, 5));
    7644           0 :                 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->flags));
    7645           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->description));
    7646           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
    7647           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->comment));
    7648           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
    7649             :         }
    7650           0 :         if (ndr_flags & NDR_BUFFERS) {
    7651           0 :                 if (r->description) {
    7652           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->description, CH_UTF16)));
    7653           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    7654           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->description, CH_UTF16)));
    7655           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->description, ndr_charset_length(r->description, CH_UTF16), sizeof(uint16_t), CH_UTF16));
    7656             :                 }
    7657           0 :                 if (r->name) {
    7658           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
    7659           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    7660           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
    7661           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, ndr_charset_length(r->name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
    7662             :                 }
    7663           0 :                 if (r->comment) {
    7664           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
    7665           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    7666           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
    7667           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->comment, ndr_charset_length(r->comment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
    7668             :                 }
    7669             :         }
    7670           0 :         return NDR_ERR_SUCCESS;
    7671             : }
    7672             : 
    7673           0 : static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo1(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_SetPrinterInfo1 *r)
    7674             : {
    7675           0 :         uint32_t _ptr_description;
    7676           0 :         uint32_t size_description_1 = 0;
    7677           0 :         uint32_t length_description_1 = 0;
    7678           0 :         TALLOC_CTX *_mem_save_description_0 = NULL;
    7679           0 :         uint32_t _ptr_name;
    7680           0 :         uint32_t size_name_1 = 0;
    7681           0 :         uint32_t length_name_1 = 0;
    7682           0 :         TALLOC_CTX *_mem_save_name_0 = NULL;
    7683           0 :         uint32_t _ptr_comment;
    7684           0 :         uint32_t size_comment_1 = 0;
    7685           0 :         uint32_t length_comment_1 = 0;
    7686           0 :         TALLOC_CTX *_mem_save_comment_0 = NULL;
    7687           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    7688           0 :         if (ndr_flags & NDR_SCALARS) {
    7689           0 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
    7690           0 :                 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->flags));
    7691           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
    7692           0 :                 if (_ptr_description) {
    7693           0 :                         NDR_PULL_ALLOC(ndr, r->description);
    7694             :                 } else {
    7695           0 :                         r->description = NULL;
    7696             :                 }
    7697           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
    7698           0 :                 if (_ptr_name) {
    7699           0 :                         NDR_PULL_ALLOC(ndr, r->name);
    7700             :                 } else {
    7701           0 :                         r->name = NULL;
    7702             :                 }
    7703           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
    7704           0 :                 if (_ptr_comment) {
    7705           0 :                         NDR_PULL_ALLOC(ndr, r->comment);
    7706             :                 } else {
    7707           0 :                         r->comment = NULL;
    7708             :                 }
    7709           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
    7710             :         }
    7711           0 :         if (ndr_flags & NDR_BUFFERS) {
    7712           0 :                 if (r->description) {
    7713           0 :                         _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
    7714           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
    7715           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->description));
    7716           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->description));
    7717           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->description, &size_description_1));
    7718           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->description, &length_description_1));
    7719           0 :                         if (length_description_1 > size_description_1) {
    7720           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_description_1, length_description_1);
    7721             :                         }
    7722           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_description_1, sizeof(uint16_t)));
    7723           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->description, length_description_1, sizeof(uint16_t), CH_UTF16));
    7724           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
    7725             :                 }
    7726           0 :                 if (r->name) {
    7727           0 :                         _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
    7728           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
    7729           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->name));
    7730           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->name));
    7731           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->name, &size_name_1));
    7732           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->name, &length_name_1));
    7733           0 :                         if (length_name_1 > size_name_1) {
    7734           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_name_1, length_name_1);
    7735             :                         }
    7736           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_name_1, sizeof(uint16_t)));
    7737           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, length_name_1, sizeof(uint16_t), CH_UTF16));
    7738           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
    7739             :                 }
    7740           0 :                 if (r->comment) {
    7741           0 :                         _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
    7742           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
    7743           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->comment));
    7744           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->comment));
    7745           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->comment, &size_comment_1));
    7746           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->comment, &length_comment_1));
    7747           0 :                         if (length_comment_1 > size_comment_1) {
    7748           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_comment_1, length_comment_1);
    7749             :                         }
    7750           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_comment_1, sizeof(uint16_t)));
    7751           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, length_comment_1, sizeof(uint16_t), CH_UTF16));
    7752           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
    7753             :                 }
    7754             :         }
    7755           0 :         return NDR_ERR_SUCCESS;
    7756             : }
    7757             : 
    7758           0 : _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo1 *r)
    7759             : {
    7760           0 :         ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo1");
    7761           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
    7762           0 :         ndr->depth++;
    7763           0 :         ndr_print_spoolss_PrinterAttributes(ndr, "flags", r->flags);
    7764           0 :         ndr_print_ptr(ndr, "description", r->description);
    7765           0 :         ndr->depth++;
    7766           0 :         if (r->description) {
    7767           0 :                 ndr_print_string(ndr, "description", r->description);
    7768             :         }
    7769           0 :         ndr->depth--;
    7770           0 :         ndr_print_ptr(ndr, "name", r->name);
    7771           0 :         ndr->depth++;
    7772           0 :         if (r->name) {
    7773           0 :                 ndr_print_string(ndr, "name", r->name);
    7774             :         }
    7775           0 :         ndr->depth--;
    7776           0 :         ndr_print_ptr(ndr, "comment", r->comment);
    7777           0 :         ndr->depth++;
    7778           0 :         if (r->comment) {
    7779           0 :                 ndr_print_string(ndr, "comment", r->comment);
    7780             :         }
    7781           0 :         ndr->depth--;
    7782           0 :         ndr->depth--;
    7783             : }
    7784             : 
    7785         180 : static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo2(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_SetPrinterInfo2 *r)
    7786             : {
    7787         180 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    7788         180 :         if (ndr_flags & NDR_SCALARS) {
    7789         180 :                 NDR_CHECK(ndr_push_align(ndr, 5));
    7790         180 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->servername));
    7791         180 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
    7792         180 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sharename));
    7793         180 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->portname));
    7794         180 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->drivername));
    7795         180 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->comment));
    7796         180 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->location));
    7797         180 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->devmode_ptr));
    7798         180 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sepfile));
    7799         180 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printprocessor));
    7800         180 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->datatype));
    7801         180 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->parameters));
    7802         180 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->secdesc_ptr));
    7803         180 :                 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
    7804         180 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
    7805         180 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->defaultpriority));
    7806         180 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->starttime));
    7807         180 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->untiltime));
    7808         180 :                 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
    7809         180 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
    7810         180 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->averageppm));
    7811         180 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
    7812             :         }
    7813         180 :         if (ndr_flags & NDR_BUFFERS) {
    7814         180 :                 if (r->servername) {
    7815          64 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
    7816          64 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    7817          64 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
    7818          64 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->servername, ndr_charset_length(r->servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
    7819             :                 }
    7820         180 :                 if (r->printername) {
    7821         164 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
    7822         164 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    7823         164 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
    7824         164 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
    7825             :                 }
    7826         180 :                 if (r->sharename) {
    7827          84 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->sharename, CH_UTF16)));
    7828          84 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    7829          84 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->sharename, CH_UTF16)));
    7830          84 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->sharename, ndr_charset_length(r->sharename, CH_UTF16), sizeof(uint16_t), CH_UTF16));
    7831             :                 }
    7832         180 :                 if (r->portname) {
    7833         148 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
    7834         148 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    7835         148 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
    7836         148 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, ndr_charset_length(r->portname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
    7837             :                 }
    7838         180 :                 if (r->drivername) {
    7839         132 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->drivername, CH_UTF16)));
    7840         132 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    7841         132 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->drivername, CH_UTF16)));
    7842         132 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->drivername, ndr_charset_length(r->drivername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
    7843             :                 }
    7844         180 :                 if (r->comment) {
    7845          84 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
    7846          84 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    7847          84 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
    7848          84 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->comment, ndr_charset_length(r->comment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
    7849             :                 }
    7850         180 :                 if (r->location) {
    7851          84 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->location, CH_UTF16)));
    7852          84 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    7853          84 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->location, CH_UTF16)));
    7854          84 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->location, ndr_charset_length(r->location, CH_UTF16), sizeof(uint16_t), CH_UTF16));
    7855             :                 }
    7856         180 :                 if (r->sepfile) {
    7857          84 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->sepfile, CH_UTF16)));
    7858          84 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    7859          84 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->sepfile, CH_UTF16)));
    7860          84 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->sepfile, ndr_charset_length(r->sepfile, CH_UTF16), sizeof(uint16_t), CH_UTF16));
    7861             :                 }
    7862         180 :                 if (r->printprocessor) {
    7863         116 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printprocessor, CH_UTF16)));
    7864         116 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    7865         116 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printprocessor, CH_UTF16)));
    7866         116 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printprocessor, ndr_charset_length(r->printprocessor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
    7867             :                 }
    7868         180 :                 if (r->datatype) {
    7869          84 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
    7870          84 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    7871          84 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
    7872          84 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->datatype, ndr_charset_length(r->datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
    7873             :                 }
    7874         180 :                 if (r->parameters) {
    7875          84 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
    7876          84 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    7877          84 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
    7878          84 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->parameters, ndr_charset_length(r->parameters, CH_UTF16), sizeof(uint16_t), CH_UTF16));
    7879             :                 }
    7880             :         }
    7881         180 :         return NDR_ERR_SUCCESS;
    7882             : }
    7883             : 
    7884         184 : static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo2(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_SetPrinterInfo2 *r)
    7885             : {
    7886           4 :         uint32_t _ptr_servername;
    7887         184 :         uint32_t size_servername_1 = 0;
    7888         184 :         uint32_t length_servername_1 = 0;
    7889         184 :         TALLOC_CTX *_mem_save_servername_0 = NULL;
    7890           4 :         uint32_t _ptr_printername;
    7891         184 :         uint32_t size_printername_1 = 0;
    7892         184 :         uint32_t length_printername_1 = 0;
    7893         184 :         TALLOC_CTX *_mem_save_printername_0 = NULL;
    7894           4 :         uint32_t _ptr_sharename;
    7895         184 :         uint32_t size_sharename_1 = 0;
    7896         184 :         uint32_t length_sharename_1 = 0;
    7897         184 :         TALLOC_CTX *_mem_save_sharename_0 = NULL;
    7898           4 :         uint32_t _ptr_portname;
    7899         184 :         uint32_t size_portname_1 = 0;
    7900         184 :         uint32_t length_portname_1 = 0;
    7901         184 :         TALLOC_CTX *_mem_save_portname_0 = NULL;
    7902           4 :         uint32_t _ptr_drivername;
    7903         184 :         uint32_t size_drivername_1 = 0;
    7904         184 :         uint32_t length_drivername_1 = 0;
    7905         184 :         TALLOC_CTX *_mem_save_drivername_0 = NULL;
    7906           4 :         uint32_t _ptr_comment;
    7907         184 :         uint32_t size_comment_1 = 0;
    7908         184 :         uint32_t length_comment_1 = 0;
    7909         184 :         TALLOC_CTX *_mem_save_comment_0 = NULL;
    7910           4 :         uint32_t _ptr_location;
    7911         184 :         uint32_t size_location_1 = 0;
    7912         184 :         uint32_t length_location_1 = 0;
    7913         184 :         TALLOC_CTX *_mem_save_location_0 = NULL;
    7914           4 :         uint32_t _ptr_sepfile;
    7915         184 :         uint32_t size_sepfile_1 = 0;
    7916         184 :         uint32_t length_sepfile_1 = 0;
    7917         184 :         TALLOC_CTX *_mem_save_sepfile_0 = NULL;
    7918           4 :         uint32_t _ptr_printprocessor;
    7919         184 :         uint32_t size_printprocessor_1 = 0;
    7920         184 :         uint32_t length_printprocessor_1 = 0;
    7921         184 :         TALLOC_CTX *_mem_save_printprocessor_0 = NULL;
    7922           4 :         uint32_t _ptr_datatype;
    7923         184 :         uint32_t size_datatype_1 = 0;
    7924         184 :         uint32_t length_datatype_1 = 0;
    7925         184 :         TALLOC_CTX *_mem_save_datatype_0 = NULL;
    7926           4 :         uint32_t _ptr_parameters;
    7927         184 :         uint32_t size_parameters_1 = 0;
    7928         184 :         uint32_t length_parameters_1 = 0;
    7929         184 :         TALLOC_CTX *_mem_save_parameters_0 = NULL;
    7930         184 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    7931         184 :         if (ndr_flags & NDR_SCALARS) {
    7932         184 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
    7933         184 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
    7934         184 :                 if (_ptr_servername) {
    7935          68 :                         NDR_PULL_ALLOC(ndr, r->servername);
    7936             :                 } else {
    7937         116 :                         r->servername = NULL;
    7938             :                 }
    7939         184 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
    7940         184 :                 if (_ptr_printername) {
    7941         168 :                         NDR_PULL_ALLOC(ndr, r->printername);
    7942             :                 } else {
    7943          16 :                         r->printername = NULL;
    7944             :                 }
    7945         184 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sharename));
    7946         184 :                 if (_ptr_sharename) {
    7947          88 :                         NDR_PULL_ALLOC(ndr, r->sharename);
    7948             :                 } else {
    7949          96 :                         r->sharename = NULL;
    7950             :                 }
    7951         184 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
    7952         184 :                 if (_ptr_portname) {
    7953         152 :                         NDR_PULL_ALLOC(ndr, r->portname);
    7954             :                 } else {
    7955          32 :                         r->portname = NULL;
    7956             :                 }
    7957         184 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_drivername));
    7958         184 :                 if (_ptr_drivername) {
    7959         136 :                         NDR_PULL_ALLOC(ndr, r->drivername);
    7960             :                 } else {
    7961          48 :                         r->drivername = NULL;
    7962             :                 }
    7963         184 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
    7964         184 :                 if (_ptr_comment) {
    7965          88 :                         NDR_PULL_ALLOC(ndr, r->comment);
    7966             :                 } else {
    7967          96 :                         r->comment = NULL;
    7968             :                 }
    7969         184 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_location));
    7970         184 :                 if (_ptr_location) {
    7971          88 :                         NDR_PULL_ALLOC(ndr, r->location);
    7972             :                 } else {
    7973          96 :                         r->location = NULL;
    7974             :                 }
    7975         184 :                 NDR_CHECK(ndr_pull_uint3264(ndr, NDR_SCALARS, &r->devmode_ptr));
    7976         184 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sepfile));
    7977         184 :                 if (_ptr_sepfile) {
    7978          88 :                         NDR_PULL_ALLOC(ndr, r->sepfile);
    7979             :                 } else {
    7980          96 :                         r->sepfile = NULL;
    7981             :                 }
    7982         184 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printprocessor));
    7983         184 :                 if (_ptr_printprocessor) {
    7984         120 :                         NDR_PULL_ALLOC(ndr, r->printprocessor);
    7985             :                 } else {
    7986          64 :                         r->printprocessor = NULL;
    7987             :                 }
    7988         184 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
    7989         184 :                 if (_ptr_datatype) {
    7990          88 :                         NDR_PULL_ALLOC(ndr, r->datatype);
    7991             :                 } else {
    7992          96 :                         r->datatype = NULL;
    7993             :                 }
    7994         184 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
    7995         184 :                 if (_ptr_parameters) {
    7996          88 :                         NDR_PULL_ALLOC(ndr, r->parameters);
    7997             :                 } else {
    7998          96 :                         r->parameters = NULL;
    7999             :                 }
    8000         184 :                 NDR_CHECK(ndr_pull_uint3264(ndr, NDR_SCALARS, &r->secdesc_ptr));
    8001         184 :                 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
    8002         184 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
    8003         184 :                 if (r->priority > 99) {
    8004           0 :                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value (%"PRIu32") out of range (%"PRIu32" - %"PRIu32")", (uint32_t)(r->priority), (uint32_t)(0), (uint32_t)(99));
    8005             :                 }
    8006         184 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->defaultpriority));
    8007         184 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->starttime));
    8008         184 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->untiltime));
    8009         184 :                 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
    8010         184 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
    8011         184 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->averageppm));
    8012         184 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
    8013             :         }
    8014         184 :         if (ndr_flags & NDR_BUFFERS) {
    8015         184 :                 if (r->servername) {
    8016          68 :                         _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
    8017          68 :                         NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
    8018          68 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->servername));
    8019          68 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->servername));
    8020          68 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->servername, &size_servername_1));
    8021          68 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->servername, &length_servername_1));
    8022          68 :                         if (length_servername_1 > size_servername_1) {
    8023           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_servername_1, length_servername_1);
    8024             :                         }
    8025          68 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_servername_1, sizeof(uint16_t)));
    8026          68 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, length_servername_1, sizeof(uint16_t), CH_UTF16));
    8027          68 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
    8028             :                 }
    8029         184 :                 if (r->printername) {
    8030         168 :                         _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
    8031         168 :                         NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
    8032         168 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
    8033         168 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
    8034         168 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->printername, &size_printername_1));
    8035         168 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->printername, &length_printername_1));
    8036         168 :                         if (length_printername_1 > size_printername_1) {
    8037           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_printername_1, length_printername_1);
    8038             :                         }
    8039         168 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_printername_1, sizeof(uint16_t)));
    8040         168 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, length_printername_1, sizeof(uint16_t), CH_UTF16));
    8041         168 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
    8042             :                 }
    8043         184 :                 if (r->sharename) {
    8044          88 :                         _mem_save_sharename_0 = NDR_PULL_GET_MEM_CTX(ndr);
    8045          88 :                         NDR_PULL_SET_MEM_CTX(ndr, r->sharename, 0);
    8046          88 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->sharename));
    8047          88 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->sharename));
    8048          88 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->sharename, &size_sharename_1));
    8049          88 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->sharename, &length_sharename_1));
    8050          88 :                         if (length_sharename_1 > size_sharename_1) {
    8051           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_sharename_1, length_sharename_1);
    8052             :                         }
    8053          88 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_sharename_1, sizeof(uint16_t)));
    8054          88 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->sharename, length_sharename_1, sizeof(uint16_t), CH_UTF16));
    8055          88 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sharename_0, 0);
    8056             :                 }
    8057         184 :                 if (r->portname) {
    8058         152 :                         _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
    8059         152 :                         NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
    8060         152 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->portname));
    8061         152 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->portname));
    8062         152 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->portname, &size_portname_1));
    8063         152 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->portname, &length_portname_1));
    8064         152 :                         if (length_portname_1 > size_portname_1) {
    8065           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_portname_1, length_portname_1);
    8066             :                         }
    8067         152 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_portname_1, sizeof(uint16_t)));
    8068         152 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, length_portname_1, sizeof(uint16_t), CH_UTF16));
    8069         152 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
    8070             :                 }
    8071         184 :                 if (r->drivername) {
    8072         136 :                         _mem_save_drivername_0 = NDR_PULL_GET_MEM_CTX(ndr);
    8073         136 :                         NDR_PULL_SET_MEM_CTX(ndr, r->drivername, 0);
    8074         136 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->drivername));
    8075         136 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->drivername));
    8076         136 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->drivername, &size_drivername_1));
    8077         136 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->drivername, &length_drivername_1));
    8078         136 :                         if (length_drivername_1 > size_drivername_1) {
    8079           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_drivername_1, length_drivername_1);
    8080             :                         }
    8081         136 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_drivername_1, sizeof(uint16_t)));
    8082         136 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->drivername, length_drivername_1, sizeof(uint16_t), CH_UTF16));
    8083         136 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_drivername_0, 0);
    8084             :                 }
    8085         184 :                 if (r->comment) {
    8086          88 :                         _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
    8087          88 :                         NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
    8088          88 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->comment));
    8089          88 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->comment));
    8090          88 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->comment, &size_comment_1));
    8091          88 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->comment, &length_comment_1));
    8092          88 :                         if (length_comment_1 > size_comment_1) {
    8093           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_comment_1, length_comment_1);
    8094             :                         }
    8095          88 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_comment_1, sizeof(uint16_t)));
    8096          88 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, length_comment_1, sizeof(uint16_t), CH_UTF16));
    8097          88 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
    8098             :                 }
    8099         184 :                 if (r->location) {
    8100          88 :                         _mem_save_location_0 = NDR_PULL_GET_MEM_CTX(ndr);
    8101          88 :                         NDR_PULL_SET_MEM_CTX(ndr, r->location, 0);
    8102          88 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->location));
    8103          88 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->location));
    8104          88 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->location, &size_location_1));
    8105          88 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->location, &length_location_1));
    8106          88 :                         if (length_location_1 > size_location_1) {
    8107           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_location_1, length_location_1);
    8108             :                         }
    8109          88 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_location_1, sizeof(uint16_t)));
    8110          88 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->location, length_location_1, sizeof(uint16_t), CH_UTF16));
    8111          88 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_location_0, 0);
    8112             :                 }
    8113         184 :                 if (r->sepfile) {
    8114          88 :                         _mem_save_sepfile_0 = NDR_PULL_GET_MEM_CTX(ndr);
    8115          88 :                         NDR_PULL_SET_MEM_CTX(ndr, r->sepfile, 0);
    8116          88 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->sepfile));
    8117          88 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->sepfile));
    8118          88 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->sepfile, &size_sepfile_1));
    8119          88 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->sepfile, &length_sepfile_1));
    8120          88 :                         if (length_sepfile_1 > size_sepfile_1) {
    8121           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_sepfile_1, length_sepfile_1);
    8122             :                         }
    8123          88 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_sepfile_1, sizeof(uint16_t)));
    8124          88 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->sepfile, length_sepfile_1, sizeof(uint16_t), CH_UTF16));
    8125          88 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sepfile_0, 0);
    8126             :                 }
    8127         184 :                 if (r->printprocessor) {
    8128         120 :                         _mem_save_printprocessor_0 = NDR_PULL_GET_MEM_CTX(ndr);
    8129         120 :                         NDR_PULL_SET_MEM_CTX(ndr, r->printprocessor, 0);
    8130         120 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->printprocessor));
    8131         120 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->printprocessor));
    8132         120 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->printprocessor, &size_printprocessor_1));
    8133         120 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->printprocessor, &length_printprocessor_1));
    8134         120 :                         if (length_printprocessor_1 > size_printprocessor_1) {
    8135           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_printprocessor_1, length_printprocessor_1);
    8136             :                         }
    8137         120 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_printprocessor_1, sizeof(uint16_t)));
    8138         120 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printprocessor, length_printprocessor_1, sizeof(uint16_t), CH_UTF16));
    8139         120 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printprocessor_0, 0);
    8140             :                 }
    8141         184 :                 if (r->datatype) {
    8142          88 :                         _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
    8143          88 :                         NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
    8144          88 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->datatype));
    8145          88 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->datatype));
    8146          88 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->datatype, &size_datatype_1));
    8147          88 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->datatype, &length_datatype_1));
    8148          88 :                         if (length_datatype_1 > size_datatype_1) {
    8149           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_datatype_1, length_datatype_1);
    8150             :                         }
    8151          88 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_datatype_1, sizeof(uint16_t)));
    8152          88 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->datatype, length_datatype_1, sizeof(uint16_t), CH_UTF16));
    8153          88 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
    8154             :                 }
    8155         184 :                 if (r->parameters) {
    8156          88 :                         _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
    8157          88 :                         NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
    8158          88 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->parameters));
    8159          88 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->parameters));
    8160          88 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->parameters, &size_parameters_1));
    8161          88 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->parameters, &length_parameters_1));
    8162          88 :                         if (length_parameters_1 > size_parameters_1) {
    8163           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_parameters_1, length_parameters_1);
    8164             :                         }
    8165          88 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_parameters_1, sizeof(uint16_t)));
    8166          88 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->parameters, length_parameters_1, sizeof(uint16_t), CH_UTF16));
    8167          88 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
    8168             :                 }
    8169             :         }
    8170         180 :         return NDR_ERR_SUCCESS;
    8171             : }
    8172             : 
    8173           4 : _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo2 *r)
    8174             : {
    8175           4 :         ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo2");
    8176           4 :         if (r == NULL) { ndr_print_null(ndr); return; }
    8177           4 :         ndr->depth++;
    8178           4 :         ndr_print_ptr(ndr, "servername", r->servername);
    8179           4 :         ndr->depth++;
    8180           4 :         if (r->servername) {
    8181           4 :                 ndr_print_string(ndr, "servername", r->servername);
    8182             :         }
    8183           4 :         ndr->depth--;
    8184           4 :         ndr_print_ptr(ndr, "printername", r->printername);
    8185           4 :         ndr->depth++;
    8186           4 :         if (r->printername) {
    8187           4 :                 ndr_print_string(ndr, "printername", r->printername);
    8188             :         }
    8189           4 :         ndr->depth--;
    8190           4 :         ndr_print_ptr(ndr, "sharename", r->sharename);
    8191           4 :         ndr->depth++;
    8192           4 :         if (r->sharename) {
    8193           4 :                 ndr_print_string(ndr, "sharename", r->sharename);
    8194             :         }
    8195           4 :         ndr->depth--;
    8196           4 :         ndr_print_ptr(ndr, "portname", r->portname);
    8197           4 :         ndr->depth++;
    8198           4 :         if (r->portname) {
    8199           4 :                 ndr_print_string(ndr, "portname", r->portname);
    8200             :         }
    8201           4 :         ndr->depth--;
    8202           4 :         ndr_print_ptr(ndr, "drivername", r->drivername);
    8203           4 :         ndr->depth++;
    8204           4 :         if (r->drivername) {
    8205           4 :                 ndr_print_string(ndr, "drivername", r->drivername);
    8206             :         }
    8207           4 :         ndr->depth--;
    8208           4 :         ndr_print_ptr(ndr, "comment", r->comment);
    8209           4 :         ndr->depth++;
    8210           4 :         if (r->comment) {
    8211           4 :                 ndr_print_string(ndr, "comment", r->comment);
    8212             :         }
    8213           4 :         ndr->depth--;
    8214           4 :         ndr_print_ptr(ndr, "location", r->location);
    8215           4 :         ndr->depth++;
    8216           4 :         if (r->location) {
    8217           4 :                 ndr_print_string(ndr, "location", r->location);
    8218             :         }
    8219           4 :         ndr->depth--;
    8220           4 :         ndr_print_uint3264(ndr, "devmode_ptr", r->devmode_ptr);
    8221           4 :         ndr_print_ptr(ndr, "sepfile", r->sepfile);
    8222           4 :         ndr->depth++;
    8223           4 :         if (r->sepfile) {
    8224           4 :                 ndr_print_string(ndr, "sepfile", r->sepfile);
    8225             :         }
    8226           4 :         ndr->depth--;
    8227           4 :         ndr_print_ptr(ndr, "printprocessor", r->printprocessor);
    8228           4 :         ndr->depth++;
    8229           4 :         if (r->printprocessor) {
    8230           4 :                 ndr_print_string(ndr, "printprocessor", r->printprocessor);
    8231             :         }
    8232           4 :         ndr->depth--;
    8233           4 :         ndr_print_ptr(ndr, "datatype", r->datatype);
    8234           4 :         ndr->depth++;
    8235           4 :         if (r->datatype) {
    8236           4 :                 ndr_print_string(ndr, "datatype", r->datatype);
    8237             :         }
    8238           4 :         ndr->depth--;
    8239           4 :         ndr_print_ptr(ndr, "parameters", r->parameters);
    8240           4 :         ndr->depth++;
    8241           4 :         if (r->parameters) {
    8242           4 :                 ndr_print_string(ndr, "parameters", r->parameters);
    8243             :         }
    8244           4 :         ndr->depth--;
    8245           4 :         ndr_print_uint3264(ndr, "secdesc_ptr", r->secdesc_ptr);
    8246           4 :         ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
    8247           4 :         ndr_print_uint32(ndr, "priority", r->priority);
    8248           4 :         ndr_print_uint32(ndr, "defaultpriority", r->defaultpriority);
    8249           4 :         ndr_print_uint32(ndr, "starttime", r->starttime);
    8250           4 :         ndr_print_uint32(ndr, "untiltime", r->untiltime);
    8251           4 :         ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
    8252           4 :         ndr_print_uint32(ndr, "cjobs", r->cjobs);
    8253           4 :         ndr_print_uint32(ndr, "averageppm", r->averageppm);
    8254           4 :         ndr->depth--;
    8255             : }
    8256             : 
    8257          92 : static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo3(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_SetPrinterInfo3 *r)
    8258             : {
    8259          92 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    8260          92 :         if (ndr_flags & NDR_SCALARS) {
    8261          92 :                 NDR_CHECK(ndr_push_align(ndr, 5));
    8262          92 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->sec_desc_ptr));
    8263          92 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
    8264             :         }
    8265          92 :         if (ndr_flags & NDR_BUFFERS) {
    8266           0 :         }
    8267          92 :         return NDR_ERR_SUCCESS;
    8268             : }
    8269             : 
    8270          96 : static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo3(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_SetPrinterInfo3 *r)
    8271             : {
    8272          96 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    8273          96 :         if (ndr_flags & NDR_SCALARS) {
    8274          96 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
    8275          96 :                 NDR_CHECK(ndr_pull_uint3264(ndr, NDR_SCALARS, &r->sec_desc_ptr));
    8276          96 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
    8277             :         }
    8278          96 :         if (ndr_flags & NDR_BUFFERS) {
    8279           4 :         }
    8280          96 :         return NDR_ERR_SUCCESS;
    8281             : }
    8282             : 
    8283           4 : _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo3 *r)
    8284             : {
    8285           4 :         ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo3");
    8286           4 :         if (r == NULL) { ndr_print_null(ndr); return; }
    8287           4 :         ndr->depth++;
    8288           4 :         ndr_print_uint3264(ndr, "sec_desc_ptr", r->sec_desc_ptr);
    8289           4 :         ndr->depth--;
    8290             : }
    8291             : 
    8292           0 : static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo4(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_SetPrinterInfo4 *r)
    8293             : {
    8294           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    8295           0 :         if (ndr_flags & NDR_SCALARS) {
    8296           0 :                 NDR_CHECK(ndr_push_align(ndr, 5));
    8297           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
    8298           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->servername));
    8299           0 :                 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
    8300           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
    8301             :         }
    8302           0 :         if (ndr_flags & NDR_BUFFERS) {
    8303           0 :                 if (r->printername) {
    8304           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
    8305           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    8306           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
    8307           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
    8308             :                 }
    8309           0 :                 if (r->servername) {
    8310           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
    8311           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    8312           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
    8313           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->servername, ndr_charset_length(r->servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
    8314             :                 }
    8315             :         }
    8316           0 :         return NDR_ERR_SUCCESS;
    8317             : }
    8318             : 
    8319           0 : static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo4(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_SetPrinterInfo4 *r)
    8320             : {
    8321           0 :         uint32_t _ptr_printername;
    8322           0 :         uint32_t size_printername_1 = 0;
    8323           0 :         uint32_t length_printername_1 = 0;
    8324           0 :         TALLOC_CTX *_mem_save_printername_0 = NULL;
    8325           0 :         uint32_t _ptr_servername;
    8326           0 :         uint32_t size_servername_1 = 0;
    8327           0 :         uint32_t length_servername_1 = 0;
    8328           0 :         TALLOC_CTX *_mem_save_servername_0 = NULL;
    8329           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    8330           0 :         if (ndr_flags & NDR_SCALARS) {
    8331           0 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
    8332           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
    8333           0 :                 if (_ptr_printername) {
    8334           0 :                         NDR_PULL_ALLOC(ndr, r->printername);
    8335             :                 } else {
    8336           0 :                         r->printername = NULL;
    8337             :                 }
    8338           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
    8339           0 :                 if (_ptr_servername) {
    8340           0 :                         NDR_PULL_ALLOC(ndr, r->servername);
    8341             :                 } else {
    8342           0 :                         r->servername = NULL;
    8343             :                 }
    8344           0 :                 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
    8345           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
    8346             :         }
    8347           0 :         if (ndr_flags & NDR_BUFFERS) {
    8348           0 :                 if (r->printername) {
    8349           0 :                         _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
    8350           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
    8351           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
    8352           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
    8353           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->printername, &size_printername_1));
    8354           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->printername, &length_printername_1));
    8355           0 :                         if (length_printername_1 > size_printername_1) {
    8356           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_printername_1, length_printername_1);
    8357             :                         }
    8358           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_printername_1, sizeof(uint16_t)));
    8359           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, length_printername_1, sizeof(uint16_t), CH_UTF16));
    8360           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
    8361             :                 }
    8362           0 :                 if (r->servername) {
    8363           0 :                         _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
    8364           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
    8365           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->servername));
    8366           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->servername));
    8367           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->servername, &size_servername_1));
    8368           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->servername, &length_servername_1));
    8369           0 :                         if (length_servername_1 > size_servername_1) {
    8370           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_servername_1, length_servername_1);
    8371             :                         }
    8372           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_servername_1, sizeof(uint16_t)));
    8373           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, length_servername_1, sizeof(uint16_t), CH_UTF16));
    8374           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
    8375             :                 }
    8376             :         }
    8377           0 :         return NDR_ERR_SUCCESS;
    8378             : }
    8379             : 
    8380           0 : _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo4 *r)
    8381             : {
    8382           0 :         ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo4");
    8383           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
    8384           0 :         ndr->depth++;
    8385           0 :         ndr_print_ptr(ndr, "printername", r->printername);
    8386           0 :         ndr->depth++;
    8387           0 :         if (r->printername) {
    8388           0 :                 ndr_print_string(ndr, "printername", r->printername);
    8389             :         }
    8390           0 :         ndr->depth--;
    8391           0 :         ndr_print_ptr(ndr, "servername", r->servername);
    8392           0 :         ndr->depth++;
    8393           0 :         if (r->servername) {
    8394           0 :                 ndr_print_string(ndr, "servername", r->servername);
    8395             :         }
    8396           0 :         ndr->depth--;
    8397           0 :         ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
    8398           0 :         ndr->depth--;
    8399             : }
    8400             : 
    8401           0 : static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo5(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_SetPrinterInfo5 *r)
    8402             : {
    8403           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    8404           0 :         if (ndr_flags & NDR_SCALARS) {
    8405           0 :                 NDR_CHECK(ndr_push_align(ndr, 5));
    8406           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
    8407           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->portname));
    8408           0 :                 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
    8409           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->device_not_selected_timeout));
    8410           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->transmission_retry_timeout));
    8411           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
    8412             :         }
    8413           0 :         if (ndr_flags & NDR_BUFFERS) {
    8414           0 :                 if (r->printername) {
    8415           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
    8416           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    8417           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
    8418           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
    8419             :                 }
    8420           0 :                 if (r->portname) {
    8421           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
    8422           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    8423           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
    8424           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, ndr_charset_length(r->portname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
    8425             :                 }
    8426             :         }
    8427           0 :         return NDR_ERR_SUCCESS;
    8428             : }
    8429             : 
    8430           0 : static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo5(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_SetPrinterInfo5 *r)
    8431             : {
    8432           0 :         uint32_t _ptr_printername;
    8433           0 :         uint32_t size_printername_1 = 0;
    8434           0 :         uint32_t length_printername_1 = 0;
    8435           0 :         TALLOC_CTX *_mem_save_printername_0 = NULL;
    8436           0 :         uint32_t _ptr_portname;
    8437           0 :         uint32_t size_portname_1 = 0;
    8438           0 :         uint32_t length_portname_1 = 0;
    8439           0 :         TALLOC_CTX *_mem_save_portname_0 = NULL;
    8440           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    8441           0 :         if (ndr_flags & NDR_SCALARS) {
    8442           0 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
    8443           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
    8444           0 :                 if (_ptr_printername) {
    8445           0 :                         NDR_PULL_ALLOC(ndr, r->printername);
    8446             :                 } else {
    8447           0 :                         r->printername = NULL;
    8448             :                 }
    8449           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
    8450           0 :                 if (_ptr_portname) {
    8451           0 :                         NDR_PULL_ALLOC(ndr, r->portname);
    8452             :                 } else {
    8453           0 :                         r->portname = NULL;
    8454             :                 }
    8455           0 :                 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
    8456           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->device_not_selected_timeout));
    8457           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->transmission_retry_timeout));
    8458           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
    8459             :         }
    8460           0 :         if (ndr_flags & NDR_BUFFERS) {
    8461           0 :                 if (r->printername) {
    8462           0 :                         _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
    8463           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
    8464           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
    8465           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
    8466           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->printername, &size_printername_1));
    8467           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->printername, &length_printername_1));
    8468           0 :                         if (length_printername_1 > size_printername_1) {
    8469           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_printername_1, length_printername_1);
    8470             :                         }
    8471           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_printername_1, sizeof(uint16_t)));
    8472           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, length_printername_1, sizeof(uint16_t), CH_UTF16));
    8473           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
    8474             :                 }
    8475           0 :                 if (r->portname) {
    8476           0 :                         _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
    8477           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
    8478           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->portname));
    8479           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->portname));
    8480           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->portname, &size_portname_1));
    8481           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->portname, &length_portname_1));
    8482           0 :                         if (length_portname_1 > size_portname_1) {
    8483           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_portname_1, length_portname_1);
    8484             :                         }
    8485           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_portname_1, sizeof(uint16_t)));
    8486           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, length_portname_1, sizeof(uint16_t), CH_UTF16));
    8487           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
    8488             :                 }
    8489             :         }
    8490           0 :         return NDR_ERR_SUCCESS;
    8491             : }
    8492             : 
    8493           0 : _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo5 *r)
    8494             : {
    8495           0 :         ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo5");
    8496           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
    8497           0 :         ndr->depth++;
    8498           0 :         ndr_print_ptr(ndr, "printername", r->printername);
    8499           0 :         ndr->depth++;
    8500           0 :         if (r->printername) {
    8501           0 :                 ndr_print_string(ndr, "printername", r->printername);
    8502             :         }
    8503           0 :         ndr->depth--;
    8504           0 :         ndr_print_ptr(ndr, "portname", r->portname);
    8505           0 :         ndr->depth++;
    8506           0 :         if (r->portname) {
    8507           0 :                 ndr_print_string(ndr, "portname", r->portname);
    8508             :         }
    8509           0 :         ndr->depth--;
    8510           0 :         ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
    8511           0 :         ndr_print_uint32(ndr, "device_not_selected_timeout", r->device_not_selected_timeout);
    8512           0 :         ndr_print_uint32(ndr, "transmission_retry_timeout", r->transmission_retry_timeout);
    8513           0 :         ndr->depth--;
    8514             : }
    8515             : 
    8516           0 : static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo6(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_SetPrinterInfo6 *r)
    8517             : {
    8518           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    8519           0 :         if (ndr_flags & NDR_SCALARS) {
    8520           0 :                 NDR_CHECK(ndr_push_align(ndr, 4));
    8521           0 :                 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
    8522           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
    8523             :         }
    8524           0 :         if (ndr_flags & NDR_BUFFERS) {
    8525           0 :         }
    8526           0 :         return NDR_ERR_SUCCESS;
    8527             : }
    8528             : 
    8529           0 : static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo6(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_SetPrinterInfo6 *r)
    8530             : {
    8531           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    8532           0 :         if (ndr_flags & NDR_SCALARS) {
    8533           0 :                 NDR_CHECK(ndr_pull_align(ndr, 4));
    8534           0 :                 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
    8535           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
    8536             :         }
    8537           0 :         if (ndr_flags & NDR_BUFFERS) {
    8538           0 :         }
    8539           0 :         return NDR_ERR_SUCCESS;
    8540             : }
    8541             : 
    8542           0 : _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo6 *r)
    8543             : {
    8544           0 :         ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo6");
    8545           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
    8546           0 :         ndr->depth++;
    8547           0 :         ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
    8548           0 :         ndr->depth--;
    8549             : }
    8550             : 
    8551           8 : static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo7(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_SetPrinterInfo7 *r)
    8552             : {
    8553           8 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    8554           8 :         if (ndr_flags & NDR_SCALARS) {
    8555           8 :                 NDR_CHECK(ndr_push_align(ndr, 5));
    8556           8 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->guid));
    8557           8 :                 NDR_CHECK(ndr_push_spoolss_DsPrintAction(ndr, NDR_SCALARS, r->action));
    8558           8 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
    8559             :         }
    8560           8 :         if (ndr_flags & NDR_BUFFERS) {
    8561           8 :                 if (r->guid) {
    8562           8 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->guid, CH_UTF16)));
    8563           8 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    8564           8 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->guid, CH_UTF16)));
    8565           8 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->guid, ndr_charset_length(r->guid, CH_UTF16), sizeof(uint16_t), CH_UTF16));
    8566             :                 }
    8567             :         }
    8568           8 :         return NDR_ERR_SUCCESS;
    8569             : }
    8570             : 
    8571           8 : static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo7(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_SetPrinterInfo7 *r)
    8572             : {
    8573           0 :         uint32_t _ptr_guid;
    8574           8 :         uint32_t size_guid_1 = 0;
    8575           8 :         uint32_t length_guid_1 = 0;
    8576           8 :         TALLOC_CTX *_mem_save_guid_0 = NULL;
    8577           8 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    8578           8 :         if (ndr_flags & NDR_SCALARS) {
    8579           8 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
    8580           8 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_guid));
    8581           8 :                 if (_ptr_guid) {
    8582           8 :                         NDR_PULL_ALLOC(ndr, r->guid);
    8583             :                 } else {
    8584           0 :                         r->guid = NULL;
    8585             :                 }
    8586           8 :                 NDR_CHECK(ndr_pull_spoolss_DsPrintAction(ndr, NDR_SCALARS, &r->action));
    8587           8 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
    8588             :         }
    8589           8 :         if (ndr_flags & NDR_BUFFERS) {
    8590           8 :                 if (r->guid) {
    8591           8 :                         _mem_save_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
    8592           8 :                         NDR_PULL_SET_MEM_CTX(ndr, r->guid, 0);
    8593           8 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->guid));
    8594           8 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->guid));
    8595           8 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->guid, &size_guid_1));
    8596           8 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->guid, &length_guid_1));
    8597           8 :                         if (length_guid_1 > size_guid_1) {
    8598           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_guid_1, length_guid_1);
    8599             :                         }
    8600           8 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_guid_1, sizeof(uint16_t)));
    8601           8 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->guid, length_guid_1, sizeof(uint16_t), CH_UTF16));
    8602           8 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_guid_0, 0);
    8603             :                 }
    8604             :         }
    8605           8 :         return NDR_ERR_SUCCESS;
    8606             : }
    8607             : 
    8608           0 : _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo7(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo7 *r)
    8609             : {
    8610           0 :         ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo7");
    8611           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
    8612           0 :         ndr->depth++;
    8613           0 :         ndr_print_ptr(ndr, "guid", r->guid);
    8614           0 :         ndr->depth++;
    8615           0 :         if (r->guid) {
    8616           0 :                 ndr_print_string(ndr, "guid", r->guid);
    8617             :         }
    8618           0 :         ndr->depth--;
    8619           0 :         ndr_print_spoolss_DsPrintAction(ndr, "action", r->action);
    8620           0 :         ndr->depth--;
    8621             : }
    8622             : 
    8623         296 : static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo8(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_SetPrinterInfo8 *r)
    8624             : {
    8625         296 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    8626         296 :         if (ndr_flags & NDR_SCALARS) {
    8627         296 :                 NDR_CHECK(ndr_push_align(ndr, 5));
    8628         296 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->devmode_ptr));
    8629         296 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
    8630             :         }
    8631         296 :         if (ndr_flags & NDR_BUFFERS) {
    8632           0 :         }
    8633         296 :         return NDR_ERR_SUCCESS;
    8634             : }
    8635             : 
    8636         296 : static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo8(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_SetPrinterInfo8 *r)
    8637             : {
    8638         296 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    8639         296 :         if (ndr_flags & NDR_SCALARS) {
    8640         296 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
    8641         296 :                 NDR_CHECK(ndr_pull_uint3264(ndr, NDR_SCALARS, &r->devmode_ptr));
    8642         296 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
    8643             :         }
    8644         296 :         if (ndr_flags & NDR_BUFFERS) {
    8645           0 :         }
    8646         296 :         return NDR_ERR_SUCCESS;
    8647             : }
    8648             : 
    8649           0 : _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo8(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo8 *r)
    8650             : {
    8651           0 :         ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo8");
    8652           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
    8653           0 :         ndr->depth++;
    8654           0 :         ndr_print_uint3264(ndr, "devmode_ptr", r->devmode_ptr);
    8655           0 :         ndr->depth--;
    8656             : }
    8657             : 
    8658           0 : static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo9(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_SetPrinterInfo9 *r)
    8659             : {
    8660           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    8661           0 :         if (ndr_flags & NDR_SCALARS) {
    8662           0 :                 NDR_CHECK(ndr_push_align(ndr, 5));
    8663           0 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->devmode_ptr));
    8664           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
    8665             :         }
    8666           0 :         if (ndr_flags & NDR_BUFFERS) {
    8667           0 :         }
    8668           0 :         return NDR_ERR_SUCCESS;
    8669             : }
    8670             : 
    8671           0 : static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo9(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_SetPrinterInfo9 *r)
    8672             : {
    8673           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    8674           0 :         if (ndr_flags & NDR_SCALARS) {
    8675           0 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
    8676           0 :                 NDR_CHECK(ndr_pull_uint3264(ndr, NDR_SCALARS, &r->devmode_ptr));
    8677           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
    8678             :         }
    8679           0 :         if (ndr_flags & NDR_BUFFERS) {
    8680           0 :         }
    8681           0 :         return NDR_ERR_SUCCESS;
    8682             : }
    8683             : 
    8684           0 : _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo9(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo9 *r)
    8685             : {
    8686           0 :         ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo9");
    8687           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
    8688           0 :         ndr->depth++;
    8689           0 :         ndr_print_uint3264(ndr, "devmode_ptr", r->devmode_ptr);
    8690           0 :         ndr->depth--;
    8691             : }
    8692             : 
    8693        1360 : static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo(struct ndr_push *ndr, ndr_flags_type ndr_flags, const union spoolss_SetPrinterInfo *r)
    8694             : {
    8695           0 :         uint32_t level;
    8696        1360 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    8697        1360 :         if (ndr_flags & NDR_SCALARS) {
    8698             :                 /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
    8699         680 :                 NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
    8700         680 :                 NDR_CHECK(ndr_push_union_align(ndr, 5));
    8701         680 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
    8702             :                 /* ms_union is always aligned to the largest union arm*/
    8703         680 :                 NDR_CHECK(ndr_push_align(ndr, 5));
    8704         680 :                 switch (level) {
    8705         104 :                         case 0: {
    8706         104 :                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info0));
    8707         104 :                         break; }
    8708             : 
    8709           0 :                         case 1: {
    8710           0 :                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
    8711           0 :                         break; }
    8712             : 
    8713         180 :                         case 2: {
    8714         180 :                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
    8715         180 :                         break; }
    8716             : 
    8717          92 :                         case 3: {
    8718          92 :                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
    8719          92 :                         break; }
    8720             : 
    8721           0 :                         case 4: {
    8722           0 :                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
    8723           0 :                         break; }
    8724             : 
    8725           0 :                         case 5: {
    8726           0 :                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info5));
    8727           0 :                         break; }
    8728             : 
    8729           0 :                         case 6: {
    8730           0 :                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info6));
    8731           0 :                         break; }
    8732             : 
    8733           8 :                         case 7: {
    8734           8 :                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info7));
    8735           8 :                         break; }
    8736             : 
    8737         296 :                         case 8: {
    8738         296 :                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info8));
    8739         296 :                         break; }
    8740             : 
    8741           0 :                         case 9: {
    8742           0 :                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info9));
    8743           0 :                         break; }
    8744             : 
    8745           0 :                         default: {
    8746           0 :                         break; }
    8747             : 
    8748             :                 }
    8749             :         }
    8750        1360 :         if (ndr_flags & NDR_BUFFERS) {
    8751         680 :                 if (!(ndr_flags & NDR_SCALARS)) {
    8752             :                         /* We didn't get it above, and the token is not needed after this. */
    8753         680 :                         NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
    8754             :                 }
    8755         680 :                 switch (level) {
    8756         104 :                         case 0:
    8757         104 :                                 if (r->info0) {
    8758           0 :                                         NDR_CHECK(ndr_push_spoolss_SetPrinterInfo0(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
    8759             :                                 }
    8760         104 :                         break;
    8761             : 
    8762           0 :                         case 1:
    8763           0 :                                 if (r->info1) {
    8764           0 :                                         NDR_CHECK(ndr_push_spoolss_SetPrinterInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
    8765             :                                 }
    8766           0 :                         break;
    8767             : 
    8768         180 :                         case 2:
    8769         180 :                                 if (r->info2) {
    8770         180 :                                         NDR_CHECK(ndr_push_spoolss_SetPrinterInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
    8771             :                                 }
    8772         180 :                         break;
    8773             : 
    8774          92 :                         case 3:
    8775          92 :                                 if (r->info3) {
    8776          92 :                                         NDR_CHECK(ndr_push_spoolss_SetPrinterInfo3(ndr, NDR_SCALARS, r->info3));
    8777             :                                 }
    8778          92 :                         break;
    8779             : 
    8780           0 :                         case 4:
    8781           0 :                                 if (r->info4) {
    8782           0 :                                         NDR_CHECK(ndr_push_spoolss_SetPrinterInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
    8783             :                                 }
    8784           0 :                         break;
    8785             : 
    8786           0 :                         case 5:
    8787           0 :                                 if (r->info5) {
    8788           0 :                                         NDR_CHECK(ndr_push_spoolss_SetPrinterInfo5(ndr, NDR_SCALARS|NDR_BUFFERS, r->info5));
    8789             :                                 }
    8790           0 :                         break;
    8791             : 
    8792           0 :                         case 6:
    8793           0 :                                 if (r->info6) {
    8794           0 :                                         NDR_CHECK(ndr_push_spoolss_SetPrinterInfo6(ndr, NDR_SCALARS, r->info6));
    8795             :                                 }
    8796           0 :                         break;
    8797             : 
    8798           8 :                         case 7:
    8799           8 :                                 if (r->info7) {
    8800           8 :                                         NDR_CHECK(ndr_push_spoolss_SetPrinterInfo7(ndr, NDR_SCALARS|NDR_BUFFERS, r->info7));
    8801             :                                 }
    8802           8 :                         break;
    8803             : 
    8804         296 :                         case 8:
    8805         296 :                                 if (r->info8) {
    8806         296 :                                         NDR_CHECK(ndr_push_spoolss_SetPrinterInfo8(ndr, NDR_SCALARS, r->info8));
    8807             :                                 }
    8808         296 :                         break;
    8809             : 
    8810           0 :                         case 9:
    8811           0 :                                 if (r->info9) {
    8812           0 :                                         NDR_CHECK(ndr_push_spoolss_SetPrinterInfo9(ndr, NDR_SCALARS, r->info9));
    8813             :                                 }
    8814           0 :                         break;
    8815             : 
    8816           0 :                         default:
    8817           0 :                         break;
    8818             : 
    8819             :                 }
    8820             :         }
    8821        1360 :         return NDR_ERR_SUCCESS;
    8822             : }
    8823             : 
    8824        1376 : static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo(struct ndr_pull *ndr, ndr_flags_type ndr_flags, union spoolss_SetPrinterInfo *r)
    8825             : {
    8826          16 :         uint32_t level;
    8827          16 :         uint32_t _level;
    8828        1376 :         TALLOC_CTX *_mem_save_info0_0 = NULL;
    8829          16 :         uint32_t _ptr_info0;
    8830        1376 :         TALLOC_CTX *_mem_save_info1_0 = NULL;
    8831          16 :         uint32_t _ptr_info1;
    8832        1376 :         TALLOC_CTX *_mem_save_info2_0 = NULL;
    8833          16 :         uint32_t _ptr_info2;
    8834        1376 :         TALLOC_CTX *_mem_save_info3_0 = NULL;
    8835          16 :         uint32_t _ptr_info3;
    8836        1376 :         TALLOC_CTX *_mem_save_info4_0 = NULL;
    8837          16 :         uint32_t _ptr_info4;
    8838        1376 :         TALLOC_CTX *_mem_save_info5_0 = NULL;
    8839          16 :         uint32_t _ptr_info5;
    8840        1376 :         TALLOC_CTX *_mem_save_info6_0 = NULL;
    8841          16 :         uint32_t _ptr_info6;
    8842        1376 :         TALLOC_CTX *_mem_save_info7_0 = NULL;
    8843          16 :         uint32_t _ptr_info7;
    8844        1376 :         TALLOC_CTX *_mem_save_info8_0 = NULL;
    8845          16 :         uint32_t _ptr_info8;
    8846        1376 :         TALLOC_CTX *_mem_save_info9_0 = NULL;
    8847          16 :         uint32_t _ptr_info9;
    8848        1376 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    8849        1376 :         if (ndr_flags & NDR_SCALARS) {
    8850             :                 /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
    8851         688 :                 NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
    8852         688 :                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
    8853         688 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
    8854         688 :                 if (_level != level) {
    8855           0 :                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32" for r at %s", (uint32_t)_level, __location__);
    8856             :                 }
    8857             :                 /* ms_union is always aligned to the largest union arm*/
    8858         688 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
    8859         688 :                 switch (level) {
    8860         104 :                         case 0: {
    8861         104 :                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info0));
    8862         104 :                                 if (_ptr_info0) {
    8863           0 :                                         NDR_PULL_ALLOC(ndr, r->info0);
    8864             :                                 } else {
    8865         104 :                                         r->info0 = NULL;
    8866             :                                 }
    8867         104 :                         break; }
    8868             : 
    8869           0 :                         case 1: {
    8870           0 :                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
    8871           0 :                                 if (_ptr_info1) {
    8872           0 :                                         NDR_PULL_ALLOC(ndr, r->info1);
    8873             :                                 } else {
    8874           0 :                                         r->info1 = NULL;
    8875             :                                 }
    8876           0 :                         break; }
    8877             : 
    8878         184 :                         case 2: {
    8879         184 :                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
    8880         184 :                                 if (_ptr_info2) {
    8881         184 :                                         NDR_PULL_ALLOC(ndr, r->info2);
    8882             :                                 } else {
    8883           0 :                                         r->info2 = NULL;
    8884             :                                 }
    8885         180 :                         break; }
    8886             : 
    8887          96 :                         case 3: {
    8888          96 :                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
    8889          96 :                                 if (_ptr_info3) {
    8890          96 :                                         NDR_PULL_ALLOC(ndr, r->info3);
    8891             :                                 } else {
    8892           0 :                                         r->info3 = NULL;
    8893             :                                 }
    8894          92 :                         break; }
    8895             : 
    8896           0 :                         case 4: {
    8897           0 :                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
    8898           0 :                                 if (_ptr_info4) {
    8899           0 :                                         NDR_PULL_ALLOC(ndr, r->info4);
    8900             :                                 } else {
    8901           0 :                                         r->info4 = NULL;
    8902             :                                 }
    8903           0 :                         break; }
    8904             : 
    8905           0 :                         case 5: {
    8906           0 :                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info5));
    8907           0 :                                 if (_ptr_info5) {
    8908           0 :                                         NDR_PULL_ALLOC(ndr, r->info5);
    8909             :                                 } else {
    8910           0 :                                         r->info5 = NULL;
    8911             :                                 }
    8912           0 :                         break; }
    8913             : 
    8914           0 :                         case 6: {
    8915           0 :                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info6));
    8916           0 :                                 if (_ptr_info6) {
    8917           0 :                                         NDR_PULL_ALLOC(ndr, r->info6);
    8918             :                                 } else {
    8919           0 :                                         r->info6 = NULL;
    8920             :                                 }
    8921           0 :                         break; }
    8922             : 
    8923           8 :                         case 7: {
    8924           8 :                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info7));
    8925           8 :                                 if (_ptr_info7) {
    8926           8 :                                         NDR_PULL_ALLOC(ndr, r->info7);
    8927             :                                 } else {
    8928           0 :                                         r->info7 = NULL;
    8929             :                                 }
    8930           8 :                         break; }
    8931             : 
    8932         296 :                         case 8: {
    8933         296 :                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info8));
    8934         296 :                                 if (_ptr_info8) {
    8935         296 :                                         NDR_PULL_ALLOC(ndr, r->info8);
    8936             :                                 } else {
    8937           0 :                                         r->info8 = NULL;
    8938             :                                 }
    8939         296 :                         break; }
    8940             : 
    8941           0 :                         case 9: {
    8942           0 :                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info9));
    8943           0 :                                 if (_ptr_info9) {
    8944           0 :                                         NDR_PULL_ALLOC(ndr, r->info9);
    8945             :                                 } else {
    8946           0 :                                         r->info9 = NULL;
    8947             :                                 }
    8948           0 :                         break; }
    8949             : 
    8950           0 :                         default: {
    8951           0 :                         break; }
    8952             : 
    8953             :                 }
    8954             :         }
    8955        1376 :         if (ndr_flags & NDR_BUFFERS) {
    8956         688 :                 if (!(ndr_flags & NDR_SCALARS)) {
    8957             :                         /* We didn't get it above, and the token is not needed after this. */
    8958         688 :                         NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
    8959             :                 }
    8960         688 :                 switch (level) {
    8961         104 :                         case 0:
    8962         104 :                                 if (r->info0) {
    8963           0 :                                         _mem_save_info0_0 = NDR_PULL_GET_MEM_CTX(ndr);
    8964           0 :                                         NDR_PULL_SET_MEM_CTX(ndr, r->info0, 0);
    8965           0 :                                         NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo0(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
    8966           0 :                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info0_0, 0);
    8967             :                                 }
    8968         104 :                         break;
    8969             : 
    8970           0 :                         case 1:
    8971           0 :                                 if (r->info1) {
    8972           0 :                                         _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
    8973           0 :                                         NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
    8974           0 :                                         NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
    8975           0 :                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
    8976             :                                 }
    8977           0 :                         break;
    8978             : 
    8979         184 :                         case 2:
    8980         184 :                                 if (r->info2) {
    8981         184 :                                         _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
    8982         184 :                                         NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
    8983         184 :                                         NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
    8984         184 :                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
    8985             :                                 }
    8986         180 :                         break;
    8987             : 
    8988          96 :                         case 3:
    8989          96 :                                 if (r->info3) {
    8990          96 :                                         _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
    8991          96 :                                         NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
    8992          96 :                                         NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo3(ndr, NDR_SCALARS, r->info3));
    8993          96 :                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
    8994             :                                 }
    8995          92 :                         break;
    8996             : 
    8997           0 :                         case 4:
    8998           0 :                                 if (r->info4) {
    8999           0 :                                         _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
    9000           0 :                                         NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
    9001           0 :                                         NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
    9002           0 :                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
    9003             :                                 }
    9004           0 :                         break;
    9005             : 
    9006           0 :                         case 5:
    9007           0 :                                 if (r->info5) {
    9008           0 :                                         _mem_save_info5_0 = NDR_PULL_GET_MEM_CTX(ndr);
    9009           0 :                                         NDR_PULL_SET_MEM_CTX(ndr, r->info5, 0);
    9010           0 :                                         NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo5(ndr, NDR_SCALARS|NDR_BUFFERS, r->info5));
    9011           0 :                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info5_0, 0);
    9012             :                                 }
    9013           0 :                         break;
    9014             : 
    9015           0 :                         case 6:
    9016           0 :                                 if (r->info6) {
    9017           0 :                                         _mem_save_info6_0 = NDR_PULL_GET_MEM_CTX(ndr);
    9018           0 :                                         NDR_PULL_SET_MEM_CTX(ndr, r->info6, 0);
    9019           0 :                                         NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo6(ndr, NDR_SCALARS, r->info6));
    9020           0 :                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info6_0, 0);
    9021             :                                 }
    9022           0 :                         break;
    9023             : 
    9024           8 :                         case 7:
    9025           8 :                                 if (r->info7) {
    9026           8 :                                         _mem_save_info7_0 = NDR_PULL_GET_MEM_CTX(ndr);
    9027           8 :                                         NDR_PULL_SET_MEM_CTX(ndr, r->info7, 0);
    9028           8 :                                         NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo7(ndr, NDR_SCALARS|NDR_BUFFERS, r->info7));
    9029           8 :                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info7_0, 0);
    9030             :                                 }
    9031           8 :                         break;
    9032             : 
    9033         296 :                         case 8:
    9034         296 :                                 if (r->info8) {
    9035         296 :                                         _mem_save_info8_0 = NDR_PULL_GET_MEM_CTX(ndr);
    9036         296 :                                         NDR_PULL_SET_MEM_CTX(ndr, r->info8, 0);
    9037         296 :                                         NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo8(ndr, NDR_SCALARS, r->info8));
    9038         296 :                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info8_0, 0);
    9039             :                                 }
    9040         296 :                         break;
    9041             : 
    9042           0 :                         case 9:
    9043           0 :                                 if (r->info9) {
    9044           0 :                                         _mem_save_info9_0 = NDR_PULL_GET_MEM_CTX(ndr);
    9045           0 :                                         NDR_PULL_SET_MEM_CTX(ndr, r->info9, 0);
    9046           0 :                                         NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo9(ndr, NDR_SCALARS, r->info9));
    9047           0 :                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info9_0, 0);
    9048             :                                 }
    9049           0 :                         break;
    9050             : 
    9051           0 :                         default:
    9052           0 :                         break;
    9053             : 
    9054             :                 }
    9055             :         }
    9056        1360 :         return NDR_ERR_SUCCESS;
    9057             : }
    9058             : 
    9059           8 : _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_SetPrinterInfo *r)
    9060             : {
    9061           8 :         uint32_t level;
    9062           8 :         level = ndr_print_steal_switch_value(ndr, r);
    9063           8 :         ndr_print_union(ndr, name, level, "spoolss_SetPrinterInfo");
    9064           8 :         switch (level) {
    9065           0 :                 case 0:
    9066           0 :                         ndr_print_ptr(ndr, "info0", r->info0);
    9067           0 :                         ndr->depth++;
    9068           0 :                         if (r->info0) {
    9069           0 :                                 ndr_print_spoolss_SetPrinterInfo0(ndr, "info0", r->info0);
    9070             :                         }
    9071           0 :                         ndr->depth--;
    9072           0 :                 break;
    9073             : 
    9074           0 :                 case 1:
    9075           0 :                         ndr_print_ptr(ndr, "info1", r->info1);
    9076           0 :                         ndr->depth++;
    9077           0 :                         if (r->info1) {
    9078           0 :                                 ndr_print_spoolss_SetPrinterInfo1(ndr, "info1", r->info1);
    9079             :                         }
    9080           0 :                         ndr->depth--;
    9081           0 :                 break;
    9082             : 
    9083           4 :                 case 2:
    9084           4 :                         ndr_print_ptr(ndr, "info2", r->info2);
    9085           4 :                         ndr->depth++;
    9086           4 :                         if (r->info2) {
    9087           4 :                                 ndr_print_spoolss_SetPrinterInfo2(ndr, "info2", r->info2);
    9088             :                         }
    9089           4 :                         ndr->depth--;
    9090           4 :                 break;
    9091             : 
    9092           4 :                 case 3:
    9093           4 :                         ndr_print_ptr(ndr, "info3", r->info3);
    9094           4 :                         ndr->depth++;
    9095           4 :                         if (r->info3) {
    9096           4 :                                 ndr_print_spoolss_SetPrinterInfo3(ndr, "info3", r->info3);
    9097             :                         }
    9098           4 :                         ndr->depth--;
    9099           4 :                 break;
    9100             : 
    9101           0 :                 case 4:
    9102           0 :                         ndr_print_ptr(ndr, "info4", r->info4);
    9103           0 :                         ndr->depth++;
    9104           0 :                         if (r->info4) {
    9105           0 :                                 ndr_print_spoolss_SetPrinterInfo4(ndr, "info4", r->info4);
    9106             :                         }
    9107           0 :                         ndr->depth--;
    9108           0 :                 break;
    9109             : 
    9110           0 :                 case 5:
    9111           0 :                         ndr_print_ptr(ndr, "info5", r->info5);
    9112           0 :                         ndr->depth++;
    9113           0 :                         if (r->info5) {
    9114           0 :                                 ndr_print_spoolss_SetPrinterInfo5(ndr, "info5", r->info5);
    9115             :                         }
    9116           0 :                         ndr->depth--;
    9117           0 :                 break;
    9118             : 
    9119           0 :                 case 6:
    9120           0 :                         ndr_print_ptr(ndr, "info6", r->info6);
    9121           0 :                         ndr->depth++;
    9122           0 :                         if (r->info6) {
    9123           0 :                                 ndr_print_spoolss_SetPrinterInfo6(ndr, "info6", r->info6);
    9124             :                         }
    9125           0 :                         ndr->depth--;
    9126           0 :                 break;
    9127             : 
    9128           0 :                 case 7:
    9129           0 :                         ndr_print_ptr(ndr, "info7", r->info7);
    9130           0 :                         ndr->depth++;
    9131           0 :                         if (r->info7) {
    9132           0 :                                 ndr_print_spoolss_SetPrinterInfo7(ndr, "info7", r->info7);
    9133             :                         }
    9134           0 :                         ndr->depth--;
    9135           0 :                 break;
    9136             : 
    9137           0 :                 case 8:
    9138           0 :                         ndr_print_ptr(ndr, "info8", r->info8);
    9139           0 :                         ndr->depth++;
    9140           0 :                         if (r->info8) {
    9141           0 :                                 ndr_print_spoolss_SetPrinterInfo8(ndr, "info8", r->info8);
    9142             :                         }
    9143           0 :                         ndr->depth--;
    9144           0 :                 break;
    9145             : 
    9146           0 :                 case 9:
    9147           0 :                         ndr_print_ptr(ndr, "info9", r->info9);
    9148           0 :                         ndr->depth++;
    9149           0 :                         if (r->info9) {
    9150           0 :                                 ndr_print_spoolss_SetPrinterInfo9(ndr, "info9", r->info9);
    9151             :                         }
    9152           0 :                         ndr->depth--;
    9153           0 :                 break;
    9154             : 
    9155           0 :                 default:
    9156           0 :                 break;
    9157             : 
    9158             :         }
    9159           8 : }
    9160             : 
    9161         680 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_SetPrinterInfoCtr(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_SetPrinterInfoCtr *r)
    9162             : {
    9163         680 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    9164         680 :         if (ndr_flags & NDR_SCALARS) {
    9165         680 :                 NDR_CHECK(ndr_push_align(ndr, 5));
    9166         680 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
    9167         680 :                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
    9168         680 :                 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr, NDR_SCALARS, &r->info));
    9169         680 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
    9170             :         }
    9171         680 :         if (ndr_flags & NDR_BUFFERS) {
    9172         680 :                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
    9173         680 :                 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr, NDR_BUFFERS, &r->info));
    9174             :         }
    9175         680 :         return NDR_ERR_SUCCESS;
    9176             : }
    9177             : 
    9178         688 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_SetPrinterInfoCtr(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_SetPrinterInfoCtr *r)
    9179             : {
    9180         688 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    9181         688 :         if (ndr_flags & NDR_SCALARS) {
    9182         688 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
    9183         688 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
    9184         688 :                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
    9185         688 :                 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr, NDR_SCALARS, &r->info));
    9186         688 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
    9187             :         }
    9188         688 :         if (ndr_flags & NDR_BUFFERS) {
    9189         688 :                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
    9190         688 :                 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr, NDR_BUFFERS, &r->info));
    9191             :         }
    9192         680 :         return NDR_ERR_SUCCESS;
    9193             : }
    9194             : 
    9195           0 : static void ndr_print_flags_spoolss_SetPrinterInfoCtr(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_SetPrinterInfoCtr *r)
    9196             : {
    9197           0 :         ndr_print_spoolss_SetPrinterInfoCtr(ndr, name, r);
    9198           0 : }
    9199             : 
    9200           8 : _PUBLIC_ void ndr_print_spoolss_SetPrinterInfoCtr(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfoCtr *r)
    9201             : {
    9202           8 :         ndr_print_struct(ndr, name, "spoolss_SetPrinterInfoCtr");
    9203           8 :         if (r == NULL) { ndr_print_null(ndr); return; }
    9204           8 :         ndr->depth++;
    9205           8 :         ndr_print_uint32(ndr, "level", r->level);
    9206           8 :         ndr_print_set_switch_value(ndr, &r->info, r->level);
    9207           8 :         ndr_print_spoolss_SetPrinterInfo(ndr, "info", &r->info);
    9208           8 :         ndr->depth--;
    9209             : }
    9210             : 
    9211           0 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_StringArray(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_StringArray *r)
    9212             : {
    9213           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    9214           0 :         if (ndr_flags & NDR_SCALARS) {
    9215           0 :                 NDR_CHECK(ndr_push_align(ndr, 4));
    9216           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, (ndr_size_spoolss_StringArray(r, ndr->flags) - 4) / 2));
    9217             :                 {
    9218           0 :                         libndr_flags _flags_save_string_array = ndr->flags;
    9219           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    9220           0 :                         NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->string));
    9221           0 :                         ndr->flags = _flags_save_string_array;
    9222             :                 }
    9223           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
    9224             :         }
    9225           0 :         if (ndr_flags & NDR_BUFFERS) {
    9226           0 :         }
    9227           0 :         return NDR_ERR_SUCCESS;
    9228             : }
    9229             : 
    9230           8 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_StringArray(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_StringArray *r)
    9231             : {
    9232           8 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    9233           8 :         if (ndr_flags & NDR_SCALARS) {
    9234           8 :                 NDR_CHECK(ndr_pull_align(ndr, 4));
    9235           8 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
    9236             :                 {
    9237           8 :                         libndr_flags _flags_save_string_array = ndr->flags;
    9238           8 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    9239           8 :                         NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->string));
    9240           8 :                         ndr->flags = _flags_save_string_array;
    9241             :                 }
    9242           8 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
    9243             :         }
    9244           8 :         if (ndr_flags & NDR_BUFFERS) {
    9245           8 :         }
    9246           8 :         return NDR_ERR_SUCCESS;
    9247             : }
    9248             : 
    9249           0 : static void ndr_print_flags_spoolss_StringArray(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_StringArray *r)
    9250             : {
    9251           0 :         ndr_print_spoolss_StringArray(ndr, name, r);
    9252           0 : }
    9253             : 
    9254           8 : _PUBLIC_ void ndr_print_spoolss_StringArray(struct ndr_print *ndr, const char *name, const struct spoolss_StringArray *r)
    9255             : {
    9256           8 :         ndr_print_struct(ndr, name, "spoolss_StringArray");
    9257           8 :         if (r == NULL) { ndr_print_null(ndr); return; }
    9258           8 :         ndr->depth++;
    9259           8 :         ndr_print_uint32(ndr, "_ndr_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?(ndr_size_spoolss_StringArray(r, ndr->flags) - 4) / 2:r->_ndr_size);
    9260             :         {
    9261           8 :                 libndr_flags _flags_save_string_array = ndr->flags;
    9262           8 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
    9263           8 :                 ndr_print_string_array(ndr, "string", r->string);
    9264           8 :                 ndr->flags = _flags_save_string_array;
    9265             :         }
    9266           8 :         ndr->depth--;
    9267             : }
    9268             : 
    9269           0 : static enum ndr_err_code ndr_push_spoolss_AddDriverInfo1(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_AddDriverInfo1 *r)
    9270             : {
    9271           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    9272           0 :         if (ndr_flags & NDR_SCALARS) {
    9273           0 :                 NDR_CHECK(ndr_push_align(ndr, 5));
    9274           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
    9275           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
    9276             :         }
    9277           0 :         if (ndr_flags & NDR_BUFFERS) {
    9278           0 :                 if (r->driver_name) {
    9279           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
    9280           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    9281           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
    9282           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
    9283             :                 }
    9284             :         }
    9285           0 :         return NDR_ERR_SUCCESS;
    9286             : }
    9287             : 
    9288           0 : static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo1(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_AddDriverInfo1 *r)
    9289             : {
    9290           0 :         uint32_t _ptr_driver_name;
    9291           0 :         uint32_t size_driver_name_1 = 0;
    9292           0 :         uint32_t length_driver_name_1 = 0;
    9293           0 :         TALLOC_CTX *_mem_save_driver_name_0 = NULL;
    9294           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    9295           0 :         if (ndr_flags & NDR_SCALARS) {
    9296           0 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
    9297           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
    9298           0 :                 if (_ptr_driver_name) {
    9299           0 :                         NDR_PULL_ALLOC(ndr, r->driver_name);
    9300             :                 } else {
    9301           0 :                         r->driver_name = NULL;
    9302             :                 }
    9303           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
    9304             :         }
    9305           0 :         if (ndr_flags & NDR_BUFFERS) {
    9306           0 :                 if (r->driver_name) {
    9307           0 :                         _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
    9308           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
    9309           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
    9310           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
    9311           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->driver_name, &size_driver_name_1));
    9312           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->driver_name, &length_driver_name_1));
    9313           0 :                         if (length_driver_name_1 > size_driver_name_1) {
    9314           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_driver_name_1, length_driver_name_1);
    9315             :                         }
    9316           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_driver_name_1, sizeof(uint16_t)));
    9317           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, length_driver_name_1, sizeof(uint16_t), CH_UTF16));
    9318           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
    9319             :                 }
    9320             :         }
    9321           0 :         return NDR_ERR_SUCCESS;
    9322             : }
    9323             : 
    9324           0 : _PUBLIC_ void ndr_print_spoolss_AddDriverInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo1 *r)
    9325             : {
    9326           0 :         ndr_print_struct(ndr, name, "spoolss_AddDriverInfo1");
    9327           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
    9328           0 :         ndr->depth++;
    9329           0 :         ndr_print_ptr(ndr, "driver_name", r->driver_name);
    9330           0 :         ndr->depth++;
    9331           0 :         if (r->driver_name) {
    9332           0 :                 ndr_print_string(ndr, "driver_name", r->driver_name);
    9333             :         }
    9334           0 :         ndr->depth--;
    9335           0 :         ndr->depth--;
    9336             : }
    9337             : 
    9338           0 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverOSVersion(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum spoolss_DriverOSVersion r)
    9339             : {
    9340           0 :         NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
    9341           0 :         return NDR_ERR_SUCCESS;
    9342             : }
    9343             : 
    9344           6 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverOSVersion(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum spoolss_DriverOSVersion *r)
    9345             : {
    9346           6 :         uint32_t v;
    9347           6 :         NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
    9348           6 :         *r = v;
    9349           6 :         return NDR_ERR_SUCCESS;
    9350             : }
    9351             : 
    9352           6 : _PUBLIC_ void ndr_print_spoolss_DriverOSVersion(struct ndr_print *ndr, const char *name, enum spoolss_DriverOSVersion r)
    9353             : {
    9354           6 :         const char *val = NULL;
    9355             : 
    9356           6 :         switch (r) {
    9357           4 :                 case SPOOLSS_DRIVER_VERSION_9X: val = "SPOOLSS_DRIVER_VERSION_9X"; break;
    9358           0 :                 case SPOOLSS_DRIVER_VERSION_NT35: val = "SPOOLSS_DRIVER_VERSION_NT35"; break;
    9359           0 :                 case SPOOLSS_DRIVER_VERSION_NT4: val = "SPOOLSS_DRIVER_VERSION_NT4"; break;
    9360           2 :                 case SPOOLSS_DRIVER_VERSION_200X: val = "SPOOLSS_DRIVER_VERSION_200X"; break;
    9361           0 :                 case SPOOLSS_DRIVER_VERSION_2012: val = "SPOOLSS_DRIVER_VERSION_2012"; break;
    9362             :         }
    9363           6 :         ndr_print_enum(ndr, name, "ENUM", val, r);
    9364           6 : }
    9365             : 
    9366           0 : static enum ndr_err_code ndr_push_spoolss_AddDriverInfo2(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_AddDriverInfo2 *r)
    9367             : {
    9368           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    9369           0 :         if (ndr_flags & NDR_SCALARS) {
    9370           0 :                 NDR_CHECK(ndr_push_align(ndr, 5));
    9371           0 :                 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
    9372           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
    9373           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
    9374           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
    9375           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
    9376           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
    9377           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
    9378             :         }
    9379           0 :         if (ndr_flags & NDR_BUFFERS) {
    9380           0 :                 if (r->driver_name) {
    9381           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
    9382           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    9383           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
    9384           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
    9385             :                 }
    9386           0 :                 if (r->architecture) {
    9387           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
    9388           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    9389           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
    9390           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
    9391             :                 }
    9392           0 :                 if (r->driver_path) {
    9393           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
    9394           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    9395           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
    9396           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
    9397             :                 }
    9398           0 :                 if (r->data_file) {
    9399           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
    9400           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    9401           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
    9402           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
    9403             :                 }
    9404           0 :                 if (r->config_file) {
    9405           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
    9406           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    9407           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
    9408           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
    9409             :                 }
    9410             :         }
    9411           0 :         return NDR_ERR_SUCCESS;
    9412             : }
    9413             : 
    9414           0 : static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo2(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_AddDriverInfo2 *r)
    9415             : {
    9416           0 :         uint32_t _ptr_driver_name;
    9417           0 :         uint32_t size_driver_name_1 = 0;
    9418           0 :         uint32_t length_driver_name_1 = 0;
    9419           0 :         TALLOC_CTX *_mem_save_driver_name_0 = NULL;
    9420           0 :         uint32_t _ptr_architecture;
    9421           0 :         uint32_t size_architecture_1 = 0;
    9422           0 :         uint32_t length_architecture_1 = 0;
    9423           0 :         TALLOC_CTX *_mem_save_architecture_0 = NULL;
    9424           0 :         uint32_t _ptr_driver_path;
    9425           0 :         uint32_t size_driver_path_1 = 0;
    9426           0 :         uint32_t length_driver_path_1 = 0;
    9427           0 :         TALLOC_CTX *_mem_save_driver_path_0 = NULL;
    9428           0 :         uint32_t _ptr_data_file;
    9429           0 :         uint32_t size_data_file_1 = 0;
    9430           0 :         uint32_t length_data_file_1 = 0;
    9431           0 :         TALLOC_CTX *_mem_save_data_file_0 = NULL;
    9432           0 :         uint32_t _ptr_config_file;
    9433           0 :         uint32_t size_config_file_1 = 0;
    9434           0 :         uint32_t length_config_file_1 = 0;
    9435           0 :         TALLOC_CTX *_mem_save_config_file_0 = NULL;
    9436           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    9437           0 :         if (ndr_flags & NDR_SCALARS) {
    9438           0 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
    9439           0 :                 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
    9440           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
    9441           0 :                 if (_ptr_driver_name) {
    9442           0 :                         NDR_PULL_ALLOC(ndr, r->driver_name);
    9443             :                 } else {
    9444           0 :                         r->driver_name = NULL;
    9445             :                 }
    9446           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
    9447           0 :                 if (_ptr_architecture) {
    9448           0 :                         NDR_PULL_ALLOC(ndr, r->architecture);
    9449             :                 } else {
    9450           0 :                         r->architecture = NULL;
    9451             :                 }
    9452           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
    9453           0 :                 if (_ptr_driver_path) {
    9454           0 :                         NDR_PULL_ALLOC(ndr, r->driver_path);
    9455             :                 } else {
    9456           0 :                         r->driver_path = NULL;
    9457             :                 }
    9458           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
    9459           0 :                 if (_ptr_data_file) {
    9460           0 :                         NDR_PULL_ALLOC(ndr, r->data_file);
    9461             :                 } else {
    9462           0 :                         r->data_file = NULL;
    9463             :                 }
    9464           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
    9465           0 :                 if (_ptr_config_file) {
    9466           0 :                         NDR_PULL_ALLOC(ndr, r->config_file);
    9467             :                 } else {
    9468           0 :                         r->config_file = NULL;
    9469             :                 }
    9470           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
    9471             :         }
    9472           0 :         if (ndr_flags & NDR_BUFFERS) {
    9473           0 :                 if (r->driver_name) {
    9474           0 :                         _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
    9475           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
    9476           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
    9477           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
    9478           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->driver_name, &size_driver_name_1));
    9479           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->driver_name, &length_driver_name_1));
    9480           0 :                         if (length_driver_name_1 > size_driver_name_1) {
    9481           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_driver_name_1, length_driver_name_1);
    9482             :                         }
    9483           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_driver_name_1, sizeof(uint16_t)));
    9484           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, length_driver_name_1, sizeof(uint16_t), CH_UTF16));
    9485           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
    9486             :                 }
    9487           0 :                 if (r->architecture) {
    9488           0 :                         _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
    9489           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
    9490           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
    9491           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
    9492           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->architecture, &size_architecture_1));
    9493           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->architecture, &length_architecture_1));
    9494           0 :                         if (length_architecture_1 > size_architecture_1) {
    9495           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_architecture_1, length_architecture_1);
    9496             :                         }
    9497           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_architecture_1, sizeof(uint16_t)));
    9498           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, length_architecture_1, sizeof(uint16_t), CH_UTF16));
    9499           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
    9500             :                 }
    9501           0 :                 if (r->driver_path) {
    9502           0 :                         _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
    9503           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
    9504           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
    9505           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
    9506           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->driver_path, &size_driver_path_1));
    9507           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->driver_path, &length_driver_path_1));
    9508           0 :                         if (length_driver_path_1 > size_driver_path_1) {
    9509           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_driver_path_1, length_driver_path_1);
    9510             :                         }
    9511           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_driver_path_1, sizeof(uint16_t)));
    9512           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, length_driver_path_1, sizeof(uint16_t), CH_UTF16));
    9513           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
    9514             :                 }
    9515           0 :                 if (r->data_file) {
    9516           0 :                         _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
    9517           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
    9518           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
    9519           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
    9520           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->data_file, &size_data_file_1));
    9521           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->data_file, &length_data_file_1));
    9522           0 :                         if (length_data_file_1 > size_data_file_1) {
    9523           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_data_file_1, length_data_file_1);
    9524             :                         }
    9525           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_data_file_1, sizeof(uint16_t)));
    9526           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, length_data_file_1, sizeof(uint16_t), CH_UTF16));
    9527           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
    9528             :                 }
    9529           0 :                 if (r->config_file) {
    9530           0 :                         _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
    9531           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
    9532           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
    9533           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
    9534           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->config_file, &size_config_file_1));
    9535           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->config_file, &length_config_file_1));
    9536           0 :                         if (length_config_file_1 > size_config_file_1) {
    9537           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_config_file_1, length_config_file_1);
    9538             :                         }
    9539           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_config_file_1, sizeof(uint16_t)));
    9540           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, length_config_file_1, sizeof(uint16_t), CH_UTF16));
    9541           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
    9542             :                 }
    9543             :         }
    9544           0 :         return NDR_ERR_SUCCESS;
    9545             : }
    9546             : 
    9547           0 : _PUBLIC_ void ndr_print_spoolss_AddDriverInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo2 *r)
    9548             : {
    9549           0 :         ndr_print_struct(ndr, name, "spoolss_AddDriverInfo2");
    9550           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
    9551           0 :         ndr->depth++;
    9552           0 :         ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
    9553           0 :         ndr_print_ptr(ndr, "driver_name", r->driver_name);
    9554           0 :         ndr->depth++;
    9555           0 :         if (r->driver_name) {
    9556           0 :                 ndr_print_string(ndr, "driver_name", r->driver_name);
    9557             :         }
    9558           0 :         ndr->depth--;
    9559           0 :         ndr_print_ptr(ndr, "architecture", r->architecture);
    9560           0 :         ndr->depth++;
    9561           0 :         if (r->architecture) {
    9562           0 :                 ndr_print_string(ndr, "architecture", r->architecture);
    9563             :         }
    9564           0 :         ndr->depth--;
    9565           0 :         ndr_print_ptr(ndr, "driver_path", r->driver_path);
    9566           0 :         ndr->depth++;
    9567           0 :         if (r->driver_path) {
    9568           0 :                 ndr_print_string(ndr, "driver_path", r->driver_path);
    9569             :         }
    9570           0 :         ndr->depth--;
    9571           0 :         ndr_print_ptr(ndr, "data_file", r->data_file);
    9572           0 :         ndr->depth++;
    9573           0 :         if (r->data_file) {
    9574           0 :                 ndr_print_string(ndr, "data_file", r->data_file);
    9575             :         }
    9576           0 :         ndr->depth--;
    9577           0 :         ndr_print_ptr(ndr, "config_file", r->config_file);
    9578           0 :         ndr->depth++;
    9579           0 :         if (r->config_file) {
    9580           0 :                 ndr_print_string(ndr, "config_file", r->config_file);
    9581             :         }
    9582           0 :         ndr->depth--;
    9583           0 :         ndr->depth--;
    9584             : }
    9585             : 
    9586           0 : static enum ndr_err_code ndr_push_spoolss_AddDriverInfo3(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_AddDriverInfo3 *r)
    9587             : {
    9588           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    9589           0 :         if (ndr_flags & NDR_SCALARS) {
    9590           0 :                 NDR_CHECK(ndr_push_align(ndr, 5));
    9591           0 :                 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
    9592           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
    9593           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
    9594           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
    9595           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
    9596           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
    9597           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
    9598           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
    9599           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
    9600           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->flags) - 4) / 2)));
    9601           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
    9602           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
    9603             :         }
    9604           0 :         if (ndr_flags & NDR_BUFFERS) {
    9605           0 :                 if (r->driver_name) {
    9606           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
    9607           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    9608           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
    9609           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
    9610             :                 }
    9611           0 :                 if (r->architecture) {
    9612           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
    9613           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    9614           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
    9615           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
    9616             :                 }
    9617           0 :                 if (r->driver_path) {
    9618           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
    9619           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    9620           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
    9621           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
    9622             :                 }
    9623           0 :                 if (r->data_file) {
    9624           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
    9625           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    9626           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
    9627           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
    9628             :                 }
    9629           0 :                 if (r->config_file) {
    9630           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
    9631           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    9632           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
    9633           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
    9634             :                 }
    9635           0 :                 if (r->help_file) {
    9636           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
    9637           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    9638           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
    9639           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
    9640             :                 }
    9641           0 :                 if (r->monitor_name) {
    9642           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
    9643           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    9644           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
    9645           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
    9646             :                 }
    9647           0 :                 if (r->default_datatype) {
    9648           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
    9649           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    9650           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
    9651           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
    9652             :                 }
    9653           0 :                 if (r->dependent_files) {
    9654           0 :                         NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
    9655             :                 }
    9656             :         }
    9657           0 :         return NDR_ERR_SUCCESS;
    9658             : }
    9659             : 
    9660           0 : static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo3(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_AddDriverInfo3 *r)
    9661             : {
    9662           0 :         uint32_t _ptr_driver_name;
    9663           0 :         uint32_t size_driver_name_1 = 0;
    9664           0 :         uint32_t length_driver_name_1 = 0;
    9665           0 :         TALLOC_CTX *_mem_save_driver_name_0 = NULL;
    9666           0 :         uint32_t _ptr_architecture;
    9667           0 :         uint32_t size_architecture_1 = 0;
    9668           0 :         uint32_t length_architecture_1 = 0;
    9669           0 :         TALLOC_CTX *_mem_save_architecture_0 = NULL;
    9670           0 :         uint32_t _ptr_driver_path;
    9671           0 :         uint32_t size_driver_path_1 = 0;
    9672           0 :         uint32_t length_driver_path_1 = 0;
    9673           0 :         TALLOC_CTX *_mem_save_driver_path_0 = NULL;
    9674           0 :         uint32_t _ptr_data_file;
    9675           0 :         uint32_t size_data_file_1 = 0;
    9676           0 :         uint32_t length_data_file_1 = 0;
    9677           0 :         TALLOC_CTX *_mem_save_data_file_0 = NULL;
    9678           0 :         uint32_t _ptr_config_file;
    9679           0 :         uint32_t size_config_file_1 = 0;
    9680           0 :         uint32_t length_config_file_1 = 0;
    9681           0 :         TALLOC_CTX *_mem_save_config_file_0 = NULL;
    9682           0 :         uint32_t _ptr_help_file;
    9683           0 :         uint32_t size_help_file_1 = 0;
    9684           0 :         uint32_t length_help_file_1 = 0;
    9685           0 :         TALLOC_CTX *_mem_save_help_file_0 = NULL;
    9686           0 :         uint32_t _ptr_monitor_name;
    9687           0 :         uint32_t size_monitor_name_1 = 0;
    9688           0 :         uint32_t length_monitor_name_1 = 0;
    9689           0 :         TALLOC_CTX *_mem_save_monitor_name_0 = NULL;
    9690           0 :         uint32_t _ptr_default_datatype;
    9691           0 :         uint32_t size_default_datatype_1 = 0;
    9692           0 :         uint32_t length_default_datatype_1 = 0;
    9693           0 :         TALLOC_CTX *_mem_save_default_datatype_0 = NULL;
    9694           0 :         uint32_t _ptr_dependent_files;
    9695           0 :         TALLOC_CTX *_mem_save_dependent_files_0 = NULL;
    9696           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    9697           0 :         if (ndr_flags & NDR_SCALARS) {
    9698           0 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
    9699           0 :                 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
    9700           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
    9701           0 :                 if (_ptr_driver_name) {
    9702           0 :                         NDR_PULL_ALLOC(ndr, r->driver_name);
    9703             :                 } else {
    9704           0 :                         r->driver_name = NULL;
    9705             :                 }
    9706           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
    9707           0 :                 if (_ptr_architecture) {
    9708           0 :                         NDR_PULL_ALLOC(ndr, r->architecture);
    9709             :                 } else {
    9710           0 :                         r->architecture = NULL;
    9711             :                 }
    9712           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
    9713           0 :                 if (_ptr_driver_path) {
    9714           0 :                         NDR_PULL_ALLOC(ndr, r->driver_path);
    9715             :                 } else {
    9716           0 :                         r->driver_path = NULL;
    9717             :                 }
    9718           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
    9719           0 :                 if (_ptr_data_file) {
    9720           0 :                         NDR_PULL_ALLOC(ndr, r->data_file);
    9721             :                 } else {
    9722           0 :                         r->data_file = NULL;
    9723             :                 }
    9724           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
    9725           0 :                 if (_ptr_config_file) {
    9726           0 :                         NDR_PULL_ALLOC(ndr, r->config_file);
    9727             :                 } else {
    9728           0 :                         r->config_file = NULL;
    9729             :                 }
    9730           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
    9731           0 :                 if (_ptr_help_file) {
    9732           0 :                         NDR_PULL_ALLOC(ndr, r->help_file);
    9733             :                 } else {
    9734           0 :                         r->help_file = NULL;
    9735             :                 }
    9736           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
    9737           0 :                 if (_ptr_monitor_name) {
    9738           0 :                         NDR_PULL_ALLOC(ndr, r->monitor_name);
    9739             :                 } else {
    9740           0 :                         r->monitor_name = NULL;
    9741             :                 }
    9742           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
    9743           0 :                 if (_ptr_default_datatype) {
    9744           0 :                         NDR_PULL_ALLOC(ndr, r->default_datatype);
    9745             :                 } else {
    9746           0 :                         r->default_datatype = NULL;
    9747             :                 }
    9748           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
    9749           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
    9750           0 :                 if (_ptr_dependent_files) {
    9751           0 :                         NDR_PULL_ALLOC(ndr, r->dependent_files);
    9752             :                 } else {
    9753           0 :                         r->dependent_files = NULL;
    9754             :                 }
    9755           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
    9756             :         }
    9757           0 :         if (ndr_flags & NDR_BUFFERS) {
    9758           0 :                 if (r->driver_name) {
    9759           0 :                         _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
    9760           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
    9761           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
    9762           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
    9763           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->driver_name, &size_driver_name_1));
    9764           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->driver_name, &length_driver_name_1));
    9765           0 :                         if (length_driver_name_1 > size_driver_name_1) {
    9766           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_driver_name_1, length_driver_name_1);
    9767             :                         }
    9768           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_driver_name_1, sizeof(uint16_t)));
    9769           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, length_driver_name_1, sizeof(uint16_t), CH_UTF16));
    9770           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
    9771             :                 }
    9772           0 :                 if (r->architecture) {
    9773           0 :                         _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
    9774           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
    9775           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
    9776           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
    9777           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->architecture, &size_architecture_1));
    9778           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->architecture, &length_architecture_1));
    9779           0 :                         if (length_architecture_1 > size_architecture_1) {
    9780           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_architecture_1, length_architecture_1);
    9781             :                         }
    9782           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_architecture_1, sizeof(uint16_t)));
    9783           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, length_architecture_1, sizeof(uint16_t), CH_UTF16));
    9784           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
    9785             :                 }
    9786           0 :                 if (r->driver_path) {
    9787           0 :                         _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
    9788           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
    9789           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
    9790           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
    9791           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->driver_path, &size_driver_path_1));
    9792           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->driver_path, &length_driver_path_1));
    9793           0 :                         if (length_driver_path_1 > size_driver_path_1) {
    9794           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_driver_path_1, length_driver_path_1);
    9795             :                         }
    9796           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_driver_path_1, sizeof(uint16_t)));
    9797           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, length_driver_path_1, sizeof(uint16_t), CH_UTF16));
    9798           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
    9799             :                 }
    9800           0 :                 if (r->data_file) {
    9801           0 :                         _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
    9802           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
    9803           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
    9804           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
    9805           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->data_file, &size_data_file_1));
    9806           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->data_file, &length_data_file_1));
    9807           0 :                         if (length_data_file_1 > size_data_file_1) {
    9808           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_data_file_1, length_data_file_1);
    9809             :                         }
    9810           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_data_file_1, sizeof(uint16_t)));
    9811           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, length_data_file_1, sizeof(uint16_t), CH_UTF16));
    9812           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
    9813             :                 }
    9814           0 :                 if (r->config_file) {
    9815           0 :                         _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
    9816           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
    9817           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
    9818           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
    9819           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->config_file, &size_config_file_1));
    9820           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->config_file, &length_config_file_1));
    9821           0 :                         if (length_config_file_1 > size_config_file_1) {
    9822           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_config_file_1, length_config_file_1);
    9823             :                         }
    9824           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_config_file_1, sizeof(uint16_t)));
    9825           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, length_config_file_1, sizeof(uint16_t), CH_UTF16));
    9826           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
    9827             :                 }
    9828           0 :                 if (r->help_file) {
    9829           0 :                         _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
    9830           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
    9831           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
    9832           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
    9833           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->help_file, &size_help_file_1));
    9834           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->help_file, &length_help_file_1));
    9835           0 :                         if (length_help_file_1 > size_help_file_1) {
    9836           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_help_file_1, length_help_file_1);
    9837             :                         }
    9838           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_help_file_1, sizeof(uint16_t)));
    9839           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, length_help_file_1, sizeof(uint16_t), CH_UTF16));
    9840           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
    9841             :                 }
    9842           0 :                 if (r->monitor_name) {
    9843           0 :                         _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
    9844           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
    9845           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
    9846           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
    9847           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->monitor_name, &size_monitor_name_1));
    9848           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->monitor_name, &length_monitor_name_1));
    9849           0 :                         if (length_monitor_name_1 > size_monitor_name_1) {
    9850           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_monitor_name_1, length_monitor_name_1);
    9851             :                         }
    9852           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_monitor_name_1, sizeof(uint16_t)));
    9853           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, length_monitor_name_1, sizeof(uint16_t), CH_UTF16));
    9854           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
    9855             :                 }
    9856           0 :                 if (r->default_datatype) {
    9857           0 :                         _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
    9858           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
    9859           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
    9860           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
    9861           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->default_datatype, &size_default_datatype_1));
    9862           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->default_datatype, &length_default_datatype_1));
    9863           0 :                         if (length_default_datatype_1 > size_default_datatype_1) {
    9864           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_default_datatype_1, length_default_datatype_1);
    9865             :                         }
    9866           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_default_datatype_1, sizeof(uint16_t)));
    9867           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, length_default_datatype_1, sizeof(uint16_t), CH_UTF16));
    9868           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
    9869             :                 }
    9870           0 :                 if (r->dependent_files) {
    9871           0 :                         _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
    9872           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
    9873           0 :                         NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
    9874           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
    9875             :                 }
    9876             :         }
    9877           0 :         return NDR_ERR_SUCCESS;
    9878             : }
    9879             : 
    9880           0 : _PUBLIC_ void ndr_print_spoolss_AddDriverInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo3 *r)
    9881             : {
    9882           0 :         ndr_print_struct(ndr, name, "spoolss_AddDriverInfo3");
    9883           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
    9884           0 :         ndr->depth++;
    9885           0 :         ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
    9886           0 :         ndr_print_ptr(ndr, "driver_name", r->driver_name);
    9887           0 :         ndr->depth++;
    9888           0 :         if (r->driver_name) {
    9889           0 :                 ndr_print_string(ndr, "driver_name", r->driver_name);
    9890             :         }
    9891           0 :         ndr->depth--;
    9892           0 :         ndr_print_ptr(ndr, "architecture", r->architecture);
    9893           0 :         ndr->depth++;
    9894           0 :         if (r->architecture) {
    9895           0 :                 ndr_print_string(ndr, "architecture", r->architecture);
    9896             :         }
    9897           0 :         ndr->depth--;
    9898           0 :         ndr_print_ptr(ndr, "driver_path", r->driver_path);
    9899           0 :         ndr->depth++;
    9900           0 :         if (r->driver_path) {
    9901           0 :                 ndr_print_string(ndr, "driver_path", r->driver_path);
    9902             :         }
    9903           0 :         ndr->depth--;
    9904           0 :         ndr_print_ptr(ndr, "data_file", r->data_file);
    9905           0 :         ndr->depth++;
    9906           0 :         if (r->data_file) {
    9907           0 :                 ndr_print_string(ndr, "data_file", r->data_file);
    9908             :         }
    9909           0 :         ndr->depth--;
    9910           0 :         ndr_print_ptr(ndr, "config_file", r->config_file);
    9911           0 :         ndr->depth++;
    9912           0 :         if (r->config_file) {
    9913           0 :                 ndr_print_string(ndr, "config_file", r->config_file);
    9914             :         }
    9915           0 :         ndr->depth--;
    9916           0 :         ndr_print_ptr(ndr, "help_file", r->help_file);
    9917           0 :         ndr->depth++;
    9918           0 :         if (r->help_file) {
    9919           0 :                 ndr_print_string(ndr, "help_file", r->help_file);
    9920             :         }
    9921           0 :         ndr->depth--;
    9922           0 :         ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
    9923           0 :         ndr->depth++;
    9924           0 :         if (r->monitor_name) {
    9925           0 :                 ndr_print_string(ndr, "monitor_name", r->monitor_name);
    9926             :         }
    9927           0 :         ndr->depth--;
    9928           0 :         ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
    9929           0 :         ndr->depth++;
    9930           0 :         if (r->default_datatype) {
    9931           0 :                 ndr_print_string(ndr, "default_datatype", r->default_datatype);
    9932             :         }
    9933           0 :         ndr->depth--;
    9934           0 :         ndr_print_uint32(ndr, "_ndr_size_dependent_files", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?((ndr_size_spoolss_StringArray(r->dependent_files, ndr->flags) - 4) / 2):r->_ndr_size_dependent_files);
    9935           0 :         ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
    9936           0 :         ndr->depth++;
    9937           0 :         if (r->dependent_files) {
    9938           0 :                 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
    9939             :         }
    9940           0 :         ndr->depth--;
    9941           0 :         ndr->depth--;
    9942             : }
    9943             : 
    9944           0 : static enum ndr_err_code ndr_push_spoolss_AddDriverInfo4(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_AddDriverInfo4 *r)
    9945             : {
    9946           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    9947           0 :         if (ndr_flags & NDR_SCALARS) {
    9948           0 :                 NDR_CHECK(ndr_push_align(ndr, 5));
    9949           0 :                 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
    9950           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
    9951           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
    9952           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
    9953           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
    9954           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
    9955           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
    9956           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
    9957           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
    9958           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->flags) - 4) / 2)));
    9959           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
    9960           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->flags) - 4) / 2)));
    9961           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
    9962           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
    9963             :         }
    9964           0 :         if (ndr_flags & NDR_BUFFERS) {
    9965           0 :                 if (r->driver_name) {
    9966           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
    9967           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    9968           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
    9969           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
    9970             :                 }
    9971           0 :                 if (r->architecture) {
    9972           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
    9973           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    9974           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
    9975           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
    9976             :                 }
    9977           0 :                 if (r->driver_path) {
    9978           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
    9979           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    9980           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
    9981           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
    9982             :                 }
    9983           0 :                 if (r->data_file) {
    9984           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
    9985           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    9986           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
    9987           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
    9988             :                 }
    9989           0 :                 if (r->config_file) {
    9990           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
    9991           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    9992           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
    9993           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
    9994             :                 }
    9995           0 :                 if (r->help_file) {
    9996           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
    9997           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    9998           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
    9999           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   10000             :                 }
   10001           0 :                 if (r->monitor_name) {
   10002           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
   10003           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   10004           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
   10005           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   10006             :                 }
   10007           0 :                 if (r->default_datatype) {
   10008           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
   10009           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   10010           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
   10011           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   10012             :                 }
   10013           0 :                 if (r->dependent_files) {
   10014           0 :                         NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
   10015             :                 }
   10016           0 :                 if (r->previous_names) {
   10017           0 :                         NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
   10018             :                 }
   10019             :         }
   10020           0 :         return NDR_ERR_SUCCESS;
   10021             : }
   10022             : 
   10023           0 : static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo4(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_AddDriverInfo4 *r)
   10024             : {
   10025           0 :         uint32_t _ptr_driver_name;
   10026           0 :         uint32_t size_driver_name_1 = 0;
   10027           0 :         uint32_t length_driver_name_1 = 0;
   10028           0 :         TALLOC_CTX *_mem_save_driver_name_0 = NULL;
   10029           0 :         uint32_t _ptr_architecture;
   10030           0 :         uint32_t size_architecture_1 = 0;
   10031           0 :         uint32_t length_architecture_1 = 0;
   10032           0 :         TALLOC_CTX *_mem_save_architecture_0 = NULL;
   10033           0 :         uint32_t _ptr_driver_path;
   10034           0 :         uint32_t size_driver_path_1 = 0;
   10035           0 :         uint32_t length_driver_path_1 = 0;
   10036           0 :         TALLOC_CTX *_mem_save_driver_path_0 = NULL;
   10037           0 :         uint32_t _ptr_data_file;
   10038           0 :         uint32_t size_data_file_1 = 0;
   10039           0 :         uint32_t length_data_file_1 = 0;
   10040           0 :         TALLOC_CTX *_mem_save_data_file_0 = NULL;
   10041           0 :         uint32_t _ptr_config_file;
   10042           0 :         uint32_t size_config_file_1 = 0;
   10043           0 :         uint32_t length_config_file_1 = 0;
   10044           0 :         TALLOC_CTX *_mem_save_config_file_0 = NULL;
   10045           0 :         uint32_t _ptr_help_file;
   10046           0 :         uint32_t size_help_file_1 = 0;
   10047           0 :         uint32_t length_help_file_1 = 0;
   10048           0 :         TALLOC_CTX *_mem_save_help_file_0 = NULL;
   10049           0 :         uint32_t _ptr_monitor_name;
   10050           0 :         uint32_t size_monitor_name_1 = 0;
   10051           0 :         uint32_t length_monitor_name_1 = 0;
   10052           0 :         TALLOC_CTX *_mem_save_monitor_name_0 = NULL;
   10053           0 :         uint32_t _ptr_default_datatype;
   10054           0 :         uint32_t size_default_datatype_1 = 0;
   10055           0 :         uint32_t length_default_datatype_1 = 0;
   10056           0 :         TALLOC_CTX *_mem_save_default_datatype_0 = NULL;
   10057           0 :         uint32_t _ptr_dependent_files;
   10058           0 :         TALLOC_CTX *_mem_save_dependent_files_0 = NULL;
   10059           0 :         uint32_t _ptr_previous_names;
   10060           0 :         TALLOC_CTX *_mem_save_previous_names_0 = NULL;
   10061           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   10062           0 :         if (ndr_flags & NDR_SCALARS) {
   10063           0 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
   10064           0 :                 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
   10065           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
   10066           0 :                 if (_ptr_driver_name) {
   10067           0 :                         NDR_PULL_ALLOC(ndr, r->driver_name);
   10068             :                 } else {
   10069           0 :                         r->driver_name = NULL;
   10070             :                 }
   10071           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
   10072           0 :                 if (_ptr_architecture) {
   10073           0 :                         NDR_PULL_ALLOC(ndr, r->architecture);
   10074             :                 } else {
   10075           0 :                         r->architecture = NULL;
   10076             :                 }
   10077           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
   10078           0 :                 if (_ptr_driver_path) {
   10079           0 :                         NDR_PULL_ALLOC(ndr, r->driver_path);
   10080             :                 } else {
   10081           0 :                         r->driver_path = NULL;
   10082             :                 }
   10083           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
   10084           0 :                 if (_ptr_data_file) {
   10085           0 :                         NDR_PULL_ALLOC(ndr, r->data_file);
   10086             :                 } else {
   10087           0 :                         r->data_file = NULL;
   10088             :                 }
   10089           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
   10090           0 :                 if (_ptr_config_file) {
   10091           0 :                         NDR_PULL_ALLOC(ndr, r->config_file);
   10092             :                 } else {
   10093           0 :                         r->config_file = NULL;
   10094             :                 }
   10095           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
   10096           0 :                 if (_ptr_help_file) {
   10097           0 :                         NDR_PULL_ALLOC(ndr, r->help_file);
   10098             :                 } else {
   10099           0 :                         r->help_file = NULL;
   10100             :                 }
   10101           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
   10102           0 :                 if (_ptr_monitor_name) {
   10103           0 :                         NDR_PULL_ALLOC(ndr, r->monitor_name);
   10104             :                 } else {
   10105           0 :                         r->monitor_name = NULL;
   10106             :                 }
   10107           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
   10108           0 :                 if (_ptr_default_datatype) {
   10109           0 :                         NDR_PULL_ALLOC(ndr, r->default_datatype);
   10110             :                 } else {
   10111           0 :                         r->default_datatype = NULL;
   10112             :                 }
   10113           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
   10114           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
   10115           0 :                 if (_ptr_dependent_files) {
   10116           0 :                         NDR_PULL_ALLOC(ndr, r->dependent_files);
   10117             :                 } else {
   10118           0 :                         r->dependent_files = NULL;
   10119             :                 }
   10120           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
   10121           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
   10122           0 :                 if (_ptr_previous_names) {
   10123           0 :                         NDR_PULL_ALLOC(ndr, r->previous_names);
   10124             :                 } else {
   10125           0 :                         r->previous_names = NULL;
   10126             :                 }
   10127           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
   10128             :         }
   10129           0 :         if (ndr_flags & NDR_BUFFERS) {
   10130           0 :                 if (r->driver_name) {
   10131           0 :                         _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
   10132           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
   10133           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
   10134           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
   10135           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->driver_name, &size_driver_name_1));
   10136           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->driver_name, &length_driver_name_1));
   10137           0 :                         if (length_driver_name_1 > size_driver_name_1) {
   10138           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_driver_name_1, length_driver_name_1);
   10139             :                         }
   10140           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_driver_name_1, sizeof(uint16_t)));
   10141           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, length_driver_name_1, sizeof(uint16_t), CH_UTF16));
   10142           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
   10143             :                 }
   10144           0 :                 if (r->architecture) {
   10145           0 :                         _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
   10146           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
   10147           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
   10148           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
   10149           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->architecture, &size_architecture_1));
   10150           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->architecture, &length_architecture_1));
   10151           0 :                         if (length_architecture_1 > size_architecture_1) {
   10152           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_architecture_1, length_architecture_1);
   10153             :                         }
   10154           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_architecture_1, sizeof(uint16_t)));
   10155           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, length_architecture_1, sizeof(uint16_t), CH_UTF16));
   10156           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
   10157             :                 }
   10158           0 :                 if (r->driver_path) {
   10159           0 :                         _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
   10160           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
   10161           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
   10162           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
   10163           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->driver_path, &size_driver_path_1));
   10164           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->driver_path, &length_driver_path_1));
   10165           0 :                         if (length_driver_path_1 > size_driver_path_1) {
   10166           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_driver_path_1, length_driver_path_1);
   10167             :                         }
   10168           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_driver_path_1, sizeof(uint16_t)));
   10169           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, length_driver_path_1, sizeof(uint16_t), CH_UTF16));
   10170           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
   10171             :                 }
   10172           0 :                 if (r->data_file) {
   10173           0 :                         _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
   10174           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
   10175           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
   10176           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
   10177           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->data_file, &size_data_file_1));
   10178           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->data_file, &length_data_file_1));
   10179           0 :                         if (length_data_file_1 > size_data_file_1) {
   10180           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_data_file_1, length_data_file_1);
   10181             :                         }
   10182           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_data_file_1, sizeof(uint16_t)));
   10183           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, length_data_file_1, sizeof(uint16_t), CH_UTF16));
   10184           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
   10185             :                 }
   10186           0 :                 if (r->config_file) {
   10187           0 :                         _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
   10188           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
   10189           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
   10190           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
   10191           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->config_file, &size_config_file_1));
   10192           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->config_file, &length_config_file_1));
   10193           0 :                         if (length_config_file_1 > size_config_file_1) {
   10194           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_config_file_1, length_config_file_1);
   10195             :                         }
   10196           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_config_file_1, sizeof(uint16_t)));
   10197           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, length_config_file_1, sizeof(uint16_t), CH_UTF16));
   10198           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
   10199             :                 }
   10200           0 :                 if (r->help_file) {
   10201           0 :                         _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
   10202           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
   10203           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
   10204           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
   10205           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->help_file, &size_help_file_1));
   10206           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->help_file, &length_help_file_1));
   10207           0 :                         if (length_help_file_1 > size_help_file_1) {
   10208           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_help_file_1, length_help_file_1);
   10209             :                         }
   10210           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_help_file_1, sizeof(uint16_t)));
   10211           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, length_help_file_1, sizeof(uint16_t), CH_UTF16));
   10212           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
   10213             :                 }
   10214           0 :                 if (r->monitor_name) {
   10215           0 :                         _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
   10216           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
   10217           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
   10218           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
   10219           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->monitor_name, &size_monitor_name_1));
   10220           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->monitor_name, &length_monitor_name_1));
   10221           0 :                         if (length_monitor_name_1 > size_monitor_name_1) {
   10222           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_monitor_name_1, length_monitor_name_1);
   10223             :                         }
   10224           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_monitor_name_1, sizeof(uint16_t)));
   10225           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, length_monitor_name_1, sizeof(uint16_t), CH_UTF16));
   10226           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
   10227             :                 }
   10228           0 :                 if (r->default_datatype) {
   10229           0 :                         _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
   10230           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
   10231           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
   10232           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
   10233           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->default_datatype, &size_default_datatype_1));
   10234           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->default_datatype, &length_default_datatype_1));
   10235           0 :                         if (length_default_datatype_1 > size_default_datatype_1) {
   10236           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_default_datatype_1, length_default_datatype_1);
   10237             :                         }
   10238           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_default_datatype_1, sizeof(uint16_t)));
   10239           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, length_default_datatype_1, sizeof(uint16_t), CH_UTF16));
   10240           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
   10241             :                 }
   10242           0 :                 if (r->dependent_files) {
   10243           0 :                         _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
   10244           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
   10245           0 :                         NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
   10246           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
   10247             :                 }
   10248           0 :                 if (r->previous_names) {
   10249           0 :                         _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
   10250           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
   10251           0 :                         NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
   10252           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
   10253             :                 }
   10254             :         }
   10255           0 :         return NDR_ERR_SUCCESS;
   10256             : }
   10257             : 
   10258           0 : _PUBLIC_ void ndr_print_spoolss_AddDriverInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo4 *r)
   10259             : {
   10260           0 :         ndr_print_struct(ndr, name, "spoolss_AddDriverInfo4");
   10261           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   10262           0 :         ndr->depth++;
   10263           0 :         ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
   10264           0 :         ndr_print_ptr(ndr, "driver_name", r->driver_name);
   10265           0 :         ndr->depth++;
   10266           0 :         if (r->driver_name) {
   10267           0 :                 ndr_print_string(ndr, "driver_name", r->driver_name);
   10268             :         }
   10269           0 :         ndr->depth--;
   10270           0 :         ndr_print_ptr(ndr, "architecture", r->architecture);
   10271           0 :         ndr->depth++;
   10272           0 :         if (r->architecture) {
   10273           0 :                 ndr_print_string(ndr, "architecture", r->architecture);
   10274             :         }
   10275           0 :         ndr->depth--;
   10276           0 :         ndr_print_ptr(ndr, "driver_path", r->driver_path);
   10277           0 :         ndr->depth++;
   10278           0 :         if (r->driver_path) {
   10279           0 :                 ndr_print_string(ndr, "driver_path", r->driver_path);
   10280             :         }
   10281           0 :         ndr->depth--;
   10282           0 :         ndr_print_ptr(ndr, "data_file", r->data_file);
   10283           0 :         ndr->depth++;
   10284           0 :         if (r->data_file) {
   10285           0 :                 ndr_print_string(ndr, "data_file", r->data_file);
   10286             :         }
   10287           0 :         ndr->depth--;
   10288           0 :         ndr_print_ptr(ndr, "config_file", r->config_file);
   10289           0 :         ndr->depth++;
   10290           0 :         if (r->config_file) {
   10291           0 :                 ndr_print_string(ndr, "config_file", r->config_file);
   10292             :         }
   10293           0 :         ndr->depth--;
   10294           0 :         ndr_print_ptr(ndr, "help_file", r->help_file);
   10295           0 :         ndr->depth++;
   10296           0 :         if (r->help_file) {
   10297           0 :                 ndr_print_string(ndr, "help_file", r->help_file);
   10298             :         }
   10299           0 :         ndr->depth--;
   10300           0 :         ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
   10301           0 :         ndr->depth++;
   10302           0 :         if (r->monitor_name) {
   10303           0 :                 ndr_print_string(ndr, "monitor_name", r->monitor_name);
   10304             :         }
   10305           0 :         ndr->depth--;
   10306           0 :         ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
   10307           0 :         ndr->depth++;
   10308           0 :         if (r->default_datatype) {
   10309           0 :                 ndr_print_string(ndr, "default_datatype", r->default_datatype);
   10310             :         }
   10311           0 :         ndr->depth--;
   10312           0 :         ndr_print_uint32(ndr, "_ndr_size_dependent_files", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?((ndr_size_spoolss_StringArray(r->dependent_files, ndr->flags) - 4) / 2):r->_ndr_size_dependent_files);
   10313           0 :         ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
   10314           0 :         ndr->depth++;
   10315           0 :         if (r->dependent_files) {
   10316           0 :                 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
   10317             :         }
   10318           0 :         ndr->depth--;
   10319           0 :         ndr_print_uint32(ndr, "_ndr_size_previous_names", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?((ndr_size_spoolss_StringArray(r->previous_names, ndr->flags) - 4) / 2):r->_ndr_size_previous_names);
   10320           0 :         ndr_print_ptr(ndr, "previous_names", r->previous_names);
   10321           0 :         ndr->depth++;
   10322           0 :         if (r->previous_names) {
   10323           0 :                 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
   10324             :         }
   10325           0 :         ndr->depth--;
   10326           0 :         ndr->depth--;
   10327             : }
   10328             : 
   10329           0 : static enum ndr_err_code ndr_push_spoolss_DriverAttributes(struct ndr_push *ndr, ndr_flags_type ndr_flags, uint32_t r)
   10330             : {
   10331           0 :         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
   10332           0 :         return NDR_ERR_SUCCESS;
   10333             : }
   10334             : 
   10335           0 : static enum ndr_err_code ndr_pull_spoolss_DriverAttributes(struct ndr_pull *ndr, ndr_flags_type ndr_flags, uint32_t *r)
   10336             : {
   10337           0 :         uint32_t v;
   10338           0 :         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
   10339           0 :         *r = v;
   10340           0 :         return NDR_ERR_SUCCESS;
   10341             : }
   10342             : 
   10343           0 : _PUBLIC_ void ndr_print_spoolss_DriverAttributes(struct ndr_print *ndr, const char *name, uint32_t r)
   10344             : {
   10345           0 :         ndr_print_uint32(ndr, name, r);
   10346           0 :         ndr->depth++;
   10347           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_DRIVER_PACKAGE_AWARE", PRINTER_DRIVER_PACKAGE_AWARE, r);
   10348           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_DRIVER_XPS", PRINTER_DRIVER_XPS, r);
   10349           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_DRIVER_SANDBOX_ENABLED", PRINTER_DRIVER_SANDBOX_ENABLED, r);
   10350           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_DRIVER_CLASS", PRINTER_DRIVER_CLASS, r);
   10351           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_DRIVER_DERIVED", PRINTER_DRIVER_DERIVED, r);
   10352           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_DRIVER_NOT_SHAREABLE", PRINTER_DRIVER_NOT_SHAREABLE, r);
   10353           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_DRIVER_CATEGORY_FAX", PRINTER_DRIVER_CATEGORY_FAX, r);
   10354           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_DRIVER_CATEGORY_FILE", PRINTER_DRIVER_CATEGORY_FILE, r);
   10355           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_DRIVER_CATEGORY_VIRTUAL", PRINTER_DRIVER_CATEGORY_VIRTUAL, r);
   10356           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_DRIVER_CATEGORY_SERVICE", PRINTER_DRIVER_CATEGORY_SERVICE, r);
   10357           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_DRIVER_SOFT_RESET_REQUIRED", PRINTER_DRIVER_SOFT_RESET_REQUIRED, r);
   10358           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_DRIVER_CATEGORY_3D", PRINTER_DRIVER_CATEGORY_3D, r);
   10359           0 :         ndr->depth--;
   10360           0 : }
   10361             : 
   10362           0 : static enum ndr_err_code ndr_push_spoolss_AddDriverInfo6(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_AddDriverInfo6 *r)
   10363             : {
   10364           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   10365           0 :         if (ndr_flags & NDR_SCALARS) {
   10366           0 :                 NDR_CHECK(ndr_push_align(ndr, 8));
   10367           0 :                 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
   10368           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
   10369           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
   10370           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
   10371           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
   10372           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
   10373           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
   10374           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
   10375           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
   10376           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->flags) - 4) / 2)));
   10377           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
   10378           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->flags) - 4) / 2)));
   10379           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
   10380           0 :                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
   10381           0 :                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
   10382           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_name));
   10383           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_url));
   10384           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->hardware_id));
   10385           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->provider));
   10386           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
   10387             :         }
   10388           0 :         if (ndr_flags & NDR_BUFFERS) {
   10389           0 :                 if (r->driver_name) {
   10390           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
   10391           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   10392           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
   10393           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   10394             :                 }
   10395           0 :                 if (r->architecture) {
   10396           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
   10397           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   10398           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
   10399           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   10400             :                 }
   10401           0 :                 if (r->driver_path) {
   10402           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
   10403           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   10404           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
   10405           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   10406             :                 }
   10407           0 :                 if (r->data_file) {
   10408           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
   10409           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   10410           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
   10411           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   10412             :                 }
   10413           0 :                 if (r->config_file) {
   10414           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
   10415           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   10416           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
   10417           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   10418             :                 }
   10419           0 :                 if (r->help_file) {
   10420           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
   10421           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   10422           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
   10423           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   10424             :                 }
   10425           0 :                 if (r->monitor_name) {
   10426           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
   10427           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   10428           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
   10429           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   10430             :                 }
   10431           0 :                 if (r->default_datatype) {
   10432           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
   10433           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   10434           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
   10435           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   10436             :                 }
   10437           0 :                 if (r->dependent_files) {
   10438           0 :                         NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
   10439             :                 }
   10440           0 :                 if (r->previous_names) {
   10441           0 :                         NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
   10442             :                 }
   10443           0 :                 if (r->manufacturer_name) {
   10444           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
   10445           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   10446           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
   10447           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_name, ndr_charset_length(r->manufacturer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   10448             :                 }
   10449           0 :                 if (r->manufacturer_url) {
   10450           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
   10451           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   10452           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
   10453           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_url, ndr_charset_length(r->manufacturer_url, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   10454             :                 }
   10455           0 :                 if (r->hardware_id) {
   10456           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
   10457           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   10458           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
   10459           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_id, ndr_charset_length(r->hardware_id, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   10460             :                 }
   10461           0 :                 if (r->provider) {
   10462           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
   10463           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   10464           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
   10465           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->provider, ndr_charset_length(r->provider, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   10466             :                 }
   10467             :         }
   10468           0 :         return NDR_ERR_SUCCESS;
   10469             : }
   10470             : 
   10471           4 : static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo6(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_AddDriverInfo6 *r)
   10472             : {
   10473           4 :         uint32_t _ptr_driver_name;
   10474           4 :         uint32_t size_driver_name_1 = 0;
   10475           4 :         uint32_t length_driver_name_1 = 0;
   10476           4 :         TALLOC_CTX *_mem_save_driver_name_0 = NULL;
   10477           4 :         uint32_t _ptr_architecture;
   10478           4 :         uint32_t size_architecture_1 = 0;
   10479           4 :         uint32_t length_architecture_1 = 0;
   10480           4 :         TALLOC_CTX *_mem_save_architecture_0 = NULL;
   10481           4 :         uint32_t _ptr_driver_path;
   10482           4 :         uint32_t size_driver_path_1 = 0;
   10483           4 :         uint32_t length_driver_path_1 = 0;
   10484           4 :         TALLOC_CTX *_mem_save_driver_path_0 = NULL;
   10485           4 :         uint32_t _ptr_data_file;
   10486           4 :         uint32_t size_data_file_1 = 0;
   10487           4 :         uint32_t length_data_file_1 = 0;
   10488           4 :         TALLOC_CTX *_mem_save_data_file_0 = NULL;
   10489           4 :         uint32_t _ptr_config_file;
   10490           4 :         uint32_t size_config_file_1 = 0;
   10491           4 :         uint32_t length_config_file_1 = 0;
   10492           4 :         TALLOC_CTX *_mem_save_config_file_0 = NULL;
   10493           4 :         uint32_t _ptr_help_file;
   10494           4 :         uint32_t size_help_file_1 = 0;
   10495           4 :         uint32_t length_help_file_1 = 0;
   10496           4 :         TALLOC_CTX *_mem_save_help_file_0 = NULL;
   10497           4 :         uint32_t _ptr_monitor_name;
   10498           4 :         uint32_t size_monitor_name_1 = 0;
   10499           4 :         uint32_t length_monitor_name_1 = 0;
   10500           4 :         TALLOC_CTX *_mem_save_monitor_name_0 = NULL;
   10501           4 :         uint32_t _ptr_default_datatype;
   10502           4 :         uint32_t size_default_datatype_1 = 0;
   10503           4 :         uint32_t length_default_datatype_1 = 0;
   10504           4 :         TALLOC_CTX *_mem_save_default_datatype_0 = NULL;
   10505           4 :         uint32_t _ptr_dependent_files;
   10506           4 :         TALLOC_CTX *_mem_save_dependent_files_0 = NULL;
   10507           4 :         uint32_t _ptr_previous_names;
   10508           4 :         TALLOC_CTX *_mem_save_previous_names_0 = NULL;
   10509           4 :         uint32_t _ptr_manufacturer_name;
   10510           4 :         uint32_t size_manufacturer_name_1 = 0;
   10511           4 :         uint32_t length_manufacturer_name_1 = 0;
   10512           4 :         TALLOC_CTX *_mem_save_manufacturer_name_0 = NULL;
   10513           4 :         uint32_t _ptr_manufacturer_url;
   10514           4 :         uint32_t size_manufacturer_url_1 = 0;
   10515           4 :         uint32_t length_manufacturer_url_1 = 0;
   10516           4 :         TALLOC_CTX *_mem_save_manufacturer_url_0 = NULL;
   10517           4 :         uint32_t _ptr_hardware_id;
   10518           4 :         uint32_t size_hardware_id_1 = 0;
   10519           4 :         uint32_t length_hardware_id_1 = 0;
   10520           4 :         TALLOC_CTX *_mem_save_hardware_id_0 = NULL;
   10521           4 :         uint32_t _ptr_provider;
   10522           4 :         uint32_t size_provider_1 = 0;
   10523           4 :         uint32_t length_provider_1 = 0;
   10524           4 :         TALLOC_CTX *_mem_save_provider_0 = NULL;
   10525           4 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   10526           4 :         if (ndr_flags & NDR_SCALARS) {
   10527           4 :                 NDR_CHECK(ndr_pull_align(ndr, 8));
   10528           4 :                 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
   10529           4 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
   10530           4 :                 if (_ptr_driver_name) {
   10531           4 :                         NDR_PULL_ALLOC(ndr, r->driver_name);
   10532             :                 } else {
   10533           0 :                         r->driver_name = NULL;
   10534             :                 }
   10535           4 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
   10536           4 :                 if (_ptr_architecture) {
   10537           4 :                         NDR_PULL_ALLOC(ndr, r->architecture);
   10538             :                 } else {
   10539           0 :                         r->architecture = NULL;
   10540             :                 }
   10541           4 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
   10542           4 :                 if (_ptr_driver_path) {
   10543           4 :                         NDR_PULL_ALLOC(ndr, r->driver_path);
   10544             :                 } else {
   10545           0 :                         r->driver_path = NULL;
   10546             :                 }
   10547           4 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
   10548           4 :                 if (_ptr_data_file) {
   10549           4 :                         NDR_PULL_ALLOC(ndr, r->data_file);
   10550             :                 } else {
   10551           0 :                         r->data_file = NULL;
   10552             :                 }
   10553           4 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
   10554           4 :                 if (_ptr_config_file) {
   10555           4 :                         NDR_PULL_ALLOC(ndr, r->config_file);
   10556             :                 } else {
   10557           0 :                         r->config_file = NULL;
   10558             :                 }
   10559           4 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
   10560           4 :                 if (_ptr_help_file) {
   10561           4 :                         NDR_PULL_ALLOC(ndr, r->help_file);
   10562             :                 } else {
   10563           0 :                         r->help_file = NULL;
   10564             :                 }
   10565           4 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
   10566           4 :                 if (_ptr_monitor_name) {
   10567           0 :                         NDR_PULL_ALLOC(ndr, r->monitor_name);
   10568             :                 } else {
   10569           4 :                         r->monitor_name = NULL;
   10570             :                 }
   10571           4 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
   10572           4 :                 if (_ptr_default_datatype) {
   10573           0 :                         NDR_PULL_ALLOC(ndr, r->default_datatype);
   10574             :                 } else {
   10575           4 :                         r->default_datatype = NULL;
   10576             :                 }
   10577           4 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
   10578           4 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
   10579           4 :                 if (_ptr_dependent_files) {
   10580           4 :                         NDR_PULL_ALLOC(ndr, r->dependent_files);
   10581             :                 } else {
   10582           0 :                         r->dependent_files = NULL;
   10583             :                 }
   10584           4 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
   10585           4 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
   10586           4 :                 if (_ptr_previous_names) {
   10587           4 :                         NDR_PULL_ALLOC(ndr, r->previous_names);
   10588             :                 } else {
   10589           0 :                         r->previous_names = NULL;
   10590             :                 }
   10591           4 :                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
   10592           4 :                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
   10593           4 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
   10594           4 :                 if (_ptr_manufacturer_name) {
   10595           4 :                         NDR_PULL_ALLOC(ndr, r->manufacturer_name);
   10596             :                 } else {
   10597           0 :                         r->manufacturer_name = NULL;
   10598             :                 }
   10599           4 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
   10600           4 :                 if (_ptr_manufacturer_url) {
   10601           4 :                         NDR_PULL_ALLOC(ndr, r->manufacturer_url);
   10602             :                 } else {
   10603           0 :                         r->manufacturer_url = NULL;
   10604             :                 }
   10605           4 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
   10606           4 :                 if (_ptr_hardware_id) {
   10607           4 :                         NDR_PULL_ALLOC(ndr, r->hardware_id);
   10608             :                 } else {
   10609           0 :                         r->hardware_id = NULL;
   10610             :                 }
   10611           4 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
   10612           4 :                 if (_ptr_provider) {
   10613           4 :                         NDR_PULL_ALLOC(ndr, r->provider);
   10614             :                 } else {
   10615           0 :                         r->provider = NULL;
   10616             :                 }
   10617           4 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
   10618             :         }
   10619           4 :         if (ndr_flags & NDR_BUFFERS) {
   10620           4 :                 if (r->driver_name) {
   10621           4 :                         _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
   10622           4 :                         NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
   10623           4 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
   10624           4 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
   10625           4 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->driver_name, &size_driver_name_1));
   10626           4 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->driver_name, &length_driver_name_1));
   10627           4 :                         if (length_driver_name_1 > size_driver_name_1) {
   10628           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_driver_name_1, length_driver_name_1);
   10629             :                         }
   10630           4 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_driver_name_1, sizeof(uint16_t)));
   10631           4 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, length_driver_name_1, sizeof(uint16_t), CH_UTF16));
   10632           4 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
   10633             :                 }
   10634           4 :                 if (r->architecture) {
   10635           4 :                         _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
   10636           4 :                         NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
   10637           4 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
   10638           4 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
   10639           4 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->architecture, &size_architecture_1));
   10640           4 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->architecture, &length_architecture_1));
   10641           4 :                         if (length_architecture_1 > size_architecture_1) {
   10642           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_architecture_1, length_architecture_1);
   10643             :                         }
   10644           4 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_architecture_1, sizeof(uint16_t)));
   10645           4 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, length_architecture_1, sizeof(uint16_t), CH_UTF16));
   10646           4 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
   10647             :                 }
   10648           4 :                 if (r->driver_path) {
   10649           4 :                         _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
   10650           4 :                         NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
   10651           4 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
   10652           4 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
   10653           4 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->driver_path, &size_driver_path_1));
   10654           4 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->driver_path, &length_driver_path_1));
   10655           4 :                         if (length_driver_path_1 > size_driver_path_1) {
   10656           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_driver_path_1, length_driver_path_1);
   10657             :                         }
   10658           4 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_driver_path_1, sizeof(uint16_t)));
   10659           4 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, length_driver_path_1, sizeof(uint16_t), CH_UTF16));
   10660           4 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
   10661             :                 }
   10662           4 :                 if (r->data_file) {
   10663           4 :                         _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
   10664           4 :                         NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
   10665           4 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
   10666           4 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
   10667           4 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->data_file, &size_data_file_1));
   10668           4 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->data_file, &length_data_file_1));
   10669           4 :                         if (length_data_file_1 > size_data_file_1) {
   10670           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_data_file_1, length_data_file_1);
   10671             :                         }
   10672           4 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_data_file_1, sizeof(uint16_t)));
   10673           4 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, length_data_file_1, sizeof(uint16_t), CH_UTF16));
   10674           4 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
   10675             :                 }
   10676           4 :                 if (r->config_file) {
   10677           4 :                         _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
   10678           4 :                         NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
   10679           4 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
   10680           4 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
   10681           4 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->config_file, &size_config_file_1));
   10682           4 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->config_file, &length_config_file_1));
   10683           4 :                         if (length_config_file_1 > size_config_file_1) {
   10684           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_config_file_1, length_config_file_1);
   10685             :                         }
   10686           4 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_config_file_1, sizeof(uint16_t)));
   10687           4 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, length_config_file_1, sizeof(uint16_t), CH_UTF16));
   10688           4 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
   10689             :                 }
   10690           4 :                 if (r->help_file) {
   10691           4 :                         _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
   10692           4 :                         NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
   10693           4 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
   10694           4 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
   10695           4 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->help_file, &size_help_file_1));
   10696           4 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->help_file, &length_help_file_1));
   10697           4 :                         if (length_help_file_1 > size_help_file_1) {
   10698           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_help_file_1, length_help_file_1);
   10699             :                         }
   10700           4 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_help_file_1, sizeof(uint16_t)));
   10701           4 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, length_help_file_1, sizeof(uint16_t), CH_UTF16));
   10702           4 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
   10703             :                 }
   10704           4 :                 if (r->monitor_name) {
   10705           0 :                         _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
   10706           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
   10707           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
   10708           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
   10709           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->monitor_name, &size_monitor_name_1));
   10710           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->monitor_name, &length_monitor_name_1));
   10711           0 :                         if (length_monitor_name_1 > size_monitor_name_1) {
   10712           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_monitor_name_1, length_monitor_name_1);
   10713             :                         }
   10714           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_monitor_name_1, sizeof(uint16_t)));
   10715           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, length_monitor_name_1, sizeof(uint16_t), CH_UTF16));
   10716           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
   10717             :                 }
   10718           4 :                 if (r->default_datatype) {
   10719           0 :                         _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
   10720           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
   10721           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
   10722           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
   10723           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->default_datatype, &size_default_datatype_1));
   10724           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->default_datatype, &length_default_datatype_1));
   10725           0 :                         if (length_default_datatype_1 > size_default_datatype_1) {
   10726           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_default_datatype_1, length_default_datatype_1);
   10727             :                         }
   10728           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_default_datatype_1, sizeof(uint16_t)));
   10729           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, length_default_datatype_1, sizeof(uint16_t), CH_UTF16));
   10730           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
   10731             :                 }
   10732           4 :                 if (r->dependent_files) {
   10733           4 :                         _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
   10734           4 :                         NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
   10735           4 :                         NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
   10736           4 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
   10737             :                 }
   10738           4 :                 if (r->previous_names) {
   10739           4 :                         _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
   10740           4 :                         NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
   10741           4 :                         NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
   10742           4 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
   10743             :                 }
   10744           4 :                 if (r->manufacturer_name) {
   10745           4 :                         _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
   10746           4 :                         NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
   10747           4 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_name));
   10748           4 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_name));
   10749           4 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->manufacturer_name, &size_manufacturer_name_1));
   10750           4 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->manufacturer_name, &length_manufacturer_name_1));
   10751           4 :                         if (length_manufacturer_name_1 > size_manufacturer_name_1) {
   10752           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_manufacturer_name_1, length_manufacturer_name_1);
   10753             :                         }
   10754           4 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_manufacturer_name_1, sizeof(uint16_t)));
   10755           4 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_name, length_manufacturer_name_1, sizeof(uint16_t), CH_UTF16));
   10756           4 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
   10757             :                 }
   10758           4 :                 if (r->manufacturer_url) {
   10759           4 :                         _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
   10760           4 :                         NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
   10761           4 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_url));
   10762           4 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_url));
   10763           4 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->manufacturer_url, &size_manufacturer_url_1));
   10764           4 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->manufacturer_url, &length_manufacturer_url_1));
   10765           4 :                         if (length_manufacturer_url_1 > size_manufacturer_url_1) {
   10766           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_manufacturer_url_1, length_manufacturer_url_1);
   10767             :                         }
   10768           4 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_manufacturer_url_1, sizeof(uint16_t)));
   10769           4 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_url, length_manufacturer_url_1, sizeof(uint16_t), CH_UTF16));
   10770           4 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
   10771             :                 }
   10772           4 :                 if (r->hardware_id) {
   10773           4 :                         _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
   10774           4 :                         NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
   10775           4 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->hardware_id));
   10776           4 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->hardware_id));
   10777           4 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->hardware_id, &size_hardware_id_1));
   10778           4 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->hardware_id, &length_hardware_id_1));
   10779           4 :                         if (length_hardware_id_1 > size_hardware_id_1) {
   10780           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_hardware_id_1, length_hardware_id_1);
   10781             :                         }
   10782           4 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_hardware_id_1, sizeof(uint16_t)));
   10783           4 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_id, length_hardware_id_1, sizeof(uint16_t), CH_UTF16));
   10784           4 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
   10785             :                 }
   10786           4 :                 if (r->provider) {
   10787           4 :                         _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
   10788           4 :                         NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
   10789           4 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->provider));
   10790           4 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->provider));
   10791           4 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->provider, &size_provider_1));
   10792           4 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->provider, &length_provider_1));
   10793           4 :                         if (length_provider_1 > size_provider_1) {
   10794           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_provider_1, length_provider_1);
   10795             :                         }
   10796           4 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_provider_1, sizeof(uint16_t)));
   10797           4 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->provider, length_provider_1, sizeof(uint16_t), CH_UTF16));
   10798           4 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
   10799             :                 }
   10800             :         }
   10801           0 :         return NDR_ERR_SUCCESS;
   10802             : }
   10803             : 
   10804           4 : _PUBLIC_ void ndr_print_spoolss_AddDriverInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo6 *r)
   10805             : {
   10806           4 :         ndr_print_struct(ndr, name, "spoolss_AddDriverInfo6");
   10807           4 :         if (r == NULL) { ndr_print_null(ndr); return; }
   10808           4 :         ndr->depth++;
   10809           4 :         ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
   10810           4 :         ndr_print_ptr(ndr, "driver_name", r->driver_name);
   10811           4 :         ndr->depth++;
   10812           4 :         if (r->driver_name) {
   10813           4 :                 ndr_print_string(ndr, "driver_name", r->driver_name);
   10814             :         }
   10815           4 :         ndr->depth--;
   10816           4 :         ndr_print_ptr(ndr, "architecture", r->architecture);
   10817           4 :         ndr->depth++;
   10818           4 :         if (r->architecture) {
   10819           4 :                 ndr_print_string(ndr, "architecture", r->architecture);
   10820             :         }
   10821           4 :         ndr->depth--;
   10822           4 :         ndr_print_ptr(ndr, "driver_path", r->driver_path);
   10823           4 :         ndr->depth++;
   10824           4 :         if (r->driver_path) {
   10825           4 :                 ndr_print_string(ndr, "driver_path", r->driver_path);
   10826             :         }
   10827           4 :         ndr->depth--;
   10828           4 :         ndr_print_ptr(ndr, "data_file", r->data_file);
   10829           4 :         ndr->depth++;
   10830           4 :         if (r->data_file) {
   10831           4 :                 ndr_print_string(ndr, "data_file", r->data_file);
   10832             :         }
   10833           4 :         ndr->depth--;
   10834           4 :         ndr_print_ptr(ndr, "config_file", r->config_file);
   10835           4 :         ndr->depth++;
   10836           4 :         if (r->config_file) {
   10837           4 :                 ndr_print_string(ndr, "config_file", r->config_file);
   10838             :         }
   10839           4 :         ndr->depth--;
   10840           4 :         ndr_print_ptr(ndr, "help_file", r->help_file);
   10841           4 :         ndr->depth++;
   10842           4 :         if (r->help_file) {
   10843           4 :                 ndr_print_string(ndr, "help_file", r->help_file);
   10844             :         }
   10845           4 :         ndr->depth--;
   10846           4 :         ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
   10847           4 :         ndr->depth++;
   10848           4 :         if (r->monitor_name) {
   10849           0 :                 ndr_print_string(ndr, "monitor_name", r->monitor_name);
   10850             :         }
   10851           4 :         ndr->depth--;
   10852           4 :         ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
   10853           4 :         ndr->depth++;
   10854           4 :         if (r->default_datatype) {
   10855           0 :                 ndr_print_string(ndr, "default_datatype", r->default_datatype);
   10856             :         }
   10857           4 :         ndr->depth--;
   10858           4 :         ndr_print_uint32(ndr, "_ndr_size_dependent_files", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?((ndr_size_spoolss_StringArray(r->dependent_files, ndr->flags) - 4) / 2):r->_ndr_size_dependent_files);
   10859           4 :         ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
   10860           4 :         ndr->depth++;
   10861           4 :         if (r->dependent_files) {
   10862           4 :                 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
   10863             :         }
   10864           4 :         ndr->depth--;
   10865           4 :         ndr_print_uint32(ndr, "_ndr_size_previous_names", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?((ndr_size_spoolss_StringArray(r->previous_names, ndr->flags) - 4) / 2):r->_ndr_size_previous_names);
   10866           4 :         ndr_print_ptr(ndr, "previous_names", r->previous_names);
   10867           4 :         ndr->depth++;
   10868           4 :         if (r->previous_names) {
   10869           4 :                 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
   10870             :         }
   10871           4 :         ndr->depth--;
   10872           4 :         ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
   10873           4 :         ndr_print_hyper(ndr, "driver_version", r->driver_version);
   10874           4 :         ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
   10875           4 :         ndr->depth++;
   10876           4 :         if (r->manufacturer_name) {
   10877           4 :                 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
   10878             :         }
   10879           4 :         ndr->depth--;
   10880           4 :         ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
   10881           4 :         ndr->depth++;
   10882           4 :         if (r->manufacturer_url) {
   10883           4 :                 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
   10884             :         }
   10885           4 :         ndr->depth--;
   10886           4 :         ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
   10887           4 :         ndr->depth++;
   10888           4 :         if (r->hardware_id) {
   10889           4 :                 ndr_print_string(ndr, "hardware_id", r->hardware_id);
   10890             :         }
   10891           4 :         ndr->depth--;
   10892           4 :         ndr_print_ptr(ndr, "provider", r->provider);
   10893           4 :         ndr->depth++;
   10894           4 :         if (r->provider) {
   10895           4 :                 ndr_print_string(ndr, "provider", r->provider);
   10896             :         }
   10897           4 :         ndr->depth--;
   10898           4 :         ndr->depth--;
   10899             : }
   10900             : 
   10901           0 : static enum ndr_err_code ndr_push_spoolss_AddDriverInfo8(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_AddDriverInfo8 *r)
   10902             : {
   10903           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   10904           0 :         if (ndr_flags & NDR_SCALARS) {
   10905           0 :                 NDR_CHECK(ndr_push_align(ndr, 8));
   10906           0 :                 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
   10907           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
   10908           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
   10909           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
   10910           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
   10911           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
   10912           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
   10913           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
   10914           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
   10915           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->flags) - 4) / 2)));
   10916           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
   10917           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->flags) - 4) / 2)));
   10918           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
   10919           0 :                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
   10920           0 :                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
   10921           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_name));
   10922           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_url));
   10923           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->hardware_id));
   10924           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->provider));
   10925           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->print_processor));
   10926           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->vendor_setup));
   10927           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->color_profiles, ndr->flags) - 4) / 2)));
   10928           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->color_profiles));
   10929           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->inf_path));
   10930           0 :                 NDR_CHECK(ndr_push_spoolss_DriverAttributes(ndr, NDR_SCALARS, r->printer_driver_attributes));
   10931           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->core_driver_dependencies, ndr->flags) - 4) / 2)));
   10932           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->core_driver_dependencies));
   10933           0 :                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->min_inbox_driver_ver_date));
   10934           0 :                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->min_inbox_driver_ver_version));
   10935           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
   10936             :         }
   10937           0 :         if (ndr_flags & NDR_BUFFERS) {
   10938           0 :                 if (r->driver_name) {
   10939           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
   10940           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   10941           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
   10942           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   10943             :                 }
   10944           0 :                 if (r->architecture) {
   10945           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
   10946           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   10947           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
   10948           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   10949             :                 }
   10950           0 :                 if (r->driver_path) {
   10951           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
   10952           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   10953           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
   10954           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   10955             :                 }
   10956           0 :                 if (r->data_file) {
   10957           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
   10958           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   10959           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
   10960           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   10961             :                 }
   10962           0 :                 if (r->config_file) {
   10963           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
   10964           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   10965           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
   10966           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   10967             :                 }
   10968           0 :                 if (r->help_file) {
   10969           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
   10970           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   10971           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
   10972           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   10973             :                 }
   10974           0 :                 if (r->monitor_name) {
   10975           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
   10976           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   10977           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
   10978           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   10979             :                 }
   10980           0 :                 if (r->default_datatype) {
   10981           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
   10982           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   10983           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
   10984           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   10985             :                 }
   10986           0 :                 if (r->dependent_files) {
   10987           0 :                         NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
   10988             :                 }
   10989           0 :                 if (r->previous_names) {
   10990           0 :                         NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
   10991             :                 }
   10992           0 :                 if (r->manufacturer_name) {
   10993           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
   10994           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   10995           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
   10996           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_name, ndr_charset_length(r->manufacturer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   10997             :                 }
   10998           0 :                 if (r->manufacturer_url) {
   10999           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
   11000           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   11001           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
   11002           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_url, ndr_charset_length(r->manufacturer_url, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   11003             :                 }
   11004           0 :                 if (r->hardware_id) {
   11005           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
   11006           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   11007           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
   11008           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_id, ndr_charset_length(r->hardware_id, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   11009             :                 }
   11010           0 :                 if (r->provider) {
   11011           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
   11012           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   11013           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
   11014           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->provider, ndr_charset_length(r->provider, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   11015             :                 }
   11016           0 :                 if (r->print_processor) {
   11017           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
   11018           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   11019           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
   11020           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->print_processor, ndr_charset_length(r->print_processor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   11021             :                 }
   11022           0 :                 if (r->vendor_setup) {
   11023           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->vendor_setup, CH_UTF16)));
   11024           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   11025           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->vendor_setup, CH_UTF16)));
   11026           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->vendor_setup, ndr_charset_length(r->vendor_setup, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   11027             :                 }
   11028           0 :                 if (r->color_profiles) {
   11029           0 :                         NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->color_profiles));
   11030             :                 }
   11031           0 :                 if (r->inf_path) {
   11032           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->inf_path, CH_UTF16)));
   11033           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   11034           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->inf_path, CH_UTF16)));
   11035           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->inf_path, ndr_charset_length(r->inf_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   11036             :                 }
   11037           0 :                 if (r->core_driver_dependencies) {
   11038           0 :                         NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->core_driver_dependencies));
   11039             :                 }
   11040             :         }
   11041           0 :         return NDR_ERR_SUCCESS;
   11042             : }
   11043             : 
   11044           0 : static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo8(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_AddDriverInfo8 *r)
   11045             : {
   11046           0 :         uint32_t _ptr_driver_name;
   11047           0 :         uint32_t size_driver_name_1 = 0;
   11048           0 :         uint32_t length_driver_name_1 = 0;
   11049           0 :         TALLOC_CTX *_mem_save_driver_name_0 = NULL;
   11050           0 :         uint32_t _ptr_architecture;
   11051           0 :         uint32_t size_architecture_1 = 0;
   11052           0 :         uint32_t length_architecture_1 = 0;
   11053           0 :         TALLOC_CTX *_mem_save_architecture_0 = NULL;
   11054           0 :         uint32_t _ptr_driver_path;
   11055           0 :         uint32_t size_driver_path_1 = 0;
   11056           0 :         uint32_t length_driver_path_1 = 0;
   11057           0 :         TALLOC_CTX *_mem_save_driver_path_0 = NULL;
   11058           0 :         uint32_t _ptr_data_file;
   11059           0 :         uint32_t size_data_file_1 = 0;
   11060           0 :         uint32_t length_data_file_1 = 0;
   11061           0 :         TALLOC_CTX *_mem_save_data_file_0 = NULL;
   11062           0 :         uint32_t _ptr_config_file;
   11063           0 :         uint32_t size_config_file_1 = 0;
   11064           0 :         uint32_t length_config_file_1 = 0;
   11065           0 :         TALLOC_CTX *_mem_save_config_file_0 = NULL;
   11066           0 :         uint32_t _ptr_help_file;
   11067           0 :         uint32_t size_help_file_1 = 0;
   11068           0 :         uint32_t length_help_file_1 = 0;
   11069           0 :         TALLOC_CTX *_mem_save_help_file_0 = NULL;
   11070           0 :         uint32_t _ptr_monitor_name;
   11071           0 :         uint32_t size_monitor_name_1 = 0;
   11072           0 :         uint32_t length_monitor_name_1 = 0;
   11073           0 :         TALLOC_CTX *_mem_save_monitor_name_0 = NULL;
   11074           0 :         uint32_t _ptr_default_datatype;
   11075           0 :         uint32_t size_default_datatype_1 = 0;
   11076           0 :         uint32_t length_default_datatype_1 = 0;
   11077           0 :         TALLOC_CTX *_mem_save_default_datatype_0 = NULL;
   11078           0 :         uint32_t _ptr_dependent_files;
   11079           0 :         TALLOC_CTX *_mem_save_dependent_files_0 = NULL;
   11080           0 :         uint32_t _ptr_previous_names;
   11081           0 :         TALLOC_CTX *_mem_save_previous_names_0 = NULL;
   11082           0 :         uint32_t _ptr_manufacturer_name;
   11083           0 :         uint32_t size_manufacturer_name_1 = 0;
   11084           0 :         uint32_t length_manufacturer_name_1 = 0;
   11085           0 :         TALLOC_CTX *_mem_save_manufacturer_name_0 = NULL;
   11086           0 :         uint32_t _ptr_manufacturer_url;
   11087           0 :         uint32_t size_manufacturer_url_1 = 0;
   11088           0 :         uint32_t length_manufacturer_url_1 = 0;
   11089           0 :         TALLOC_CTX *_mem_save_manufacturer_url_0 = NULL;
   11090           0 :         uint32_t _ptr_hardware_id;
   11091           0 :         uint32_t size_hardware_id_1 = 0;
   11092           0 :         uint32_t length_hardware_id_1 = 0;
   11093           0 :         TALLOC_CTX *_mem_save_hardware_id_0 = NULL;
   11094           0 :         uint32_t _ptr_provider;
   11095           0 :         uint32_t size_provider_1 = 0;
   11096           0 :         uint32_t length_provider_1 = 0;
   11097           0 :         TALLOC_CTX *_mem_save_provider_0 = NULL;
   11098           0 :         uint32_t _ptr_print_processor;
   11099           0 :         uint32_t size_print_processor_1 = 0;
   11100           0 :         uint32_t length_print_processor_1 = 0;
   11101           0 :         TALLOC_CTX *_mem_save_print_processor_0 = NULL;
   11102           0 :         uint32_t _ptr_vendor_setup;
   11103           0 :         uint32_t size_vendor_setup_1 = 0;
   11104           0 :         uint32_t length_vendor_setup_1 = 0;
   11105           0 :         TALLOC_CTX *_mem_save_vendor_setup_0 = NULL;
   11106           0 :         uint32_t _ptr_color_profiles;
   11107           0 :         TALLOC_CTX *_mem_save_color_profiles_0 = NULL;
   11108           0 :         uint32_t _ptr_inf_path;
   11109           0 :         uint32_t size_inf_path_1 = 0;
   11110           0 :         uint32_t length_inf_path_1 = 0;
   11111           0 :         TALLOC_CTX *_mem_save_inf_path_0 = NULL;
   11112           0 :         uint32_t _ptr_core_driver_dependencies;
   11113           0 :         TALLOC_CTX *_mem_save_core_driver_dependencies_0 = NULL;
   11114           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   11115           0 :         if (ndr_flags & NDR_SCALARS) {
   11116           0 :                 NDR_CHECK(ndr_pull_align(ndr, 8));
   11117           0 :                 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
   11118           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
   11119           0 :                 if (_ptr_driver_name) {
   11120           0 :                         NDR_PULL_ALLOC(ndr, r->driver_name);
   11121             :                 } else {
   11122           0 :                         r->driver_name = NULL;
   11123             :                 }
   11124           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
   11125           0 :                 if (_ptr_architecture) {
   11126           0 :                         NDR_PULL_ALLOC(ndr, r->architecture);
   11127             :                 } else {
   11128           0 :                         r->architecture = NULL;
   11129             :                 }
   11130           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
   11131           0 :                 if (_ptr_driver_path) {
   11132           0 :                         NDR_PULL_ALLOC(ndr, r->driver_path);
   11133             :                 } else {
   11134           0 :                         r->driver_path = NULL;
   11135             :                 }
   11136           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
   11137           0 :                 if (_ptr_data_file) {
   11138           0 :                         NDR_PULL_ALLOC(ndr, r->data_file);
   11139             :                 } else {
   11140           0 :                         r->data_file = NULL;
   11141             :                 }
   11142           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
   11143           0 :                 if (_ptr_config_file) {
   11144           0 :                         NDR_PULL_ALLOC(ndr, r->config_file);
   11145             :                 } else {
   11146           0 :                         r->config_file = NULL;
   11147             :                 }
   11148           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
   11149           0 :                 if (_ptr_help_file) {
   11150           0 :                         NDR_PULL_ALLOC(ndr, r->help_file);
   11151             :                 } else {
   11152           0 :                         r->help_file = NULL;
   11153             :                 }
   11154           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
   11155           0 :                 if (_ptr_monitor_name) {
   11156           0 :                         NDR_PULL_ALLOC(ndr, r->monitor_name);
   11157             :                 } else {
   11158           0 :                         r->monitor_name = NULL;
   11159             :                 }
   11160           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
   11161           0 :                 if (_ptr_default_datatype) {
   11162           0 :                         NDR_PULL_ALLOC(ndr, r->default_datatype);
   11163             :                 } else {
   11164           0 :                         r->default_datatype = NULL;
   11165             :                 }
   11166           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
   11167           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
   11168           0 :                 if (_ptr_dependent_files) {
   11169           0 :                         NDR_PULL_ALLOC(ndr, r->dependent_files);
   11170             :                 } else {
   11171           0 :                         r->dependent_files = NULL;
   11172             :                 }
   11173           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
   11174           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
   11175           0 :                 if (_ptr_previous_names) {
   11176           0 :                         NDR_PULL_ALLOC(ndr, r->previous_names);
   11177             :                 } else {
   11178           0 :                         r->previous_names = NULL;
   11179             :                 }
   11180           0 :                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
   11181           0 :                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
   11182           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
   11183           0 :                 if (_ptr_manufacturer_name) {
   11184           0 :                         NDR_PULL_ALLOC(ndr, r->manufacturer_name);
   11185             :                 } else {
   11186           0 :                         r->manufacturer_name = NULL;
   11187             :                 }
   11188           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
   11189           0 :                 if (_ptr_manufacturer_url) {
   11190           0 :                         NDR_PULL_ALLOC(ndr, r->manufacturer_url);
   11191             :                 } else {
   11192           0 :                         r->manufacturer_url = NULL;
   11193             :                 }
   11194           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
   11195           0 :                 if (_ptr_hardware_id) {
   11196           0 :                         NDR_PULL_ALLOC(ndr, r->hardware_id);
   11197             :                 } else {
   11198           0 :                         r->hardware_id = NULL;
   11199             :                 }
   11200           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
   11201           0 :                 if (_ptr_provider) {
   11202           0 :                         NDR_PULL_ALLOC(ndr, r->provider);
   11203             :                 } else {
   11204           0 :                         r->provider = NULL;
   11205             :                 }
   11206           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
   11207           0 :                 if (_ptr_print_processor) {
   11208           0 :                         NDR_PULL_ALLOC(ndr, r->print_processor);
   11209             :                 } else {
   11210           0 :                         r->print_processor = NULL;
   11211             :                 }
   11212           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_vendor_setup));
   11213           0 :                 if (_ptr_vendor_setup) {
   11214           0 :                         NDR_PULL_ALLOC(ndr, r->vendor_setup);
   11215             :                 } else {
   11216           0 :                         r->vendor_setup = NULL;
   11217             :                 }
   11218           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_color_profiles));
   11219           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_color_profiles));
   11220           0 :                 if (_ptr_color_profiles) {
   11221           0 :                         NDR_PULL_ALLOC(ndr, r->color_profiles);
   11222             :                 } else {
   11223           0 :                         r->color_profiles = NULL;
   11224             :                 }
   11225           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_inf_path));
   11226           0 :                 if (_ptr_inf_path) {
   11227           0 :                         NDR_PULL_ALLOC(ndr, r->inf_path);
   11228             :                 } else {
   11229           0 :                         r->inf_path = NULL;
   11230             :                 }
   11231           0 :                 NDR_CHECK(ndr_pull_spoolss_DriverAttributes(ndr, NDR_SCALARS, &r->printer_driver_attributes));
   11232           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_core_driver_dependencies));
   11233           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_core_driver_dependencies));
   11234           0 :                 if (_ptr_core_driver_dependencies) {
   11235           0 :                         NDR_PULL_ALLOC(ndr, r->core_driver_dependencies);
   11236             :                 } else {
   11237           0 :                         r->core_driver_dependencies = NULL;
   11238             :                 }
   11239           0 :                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_date));
   11240           0 :                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_version));
   11241           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
   11242             :         }
   11243           0 :         if (ndr_flags & NDR_BUFFERS) {
   11244           0 :                 if (r->driver_name) {
   11245           0 :                         _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
   11246           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
   11247           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
   11248           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
   11249           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->driver_name, &size_driver_name_1));
   11250           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->driver_name, &length_driver_name_1));
   11251           0 :                         if (length_driver_name_1 > size_driver_name_1) {
   11252           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_driver_name_1, length_driver_name_1);
   11253             :                         }
   11254           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_driver_name_1, sizeof(uint16_t)));
   11255           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, length_driver_name_1, sizeof(uint16_t), CH_UTF16));
   11256           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
   11257             :                 }
   11258           0 :                 if (r->architecture) {
   11259           0 :                         _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
   11260           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
   11261           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
   11262           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
   11263           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->architecture, &size_architecture_1));
   11264           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->architecture, &length_architecture_1));
   11265           0 :                         if (length_architecture_1 > size_architecture_1) {
   11266           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_architecture_1, length_architecture_1);
   11267             :                         }
   11268           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_architecture_1, sizeof(uint16_t)));
   11269           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, length_architecture_1, sizeof(uint16_t), CH_UTF16));
   11270           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
   11271             :                 }
   11272           0 :                 if (r->driver_path) {
   11273           0 :                         _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
   11274           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
   11275           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
   11276           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
   11277           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->driver_path, &size_driver_path_1));
   11278           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->driver_path, &length_driver_path_1));
   11279           0 :                         if (length_driver_path_1 > size_driver_path_1) {
   11280           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_driver_path_1, length_driver_path_1);
   11281             :                         }
   11282           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_driver_path_1, sizeof(uint16_t)));
   11283           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, length_driver_path_1, sizeof(uint16_t), CH_UTF16));
   11284           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
   11285             :                 }
   11286           0 :                 if (r->data_file) {
   11287           0 :                         _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
   11288           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
   11289           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
   11290           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
   11291           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->data_file, &size_data_file_1));
   11292           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->data_file, &length_data_file_1));
   11293           0 :                         if (length_data_file_1 > size_data_file_1) {
   11294           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_data_file_1, length_data_file_1);
   11295             :                         }
   11296           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_data_file_1, sizeof(uint16_t)));
   11297           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, length_data_file_1, sizeof(uint16_t), CH_UTF16));
   11298           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
   11299             :                 }
   11300           0 :                 if (r->config_file) {
   11301           0 :                         _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
   11302           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
   11303           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
   11304           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
   11305           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->config_file, &size_config_file_1));
   11306           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->config_file, &length_config_file_1));
   11307           0 :                         if (length_config_file_1 > size_config_file_1) {
   11308           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_config_file_1, length_config_file_1);
   11309             :                         }
   11310           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_config_file_1, sizeof(uint16_t)));
   11311           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, length_config_file_1, sizeof(uint16_t), CH_UTF16));
   11312           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
   11313             :                 }
   11314           0 :                 if (r->help_file) {
   11315           0 :                         _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
   11316           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
   11317           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
   11318           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
   11319           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->help_file, &size_help_file_1));
   11320           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->help_file, &length_help_file_1));
   11321           0 :                         if (length_help_file_1 > size_help_file_1) {
   11322           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_help_file_1, length_help_file_1);
   11323             :                         }
   11324           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_help_file_1, sizeof(uint16_t)));
   11325           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, length_help_file_1, sizeof(uint16_t), CH_UTF16));
   11326           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
   11327             :                 }
   11328           0 :                 if (r->monitor_name) {
   11329           0 :                         _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
   11330           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
   11331           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
   11332           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
   11333           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->monitor_name, &size_monitor_name_1));
   11334           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->monitor_name, &length_monitor_name_1));
   11335           0 :                         if (length_monitor_name_1 > size_monitor_name_1) {
   11336           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_monitor_name_1, length_monitor_name_1);
   11337             :                         }
   11338           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_monitor_name_1, sizeof(uint16_t)));
   11339           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, length_monitor_name_1, sizeof(uint16_t), CH_UTF16));
   11340           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
   11341             :                 }
   11342           0 :                 if (r->default_datatype) {
   11343           0 :                         _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
   11344           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
   11345           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
   11346           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
   11347           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->default_datatype, &size_default_datatype_1));
   11348           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->default_datatype, &length_default_datatype_1));
   11349           0 :                         if (length_default_datatype_1 > size_default_datatype_1) {
   11350           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_default_datatype_1, length_default_datatype_1);
   11351             :                         }
   11352           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_default_datatype_1, sizeof(uint16_t)));
   11353           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, length_default_datatype_1, sizeof(uint16_t), CH_UTF16));
   11354           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
   11355             :                 }
   11356           0 :                 if (r->dependent_files) {
   11357           0 :                         _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
   11358           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
   11359           0 :                         NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
   11360           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
   11361             :                 }
   11362           0 :                 if (r->previous_names) {
   11363           0 :                         _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
   11364           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
   11365           0 :                         NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
   11366           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
   11367             :                 }
   11368           0 :                 if (r->manufacturer_name) {
   11369           0 :                         _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
   11370           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
   11371           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_name));
   11372           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_name));
   11373           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->manufacturer_name, &size_manufacturer_name_1));
   11374           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->manufacturer_name, &length_manufacturer_name_1));
   11375           0 :                         if (length_manufacturer_name_1 > size_manufacturer_name_1) {
   11376           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_manufacturer_name_1, length_manufacturer_name_1);
   11377             :                         }
   11378           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_manufacturer_name_1, sizeof(uint16_t)));
   11379           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_name, length_manufacturer_name_1, sizeof(uint16_t), CH_UTF16));
   11380           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
   11381             :                 }
   11382           0 :                 if (r->manufacturer_url) {
   11383           0 :                         _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
   11384           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
   11385           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_url));
   11386           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_url));
   11387           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->manufacturer_url, &size_manufacturer_url_1));
   11388           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->manufacturer_url, &length_manufacturer_url_1));
   11389           0 :                         if (length_manufacturer_url_1 > size_manufacturer_url_1) {
   11390           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_manufacturer_url_1, length_manufacturer_url_1);
   11391             :                         }
   11392           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_manufacturer_url_1, sizeof(uint16_t)));
   11393           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_url, length_manufacturer_url_1, sizeof(uint16_t), CH_UTF16));
   11394           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
   11395             :                 }
   11396           0 :                 if (r->hardware_id) {
   11397           0 :                         _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
   11398           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
   11399           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->hardware_id));
   11400           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->hardware_id));
   11401           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->hardware_id, &size_hardware_id_1));
   11402           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->hardware_id, &length_hardware_id_1));
   11403           0 :                         if (length_hardware_id_1 > size_hardware_id_1) {
   11404           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_hardware_id_1, length_hardware_id_1);
   11405             :                         }
   11406           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_hardware_id_1, sizeof(uint16_t)));
   11407           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_id, length_hardware_id_1, sizeof(uint16_t), CH_UTF16));
   11408           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
   11409             :                 }
   11410           0 :                 if (r->provider) {
   11411           0 :                         _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
   11412           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
   11413           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->provider));
   11414           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->provider));
   11415           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->provider, &size_provider_1));
   11416           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->provider, &length_provider_1));
   11417           0 :                         if (length_provider_1 > size_provider_1) {
   11418           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_provider_1, length_provider_1);
   11419             :                         }
   11420           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_provider_1, sizeof(uint16_t)));
   11421           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->provider, length_provider_1, sizeof(uint16_t), CH_UTF16));
   11422           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
   11423             :                 }
   11424           0 :                 if (r->print_processor) {
   11425           0 :                         _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
   11426           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
   11427           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->print_processor));
   11428           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->print_processor));
   11429           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->print_processor, &size_print_processor_1));
   11430           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->print_processor, &length_print_processor_1));
   11431           0 :                         if (length_print_processor_1 > size_print_processor_1) {
   11432           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_print_processor_1, length_print_processor_1);
   11433             :                         }
   11434           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_print_processor_1, sizeof(uint16_t)));
   11435           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->print_processor, length_print_processor_1, sizeof(uint16_t), CH_UTF16));
   11436           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
   11437             :                 }
   11438           0 :                 if (r->vendor_setup) {
   11439           0 :                         _mem_save_vendor_setup_0 = NDR_PULL_GET_MEM_CTX(ndr);
   11440           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->vendor_setup, 0);
   11441           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->vendor_setup));
   11442           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->vendor_setup));
   11443           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->vendor_setup, &size_vendor_setup_1));
   11444           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->vendor_setup, &length_vendor_setup_1));
   11445           0 :                         if (length_vendor_setup_1 > size_vendor_setup_1) {
   11446           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_vendor_setup_1, length_vendor_setup_1);
   11447             :                         }
   11448           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_vendor_setup_1, sizeof(uint16_t)));
   11449           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->vendor_setup, length_vendor_setup_1, sizeof(uint16_t), CH_UTF16));
   11450           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vendor_setup_0, 0);
   11451             :                 }
   11452           0 :                 if (r->color_profiles) {
   11453           0 :                         _mem_save_color_profiles_0 = NDR_PULL_GET_MEM_CTX(ndr);
   11454           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->color_profiles, 0);
   11455           0 :                         NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->color_profiles));
   11456           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_color_profiles_0, 0);
   11457             :                 }
   11458           0 :                 if (r->inf_path) {
   11459           0 :                         _mem_save_inf_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
   11460           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->inf_path, 0);
   11461           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->inf_path));
   11462           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->inf_path));
   11463           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->inf_path, &size_inf_path_1));
   11464           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->inf_path, &length_inf_path_1));
   11465           0 :                         if (length_inf_path_1 > size_inf_path_1) {
   11466           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_inf_path_1, length_inf_path_1);
   11467             :                         }
   11468           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_inf_path_1, sizeof(uint16_t)));
   11469           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->inf_path, length_inf_path_1, sizeof(uint16_t), CH_UTF16));
   11470           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_inf_path_0, 0);
   11471             :                 }
   11472           0 :                 if (r->core_driver_dependencies) {
   11473           0 :                         _mem_save_core_driver_dependencies_0 = NDR_PULL_GET_MEM_CTX(ndr);
   11474           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->core_driver_dependencies, 0);
   11475           0 :                         NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->core_driver_dependencies));
   11476           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_core_driver_dependencies_0, 0);
   11477             :                 }
   11478             :         }
   11479           0 :         return NDR_ERR_SUCCESS;
   11480             : }
   11481             : 
   11482           0 : _PUBLIC_ void ndr_print_spoolss_AddDriverInfo8(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo8 *r)
   11483             : {
   11484           0 :         ndr_print_struct(ndr, name, "spoolss_AddDriverInfo8");
   11485           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   11486           0 :         ndr->depth++;
   11487           0 :         ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
   11488           0 :         ndr_print_ptr(ndr, "driver_name", r->driver_name);
   11489           0 :         ndr->depth++;
   11490           0 :         if (r->driver_name) {
   11491           0 :                 ndr_print_string(ndr, "driver_name", r->driver_name);
   11492             :         }
   11493           0 :         ndr->depth--;
   11494           0 :         ndr_print_ptr(ndr, "architecture", r->architecture);
   11495           0 :         ndr->depth++;
   11496           0 :         if (r->architecture) {
   11497           0 :                 ndr_print_string(ndr, "architecture", r->architecture);
   11498             :         }
   11499           0 :         ndr->depth--;
   11500           0 :         ndr_print_ptr(ndr, "driver_path", r->driver_path);
   11501           0 :         ndr->depth++;
   11502           0 :         if (r->driver_path) {
   11503           0 :                 ndr_print_string(ndr, "driver_path", r->driver_path);
   11504             :         }
   11505           0 :         ndr->depth--;
   11506           0 :         ndr_print_ptr(ndr, "data_file", r->data_file);
   11507           0 :         ndr->depth++;
   11508           0 :         if (r->data_file) {
   11509           0 :                 ndr_print_string(ndr, "data_file", r->data_file);
   11510             :         }
   11511           0 :         ndr->depth--;
   11512           0 :         ndr_print_ptr(ndr, "config_file", r->config_file);
   11513           0 :         ndr->depth++;
   11514           0 :         if (r->config_file) {
   11515           0 :                 ndr_print_string(ndr, "config_file", r->config_file);
   11516             :         }
   11517           0 :         ndr->depth--;
   11518           0 :         ndr_print_ptr(ndr, "help_file", r->help_file);
   11519           0 :         ndr->depth++;
   11520           0 :         if (r->help_file) {
   11521           0 :                 ndr_print_string(ndr, "help_file", r->help_file);
   11522             :         }
   11523           0 :         ndr->depth--;
   11524           0 :         ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
   11525           0 :         ndr->depth++;
   11526           0 :         if (r->monitor_name) {
   11527           0 :                 ndr_print_string(ndr, "monitor_name", r->monitor_name);
   11528             :         }
   11529           0 :         ndr->depth--;
   11530           0 :         ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
   11531           0 :         ndr->depth++;
   11532           0 :         if (r->default_datatype) {
   11533           0 :                 ndr_print_string(ndr, "default_datatype", r->default_datatype);
   11534             :         }
   11535           0 :         ndr->depth--;
   11536           0 :         ndr_print_uint32(ndr, "_ndr_size_dependent_files", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?((ndr_size_spoolss_StringArray(r->dependent_files, ndr->flags) - 4) / 2):r->_ndr_size_dependent_files);
   11537           0 :         ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
   11538           0 :         ndr->depth++;
   11539           0 :         if (r->dependent_files) {
   11540           0 :                 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
   11541             :         }
   11542           0 :         ndr->depth--;
   11543           0 :         ndr_print_uint32(ndr, "_ndr_size_previous_names", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?((ndr_size_spoolss_StringArray(r->previous_names, ndr->flags) - 4) / 2):r->_ndr_size_previous_names);
   11544           0 :         ndr_print_ptr(ndr, "previous_names", r->previous_names);
   11545           0 :         ndr->depth++;
   11546           0 :         if (r->previous_names) {
   11547           0 :                 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
   11548             :         }
   11549           0 :         ndr->depth--;
   11550           0 :         ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
   11551           0 :         ndr_print_hyper(ndr, "driver_version", r->driver_version);
   11552           0 :         ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
   11553           0 :         ndr->depth++;
   11554           0 :         if (r->manufacturer_name) {
   11555           0 :                 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
   11556             :         }
   11557           0 :         ndr->depth--;
   11558           0 :         ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
   11559           0 :         ndr->depth++;
   11560           0 :         if (r->manufacturer_url) {
   11561           0 :                 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
   11562             :         }
   11563           0 :         ndr->depth--;
   11564           0 :         ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
   11565           0 :         ndr->depth++;
   11566           0 :         if (r->hardware_id) {
   11567           0 :                 ndr_print_string(ndr, "hardware_id", r->hardware_id);
   11568             :         }
   11569           0 :         ndr->depth--;
   11570           0 :         ndr_print_ptr(ndr, "provider", r->provider);
   11571           0 :         ndr->depth++;
   11572           0 :         if (r->provider) {
   11573           0 :                 ndr_print_string(ndr, "provider", r->provider);
   11574             :         }
   11575           0 :         ndr->depth--;
   11576           0 :         ndr_print_ptr(ndr, "print_processor", r->print_processor);
   11577           0 :         ndr->depth++;
   11578           0 :         if (r->print_processor) {
   11579           0 :                 ndr_print_string(ndr, "print_processor", r->print_processor);
   11580             :         }
   11581           0 :         ndr->depth--;
   11582           0 :         ndr_print_ptr(ndr, "vendor_setup", r->vendor_setup);
   11583           0 :         ndr->depth++;
   11584           0 :         if (r->vendor_setup) {
   11585           0 :                 ndr_print_string(ndr, "vendor_setup", r->vendor_setup);
   11586             :         }
   11587           0 :         ndr->depth--;
   11588           0 :         ndr_print_uint32(ndr, "_ndr_size_color_profiles", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?((ndr_size_spoolss_StringArray(r->color_profiles, ndr->flags) - 4) / 2):r->_ndr_size_color_profiles);
   11589           0 :         ndr_print_ptr(ndr, "color_profiles", r->color_profiles);
   11590           0 :         ndr->depth++;
   11591           0 :         if (r->color_profiles) {
   11592           0 :                 ndr_print_spoolss_StringArray(ndr, "color_profiles", r->color_profiles);
   11593             :         }
   11594           0 :         ndr->depth--;
   11595           0 :         ndr_print_ptr(ndr, "inf_path", r->inf_path);
   11596           0 :         ndr->depth++;
   11597           0 :         if (r->inf_path) {
   11598           0 :                 ndr_print_string(ndr, "inf_path", r->inf_path);
   11599             :         }
   11600           0 :         ndr->depth--;
   11601           0 :         ndr_print_spoolss_DriverAttributes(ndr, "printer_driver_attributes", r->printer_driver_attributes);
   11602           0 :         ndr_print_uint32(ndr, "_ndr_size_core_driver_dependencies", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?((ndr_size_spoolss_StringArray(r->core_driver_dependencies, ndr->flags) - 4) / 2):r->_ndr_size_core_driver_dependencies);
   11603           0 :         ndr_print_ptr(ndr, "core_driver_dependencies", r->core_driver_dependencies);
   11604           0 :         ndr->depth++;
   11605           0 :         if (r->core_driver_dependencies) {
   11606           0 :                 ndr_print_spoolss_StringArray(ndr, "core_driver_dependencies", r->core_driver_dependencies);
   11607             :         }
   11608           0 :         ndr->depth--;
   11609           0 :         ndr_print_NTTIME(ndr, "min_inbox_driver_ver_date", r->min_inbox_driver_ver_date);
   11610           0 :         ndr_print_hyper(ndr, "min_inbox_driver_ver_version", r->min_inbox_driver_ver_version);
   11611           0 :         ndr->depth--;
   11612             : }
   11613             : 
   11614           0 : static enum ndr_err_code ndr_push_spoolss_AddDriverInfo(struct ndr_push *ndr, ndr_flags_type ndr_flags, const union spoolss_AddDriverInfo *r)
   11615             : {
   11616           0 :         uint32_t level;
   11617           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   11618           0 :         if (ndr_flags & NDR_SCALARS) {
   11619             :                 /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
   11620           0 :                 NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
   11621           0 :                 NDR_CHECK(ndr_push_union_align(ndr, 5));
   11622           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
   11623             :                 /* ms_union is always aligned to the largest union arm*/
   11624           0 :                 NDR_CHECK(ndr_push_align(ndr, 5));
   11625           0 :                 switch (level) {
   11626           0 :                         case 1: {
   11627           0 :                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
   11628           0 :                         break; }
   11629             : 
   11630           0 :                         case 2: {
   11631           0 :                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
   11632           0 :                         break; }
   11633             : 
   11634           0 :                         case 3: {
   11635           0 :                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
   11636           0 :                         break; }
   11637             : 
   11638           0 :                         case 4: {
   11639           0 :                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
   11640           0 :                         break; }
   11641             : 
   11642           0 :                         case 6: {
   11643           0 :                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info6));
   11644           0 :                         break; }
   11645             : 
   11646           0 :                         case 8: {
   11647           0 :                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info8));
   11648           0 :                         break; }
   11649             : 
   11650           0 :                         default:
   11651           0 :                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32, level);
   11652             :                 }
   11653             :         }
   11654           0 :         if (ndr_flags & NDR_BUFFERS) {
   11655           0 :                 if (!(ndr_flags & NDR_SCALARS)) {
   11656             :                         /* We didn't get it above, and the token is not needed after this. */
   11657           0 :                         NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
   11658             :                 }
   11659           0 :                 switch (level) {
   11660           0 :                         case 1:
   11661           0 :                                 if (r->info1) {
   11662           0 :                                         NDR_CHECK(ndr_push_spoolss_AddDriverInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
   11663             :                                 }
   11664           0 :                         break;
   11665             : 
   11666           0 :                         case 2:
   11667           0 :                                 if (r->info2) {
   11668           0 :                                         NDR_CHECK(ndr_push_spoolss_AddDriverInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
   11669             :                                 }
   11670           0 :                         break;
   11671             : 
   11672           0 :                         case 3:
   11673           0 :                                 if (r->info3) {
   11674           0 :                                         NDR_CHECK(ndr_push_spoolss_AddDriverInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->info3));
   11675             :                                 }
   11676           0 :                         break;
   11677             : 
   11678           0 :                         case 4:
   11679           0 :                                 if (r->info4) {
   11680           0 :                                         NDR_CHECK(ndr_push_spoolss_AddDriverInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
   11681             :                                 }
   11682           0 :                         break;
   11683             : 
   11684           0 :                         case 6:
   11685           0 :                                 if (r->info6) {
   11686           0 :                                         NDR_CHECK(ndr_push_spoolss_AddDriverInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->info6));
   11687             :                                 }
   11688           0 :                         break;
   11689             : 
   11690           0 :                         case 8:
   11691           0 :                                 if (r->info8) {
   11692           0 :                                         NDR_CHECK(ndr_push_spoolss_AddDriverInfo8(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
   11693             :                                 }
   11694           0 :                         break;
   11695             : 
   11696           0 :                         default:
   11697           0 :                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32, level);
   11698             :                 }
   11699             :         }
   11700           0 :         return NDR_ERR_SUCCESS;
   11701             : }
   11702             : 
   11703           8 : static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo(struct ndr_pull *ndr, ndr_flags_type ndr_flags, union spoolss_AddDriverInfo *r)
   11704             : {
   11705           8 :         uint32_t level;
   11706           8 :         uint32_t _level;
   11707           8 :         TALLOC_CTX *_mem_save_info1_0 = NULL;
   11708           8 :         uint32_t _ptr_info1;
   11709           8 :         TALLOC_CTX *_mem_save_info2_0 = NULL;
   11710           8 :         uint32_t _ptr_info2;
   11711           8 :         TALLOC_CTX *_mem_save_info3_0 = NULL;
   11712           8 :         uint32_t _ptr_info3;
   11713           8 :         TALLOC_CTX *_mem_save_info4_0 = NULL;
   11714           8 :         uint32_t _ptr_info4;
   11715           8 :         TALLOC_CTX *_mem_save_info6_0 = NULL;
   11716           8 :         uint32_t _ptr_info6;
   11717           8 :         TALLOC_CTX *_mem_save_info8_0 = NULL;
   11718           8 :         uint32_t _ptr_info8;
   11719           8 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   11720           8 :         if (ndr_flags & NDR_SCALARS) {
   11721             :                 /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
   11722           4 :                 NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
   11723           4 :                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
   11724           4 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
   11725           4 :                 if (_level != level) {
   11726           0 :                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32" for r at %s", (uint32_t)_level, __location__);
   11727             :                 }
   11728             :                 /* ms_union is always aligned to the largest union arm*/
   11729           4 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
   11730           4 :                 switch (level) {
   11731           0 :                         case 1: {
   11732           0 :                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
   11733           0 :                                 if (_ptr_info1) {
   11734           0 :                                         NDR_PULL_ALLOC(ndr, r->info1);
   11735             :                                 } else {
   11736           0 :                                         r->info1 = NULL;
   11737             :                                 }
   11738           0 :                         break; }
   11739             : 
   11740           0 :                         case 2: {
   11741           0 :                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
   11742           0 :                                 if (_ptr_info2) {
   11743           0 :                                         NDR_PULL_ALLOC(ndr, r->info2);
   11744             :                                 } else {
   11745           0 :                                         r->info2 = NULL;
   11746             :                                 }
   11747           0 :                         break; }
   11748             : 
   11749           0 :                         case 3: {
   11750           0 :                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
   11751           0 :                                 if (_ptr_info3) {
   11752           0 :                                         NDR_PULL_ALLOC(ndr, r->info3);
   11753             :                                 } else {
   11754           0 :                                         r->info3 = NULL;
   11755             :                                 }
   11756           0 :                         break; }
   11757             : 
   11758           0 :                         case 4: {
   11759           0 :                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
   11760           0 :                                 if (_ptr_info4) {
   11761           0 :                                         NDR_PULL_ALLOC(ndr, r->info4);
   11762             :                                 } else {
   11763           0 :                                         r->info4 = NULL;
   11764             :                                 }
   11765           0 :                         break; }
   11766             : 
   11767           4 :                         case 6: {
   11768           4 :                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info6));
   11769           4 :                                 if (_ptr_info6) {
   11770           4 :                                         NDR_PULL_ALLOC(ndr, r->info6);
   11771             :                                 } else {
   11772           0 :                                         r->info6 = NULL;
   11773             :                                 }
   11774           0 :                         break; }
   11775             : 
   11776           0 :                         case 8: {
   11777           0 :                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info8));
   11778           0 :                                 if (_ptr_info8) {
   11779           0 :                                         NDR_PULL_ALLOC(ndr, r->info8);
   11780             :                                 } else {
   11781           0 :                                         r->info8 = NULL;
   11782             :                                 }
   11783           0 :                         break; }
   11784             : 
   11785           0 :                         default:
   11786           0 :                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32" at %s", level, __location__);
   11787             :                 }
   11788             :         }
   11789           8 :         if (ndr_flags & NDR_BUFFERS) {
   11790           4 :                 if (!(ndr_flags & NDR_SCALARS)) {
   11791             :                         /* We didn't get it above, and the token is not needed after this. */
   11792           4 :                         NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
   11793             :                 }
   11794           4 :                 switch (level) {
   11795           0 :                         case 1:
   11796           0 :                                 if (r->info1) {
   11797           0 :                                         _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
   11798           0 :                                         NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
   11799           0 :                                         NDR_CHECK(ndr_pull_spoolss_AddDriverInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
   11800           0 :                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
   11801             :                                 }
   11802           0 :                         break;
   11803             : 
   11804           0 :                         case 2:
   11805           0 :                                 if (r->info2) {
   11806           0 :                                         _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
   11807           0 :                                         NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
   11808           0 :                                         NDR_CHECK(ndr_pull_spoolss_AddDriverInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
   11809           0 :                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
   11810             :                                 }
   11811           0 :                         break;
   11812             : 
   11813           0 :                         case 3:
   11814           0 :                                 if (r->info3) {
   11815           0 :                                         _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
   11816           0 :                                         NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
   11817           0 :                                         NDR_CHECK(ndr_pull_spoolss_AddDriverInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->info3));
   11818           0 :                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
   11819             :                                 }
   11820           0 :                         break;
   11821             : 
   11822           0 :                         case 4:
   11823           0 :                                 if (r->info4) {
   11824           0 :                                         _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
   11825           0 :                                         NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
   11826           0 :                                         NDR_CHECK(ndr_pull_spoolss_AddDriverInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
   11827           0 :                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
   11828             :                                 }
   11829           0 :                         break;
   11830             : 
   11831           4 :                         case 6:
   11832           4 :                                 if (r->info6) {
   11833           4 :                                         _mem_save_info6_0 = NDR_PULL_GET_MEM_CTX(ndr);
   11834           4 :                                         NDR_PULL_SET_MEM_CTX(ndr, r->info6, 0);
   11835           4 :                                         NDR_CHECK(ndr_pull_spoolss_AddDriverInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->info6));
   11836           4 :                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info6_0, 0);
   11837             :                                 }
   11838           0 :                         break;
   11839             : 
   11840           0 :                         case 8:
   11841           0 :                                 if (r->info8) {
   11842           0 :                                         _mem_save_info8_0 = NDR_PULL_GET_MEM_CTX(ndr);
   11843           0 :                                         NDR_PULL_SET_MEM_CTX(ndr, r->info8, 0);
   11844           0 :                                         NDR_CHECK(ndr_pull_spoolss_AddDriverInfo8(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
   11845           0 :                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info8_0, 0);
   11846             :                                 }
   11847           0 :                         break;
   11848             : 
   11849           0 :                         default:
   11850           0 :                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32" at %s", level, __location__);
   11851             :                 }
   11852             :         }
   11853           0 :         return NDR_ERR_SUCCESS;
   11854             : }
   11855             : 
   11856           4 : _PUBLIC_ void ndr_print_spoolss_AddDriverInfo(struct ndr_print *ndr, const char *name, const union spoolss_AddDriverInfo *r)
   11857             : {
   11858           4 :         uint32_t level;
   11859           4 :         level = ndr_print_steal_switch_value(ndr, r);
   11860           4 :         ndr_print_union(ndr, name, level, "spoolss_AddDriverInfo");
   11861           4 :         switch (level) {
   11862           0 :                 case 1:
   11863           0 :                         ndr_print_ptr(ndr, "info1", r->info1);
   11864           0 :                         ndr->depth++;
   11865           0 :                         if (r->info1) {
   11866           0 :                                 ndr_print_spoolss_AddDriverInfo1(ndr, "info1", r->info1);
   11867             :                         }
   11868           0 :                         ndr->depth--;
   11869           0 :                 break;
   11870             : 
   11871           0 :                 case 2:
   11872           0 :                         ndr_print_ptr(ndr, "info2", r->info2);
   11873           0 :                         ndr->depth++;
   11874           0 :                         if (r->info2) {
   11875           0 :                                 ndr_print_spoolss_AddDriverInfo2(ndr, "info2", r->info2);
   11876             :                         }
   11877           0 :                         ndr->depth--;
   11878           0 :                 break;
   11879             : 
   11880           0 :                 case 3:
   11881           0 :                         ndr_print_ptr(ndr, "info3", r->info3);
   11882           0 :                         ndr->depth++;
   11883           0 :                         if (r->info3) {
   11884           0 :                                 ndr_print_spoolss_AddDriverInfo3(ndr, "info3", r->info3);
   11885             :                         }
   11886           0 :                         ndr->depth--;
   11887           0 :                 break;
   11888             : 
   11889           0 :                 case 4:
   11890           0 :                         ndr_print_ptr(ndr, "info4", r->info4);
   11891           0 :                         ndr->depth++;
   11892           0 :                         if (r->info4) {
   11893           0 :                                 ndr_print_spoolss_AddDriverInfo4(ndr, "info4", r->info4);
   11894             :                         }
   11895           0 :                         ndr->depth--;
   11896           0 :                 break;
   11897             : 
   11898           4 :                 case 6:
   11899           4 :                         ndr_print_ptr(ndr, "info6", r->info6);
   11900           4 :                         ndr->depth++;
   11901           4 :                         if (r->info6) {
   11902           4 :                                 ndr_print_spoolss_AddDriverInfo6(ndr, "info6", r->info6);
   11903             :                         }
   11904           4 :                         ndr->depth--;
   11905           4 :                 break;
   11906             : 
   11907           0 :                 case 8:
   11908           0 :                         ndr_print_ptr(ndr, "info8", r->info8);
   11909           0 :                         ndr->depth++;
   11910           0 :                         if (r->info8) {
   11911           0 :                                 ndr_print_spoolss_AddDriverInfo8(ndr, "info8", r->info8);
   11912             :                         }
   11913           0 :                         ndr->depth--;
   11914           0 :                 break;
   11915             : 
   11916           0 :                 default:
   11917           0 :                         ndr_print_bad_level(ndr, name, level);
   11918             :         }
   11919           4 : }
   11920             : 
   11921           0 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_AddDriverInfoCtr(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_AddDriverInfoCtr *r)
   11922             : {
   11923           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   11924           0 :         if (ndr_flags & NDR_SCALARS) {
   11925           0 :                 NDR_CHECK(ndr_push_align(ndr, 5));
   11926           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
   11927           0 :                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
   11928           0 :                 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr, NDR_SCALARS, &r->info));
   11929           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
   11930             :         }
   11931           0 :         if (ndr_flags & NDR_BUFFERS) {
   11932           0 :                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
   11933           0 :                 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr, NDR_BUFFERS, &r->info));
   11934             :         }
   11935           0 :         return NDR_ERR_SUCCESS;
   11936             : }
   11937             : 
   11938           4 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_AddDriverInfoCtr(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_AddDriverInfoCtr *r)
   11939             : {
   11940           4 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   11941           4 :         if (ndr_flags & NDR_SCALARS) {
   11942           4 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
   11943           4 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
   11944           4 :                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
   11945           4 :                 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr, NDR_SCALARS, &r->info));
   11946           4 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
   11947             :         }
   11948           4 :         if (ndr_flags & NDR_BUFFERS) {
   11949           4 :                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
   11950           4 :                 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr, NDR_BUFFERS, &r->info));
   11951             :         }
   11952           0 :         return NDR_ERR_SUCCESS;
   11953             : }
   11954             : 
   11955           0 : static void ndr_print_flags_spoolss_AddDriverInfoCtr(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_AddDriverInfoCtr *r)
   11956             : {
   11957           0 :         ndr_print_spoolss_AddDriverInfoCtr(ndr, name, r);
   11958           0 : }
   11959             : 
   11960           4 : _PUBLIC_ void ndr_print_spoolss_AddDriverInfoCtr(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfoCtr *r)
   11961             : {
   11962           4 :         ndr_print_struct(ndr, name, "spoolss_AddDriverInfoCtr");
   11963           4 :         if (r == NULL) { ndr_print_null(ndr); return; }
   11964           4 :         ndr->depth++;
   11965           4 :         ndr_print_uint32(ndr, "level", r->level);
   11966           4 :         ndr_print_set_switch_value(ndr, &r->info, r->level);
   11967           4 :         ndr_print_spoolss_AddDriverInfo(ndr, "info", &r->info);
   11968           4 :         ndr->depth--;
   11969             : }
   11970             : 
   11971           0 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo1(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_DriverInfo1 *r)
   11972             : {
   11973           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   11974           0 :         if (ndr_flags & NDR_SCALARS) {
   11975           0 :                 NDR_CHECK(ndr_push_align(ndr, 5));
   11976             :                 {
   11977           0 :                         libndr_flags _flags_save_string = ndr->flags;
   11978           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   11979           0 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
   11980           0 :                         ndr->flags = _flags_save_string;
   11981             :                 }
   11982           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
   11983             :         }
   11984           0 :         if (ndr_flags & NDR_BUFFERS) {
   11985             :                 {
   11986           0 :                         libndr_flags _flags_save_string = ndr->flags;
   11987           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   11988           0 :                         if (r->driver_name) {
   11989           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
   11990           0 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
   11991           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
   11992             :                         }
   11993           0 :                         ndr->flags = _flags_save_string;
   11994             :                 }
   11995             :         }
   11996           0 :         return NDR_ERR_SUCCESS;
   11997             : }
   11998             : 
   11999           0 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo1(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_DriverInfo1 *r)
   12000             : {
   12001           0 :         uint32_t _ptr_driver_name;
   12002           0 :         TALLOC_CTX *_mem_save_driver_name_0 = NULL;
   12003           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   12004           0 :         if (ndr_flags & NDR_SCALARS) {
   12005           0 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
   12006             :                 {
   12007           0 :                         libndr_flags _flags_save_string = ndr->flags;
   12008           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   12009           0 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
   12010           0 :                         if (_ptr_driver_name) {
   12011           0 :                                 NDR_PULL_ALLOC(ndr, r->driver_name);
   12012           0 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
   12013             :                         } else {
   12014           0 :                                 r->driver_name = NULL;
   12015             :                         }
   12016           0 :                         ndr->flags = _flags_save_string;
   12017             :                 }
   12018           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
   12019             :         }
   12020           0 :         if (ndr_flags & NDR_BUFFERS) {
   12021             :                 {
   12022           0 :                         libndr_flags _flags_save_string = ndr->flags;
   12023           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   12024           0 :                         if (r->driver_name) {
   12025           0 :                                 uint32_t _relative_save_offset;
   12026           0 :                                 _relative_save_offset = ndr->offset;
   12027           0 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
   12028           0 :                                 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
   12029           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
   12030           0 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
   12031           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
   12032           0 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   12033           0 :                                         ndr->relative_highest_offset = ndr->offset;
   12034             :                                 }
   12035           0 :                                 ndr->offset = _relative_save_offset;
   12036             :                         }
   12037           0 :                         ndr->flags = _flags_save_string;
   12038             :                 }
   12039             :         }
   12040           0 :         return NDR_ERR_SUCCESS;
   12041             : }
   12042             : 
   12043           0 : static void ndr_print_flags_spoolss_DriverInfo1(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_DriverInfo1 *r)
   12044             : {
   12045           0 :         ndr_print_spoolss_DriverInfo1(ndr, name, r);
   12046           0 : }
   12047             : 
   12048           0 : _PUBLIC_ void ndr_print_spoolss_DriverInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo1 *r)
   12049             : {
   12050           0 :         ndr_print_struct(ndr, name, "spoolss_DriverInfo1");
   12051           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   12052           0 :         ndr->depth++;
   12053             :         {
   12054           0 :                 libndr_flags _flags_save_string = ndr->flags;
   12055           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   12056           0 :                 ndr_print_ptr(ndr, "driver_name", r->driver_name);
   12057           0 :                 ndr->depth++;
   12058           0 :                 if (r->driver_name) {
   12059           0 :                         ndr_print_string(ndr, "driver_name", r->driver_name);
   12060             :                 }
   12061           0 :                 ndr->depth--;
   12062           0 :                 ndr->flags = _flags_save_string;
   12063             :         }
   12064           0 :         ndr->depth--;
   12065             : }
   12066             : 
   12067           0 : _PUBLIC_ size_t ndr_size_spoolss_DriverInfo1(const struct spoolss_DriverInfo1 *r, libndr_flags flags)
   12068             : {
   12069           0 :         return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo1);
   12070             : }
   12071             : 
   12072           0 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo2(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_DriverInfo2 *r)
   12073             : {
   12074           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   12075           0 :         if (ndr_flags & NDR_SCALARS) {
   12076           0 :                 NDR_CHECK(ndr_push_align(ndr, 5));
   12077           0 :                 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
   12078             :                 {
   12079           0 :                         libndr_flags _flags_save_string = ndr->flags;
   12080           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   12081           0 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
   12082           0 :                         ndr->flags = _flags_save_string;
   12083             :                 }
   12084             :                 {
   12085           0 :                         libndr_flags _flags_save_string = ndr->flags;
   12086           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   12087           0 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
   12088           0 :                         ndr->flags = _flags_save_string;
   12089             :                 }
   12090             :                 {
   12091           0 :                         libndr_flags _flags_save_string = ndr->flags;
   12092           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   12093           0 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
   12094           0 :                         ndr->flags = _flags_save_string;
   12095             :                 }
   12096             :                 {
   12097           0 :                         libndr_flags _flags_save_string = ndr->flags;
   12098           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   12099           0 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
   12100           0 :                         ndr->flags = _flags_save_string;
   12101             :                 }
   12102             :                 {
   12103           0 :                         libndr_flags _flags_save_string = ndr->flags;
   12104           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   12105           0 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
   12106           0 :                         ndr->flags = _flags_save_string;
   12107             :                 }
   12108           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
   12109             :         }
   12110           0 :         if (ndr_flags & NDR_BUFFERS) {
   12111             :                 {
   12112           0 :                         libndr_flags _flags_save_string = ndr->flags;
   12113           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   12114           0 :                         if (r->driver_name) {
   12115           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
   12116           0 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
   12117           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
   12118             :                         }
   12119           0 :                         ndr->flags = _flags_save_string;
   12120             :                 }
   12121             :                 {
   12122           0 :                         libndr_flags _flags_save_string = ndr->flags;
   12123           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   12124           0 :                         if (r->architecture) {
   12125           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->architecture));
   12126           0 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
   12127           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->architecture));
   12128             :                         }
   12129           0 :                         ndr->flags = _flags_save_string;
   12130             :                 }
   12131             :                 {
   12132           0 :                         libndr_flags _flags_save_string = ndr->flags;
   12133           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   12134           0 :                         if (r->driver_path) {
   12135           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_path));
   12136           0 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
   12137           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_path));
   12138             :                         }
   12139           0 :                         ndr->flags = _flags_save_string;
   12140             :                 }
   12141             :                 {
   12142           0 :                         libndr_flags _flags_save_string = ndr->flags;
   12143           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   12144           0 :                         if (r->data_file) {
   12145           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_file));
   12146           0 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
   12147           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_file));
   12148             :                         }
   12149           0 :                         ndr->flags = _flags_save_string;
   12150             :                 }
   12151             :                 {
   12152           0 :                         libndr_flags _flags_save_string = ndr->flags;
   12153           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   12154           0 :                         if (r->config_file) {
   12155           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->config_file));
   12156           0 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
   12157           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->config_file));
   12158             :                         }
   12159           0 :                         ndr->flags = _flags_save_string;
   12160             :                 }
   12161             :         }
   12162           0 :         return NDR_ERR_SUCCESS;
   12163             : }
   12164             : 
   12165           0 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo2(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_DriverInfo2 *r)
   12166             : {
   12167           0 :         uint32_t _ptr_driver_name;
   12168           0 :         TALLOC_CTX *_mem_save_driver_name_0 = NULL;
   12169           0 :         uint32_t _ptr_architecture;
   12170           0 :         TALLOC_CTX *_mem_save_architecture_0 = NULL;
   12171           0 :         uint32_t _ptr_driver_path;
   12172           0 :         TALLOC_CTX *_mem_save_driver_path_0 = NULL;
   12173           0 :         uint32_t _ptr_data_file;
   12174           0 :         TALLOC_CTX *_mem_save_data_file_0 = NULL;
   12175           0 :         uint32_t _ptr_config_file;
   12176           0 :         TALLOC_CTX *_mem_save_config_file_0 = NULL;
   12177           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   12178           0 :         if (ndr_flags & NDR_SCALARS) {
   12179           0 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
   12180           0 :                 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
   12181             :                 {
   12182           0 :                         libndr_flags _flags_save_string = ndr->flags;
   12183           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   12184           0 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
   12185           0 :                         if (_ptr_driver_name) {
   12186           0 :                                 NDR_PULL_ALLOC(ndr, r->driver_name);
   12187           0 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
   12188             :                         } else {
   12189           0 :                                 r->driver_name = NULL;
   12190             :                         }
   12191           0 :                         ndr->flags = _flags_save_string;
   12192             :                 }
   12193             :                 {
   12194           0 :                         libndr_flags _flags_save_string = ndr->flags;
   12195           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   12196           0 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
   12197           0 :                         if (_ptr_architecture) {
   12198           0 :                                 NDR_PULL_ALLOC(ndr, r->architecture);
   12199           0 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
   12200             :                         } else {
   12201           0 :                                 r->architecture = NULL;
   12202             :                         }
   12203           0 :                         ndr->flags = _flags_save_string;
   12204             :                 }
   12205             :                 {
   12206           0 :                         libndr_flags _flags_save_string = ndr->flags;
   12207           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   12208           0 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
   12209           0 :                         if (_ptr_driver_path) {
   12210           0 :                                 NDR_PULL_ALLOC(ndr, r->driver_path);
   12211           0 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
   12212             :                         } else {
   12213           0 :                                 r->driver_path = NULL;
   12214             :                         }
   12215           0 :                         ndr->flags = _flags_save_string;
   12216             :                 }
   12217             :                 {
   12218           0 :                         libndr_flags _flags_save_string = ndr->flags;
   12219           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   12220           0 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
   12221           0 :                         if (_ptr_data_file) {
   12222           0 :                                 NDR_PULL_ALLOC(ndr, r->data_file);
   12223           0 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
   12224             :                         } else {
   12225           0 :                                 r->data_file = NULL;
   12226             :                         }
   12227           0 :                         ndr->flags = _flags_save_string;
   12228             :                 }
   12229             :                 {
   12230           0 :                         libndr_flags _flags_save_string = ndr->flags;
   12231           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   12232           0 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
   12233           0 :                         if (_ptr_config_file) {
   12234           0 :                                 NDR_PULL_ALLOC(ndr, r->config_file);
   12235           0 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
   12236             :                         } else {
   12237           0 :                                 r->config_file = NULL;
   12238             :                         }
   12239           0 :                         ndr->flags = _flags_save_string;
   12240             :                 }
   12241           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
   12242             :         }
   12243           0 :         if (ndr_flags & NDR_BUFFERS) {
   12244             :                 {
   12245           0 :                         libndr_flags _flags_save_string = ndr->flags;
   12246           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   12247           0 :                         if (r->driver_name) {
   12248           0 :                                 uint32_t _relative_save_offset;
   12249           0 :                                 _relative_save_offset = ndr->offset;
   12250           0 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
   12251           0 :                                 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
   12252           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
   12253           0 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
   12254           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
   12255           0 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   12256           0 :                                         ndr->relative_highest_offset = ndr->offset;
   12257             :                                 }
   12258           0 :                                 ndr->offset = _relative_save_offset;
   12259             :                         }
   12260           0 :                         ndr->flags = _flags_save_string;
   12261             :                 }
   12262             :                 {
   12263           0 :                         libndr_flags _flags_save_string = ndr->flags;
   12264           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   12265           0 :                         if (r->architecture) {
   12266           0 :                                 uint32_t _relative_save_offset;
   12267           0 :                                 _relative_save_offset = ndr->offset;
   12268           0 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
   12269           0 :                                 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
   12270           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
   12271           0 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
   12272           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
   12273           0 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   12274           0 :                                         ndr->relative_highest_offset = ndr->offset;
   12275             :                                 }
   12276           0 :                                 ndr->offset = _relative_save_offset;
   12277             :                         }
   12278           0 :                         ndr->flags = _flags_save_string;
   12279             :                 }
   12280             :                 {
   12281           0 :                         libndr_flags _flags_save_string = ndr->flags;
   12282           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   12283           0 :                         if (r->driver_path) {
   12284           0 :                                 uint32_t _relative_save_offset;
   12285           0 :                                 _relative_save_offset = ndr->offset;
   12286           0 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
   12287           0 :                                 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
   12288           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
   12289           0 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
   12290           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
   12291           0 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   12292           0 :                                         ndr->relative_highest_offset = ndr->offset;
   12293             :                                 }
   12294           0 :                                 ndr->offset = _relative_save_offset;
   12295             :                         }
   12296           0 :                         ndr->flags = _flags_save_string;
   12297             :                 }
   12298             :                 {
   12299           0 :                         libndr_flags _flags_save_string = ndr->flags;
   12300           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   12301           0 :                         if (r->data_file) {
   12302           0 :                                 uint32_t _relative_save_offset;
   12303           0 :                                 _relative_save_offset = ndr->offset;
   12304           0 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
   12305           0 :                                 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
   12306           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
   12307           0 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
   12308           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
   12309           0 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   12310           0 :                                         ndr->relative_highest_offset = ndr->offset;
   12311             :                                 }
   12312           0 :                                 ndr->offset = _relative_save_offset;
   12313             :                         }
   12314           0 :                         ndr->flags = _flags_save_string;
   12315             :                 }
   12316             :                 {
   12317           0 :                         libndr_flags _flags_save_string = ndr->flags;
   12318           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   12319           0 :                         if (r->config_file) {
   12320           0 :                                 uint32_t _relative_save_offset;
   12321           0 :                                 _relative_save_offset = ndr->offset;
   12322           0 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
   12323           0 :                                 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
   12324           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
   12325           0 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
   12326           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
   12327           0 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   12328           0 :                                         ndr->relative_highest_offset = ndr->offset;
   12329             :                                 }
   12330           0 :                                 ndr->offset = _relative_save_offset;
   12331             :                         }
   12332           0 :                         ndr->flags = _flags_save_string;
   12333             :                 }
   12334             :         }
   12335           0 :         return NDR_ERR_SUCCESS;
   12336             : }
   12337             : 
   12338           0 : static void ndr_print_flags_spoolss_DriverInfo2(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_DriverInfo2 *r)
   12339             : {
   12340           0 :         ndr_print_spoolss_DriverInfo2(ndr, name, r);
   12341           0 : }
   12342             : 
   12343           0 : _PUBLIC_ void ndr_print_spoolss_DriverInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo2 *r)
   12344             : {
   12345           0 :         ndr_print_struct(ndr, name, "spoolss_DriverInfo2");
   12346           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   12347           0 :         ndr->depth++;
   12348           0 :         ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
   12349             :         {
   12350           0 :                 libndr_flags _flags_save_string = ndr->flags;
   12351           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   12352           0 :                 ndr_print_ptr(ndr, "driver_name", r->driver_name);
   12353           0 :                 ndr->depth++;
   12354           0 :                 if (r->driver_name) {
   12355           0 :                         ndr_print_string(ndr, "driver_name", r->driver_name);
   12356             :                 }
   12357           0 :                 ndr->depth--;
   12358           0 :                 ndr->flags = _flags_save_string;
   12359             :         }
   12360             :         {
   12361           0 :                 libndr_flags _flags_save_string = ndr->flags;
   12362           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   12363           0 :                 ndr_print_ptr(ndr, "architecture", r->architecture);
   12364           0 :                 ndr->depth++;
   12365           0 :                 if (r->architecture) {
   12366           0 :                         ndr_print_string(ndr, "architecture", r->architecture);
   12367             :                 }
   12368           0 :                 ndr->depth--;
   12369           0 :                 ndr->flags = _flags_save_string;
   12370             :         }
   12371             :         {
   12372           0 :                 libndr_flags _flags_save_string = ndr->flags;
   12373           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   12374           0 :                 ndr_print_ptr(ndr, "driver_path", r->driver_path);
   12375           0 :                 ndr->depth++;
   12376           0 :                 if (r->driver_path) {
   12377           0 :                         ndr_print_string(ndr, "driver_path", r->driver_path);
   12378             :                 }
   12379           0 :                 ndr->depth--;
   12380           0 :                 ndr->flags = _flags_save_string;
   12381             :         }
   12382             :         {
   12383           0 :                 libndr_flags _flags_save_string = ndr->flags;
   12384           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   12385           0 :                 ndr_print_ptr(ndr, "data_file", r->data_file);
   12386           0 :                 ndr->depth++;
   12387           0 :                 if (r->data_file) {
   12388           0 :                         ndr_print_string(ndr, "data_file", r->data_file);
   12389             :                 }
   12390           0 :                 ndr->depth--;
   12391           0 :                 ndr->flags = _flags_save_string;
   12392             :         }
   12393             :         {
   12394           0 :                 libndr_flags _flags_save_string = ndr->flags;
   12395           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   12396           0 :                 ndr_print_ptr(ndr, "config_file", r->config_file);
   12397           0 :                 ndr->depth++;
   12398           0 :                 if (r->config_file) {
   12399           0 :                         ndr_print_string(ndr, "config_file", r->config_file);
   12400             :                 }
   12401           0 :                 ndr->depth--;
   12402           0 :                 ndr->flags = _flags_save_string;
   12403             :         }
   12404           0 :         ndr->depth--;
   12405             : }
   12406             : 
   12407           0 : _PUBLIC_ size_t ndr_size_spoolss_DriverInfo2(const struct spoolss_DriverInfo2 *r, libndr_flags flags)
   12408             : {
   12409           0 :         return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo2);
   12410             : }
   12411             : 
   12412           0 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo3(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_DriverInfo3 *r)
   12413             : {
   12414           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   12415           0 :         if (ndr_flags & NDR_SCALARS) {
   12416           0 :                 NDR_CHECK(ndr_push_align(ndr, 5));
   12417           0 :                 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
   12418             :                 {
   12419           0 :                         libndr_flags _flags_save_string = ndr->flags;
   12420           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   12421           0 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
   12422           0 :                         ndr->flags = _flags_save_string;
   12423             :                 }
   12424             :                 {
   12425           0 :                         libndr_flags _flags_save_string = ndr->flags;
   12426           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   12427           0 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
   12428           0 :                         ndr->flags = _flags_save_string;
   12429             :                 }
   12430             :                 {
   12431           0 :                         libndr_flags _flags_save_string = ndr->flags;
   12432           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   12433           0 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
   12434           0 :                         ndr->flags = _flags_save_string;
   12435             :                 }
   12436             :                 {
   12437           0 :                         libndr_flags _flags_save_string = ndr->flags;
   12438           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   12439           0 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
   12440           0 :                         ndr->flags = _flags_save_string;
   12441             :                 }
   12442             :                 {
   12443           0 :                         libndr_flags _flags_save_string = ndr->flags;
   12444           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   12445           0 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
   12446           0 :                         ndr->flags = _flags_save_string;
   12447             :                 }
   12448             :                 {
   12449           0 :                         libndr_flags _flags_save_string = ndr->flags;
   12450           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   12451           0 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
   12452           0 :                         ndr->flags = _flags_save_string;
   12453             :                 }
   12454             :                 {
   12455           0 :                         libndr_flags _flags_save_string_array = ndr->flags;
   12456           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   12457           0 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
   12458           0 :                         ndr->flags = _flags_save_string_array;
   12459             :                 }
   12460             :                 {
   12461           0 :                         libndr_flags _flags_save_string = ndr->flags;
   12462           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   12463           0 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
   12464           0 :                         ndr->flags = _flags_save_string;
   12465             :                 }
   12466             :                 {
   12467           0 :                         libndr_flags _flags_save_string = ndr->flags;
   12468           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   12469           0 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
   12470           0 :                         ndr->flags = _flags_save_string;
   12471             :                 }
   12472           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
   12473             :         }
   12474           0 :         if (ndr_flags & NDR_BUFFERS) {
   12475             :                 {
   12476           0 :                         libndr_flags _flags_save_string = ndr->flags;
   12477           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   12478           0 :                         if (r->driver_name) {
   12479           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
   12480           0 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
   12481           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
   12482             :                         }
   12483           0 :                         ndr->flags = _flags_save_string;
   12484             :                 }
   12485             :                 {
   12486           0 :                         libndr_flags _flags_save_string = ndr->flags;
   12487           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   12488           0 :                         if (r->architecture) {
   12489           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->architecture));
   12490           0 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
   12491           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->architecture));
   12492             :                         }
   12493           0 :                         ndr->flags = _flags_save_string;
   12494             :                 }
   12495             :                 {
   12496           0 :                         libndr_flags _flags_save_string = ndr->flags;
   12497           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   12498           0 :                         if (r->driver_path) {
   12499           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_path));
   12500           0 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
   12501           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_path));
   12502             :                         }
   12503           0 :                         ndr->flags = _flags_save_string;
   12504             :                 }
   12505             :                 {
   12506           0 :                         libndr_flags _flags_save_string = ndr->flags;
   12507           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   12508           0 :                         if (r->data_file) {
   12509           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_file));
   12510           0 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
   12511           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_file));
   12512             :                         }
   12513           0 :                         ndr->flags = _flags_save_string;
   12514             :                 }
   12515             :                 {
   12516           0 :                         libndr_flags _flags_save_string = ndr->flags;
   12517           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   12518           0 :                         if (r->config_file) {
   12519           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->config_file));
   12520           0 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
   12521           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->config_file));
   12522             :                         }
   12523           0 :                         ndr->flags = _flags_save_string;
   12524             :                 }
   12525             :                 {
   12526           0 :                         libndr_flags _flags_save_string = ndr->flags;
   12527           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   12528           0 :                         if (r->help_file) {
   12529           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->help_file));
   12530           0 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
   12531           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->help_file));
   12532             :                         }
   12533           0 :                         ndr->flags = _flags_save_string;
   12534             :                 }
   12535             :                 {
   12536           0 :                         libndr_flags _flags_save_string_array = ndr->flags;
   12537           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   12538           0 :                         if (r->dependent_files) {
   12539           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->dependent_files));
   12540           0 :                                 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
   12541           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->dependent_files));
   12542             :                         }
   12543           0 :                         ndr->flags = _flags_save_string_array;
   12544             :                 }
   12545             :                 {
   12546           0 :                         libndr_flags _flags_save_string = ndr->flags;
   12547           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   12548           0 :                         if (r->monitor_name) {
   12549           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->monitor_name));
   12550           0 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
   12551           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->monitor_name));
   12552             :                         }
   12553           0 :                         ndr->flags = _flags_save_string;
   12554             :                 }
   12555             :                 {
   12556           0 :                         libndr_flags _flags_save_string = ndr->flags;
   12557           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   12558           0 :                         if (r->default_datatype) {
   12559           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->default_datatype));
   12560           0 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
   12561           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->default_datatype));
   12562             :                         }
   12563           0 :                         ndr->flags = _flags_save_string;
   12564             :                 }
   12565             :         }
   12566           0 :         return NDR_ERR_SUCCESS;
   12567             : }
   12568             : 
   12569           0 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo3(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_DriverInfo3 *r)
   12570             : {
   12571           0 :         uint32_t _ptr_driver_name;
   12572           0 :         TALLOC_CTX *_mem_save_driver_name_0 = NULL;
   12573           0 :         uint32_t _ptr_architecture;
   12574           0 :         TALLOC_CTX *_mem_save_architecture_0 = NULL;
   12575           0 :         uint32_t _ptr_driver_path;
   12576           0 :         TALLOC_CTX *_mem_save_driver_path_0 = NULL;
   12577           0 :         uint32_t _ptr_data_file;
   12578           0 :         TALLOC_CTX *_mem_save_data_file_0 = NULL;
   12579           0 :         uint32_t _ptr_config_file;
   12580           0 :         TALLOC_CTX *_mem_save_config_file_0 = NULL;
   12581           0 :         uint32_t _ptr_help_file;
   12582           0 :         TALLOC_CTX *_mem_save_help_file_0 = NULL;
   12583           0 :         uint32_t _ptr_dependent_files;
   12584           0 :         TALLOC_CTX *_mem_save_dependent_files_0 = NULL;
   12585           0 :         uint32_t _ptr_monitor_name;
   12586           0 :         TALLOC_CTX *_mem_save_monitor_name_0 = NULL;
   12587           0 :         uint32_t _ptr_default_datatype;
   12588           0 :         TALLOC_CTX *_mem_save_default_datatype_0 = NULL;
   12589           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   12590           0 :         if (ndr_flags & NDR_SCALARS) {
   12591           0 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
   12592           0 :                 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
   12593             :                 {
   12594           0 :                         libndr_flags _flags_save_string = ndr->flags;
   12595           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   12596           0 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
   12597           0 :                         if (_ptr_driver_name) {
   12598           0 :                                 NDR_PULL_ALLOC(ndr, r->driver_name);
   12599           0 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
   12600             :                         } else {
   12601           0 :                                 r->driver_name = NULL;
   12602             :                         }
   12603           0 :                         ndr->flags = _flags_save_string;
   12604             :                 }
   12605             :                 {
   12606           0 :                         libndr_flags _flags_save_string = ndr->flags;
   12607           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   12608           0 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
   12609           0 :                         if (_ptr_architecture) {
   12610           0 :                                 NDR_PULL_ALLOC(ndr, r->architecture);
   12611           0 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
   12612             :                         } else {
   12613           0 :                                 r->architecture = NULL;
   12614             :                         }
   12615           0 :                         ndr->flags = _flags_save_string;
   12616             :                 }
   12617             :                 {
   12618           0 :                         libndr_flags _flags_save_string = ndr->flags;
   12619           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   12620           0 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
   12621           0 :                         if (_ptr_driver_path) {
   12622           0 :                                 NDR_PULL_ALLOC(ndr, r->driver_path);
   12623           0 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
   12624             :                         } else {
   12625           0 :                                 r->driver_path = NULL;
   12626             :                         }
   12627           0 :                         ndr->flags = _flags_save_string;
   12628             :                 }
   12629             :                 {
   12630           0 :                         libndr_flags _flags_save_string = ndr->flags;
   12631           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   12632           0 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
   12633           0 :                         if (_ptr_data_file) {
   12634           0 :                                 NDR_PULL_ALLOC(ndr, r->data_file);
   12635           0 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
   12636             :                         } else {
   12637           0 :                                 r->data_file = NULL;
   12638             :                         }
   12639           0 :                         ndr->flags = _flags_save_string;
   12640             :                 }
   12641             :                 {
   12642           0 :                         libndr_flags _flags_save_string = ndr->flags;
   12643           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   12644           0 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
   12645           0 :                         if (_ptr_config_file) {
   12646           0 :                                 NDR_PULL_ALLOC(ndr, r->config_file);
   12647           0 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
   12648             :                         } else {
   12649           0 :                                 r->config_file = NULL;
   12650             :                         }
   12651           0 :                         ndr->flags = _flags_save_string;
   12652             :                 }
   12653             :                 {
   12654           0 :                         libndr_flags _flags_save_string = ndr->flags;
   12655           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   12656           0 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
   12657           0 :                         if (_ptr_help_file) {
   12658           0 :                                 NDR_PULL_ALLOC(ndr, r->help_file);
   12659           0 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
   12660             :                         } else {
   12661           0 :                                 r->help_file = NULL;
   12662             :                         }
   12663           0 :                         ndr->flags = _flags_save_string;
   12664             :                 }
   12665             :                 {
   12666           0 :                         libndr_flags _flags_save_string_array = ndr->flags;
   12667           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   12668           0 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
   12669           0 :                         if (_ptr_dependent_files) {
   12670           0 :                                 NDR_PULL_ALLOC(ndr, r->dependent_files);
   12671           0 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
   12672             :                         } else {
   12673           0 :                                 r->dependent_files = NULL;
   12674             :                         }
   12675           0 :                         ndr->flags = _flags_save_string_array;
   12676             :                 }
   12677             :                 {
   12678           0 :                         libndr_flags _flags_save_string = ndr->flags;
   12679           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   12680           0 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
   12681           0 :                         if (_ptr_monitor_name) {
   12682           0 :                                 NDR_PULL_ALLOC(ndr, r->monitor_name);
   12683           0 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
   12684             :                         } else {
   12685           0 :                                 r->monitor_name = NULL;
   12686             :                         }
   12687           0 :                         ndr->flags = _flags_save_string;
   12688             :                 }
   12689             :                 {
   12690           0 :                         libndr_flags _flags_save_string = ndr->flags;
   12691           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   12692           0 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
   12693           0 :                         if (_ptr_default_datatype) {
   12694           0 :                                 NDR_PULL_ALLOC(ndr, r->default_datatype);
   12695           0 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
   12696             :                         } else {
   12697           0 :                                 r->default_datatype = NULL;
   12698             :                         }
   12699           0 :                         ndr->flags = _flags_save_string;
   12700             :                 }
   12701           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
   12702             :         }
   12703           0 :         if (ndr_flags & NDR_BUFFERS) {
   12704             :                 {
   12705           0 :                         libndr_flags _flags_save_string = ndr->flags;
   12706           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   12707           0 :                         if (r->driver_name) {
   12708           0 :                                 uint32_t _relative_save_offset;
   12709           0 :                                 _relative_save_offset = ndr->offset;
   12710           0 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
   12711           0 :                                 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
   12712           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
   12713           0 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
   12714           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
   12715           0 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   12716           0 :                                         ndr->relative_highest_offset = ndr->offset;
   12717             :                                 }
   12718           0 :                                 ndr->offset = _relative_save_offset;
   12719             :                         }
   12720           0 :                         ndr->flags = _flags_save_string;
   12721             :                 }
   12722             :                 {
   12723           0 :                         libndr_flags _flags_save_string = ndr->flags;
   12724           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   12725           0 :                         if (r->architecture) {
   12726           0 :                                 uint32_t _relative_save_offset;
   12727           0 :                                 _relative_save_offset = ndr->offset;
   12728           0 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
   12729           0 :                                 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
   12730           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
   12731           0 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
   12732           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
   12733           0 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   12734           0 :                                         ndr->relative_highest_offset = ndr->offset;
   12735             :                                 }
   12736           0 :                                 ndr->offset = _relative_save_offset;
   12737             :                         }
   12738           0 :                         ndr->flags = _flags_save_string;
   12739             :                 }
   12740             :                 {
   12741           0 :                         libndr_flags _flags_save_string = ndr->flags;
   12742           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   12743           0 :                         if (r->driver_path) {
   12744           0 :                                 uint32_t _relative_save_offset;
   12745           0 :                                 _relative_save_offset = ndr->offset;
   12746           0 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
   12747           0 :                                 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
   12748           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
   12749           0 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
   12750           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
   12751           0 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   12752           0 :                                         ndr->relative_highest_offset = ndr->offset;
   12753             :                                 }
   12754           0 :                                 ndr->offset = _relative_save_offset;
   12755             :                         }
   12756           0 :                         ndr->flags = _flags_save_string;
   12757             :                 }
   12758             :                 {
   12759           0 :                         libndr_flags _flags_save_string = ndr->flags;
   12760           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   12761           0 :                         if (r->data_file) {
   12762           0 :                                 uint32_t _relative_save_offset;
   12763           0 :                                 _relative_save_offset = ndr->offset;
   12764           0 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
   12765           0 :                                 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
   12766           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
   12767           0 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
   12768           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
   12769           0 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   12770           0 :                                         ndr->relative_highest_offset = ndr->offset;
   12771             :                                 }
   12772           0 :                                 ndr->offset = _relative_save_offset;
   12773             :                         }
   12774           0 :                         ndr->flags = _flags_save_string;
   12775             :                 }
   12776             :                 {
   12777           0 :                         libndr_flags _flags_save_string = ndr->flags;
   12778           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   12779           0 :                         if (r->config_file) {
   12780           0 :                                 uint32_t _relative_save_offset;
   12781           0 :                                 _relative_save_offset = ndr->offset;
   12782           0 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
   12783           0 :                                 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
   12784           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
   12785           0 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
   12786           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
   12787           0 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   12788           0 :                                         ndr->relative_highest_offset = ndr->offset;
   12789             :                                 }
   12790           0 :                                 ndr->offset = _relative_save_offset;
   12791             :                         }
   12792           0 :                         ndr->flags = _flags_save_string;
   12793             :                 }
   12794             :                 {
   12795           0 :                         libndr_flags _flags_save_string = ndr->flags;
   12796           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   12797           0 :                         if (r->help_file) {
   12798           0 :                                 uint32_t _relative_save_offset;
   12799           0 :                                 _relative_save_offset = ndr->offset;
   12800           0 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
   12801           0 :                                 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
   12802           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
   12803           0 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
   12804           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
   12805           0 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   12806           0 :                                         ndr->relative_highest_offset = ndr->offset;
   12807             :                                 }
   12808           0 :                                 ndr->offset = _relative_save_offset;
   12809             :                         }
   12810           0 :                         ndr->flags = _flags_save_string;
   12811             :                 }
   12812             :                 {
   12813           0 :                         libndr_flags _flags_save_string_array = ndr->flags;
   12814           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   12815           0 :                         if (r->dependent_files) {
   12816           0 :                                 uint32_t _relative_save_offset;
   12817           0 :                                 _relative_save_offset = ndr->offset;
   12818           0 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
   12819           0 :                                 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
   12820           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
   12821           0 :                                 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
   12822           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
   12823           0 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   12824           0 :                                         ndr->relative_highest_offset = ndr->offset;
   12825             :                                 }
   12826           0 :                                 ndr->offset = _relative_save_offset;
   12827             :                         }
   12828           0 :                         ndr->flags = _flags_save_string_array;
   12829             :                 }
   12830             :                 {
   12831           0 :                         libndr_flags _flags_save_string = ndr->flags;
   12832           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   12833           0 :                         if (r->monitor_name) {
   12834           0 :                                 uint32_t _relative_save_offset;
   12835           0 :                                 _relative_save_offset = ndr->offset;
   12836           0 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
   12837           0 :                                 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
   12838           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
   12839           0 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
   12840           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
   12841           0 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   12842           0 :                                         ndr->relative_highest_offset = ndr->offset;
   12843             :                                 }
   12844           0 :                                 ndr->offset = _relative_save_offset;
   12845             :                         }
   12846           0 :                         ndr->flags = _flags_save_string;
   12847             :                 }
   12848             :                 {
   12849           0 :                         libndr_flags _flags_save_string = ndr->flags;
   12850           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   12851           0 :                         if (r->default_datatype) {
   12852           0 :                                 uint32_t _relative_save_offset;
   12853           0 :                                 _relative_save_offset = ndr->offset;
   12854           0 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
   12855           0 :                                 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
   12856           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
   12857           0 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
   12858           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
   12859           0 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   12860           0 :                                         ndr->relative_highest_offset = ndr->offset;
   12861             :                                 }
   12862           0 :                                 ndr->offset = _relative_save_offset;
   12863             :                         }
   12864           0 :                         ndr->flags = _flags_save_string;
   12865             :                 }
   12866             :         }
   12867           0 :         return NDR_ERR_SUCCESS;
   12868             : }
   12869             : 
   12870           0 : static void ndr_print_flags_spoolss_DriverInfo3(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_DriverInfo3 *r)
   12871             : {
   12872           0 :         ndr_print_spoolss_DriverInfo3(ndr, name, r);
   12873           0 : }
   12874             : 
   12875           0 : _PUBLIC_ void ndr_print_spoolss_DriverInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo3 *r)
   12876             : {
   12877           0 :         ndr_print_struct(ndr, name, "spoolss_DriverInfo3");
   12878           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   12879           0 :         ndr->depth++;
   12880           0 :         ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
   12881             :         {
   12882           0 :                 libndr_flags _flags_save_string = ndr->flags;
   12883           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   12884           0 :                 ndr_print_ptr(ndr, "driver_name", r->driver_name);
   12885           0 :                 ndr->depth++;
   12886           0 :                 if (r->driver_name) {
   12887           0 :                         ndr_print_string(ndr, "driver_name", r->driver_name);
   12888             :                 }
   12889           0 :                 ndr->depth--;
   12890           0 :                 ndr->flags = _flags_save_string;
   12891             :         }
   12892             :         {
   12893           0 :                 libndr_flags _flags_save_string = ndr->flags;
   12894           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   12895           0 :                 ndr_print_ptr(ndr, "architecture", r->architecture);
   12896           0 :                 ndr->depth++;
   12897           0 :                 if (r->architecture) {
   12898           0 :                         ndr_print_string(ndr, "architecture", r->architecture);
   12899             :                 }
   12900           0 :                 ndr->depth--;
   12901           0 :                 ndr->flags = _flags_save_string;
   12902             :         }
   12903             :         {
   12904           0 :                 libndr_flags _flags_save_string = ndr->flags;
   12905           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   12906           0 :                 ndr_print_ptr(ndr, "driver_path", r->driver_path);
   12907           0 :                 ndr->depth++;
   12908           0 :                 if (r->driver_path) {
   12909           0 :                         ndr_print_string(ndr, "driver_path", r->driver_path);
   12910             :                 }
   12911           0 :                 ndr->depth--;
   12912           0 :                 ndr->flags = _flags_save_string;
   12913             :         }
   12914             :         {
   12915           0 :                 libndr_flags _flags_save_string = ndr->flags;
   12916           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   12917           0 :                 ndr_print_ptr(ndr, "data_file", r->data_file);
   12918           0 :                 ndr->depth++;
   12919           0 :                 if (r->data_file) {
   12920           0 :                         ndr_print_string(ndr, "data_file", r->data_file);
   12921             :                 }
   12922           0 :                 ndr->depth--;
   12923           0 :                 ndr->flags = _flags_save_string;
   12924             :         }
   12925             :         {
   12926           0 :                 libndr_flags _flags_save_string = ndr->flags;
   12927           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   12928           0 :                 ndr_print_ptr(ndr, "config_file", r->config_file);
   12929           0 :                 ndr->depth++;
   12930           0 :                 if (r->config_file) {
   12931           0 :                         ndr_print_string(ndr, "config_file", r->config_file);
   12932             :                 }
   12933           0 :                 ndr->depth--;
   12934           0 :                 ndr->flags = _flags_save_string;
   12935             :         }
   12936             :         {
   12937           0 :                 libndr_flags _flags_save_string = ndr->flags;
   12938           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   12939           0 :                 ndr_print_ptr(ndr, "help_file", r->help_file);
   12940           0 :                 ndr->depth++;
   12941           0 :                 if (r->help_file) {
   12942           0 :                         ndr_print_string(ndr, "help_file", r->help_file);
   12943             :                 }
   12944           0 :                 ndr->depth--;
   12945           0 :                 ndr->flags = _flags_save_string;
   12946             :         }
   12947             :         {
   12948           0 :                 libndr_flags _flags_save_string_array = ndr->flags;
   12949           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   12950           0 :                 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
   12951           0 :                 ndr->depth++;
   12952           0 :                 if (r->dependent_files) {
   12953           0 :                         ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
   12954             :                 }
   12955           0 :                 ndr->depth--;
   12956           0 :                 ndr->flags = _flags_save_string_array;
   12957             :         }
   12958             :         {
   12959           0 :                 libndr_flags _flags_save_string = ndr->flags;
   12960           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   12961           0 :                 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
   12962           0 :                 ndr->depth++;
   12963           0 :                 if (r->monitor_name) {
   12964           0 :                         ndr_print_string(ndr, "monitor_name", r->monitor_name);
   12965             :                 }
   12966           0 :                 ndr->depth--;
   12967           0 :                 ndr->flags = _flags_save_string;
   12968             :         }
   12969             :         {
   12970           0 :                 libndr_flags _flags_save_string = ndr->flags;
   12971           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   12972           0 :                 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
   12973           0 :                 ndr->depth++;
   12974           0 :                 if (r->default_datatype) {
   12975           0 :                         ndr_print_string(ndr, "default_datatype", r->default_datatype);
   12976             :                 }
   12977           0 :                 ndr->depth--;
   12978           0 :                 ndr->flags = _flags_save_string;
   12979             :         }
   12980           0 :         ndr->depth--;
   12981             : }
   12982             : 
   12983           0 : _PUBLIC_ size_t ndr_size_spoolss_DriverInfo3(const struct spoolss_DriverInfo3 *r, libndr_flags flags)
   12984             : {
   12985           0 :         return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo3);
   12986             : }
   12987             : 
   12988           0 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo4(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_DriverInfo4 *r)
   12989             : {
   12990           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   12991           0 :         if (ndr_flags & NDR_SCALARS) {
   12992           0 :                 NDR_CHECK(ndr_push_align(ndr, 5));
   12993           0 :                 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
   12994             :                 {
   12995           0 :                         libndr_flags _flags_save_string = ndr->flags;
   12996           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   12997           0 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
   12998           0 :                         ndr->flags = _flags_save_string;
   12999             :                 }
   13000             :                 {
   13001           0 :                         libndr_flags _flags_save_string = ndr->flags;
   13002           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   13003           0 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
   13004           0 :                         ndr->flags = _flags_save_string;
   13005             :                 }
   13006             :                 {
   13007           0 :                         libndr_flags _flags_save_string = ndr->flags;
   13008           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   13009           0 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
   13010           0 :                         ndr->flags = _flags_save_string;
   13011             :                 }
   13012             :                 {
   13013           0 :                         libndr_flags _flags_save_string = ndr->flags;
   13014           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   13015           0 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
   13016           0 :                         ndr->flags = _flags_save_string;
   13017             :                 }
   13018             :                 {
   13019           0 :                         libndr_flags _flags_save_string = ndr->flags;
   13020           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   13021           0 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
   13022           0 :                         ndr->flags = _flags_save_string;
   13023             :                 }
   13024             :                 {
   13025           0 :                         libndr_flags _flags_save_string = ndr->flags;
   13026           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   13027           0 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
   13028           0 :                         ndr->flags = _flags_save_string;
   13029             :                 }
   13030             :                 {
   13031           0 :                         libndr_flags _flags_save_string_array = ndr->flags;
   13032           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   13033           0 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
   13034           0 :                         ndr->flags = _flags_save_string_array;
   13035             :                 }
   13036             :                 {
   13037           0 :                         libndr_flags _flags_save_string = ndr->flags;
   13038           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   13039           0 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
   13040           0 :                         ndr->flags = _flags_save_string;
   13041             :                 }
   13042             :                 {
   13043           0 :                         libndr_flags _flags_save_string = ndr->flags;
   13044           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   13045           0 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
   13046           0 :                         ndr->flags = _flags_save_string;
   13047             :                 }
   13048             :                 {
   13049           0 :                         libndr_flags _flags_save_string_array = ndr->flags;
   13050           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   13051           0 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
   13052           0 :                         ndr->flags = _flags_save_string_array;
   13053             :                 }
   13054           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
   13055             :         }
   13056           0 :         if (ndr_flags & NDR_BUFFERS) {
   13057             :                 {
   13058           0 :                         libndr_flags _flags_save_string = ndr->flags;
   13059           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   13060           0 :                         if (r->driver_name) {
   13061           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
   13062           0 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
   13063           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
   13064             :                         }
   13065           0 :                         ndr->flags = _flags_save_string;
   13066             :                 }
   13067             :                 {
   13068           0 :                         libndr_flags _flags_save_string = ndr->flags;
   13069           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   13070           0 :                         if (r->architecture) {
   13071           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->architecture));
   13072           0 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
   13073           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->architecture));
   13074             :                         }
   13075           0 :                         ndr->flags = _flags_save_string;
   13076             :                 }
   13077             :                 {
   13078           0 :                         libndr_flags _flags_save_string = ndr->flags;
   13079           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   13080           0 :                         if (r->driver_path) {
   13081           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_path));
   13082           0 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
   13083           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_path));
   13084             :                         }
   13085           0 :                         ndr->flags = _flags_save_string;
   13086             :                 }
   13087             :                 {
   13088           0 :                         libndr_flags _flags_save_string = ndr->flags;
   13089           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   13090           0 :                         if (r->data_file) {
   13091           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_file));
   13092           0 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
   13093           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_file));
   13094             :                         }
   13095           0 :                         ndr->flags = _flags_save_string;
   13096             :                 }
   13097             :                 {
   13098           0 :                         libndr_flags _flags_save_string = ndr->flags;
   13099           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   13100           0 :                         if (r->config_file) {
   13101           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->config_file));
   13102           0 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
   13103           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->config_file));
   13104             :                         }
   13105           0 :                         ndr->flags = _flags_save_string;
   13106             :                 }
   13107             :                 {
   13108           0 :                         libndr_flags _flags_save_string = ndr->flags;
   13109           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   13110           0 :                         if (r->help_file) {
   13111           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->help_file));
   13112           0 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
   13113           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->help_file));
   13114             :                         }
   13115           0 :                         ndr->flags = _flags_save_string;
   13116             :                 }
   13117             :                 {
   13118           0 :                         libndr_flags _flags_save_string_array = ndr->flags;
   13119           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   13120           0 :                         if (r->dependent_files) {
   13121           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->dependent_files));
   13122           0 :                                 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
   13123           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->dependent_files));
   13124             :                         }
   13125           0 :                         ndr->flags = _flags_save_string_array;
   13126             :                 }
   13127             :                 {
   13128           0 :                         libndr_flags _flags_save_string = ndr->flags;
   13129           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   13130           0 :                         if (r->monitor_name) {
   13131           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->monitor_name));
   13132           0 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
   13133           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->monitor_name));
   13134             :                         }
   13135           0 :                         ndr->flags = _flags_save_string;
   13136             :                 }
   13137             :                 {
   13138           0 :                         libndr_flags _flags_save_string = ndr->flags;
   13139           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   13140           0 :                         if (r->default_datatype) {
   13141           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->default_datatype));
   13142           0 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
   13143           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->default_datatype));
   13144             :                         }
   13145           0 :                         ndr->flags = _flags_save_string;
   13146             :                 }
   13147             :                 {
   13148           0 :                         libndr_flags _flags_save_string_array = ndr->flags;
   13149           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   13150           0 :                         if (r->previous_names) {
   13151           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->previous_names));
   13152           0 :                                 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
   13153           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->previous_names));
   13154             :                         }
   13155           0 :                         ndr->flags = _flags_save_string_array;
   13156             :                 }
   13157             :         }
   13158           0 :         return NDR_ERR_SUCCESS;
   13159             : }
   13160             : 
   13161           0 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo4(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_DriverInfo4 *r)
   13162             : {
   13163           0 :         uint32_t _ptr_driver_name;
   13164           0 :         TALLOC_CTX *_mem_save_driver_name_0 = NULL;
   13165           0 :         uint32_t _ptr_architecture;
   13166           0 :         TALLOC_CTX *_mem_save_architecture_0 = NULL;
   13167           0 :         uint32_t _ptr_driver_path;
   13168           0 :         TALLOC_CTX *_mem_save_driver_path_0 = NULL;
   13169           0 :         uint32_t _ptr_data_file;
   13170           0 :         TALLOC_CTX *_mem_save_data_file_0 = NULL;
   13171           0 :         uint32_t _ptr_config_file;
   13172           0 :         TALLOC_CTX *_mem_save_config_file_0 = NULL;
   13173           0 :         uint32_t _ptr_help_file;
   13174           0 :         TALLOC_CTX *_mem_save_help_file_0 = NULL;
   13175           0 :         uint32_t _ptr_dependent_files;
   13176           0 :         TALLOC_CTX *_mem_save_dependent_files_0 = NULL;
   13177           0 :         uint32_t _ptr_monitor_name;
   13178           0 :         TALLOC_CTX *_mem_save_monitor_name_0 = NULL;
   13179           0 :         uint32_t _ptr_default_datatype;
   13180           0 :         TALLOC_CTX *_mem_save_default_datatype_0 = NULL;
   13181           0 :         uint32_t _ptr_previous_names;
   13182           0 :         TALLOC_CTX *_mem_save_previous_names_0 = NULL;
   13183           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   13184           0 :         if (ndr_flags & NDR_SCALARS) {
   13185           0 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
   13186           0 :                 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
   13187             :                 {
   13188           0 :                         libndr_flags _flags_save_string = ndr->flags;
   13189           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   13190           0 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
   13191           0 :                         if (_ptr_driver_name) {
   13192           0 :                                 NDR_PULL_ALLOC(ndr, r->driver_name);
   13193           0 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
   13194             :                         } else {
   13195           0 :                                 r->driver_name = NULL;
   13196             :                         }
   13197           0 :                         ndr->flags = _flags_save_string;
   13198             :                 }
   13199             :                 {
   13200           0 :                         libndr_flags _flags_save_string = ndr->flags;
   13201           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   13202           0 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
   13203           0 :                         if (_ptr_architecture) {
   13204           0 :                                 NDR_PULL_ALLOC(ndr, r->architecture);
   13205           0 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
   13206             :                         } else {
   13207           0 :                                 r->architecture = NULL;
   13208             :                         }
   13209           0 :                         ndr->flags = _flags_save_string;
   13210             :                 }
   13211             :                 {
   13212           0 :                         libndr_flags _flags_save_string = ndr->flags;
   13213           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   13214           0 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
   13215           0 :                         if (_ptr_driver_path) {
   13216           0 :                                 NDR_PULL_ALLOC(ndr, r->driver_path);
   13217           0 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
   13218             :                         } else {
   13219           0 :                                 r->driver_path = NULL;
   13220             :                         }
   13221           0 :                         ndr->flags = _flags_save_string;
   13222             :                 }
   13223             :                 {
   13224           0 :                         libndr_flags _flags_save_string = ndr->flags;
   13225           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   13226           0 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
   13227           0 :                         if (_ptr_data_file) {
   13228           0 :                                 NDR_PULL_ALLOC(ndr, r->data_file);
   13229           0 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
   13230             :                         } else {
   13231           0 :                                 r->data_file = NULL;
   13232             :                         }
   13233           0 :                         ndr->flags = _flags_save_string;
   13234             :                 }
   13235             :                 {
   13236           0 :                         libndr_flags _flags_save_string = ndr->flags;
   13237           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   13238           0 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
   13239           0 :                         if (_ptr_config_file) {
   13240           0 :                                 NDR_PULL_ALLOC(ndr, r->config_file);
   13241           0 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
   13242             :                         } else {
   13243           0 :                                 r->config_file = NULL;
   13244             :                         }
   13245           0 :                         ndr->flags = _flags_save_string;
   13246             :                 }
   13247             :                 {
   13248           0 :                         libndr_flags _flags_save_string = ndr->flags;
   13249           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   13250           0 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
   13251           0 :                         if (_ptr_help_file) {
   13252           0 :                                 NDR_PULL_ALLOC(ndr, r->help_file);
   13253           0 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
   13254             :                         } else {
   13255           0 :                                 r->help_file = NULL;
   13256             :                         }
   13257           0 :                         ndr->flags = _flags_save_string;
   13258             :                 }
   13259             :                 {
   13260           0 :                         libndr_flags _flags_save_string_array = ndr->flags;
   13261           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   13262           0 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
   13263           0 :                         if (_ptr_dependent_files) {
   13264           0 :                                 NDR_PULL_ALLOC(ndr, r->dependent_files);
   13265           0 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
   13266             :                         } else {
   13267           0 :                                 r->dependent_files = NULL;
   13268             :                         }
   13269           0 :                         ndr->flags = _flags_save_string_array;
   13270             :                 }
   13271             :                 {
   13272           0 :                         libndr_flags _flags_save_string = ndr->flags;
   13273           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   13274           0 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
   13275           0 :                         if (_ptr_monitor_name) {
   13276           0 :                                 NDR_PULL_ALLOC(ndr, r->monitor_name);
   13277           0 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
   13278             :                         } else {
   13279           0 :                                 r->monitor_name = NULL;
   13280             :                         }
   13281           0 :                         ndr->flags = _flags_save_string;
   13282             :                 }
   13283             :                 {
   13284           0 :                         libndr_flags _flags_save_string = ndr->flags;
   13285           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   13286           0 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
   13287           0 :                         if (_ptr_default_datatype) {
   13288           0 :                                 NDR_PULL_ALLOC(ndr, r->default_datatype);
   13289           0 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
   13290             :                         } else {
   13291           0 :                                 r->default_datatype = NULL;
   13292             :                         }
   13293           0 :                         ndr->flags = _flags_save_string;
   13294             :                 }
   13295             :                 {
   13296           0 :                         libndr_flags _flags_save_string_array = ndr->flags;
   13297           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   13298           0 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
   13299           0 :                         if (_ptr_previous_names) {
   13300           0 :                                 NDR_PULL_ALLOC(ndr, r->previous_names);
   13301           0 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
   13302             :                         } else {
   13303           0 :                                 r->previous_names = NULL;
   13304             :                         }
   13305           0 :                         ndr->flags = _flags_save_string_array;
   13306             :                 }
   13307           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
   13308             :         }
   13309           0 :         if (ndr_flags & NDR_BUFFERS) {
   13310             :                 {
   13311           0 :                         libndr_flags _flags_save_string = ndr->flags;
   13312           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   13313           0 :                         if (r->driver_name) {
   13314           0 :                                 uint32_t _relative_save_offset;
   13315           0 :                                 _relative_save_offset = ndr->offset;
   13316           0 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
   13317           0 :                                 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
   13318           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
   13319           0 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
   13320           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
   13321           0 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   13322           0 :                                         ndr->relative_highest_offset = ndr->offset;
   13323             :                                 }
   13324           0 :                                 ndr->offset = _relative_save_offset;
   13325             :                         }
   13326           0 :                         ndr->flags = _flags_save_string;
   13327             :                 }
   13328             :                 {
   13329           0 :                         libndr_flags _flags_save_string = ndr->flags;
   13330           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   13331           0 :                         if (r->architecture) {
   13332           0 :                                 uint32_t _relative_save_offset;
   13333           0 :                                 _relative_save_offset = ndr->offset;
   13334           0 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
   13335           0 :                                 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
   13336           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
   13337           0 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
   13338           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
   13339           0 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   13340           0 :                                         ndr->relative_highest_offset = ndr->offset;
   13341             :                                 }
   13342           0 :                                 ndr->offset = _relative_save_offset;
   13343             :                         }
   13344           0 :                         ndr->flags = _flags_save_string;
   13345             :                 }
   13346             :                 {
   13347           0 :                         libndr_flags _flags_save_string = ndr->flags;
   13348           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   13349           0 :                         if (r->driver_path) {
   13350           0 :                                 uint32_t _relative_save_offset;
   13351           0 :                                 _relative_save_offset = ndr->offset;
   13352           0 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
   13353           0 :                                 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
   13354           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
   13355           0 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
   13356           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
   13357           0 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   13358           0 :                                         ndr->relative_highest_offset = ndr->offset;
   13359             :                                 }
   13360           0 :                                 ndr->offset = _relative_save_offset;
   13361             :                         }
   13362           0 :                         ndr->flags = _flags_save_string;
   13363             :                 }
   13364             :                 {
   13365           0 :                         libndr_flags _flags_save_string = ndr->flags;
   13366           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   13367           0 :                         if (r->data_file) {
   13368           0 :                                 uint32_t _relative_save_offset;
   13369           0 :                                 _relative_save_offset = ndr->offset;
   13370           0 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
   13371           0 :                                 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
   13372           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
   13373           0 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
   13374           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
   13375           0 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   13376           0 :                                         ndr->relative_highest_offset = ndr->offset;
   13377             :                                 }
   13378           0 :                                 ndr->offset = _relative_save_offset;
   13379             :                         }
   13380           0 :                         ndr->flags = _flags_save_string;
   13381             :                 }
   13382             :                 {
   13383           0 :                         libndr_flags _flags_save_string = ndr->flags;
   13384           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   13385           0 :                         if (r->config_file) {
   13386           0 :                                 uint32_t _relative_save_offset;
   13387           0 :                                 _relative_save_offset = ndr->offset;
   13388           0 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
   13389           0 :                                 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
   13390           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
   13391           0 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
   13392           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
   13393           0 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   13394           0 :                                         ndr->relative_highest_offset = ndr->offset;
   13395             :                                 }
   13396           0 :                                 ndr->offset = _relative_save_offset;
   13397             :                         }
   13398           0 :                         ndr->flags = _flags_save_string;
   13399             :                 }
   13400             :                 {
   13401           0 :                         libndr_flags _flags_save_string = ndr->flags;
   13402           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   13403           0 :                         if (r->help_file) {
   13404           0 :                                 uint32_t _relative_save_offset;
   13405           0 :                                 _relative_save_offset = ndr->offset;
   13406           0 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
   13407           0 :                                 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
   13408           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
   13409           0 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
   13410           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
   13411           0 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   13412           0 :                                         ndr->relative_highest_offset = ndr->offset;
   13413             :                                 }
   13414           0 :                                 ndr->offset = _relative_save_offset;
   13415             :                         }
   13416           0 :                         ndr->flags = _flags_save_string;
   13417             :                 }
   13418             :                 {
   13419           0 :                         libndr_flags _flags_save_string_array = ndr->flags;
   13420           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   13421           0 :                         if (r->dependent_files) {
   13422           0 :                                 uint32_t _relative_save_offset;
   13423           0 :                                 _relative_save_offset = ndr->offset;
   13424           0 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
   13425           0 :                                 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
   13426           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
   13427           0 :                                 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
   13428           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
   13429           0 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   13430           0 :                                         ndr->relative_highest_offset = ndr->offset;
   13431             :                                 }
   13432           0 :                                 ndr->offset = _relative_save_offset;
   13433             :                         }
   13434           0 :                         ndr->flags = _flags_save_string_array;
   13435             :                 }
   13436             :                 {
   13437           0 :                         libndr_flags _flags_save_string = ndr->flags;
   13438           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   13439           0 :                         if (r->monitor_name) {
   13440           0 :                                 uint32_t _relative_save_offset;
   13441           0 :                                 _relative_save_offset = ndr->offset;
   13442           0 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
   13443           0 :                                 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
   13444           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
   13445           0 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
   13446           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
   13447           0 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   13448           0 :                                         ndr->relative_highest_offset = ndr->offset;
   13449             :                                 }
   13450           0 :                                 ndr->offset = _relative_save_offset;
   13451             :                         }
   13452           0 :                         ndr->flags = _flags_save_string;
   13453             :                 }
   13454             :                 {
   13455           0 :                         libndr_flags _flags_save_string = ndr->flags;
   13456           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   13457           0 :                         if (r->default_datatype) {
   13458           0 :                                 uint32_t _relative_save_offset;
   13459           0 :                                 _relative_save_offset = ndr->offset;
   13460           0 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
   13461           0 :                                 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
   13462           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
   13463           0 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
   13464           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
   13465           0 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   13466           0 :                                         ndr->relative_highest_offset = ndr->offset;
   13467             :                                 }
   13468           0 :                                 ndr->offset = _relative_save_offset;
   13469             :                         }
   13470           0 :                         ndr->flags = _flags_save_string;
   13471             :                 }
   13472             :                 {
   13473           0 :                         libndr_flags _flags_save_string_array = ndr->flags;
   13474           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   13475           0 :                         if (r->previous_names) {
   13476           0 :                                 uint32_t _relative_save_offset;
   13477           0 :                                 _relative_save_offset = ndr->offset;
   13478           0 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
   13479           0 :                                 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
   13480           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
   13481           0 :                                 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
   13482           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
   13483           0 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   13484           0 :                                         ndr->relative_highest_offset = ndr->offset;
   13485             :                                 }
   13486           0 :                                 ndr->offset = _relative_save_offset;
   13487             :                         }
   13488           0 :                         ndr->flags = _flags_save_string_array;
   13489             :                 }
   13490             :         }
   13491           0 :         return NDR_ERR_SUCCESS;
   13492             : }
   13493             : 
   13494           0 : static void ndr_print_flags_spoolss_DriverInfo4(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_DriverInfo4 *r)
   13495             : {
   13496           0 :         ndr_print_spoolss_DriverInfo4(ndr, name, r);
   13497           0 : }
   13498             : 
   13499           0 : _PUBLIC_ void ndr_print_spoolss_DriverInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo4 *r)
   13500             : {
   13501           0 :         ndr_print_struct(ndr, name, "spoolss_DriverInfo4");
   13502           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   13503           0 :         ndr->depth++;
   13504           0 :         ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
   13505             :         {
   13506           0 :                 libndr_flags _flags_save_string = ndr->flags;
   13507           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   13508           0 :                 ndr_print_ptr(ndr, "driver_name", r->driver_name);
   13509           0 :                 ndr->depth++;
   13510           0 :                 if (r->driver_name) {
   13511           0 :                         ndr_print_string(ndr, "driver_name", r->driver_name);
   13512             :                 }
   13513           0 :                 ndr->depth--;
   13514           0 :                 ndr->flags = _flags_save_string;
   13515             :         }
   13516             :         {
   13517           0 :                 libndr_flags _flags_save_string = ndr->flags;
   13518           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   13519           0 :                 ndr_print_ptr(ndr, "architecture", r->architecture);
   13520           0 :                 ndr->depth++;
   13521           0 :                 if (r->architecture) {
   13522           0 :                         ndr_print_string(ndr, "architecture", r->architecture);
   13523             :                 }
   13524           0 :                 ndr->depth--;
   13525           0 :                 ndr->flags = _flags_save_string;
   13526             :         }
   13527             :         {
   13528           0 :                 libndr_flags _flags_save_string = ndr->flags;
   13529           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   13530           0 :                 ndr_print_ptr(ndr, "driver_path", r->driver_path);
   13531           0 :                 ndr->depth++;
   13532           0 :                 if (r->driver_path) {
   13533           0 :                         ndr_print_string(ndr, "driver_path", r->driver_path);
   13534             :                 }
   13535           0 :                 ndr->depth--;
   13536           0 :                 ndr->flags = _flags_save_string;
   13537             :         }
   13538             :         {
   13539           0 :                 libndr_flags _flags_save_string = ndr->flags;
   13540           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   13541           0 :                 ndr_print_ptr(ndr, "data_file", r->data_file);
   13542           0 :                 ndr->depth++;
   13543           0 :                 if (r->data_file) {
   13544           0 :                         ndr_print_string(ndr, "data_file", r->data_file);
   13545             :                 }
   13546           0 :                 ndr->depth--;
   13547           0 :                 ndr->flags = _flags_save_string;
   13548             :         }
   13549             :         {
   13550           0 :                 libndr_flags _flags_save_string = ndr->flags;
   13551           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   13552           0 :                 ndr_print_ptr(ndr, "config_file", r->config_file);
   13553           0 :                 ndr->depth++;
   13554           0 :                 if (r->config_file) {
   13555           0 :                         ndr_print_string(ndr, "config_file", r->config_file);
   13556             :                 }
   13557           0 :                 ndr->depth--;
   13558           0 :                 ndr->flags = _flags_save_string;
   13559             :         }
   13560             :         {
   13561           0 :                 libndr_flags _flags_save_string = ndr->flags;
   13562           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   13563           0 :                 ndr_print_ptr(ndr, "help_file", r->help_file);
   13564           0 :                 ndr->depth++;
   13565           0 :                 if (r->help_file) {
   13566           0 :                         ndr_print_string(ndr, "help_file", r->help_file);
   13567             :                 }
   13568           0 :                 ndr->depth--;
   13569           0 :                 ndr->flags = _flags_save_string;
   13570             :         }
   13571             :         {
   13572           0 :                 libndr_flags _flags_save_string_array = ndr->flags;
   13573           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   13574           0 :                 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
   13575           0 :                 ndr->depth++;
   13576           0 :                 if (r->dependent_files) {
   13577           0 :                         ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
   13578             :                 }
   13579           0 :                 ndr->depth--;
   13580           0 :                 ndr->flags = _flags_save_string_array;
   13581             :         }
   13582             :         {
   13583           0 :                 libndr_flags _flags_save_string = ndr->flags;
   13584           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   13585           0 :                 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
   13586           0 :                 ndr->depth++;
   13587           0 :                 if (r->monitor_name) {
   13588           0 :                         ndr_print_string(ndr, "monitor_name", r->monitor_name);
   13589             :                 }
   13590           0 :                 ndr->depth--;
   13591           0 :                 ndr->flags = _flags_save_string;
   13592             :         }
   13593             :         {
   13594           0 :                 libndr_flags _flags_save_string = ndr->flags;
   13595           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   13596           0 :                 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
   13597           0 :                 ndr->depth++;
   13598           0 :                 if (r->default_datatype) {
   13599           0 :                         ndr_print_string(ndr, "default_datatype", r->default_datatype);
   13600             :                 }
   13601           0 :                 ndr->depth--;
   13602           0 :                 ndr->flags = _flags_save_string;
   13603             :         }
   13604             :         {
   13605           0 :                 libndr_flags _flags_save_string_array = ndr->flags;
   13606           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   13607           0 :                 ndr_print_ptr(ndr, "previous_names", r->previous_names);
   13608           0 :                 ndr->depth++;
   13609           0 :                 if (r->previous_names) {
   13610           0 :                         ndr_print_string_array(ndr, "previous_names", r->previous_names);
   13611             :                 }
   13612           0 :                 ndr->depth--;
   13613           0 :                 ndr->flags = _flags_save_string_array;
   13614             :         }
   13615           0 :         ndr->depth--;
   13616             : }
   13617             : 
   13618           0 : _PUBLIC_ size_t ndr_size_spoolss_DriverInfo4(const struct spoolss_DriverInfo4 *r, libndr_flags flags)
   13619             : {
   13620           0 :         return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo4);
   13621             : }
   13622             : 
   13623           0 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo5(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_DriverInfo5 *r)
   13624             : {
   13625           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   13626           0 :         if (ndr_flags & NDR_SCALARS) {
   13627           0 :                 NDR_CHECK(ndr_push_align(ndr, 5));
   13628           0 :                 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
   13629             :                 {
   13630           0 :                         libndr_flags _flags_save_string = ndr->flags;
   13631           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   13632           0 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
   13633           0 :                         ndr->flags = _flags_save_string;
   13634             :                 }
   13635             :                 {
   13636           0 :                         libndr_flags _flags_save_string = ndr->flags;
   13637           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   13638           0 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
   13639           0 :                         ndr->flags = _flags_save_string;
   13640             :                 }
   13641             :                 {
   13642           0 :                         libndr_flags _flags_save_string = ndr->flags;
   13643           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   13644           0 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
   13645           0 :                         ndr->flags = _flags_save_string;
   13646             :                 }
   13647             :                 {
   13648           0 :                         libndr_flags _flags_save_string = ndr->flags;
   13649           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   13650           0 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
   13651           0 :                         ndr->flags = _flags_save_string;
   13652             :                 }
   13653             :                 {
   13654           0 :                         libndr_flags _flags_save_string = ndr->flags;
   13655           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   13656           0 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
   13657           0 :                         ndr->flags = _flags_save_string;
   13658             :                 }
   13659           0 :                 NDR_CHECK(ndr_push_spoolss_DriverAttributes(ndr, NDR_SCALARS, r->driver_attributes));
   13660           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->config_version));
   13661           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->driver_version));
   13662           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
   13663             :         }
   13664           0 :         if (ndr_flags & NDR_BUFFERS) {
   13665             :                 {
   13666           0 :                         libndr_flags _flags_save_string = ndr->flags;
   13667           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   13668           0 :                         if (r->driver_name) {
   13669           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
   13670           0 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
   13671           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
   13672             :                         }
   13673           0 :                         ndr->flags = _flags_save_string;
   13674             :                 }
   13675             :                 {
   13676           0 :                         libndr_flags _flags_save_string = ndr->flags;
   13677           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   13678           0 :                         if (r->architecture) {
   13679           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->architecture));
   13680           0 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
   13681           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->architecture));
   13682             :                         }
   13683           0 :                         ndr->flags = _flags_save_string;
   13684             :                 }
   13685             :                 {
   13686           0 :                         libndr_flags _flags_save_string = ndr->flags;
   13687           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   13688           0 :                         if (r->driver_path) {
   13689           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_path));
   13690           0 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
   13691           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_path));
   13692             :                         }
   13693           0 :                         ndr->flags = _flags_save_string;
   13694             :                 }
   13695             :                 {
   13696           0 :                         libndr_flags _flags_save_string = ndr->flags;
   13697           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   13698           0 :                         if (r->data_file) {
   13699           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_file));
   13700           0 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
   13701           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_file));
   13702             :                         }
   13703           0 :                         ndr->flags = _flags_save_string;
   13704             :                 }
   13705             :                 {
   13706           0 :                         libndr_flags _flags_save_string = ndr->flags;
   13707           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   13708           0 :                         if (r->config_file) {
   13709           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->config_file));
   13710           0 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
   13711           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->config_file));
   13712             :                         }
   13713           0 :                         ndr->flags = _flags_save_string;
   13714             :                 }
   13715             :         }
   13716           0 :         return NDR_ERR_SUCCESS;
   13717             : }
   13718             : 
   13719           0 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo5(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_DriverInfo5 *r)
   13720             : {
   13721           0 :         uint32_t _ptr_driver_name;
   13722           0 :         TALLOC_CTX *_mem_save_driver_name_0 = NULL;
   13723           0 :         uint32_t _ptr_architecture;
   13724           0 :         TALLOC_CTX *_mem_save_architecture_0 = NULL;
   13725           0 :         uint32_t _ptr_driver_path;
   13726           0 :         TALLOC_CTX *_mem_save_driver_path_0 = NULL;
   13727           0 :         uint32_t _ptr_data_file;
   13728           0 :         TALLOC_CTX *_mem_save_data_file_0 = NULL;
   13729           0 :         uint32_t _ptr_config_file;
   13730           0 :         TALLOC_CTX *_mem_save_config_file_0 = NULL;
   13731           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   13732           0 :         if (ndr_flags & NDR_SCALARS) {
   13733           0 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
   13734           0 :                 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
   13735             :                 {
   13736           0 :                         libndr_flags _flags_save_string = ndr->flags;
   13737           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   13738           0 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
   13739           0 :                         if (_ptr_driver_name) {
   13740           0 :                                 NDR_PULL_ALLOC(ndr, r->driver_name);
   13741           0 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
   13742             :                         } else {
   13743           0 :                                 r->driver_name = NULL;
   13744             :                         }
   13745           0 :                         ndr->flags = _flags_save_string;
   13746             :                 }
   13747             :                 {
   13748           0 :                         libndr_flags _flags_save_string = ndr->flags;
   13749           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   13750           0 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
   13751           0 :                         if (_ptr_architecture) {
   13752           0 :                                 NDR_PULL_ALLOC(ndr, r->architecture);
   13753           0 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
   13754             :                         } else {
   13755           0 :                                 r->architecture = NULL;
   13756             :                         }
   13757           0 :                         ndr->flags = _flags_save_string;
   13758             :                 }
   13759             :                 {
   13760           0 :                         libndr_flags _flags_save_string = ndr->flags;
   13761           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   13762           0 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
   13763           0 :                         if (_ptr_driver_path) {
   13764           0 :                                 NDR_PULL_ALLOC(ndr, r->driver_path);
   13765           0 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
   13766             :                         } else {
   13767           0 :                                 r->driver_path = NULL;
   13768             :                         }
   13769           0 :                         ndr->flags = _flags_save_string;
   13770             :                 }
   13771             :                 {
   13772           0 :                         libndr_flags _flags_save_string = ndr->flags;
   13773           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   13774           0 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
   13775           0 :                         if (_ptr_data_file) {
   13776           0 :                                 NDR_PULL_ALLOC(ndr, r->data_file);
   13777           0 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
   13778             :                         } else {
   13779           0 :                                 r->data_file = NULL;
   13780             :                         }
   13781           0 :                         ndr->flags = _flags_save_string;
   13782             :                 }
   13783             :                 {
   13784           0 :                         libndr_flags _flags_save_string = ndr->flags;
   13785           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   13786           0 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
   13787           0 :                         if (_ptr_config_file) {
   13788           0 :                                 NDR_PULL_ALLOC(ndr, r->config_file);
   13789           0 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
   13790             :                         } else {
   13791           0 :                                 r->config_file = NULL;
   13792             :                         }
   13793           0 :                         ndr->flags = _flags_save_string;
   13794             :                 }
   13795           0 :                 NDR_CHECK(ndr_pull_spoolss_DriverAttributes(ndr, NDR_SCALARS, &r->driver_attributes));
   13796           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->config_version));
   13797           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->driver_version));
   13798           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
   13799             :         }
   13800           0 :         if (ndr_flags & NDR_BUFFERS) {
   13801             :                 {
   13802           0 :                         libndr_flags _flags_save_string = ndr->flags;
   13803           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   13804           0 :                         if (r->driver_name) {
   13805           0 :                                 uint32_t _relative_save_offset;
   13806           0 :                                 _relative_save_offset = ndr->offset;
   13807           0 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
   13808           0 :                                 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
   13809           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
   13810           0 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
   13811           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
   13812           0 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   13813           0 :                                         ndr->relative_highest_offset = ndr->offset;
   13814             :                                 }
   13815           0 :                                 ndr->offset = _relative_save_offset;
   13816             :                         }
   13817           0 :                         ndr->flags = _flags_save_string;
   13818             :                 }
   13819             :                 {
   13820           0 :                         libndr_flags _flags_save_string = ndr->flags;
   13821           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   13822           0 :                         if (r->architecture) {
   13823           0 :                                 uint32_t _relative_save_offset;
   13824           0 :                                 _relative_save_offset = ndr->offset;
   13825           0 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
   13826           0 :                                 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
   13827           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
   13828           0 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
   13829           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
   13830           0 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   13831           0 :                                         ndr->relative_highest_offset = ndr->offset;
   13832             :                                 }
   13833           0 :                                 ndr->offset = _relative_save_offset;
   13834             :                         }
   13835           0 :                         ndr->flags = _flags_save_string;
   13836             :                 }
   13837             :                 {
   13838           0 :                         libndr_flags _flags_save_string = ndr->flags;
   13839           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   13840           0 :                         if (r->driver_path) {
   13841           0 :                                 uint32_t _relative_save_offset;
   13842           0 :                                 _relative_save_offset = ndr->offset;
   13843           0 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
   13844           0 :                                 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
   13845           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
   13846           0 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
   13847           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
   13848           0 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   13849           0 :                                         ndr->relative_highest_offset = ndr->offset;
   13850             :                                 }
   13851           0 :                                 ndr->offset = _relative_save_offset;
   13852             :                         }
   13853           0 :                         ndr->flags = _flags_save_string;
   13854             :                 }
   13855             :                 {
   13856           0 :                         libndr_flags _flags_save_string = ndr->flags;
   13857           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   13858           0 :                         if (r->data_file) {
   13859           0 :                                 uint32_t _relative_save_offset;
   13860           0 :                                 _relative_save_offset = ndr->offset;
   13861           0 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
   13862           0 :                                 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
   13863           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
   13864           0 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
   13865           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
   13866           0 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   13867           0 :                                         ndr->relative_highest_offset = ndr->offset;
   13868             :                                 }
   13869           0 :                                 ndr->offset = _relative_save_offset;
   13870             :                         }
   13871           0 :                         ndr->flags = _flags_save_string;
   13872             :                 }
   13873             :                 {
   13874           0 :                         libndr_flags _flags_save_string = ndr->flags;
   13875           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   13876           0 :                         if (r->config_file) {
   13877           0 :                                 uint32_t _relative_save_offset;
   13878           0 :                                 _relative_save_offset = ndr->offset;
   13879           0 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
   13880           0 :                                 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
   13881           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
   13882           0 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
   13883           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
   13884           0 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   13885           0 :                                         ndr->relative_highest_offset = ndr->offset;
   13886             :                                 }
   13887           0 :                                 ndr->offset = _relative_save_offset;
   13888             :                         }
   13889           0 :                         ndr->flags = _flags_save_string;
   13890             :                 }
   13891             :         }
   13892           0 :         return NDR_ERR_SUCCESS;
   13893             : }
   13894             : 
   13895           0 : static void ndr_print_flags_spoolss_DriverInfo5(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_DriverInfo5 *r)
   13896             : {
   13897           0 :         ndr_print_spoolss_DriverInfo5(ndr, name, r);
   13898           0 : }
   13899             : 
   13900           0 : _PUBLIC_ void ndr_print_spoolss_DriverInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo5 *r)
   13901             : {
   13902           0 :         ndr_print_struct(ndr, name, "spoolss_DriverInfo5");
   13903           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   13904           0 :         ndr->depth++;
   13905           0 :         ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
   13906             :         {
   13907           0 :                 libndr_flags _flags_save_string = ndr->flags;
   13908           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   13909           0 :                 ndr_print_ptr(ndr, "driver_name", r->driver_name);
   13910           0 :                 ndr->depth++;
   13911           0 :                 if (r->driver_name) {
   13912           0 :                         ndr_print_string(ndr, "driver_name", r->driver_name);
   13913             :                 }
   13914           0 :                 ndr->depth--;
   13915           0 :                 ndr->flags = _flags_save_string;
   13916             :         }
   13917             :         {
   13918           0 :                 libndr_flags _flags_save_string = ndr->flags;
   13919           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   13920           0 :                 ndr_print_ptr(ndr, "architecture", r->architecture);
   13921           0 :                 ndr->depth++;
   13922           0 :                 if (r->architecture) {
   13923           0 :                         ndr_print_string(ndr, "architecture", r->architecture);
   13924             :                 }
   13925           0 :                 ndr->depth--;
   13926           0 :                 ndr->flags = _flags_save_string;
   13927             :         }
   13928             :         {
   13929           0 :                 libndr_flags _flags_save_string = ndr->flags;
   13930           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   13931           0 :                 ndr_print_ptr(ndr, "driver_path", r->driver_path);
   13932           0 :                 ndr->depth++;
   13933           0 :                 if (r->driver_path) {
   13934           0 :                         ndr_print_string(ndr, "driver_path", r->driver_path);
   13935             :                 }
   13936           0 :                 ndr->depth--;
   13937           0 :                 ndr->flags = _flags_save_string;
   13938             :         }
   13939             :         {
   13940           0 :                 libndr_flags _flags_save_string = ndr->flags;
   13941           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   13942           0 :                 ndr_print_ptr(ndr, "data_file", r->data_file);
   13943           0 :                 ndr->depth++;
   13944           0 :                 if (r->data_file) {
   13945           0 :                         ndr_print_string(ndr, "data_file", r->data_file);
   13946             :                 }
   13947           0 :                 ndr->depth--;
   13948           0 :                 ndr->flags = _flags_save_string;
   13949             :         }
   13950             :         {
   13951           0 :                 libndr_flags _flags_save_string = ndr->flags;
   13952           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   13953           0 :                 ndr_print_ptr(ndr, "config_file", r->config_file);
   13954           0 :                 ndr->depth++;
   13955           0 :                 if (r->config_file) {
   13956           0 :                         ndr_print_string(ndr, "config_file", r->config_file);
   13957             :                 }
   13958           0 :                 ndr->depth--;
   13959           0 :                 ndr->flags = _flags_save_string;
   13960             :         }
   13961           0 :         ndr_print_spoolss_DriverAttributes(ndr, "driver_attributes", r->driver_attributes);
   13962           0 :         ndr_print_uint32(ndr, "config_version", r->config_version);
   13963           0 :         ndr_print_uint32(ndr, "driver_version", r->driver_version);
   13964           0 :         ndr->depth--;
   13965             : }
   13966             : 
   13967           0 : _PUBLIC_ size_t ndr_size_spoolss_DriverInfo5(const struct spoolss_DriverInfo5 *r, libndr_flags flags)
   13968             : {
   13969           0 :         return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo5);
   13970             : }
   13971             : 
   13972           0 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo6(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_DriverInfo6 *r)
   13973             : {
   13974           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   13975           0 :         if (ndr_flags & NDR_SCALARS) {
   13976           0 :                 NDR_CHECK(ndr_push_align(ndr, 8));
   13977           0 :                 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
   13978             :                 {
   13979           0 :                         libndr_flags _flags_save_string = ndr->flags;
   13980           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   13981           0 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
   13982           0 :                         ndr->flags = _flags_save_string;
   13983             :                 }
   13984             :                 {
   13985           0 :                         libndr_flags _flags_save_string = ndr->flags;
   13986           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   13987           0 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
   13988           0 :                         ndr->flags = _flags_save_string;
   13989             :                 }
   13990             :                 {
   13991           0 :                         libndr_flags _flags_save_string = ndr->flags;
   13992           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   13993           0 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
   13994           0 :                         ndr->flags = _flags_save_string;
   13995             :                 }
   13996             :                 {
   13997           0 :                         libndr_flags _flags_save_string = ndr->flags;
   13998           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   13999           0 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
   14000           0 :                         ndr->flags = _flags_save_string;
   14001             :                 }
   14002             :                 {
   14003           0 :                         libndr_flags _flags_save_string = ndr->flags;
   14004           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   14005           0 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
   14006           0 :                         ndr->flags = _flags_save_string;
   14007             :                 }
   14008             :                 {
   14009           0 :                         libndr_flags _flags_save_string = ndr->flags;
   14010           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   14011           0 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
   14012           0 :                         ndr->flags = _flags_save_string;
   14013             :                 }
   14014             :                 {
   14015           0 :                         libndr_flags _flags_save_string_array = ndr->flags;
   14016           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   14017           0 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
   14018           0 :                         ndr->flags = _flags_save_string_array;
   14019             :                 }
   14020             :                 {
   14021           0 :                         libndr_flags _flags_save_string = ndr->flags;
   14022           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   14023           0 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
   14024           0 :                         ndr->flags = _flags_save_string;
   14025             :                 }
   14026             :                 {
   14027           0 :                         libndr_flags _flags_save_string = ndr->flags;
   14028           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   14029           0 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
   14030           0 :                         ndr->flags = _flags_save_string;
   14031             :                 }
   14032             :                 {
   14033           0 :                         libndr_flags _flags_save_string_array = ndr->flags;
   14034           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   14035           0 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
   14036           0 :                         ndr->flags = _flags_save_string_array;
   14037             :                 }
   14038           0 :                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
   14039           0 :                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
   14040             :                 {
   14041           0 :                         libndr_flags _flags_save_string = ndr->flags;
   14042           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   14043           0 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_name));
   14044           0 :                         ndr->flags = _flags_save_string;
   14045             :                 }
   14046             :                 {
   14047           0 :                         libndr_flags _flags_save_string = ndr->flags;
   14048           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   14049           0 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_url));
   14050           0 :                         ndr->flags = _flags_save_string;
   14051             :                 }
   14052             :                 {
   14053           0 :                         libndr_flags _flags_save_string = ndr->flags;
   14054           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   14055           0 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->hardware_id));
   14056           0 :                         ndr->flags = _flags_save_string;
   14057             :                 }
   14058             :                 {
   14059           0 :                         libndr_flags _flags_save_string = ndr->flags;
   14060           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   14061           0 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->provider));
   14062           0 :                         ndr->flags = _flags_save_string;
   14063             :                 }
   14064           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
   14065             :         }
   14066           0 :         if (ndr_flags & NDR_BUFFERS) {
   14067             :                 {
   14068           0 :                         libndr_flags _flags_save_string = ndr->flags;
   14069           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   14070           0 :                         if (r->driver_name) {
   14071           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
   14072           0 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
   14073           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
   14074             :                         }
   14075           0 :                         ndr->flags = _flags_save_string;
   14076             :                 }
   14077             :                 {
   14078           0 :                         libndr_flags _flags_save_string = ndr->flags;
   14079           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   14080           0 :                         if (r->architecture) {
   14081           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->architecture));
   14082           0 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
   14083           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->architecture));
   14084             :                         }
   14085           0 :                         ndr->flags = _flags_save_string;
   14086             :                 }
   14087             :                 {
   14088           0 :                         libndr_flags _flags_save_string = ndr->flags;
   14089           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   14090           0 :                         if (r->driver_path) {
   14091           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_path));
   14092           0 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
   14093           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_path));
   14094             :                         }
   14095           0 :                         ndr->flags = _flags_save_string;
   14096             :                 }
   14097             :                 {
   14098           0 :                         libndr_flags _flags_save_string = ndr->flags;
   14099           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   14100           0 :                         if (r->data_file) {
   14101           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_file));
   14102           0 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
   14103           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_file));
   14104             :                         }
   14105           0 :                         ndr->flags = _flags_save_string;
   14106             :                 }
   14107             :                 {
   14108           0 :                         libndr_flags _flags_save_string = ndr->flags;
   14109           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   14110           0 :                         if (r->config_file) {
   14111           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->config_file));
   14112           0 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
   14113           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->config_file));
   14114             :                         }
   14115           0 :                         ndr->flags = _flags_save_string;
   14116             :                 }
   14117             :                 {
   14118           0 :                         libndr_flags _flags_save_string = ndr->flags;
   14119           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   14120           0 :                         if (r->help_file) {
   14121           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->help_file));
   14122           0 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
   14123           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->help_file));
   14124             :                         }
   14125           0 :                         ndr->flags = _flags_save_string;
   14126             :                 }
   14127             :                 {
   14128           0 :                         libndr_flags _flags_save_string_array = ndr->flags;
   14129           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   14130           0 :                         if (r->dependent_files) {
   14131           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->dependent_files));
   14132           0 :                                 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
   14133           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->dependent_files));
   14134             :                         }
   14135           0 :                         ndr->flags = _flags_save_string_array;
   14136             :                 }
   14137             :                 {
   14138           0 :                         libndr_flags _flags_save_string = ndr->flags;
   14139           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   14140           0 :                         if (r->monitor_name) {
   14141           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->monitor_name));
   14142           0 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
   14143           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->monitor_name));
   14144             :                         }
   14145           0 :                         ndr->flags = _flags_save_string;
   14146             :                 }
   14147             :                 {
   14148           0 :                         libndr_flags _flags_save_string = ndr->flags;
   14149           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   14150           0 :                         if (r->default_datatype) {
   14151           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->default_datatype));
   14152           0 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
   14153           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->default_datatype));
   14154             :                         }
   14155           0 :                         ndr->flags = _flags_save_string;
   14156             :                 }
   14157             :                 {
   14158           0 :                         libndr_flags _flags_save_string_array = ndr->flags;
   14159           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   14160           0 :                         if (r->previous_names) {
   14161           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->previous_names));
   14162           0 :                                 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
   14163           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->previous_names));
   14164             :                         }
   14165           0 :                         ndr->flags = _flags_save_string_array;
   14166             :                 }
   14167             :                 {
   14168           0 :                         libndr_flags _flags_save_string = ndr->flags;
   14169           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   14170           0 :                         if (r->manufacturer_name) {
   14171           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->manufacturer_name));
   14172           0 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_name));
   14173           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->manufacturer_name));
   14174             :                         }
   14175           0 :                         ndr->flags = _flags_save_string;
   14176             :                 }
   14177             :                 {
   14178           0 :                         libndr_flags _flags_save_string = ndr->flags;
   14179           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   14180           0 :                         if (r->manufacturer_url) {
   14181           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->manufacturer_url));
   14182           0 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_url));
   14183           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->manufacturer_url));
   14184             :                         }
   14185           0 :                         ndr->flags = _flags_save_string;
   14186             :                 }
   14187             :                 {
   14188           0 :                         libndr_flags _flags_save_string = ndr->flags;
   14189           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   14190           0 :                         if (r->hardware_id) {
   14191           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->hardware_id));
   14192           0 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->hardware_id));
   14193           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->hardware_id));
   14194             :                         }
   14195           0 :                         ndr->flags = _flags_save_string;
   14196             :                 }
   14197             :                 {
   14198           0 :                         libndr_flags _flags_save_string = ndr->flags;
   14199           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   14200           0 :                         if (r->provider) {
   14201           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->provider));
   14202           0 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->provider));
   14203           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->provider));
   14204             :                         }
   14205           0 :                         ndr->flags = _flags_save_string;
   14206             :                 }
   14207             :         }
   14208           0 :         return NDR_ERR_SUCCESS;
   14209             : }
   14210             : 
   14211           4 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo6(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_DriverInfo6 *r)
   14212             : {
   14213           4 :         uint32_t _ptr_driver_name;
   14214           4 :         TALLOC_CTX *_mem_save_driver_name_0 = NULL;
   14215           4 :         uint32_t _ptr_architecture;
   14216           4 :         TALLOC_CTX *_mem_save_architecture_0 = NULL;
   14217           4 :         uint32_t _ptr_driver_path;
   14218           4 :         TALLOC_CTX *_mem_save_driver_path_0 = NULL;
   14219           4 :         uint32_t _ptr_data_file;
   14220           4 :         TALLOC_CTX *_mem_save_data_file_0 = NULL;
   14221           4 :         uint32_t _ptr_config_file;
   14222           4 :         TALLOC_CTX *_mem_save_config_file_0 = NULL;
   14223           4 :         uint32_t _ptr_help_file;
   14224           4 :         TALLOC_CTX *_mem_save_help_file_0 = NULL;
   14225           4 :         uint32_t _ptr_dependent_files;
   14226           4 :         TALLOC_CTX *_mem_save_dependent_files_0 = NULL;
   14227           4 :         uint32_t _ptr_monitor_name;
   14228           4 :         TALLOC_CTX *_mem_save_monitor_name_0 = NULL;
   14229           4 :         uint32_t _ptr_default_datatype;
   14230           4 :         TALLOC_CTX *_mem_save_default_datatype_0 = NULL;
   14231           4 :         uint32_t _ptr_previous_names;
   14232           4 :         TALLOC_CTX *_mem_save_previous_names_0 = NULL;
   14233           4 :         uint32_t _ptr_manufacturer_name;
   14234           4 :         TALLOC_CTX *_mem_save_manufacturer_name_0 = NULL;
   14235           4 :         uint32_t _ptr_manufacturer_url;
   14236           4 :         TALLOC_CTX *_mem_save_manufacturer_url_0 = NULL;
   14237           4 :         uint32_t _ptr_hardware_id;
   14238           4 :         TALLOC_CTX *_mem_save_hardware_id_0 = NULL;
   14239           4 :         uint32_t _ptr_provider;
   14240           4 :         TALLOC_CTX *_mem_save_provider_0 = NULL;
   14241           4 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   14242           4 :         if (ndr_flags & NDR_SCALARS) {
   14243           2 :                 NDR_CHECK(ndr_pull_align(ndr, 8));
   14244           2 :                 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
   14245             :                 {
   14246           2 :                         libndr_flags _flags_save_string = ndr->flags;
   14247           2 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   14248           2 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
   14249           2 :                         if (_ptr_driver_name) {
   14250           2 :                                 NDR_PULL_ALLOC(ndr, r->driver_name);
   14251           2 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
   14252             :                         } else {
   14253           0 :                                 r->driver_name = NULL;
   14254             :                         }
   14255           2 :                         ndr->flags = _flags_save_string;
   14256             :                 }
   14257             :                 {
   14258           2 :                         libndr_flags _flags_save_string = ndr->flags;
   14259           2 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   14260           2 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
   14261           2 :                         if (_ptr_architecture) {
   14262           2 :                                 NDR_PULL_ALLOC(ndr, r->architecture);
   14263           2 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
   14264             :                         } else {
   14265           0 :                                 r->architecture = NULL;
   14266             :                         }
   14267           2 :                         ndr->flags = _flags_save_string;
   14268             :                 }
   14269             :                 {
   14270           2 :                         libndr_flags _flags_save_string = ndr->flags;
   14271           2 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   14272           2 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
   14273           2 :                         if (_ptr_driver_path) {
   14274           2 :                                 NDR_PULL_ALLOC(ndr, r->driver_path);
   14275           2 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
   14276             :                         } else {
   14277           0 :                                 r->driver_path = NULL;
   14278             :                         }
   14279           2 :                         ndr->flags = _flags_save_string;
   14280             :                 }
   14281             :                 {
   14282           2 :                         libndr_flags _flags_save_string = ndr->flags;
   14283           2 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   14284           2 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
   14285           2 :                         if (_ptr_data_file) {
   14286           2 :                                 NDR_PULL_ALLOC(ndr, r->data_file);
   14287           2 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
   14288             :                         } else {
   14289           0 :                                 r->data_file = NULL;
   14290             :                         }
   14291           2 :                         ndr->flags = _flags_save_string;
   14292             :                 }
   14293             :                 {
   14294           2 :                         libndr_flags _flags_save_string = ndr->flags;
   14295           2 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   14296           2 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
   14297           2 :                         if (_ptr_config_file) {
   14298           2 :                                 NDR_PULL_ALLOC(ndr, r->config_file);
   14299           2 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
   14300             :                         } else {
   14301           0 :                                 r->config_file = NULL;
   14302             :                         }
   14303           2 :                         ndr->flags = _flags_save_string;
   14304             :                 }
   14305             :                 {
   14306           2 :                         libndr_flags _flags_save_string = ndr->flags;
   14307           2 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   14308           2 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
   14309           2 :                         if (_ptr_help_file) {
   14310           2 :                                 NDR_PULL_ALLOC(ndr, r->help_file);
   14311           2 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
   14312             :                         } else {
   14313           0 :                                 r->help_file = NULL;
   14314             :                         }
   14315           2 :                         ndr->flags = _flags_save_string;
   14316             :                 }
   14317             :                 {
   14318           2 :                         libndr_flags _flags_save_string_array = ndr->flags;
   14319           2 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   14320           2 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
   14321           2 :                         if (_ptr_dependent_files) {
   14322           2 :                                 NDR_PULL_ALLOC(ndr, r->dependent_files);
   14323           2 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
   14324             :                         } else {
   14325           0 :                                 r->dependent_files = NULL;
   14326             :                         }
   14327           2 :                         ndr->flags = _flags_save_string_array;
   14328             :                 }
   14329             :                 {
   14330           2 :                         libndr_flags _flags_save_string = ndr->flags;
   14331           2 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   14332           2 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
   14333           2 :                         if (_ptr_monitor_name) {
   14334           0 :                                 NDR_PULL_ALLOC(ndr, r->monitor_name);
   14335           0 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
   14336             :                         } else {
   14337           2 :                                 r->monitor_name = NULL;
   14338             :                         }
   14339           2 :                         ndr->flags = _flags_save_string;
   14340             :                 }
   14341             :                 {
   14342           2 :                         libndr_flags _flags_save_string = ndr->flags;
   14343           2 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   14344           2 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
   14345           2 :                         if (_ptr_default_datatype) {
   14346           0 :                                 NDR_PULL_ALLOC(ndr, r->default_datatype);
   14347           0 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
   14348             :                         } else {
   14349           2 :                                 r->default_datatype = NULL;
   14350             :                         }
   14351           2 :                         ndr->flags = _flags_save_string;
   14352             :                 }
   14353             :                 {
   14354           2 :                         libndr_flags _flags_save_string_array = ndr->flags;
   14355           2 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   14356           2 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
   14357           2 :                         if (_ptr_previous_names) {
   14358           0 :                                 NDR_PULL_ALLOC(ndr, r->previous_names);
   14359           0 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
   14360             :                         } else {
   14361           2 :                                 r->previous_names = NULL;
   14362             :                         }
   14363           2 :                         ndr->flags = _flags_save_string_array;
   14364             :                 }
   14365           2 :                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
   14366           2 :                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
   14367             :                 {
   14368           2 :                         libndr_flags _flags_save_string = ndr->flags;
   14369           2 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   14370           2 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
   14371           2 :                         if (_ptr_manufacturer_name) {
   14372           2 :                                 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
   14373           2 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_name, _ptr_manufacturer_name));
   14374             :                         } else {
   14375           0 :                                 r->manufacturer_name = NULL;
   14376             :                         }
   14377           2 :                         ndr->flags = _flags_save_string;
   14378             :                 }
   14379             :                 {
   14380           2 :                         libndr_flags _flags_save_string = ndr->flags;
   14381           2 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   14382           2 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
   14383           2 :                         if (_ptr_manufacturer_url) {
   14384           2 :                                 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
   14385           2 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_url, _ptr_manufacturer_url));
   14386             :                         } else {
   14387           0 :                                 r->manufacturer_url = NULL;
   14388             :                         }
   14389           2 :                         ndr->flags = _flags_save_string;
   14390             :                 }
   14391             :                 {
   14392           2 :                         libndr_flags _flags_save_string = ndr->flags;
   14393           2 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   14394           2 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
   14395           2 :                         if (_ptr_hardware_id) {
   14396           2 :                                 NDR_PULL_ALLOC(ndr, r->hardware_id);
   14397           2 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->hardware_id, _ptr_hardware_id));
   14398             :                         } else {
   14399           0 :                                 r->hardware_id = NULL;
   14400             :                         }
   14401           2 :                         ndr->flags = _flags_save_string;
   14402             :                 }
   14403             :                 {
   14404           2 :                         libndr_flags _flags_save_string = ndr->flags;
   14405           2 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   14406           2 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
   14407           2 :                         if (_ptr_provider) {
   14408           2 :                                 NDR_PULL_ALLOC(ndr, r->provider);
   14409           2 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->provider, _ptr_provider));
   14410             :                         } else {
   14411           0 :                                 r->provider = NULL;
   14412             :                         }
   14413           2 :                         ndr->flags = _flags_save_string;
   14414             :                 }
   14415           2 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
   14416             :         }
   14417           4 :         if (ndr_flags & NDR_BUFFERS) {
   14418             :                 {
   14419           2 :                         libndr_flags _flags_save_string = ndr->flags;
   14420           2 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   14421           2 :                         if (r->driver_name) {
   14422           2 :                                 uint32_t _relative_save_offset;
   14423           2 :                                 _relative_save_offset = ndr->offset;
   14424           2 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
   14425           2 :                                 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
   14426           2 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
   14427           2 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
   14428           2 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
   14429           2 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   14430           2 :                                         ndr->relative_highest_offset = ndr->offset;
   14431             :                                 }
   14432           2 :                                 ndr->offset = _relative_save_offset;
   14433             :                         }
   14434           2 :                         ndr->flags = _flags_save_string;
   14435             :                 }
   14436             :                 {
   14437           2 :                         libndr_flags _flags_save_string = ndr->flags;
   14438           2 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   14439           2 :                         if (r->architecture) {
   14440           2 :                                 uint32_t _relative_save_offset;
   14441           2 :                                 _relative_save_offset = ndr->offset;
   14442           2 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
   14443           2 :                                 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
   14444           2 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
   14445           2 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
   14446           2 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
   14447           2 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   14448           0 :                                         ndr->relative_highest_offset = ndr->offset;
   14449             :                                 }
   14450           2 :                                 ndr->offset = _relative_save_offset;
   14451             :                         }
   14452           2 :                         ndr->flags = _flags_save_string;
   14453             :                 }
   14454             :                 {
   14455           2 :                         libndr_flags _flags_save_string = ndr->flags;
   14456           2 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   14457           2 :                         if (r->driver_path) {
   14458           2 :                                 uint32_t _relative_save_offset;
   14459           2 :                                 _relative_save_offset = ndr->offset;
   14460           2 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
   14461           2 :                                 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
   14462           2 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
   14463           2 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
   14464           2 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
   14465           2 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   14466           0 :                                         ndr->relative_highest_offset = ndr->offset;
   14467             :                                 }
   14468           2 :                                 ndr->offset = _relative_save_offset;
   14469             :                         }
   14470           2 :                         ndr->flags = _flags_save_string;
   14471             :                 }
   14472             :                 {
   14473           2 :                         libndr_flags _flags_save_string = ndr->flags;
   14474           2 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   14475           2 :                         if (r->data_file) {
   14476           2 :                                 uint32_t _relative_save_offset;
   14477           2 :                                 _relative_save_offset = ndr->offset;
   14478           2 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
   14479           2 :                                 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
   14480           2 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
   14481           2 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
   14482           2 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
   14483           2 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   14484           0 :                                         ndr->relative_highest_offset = ndr->offset;
   14485             :                                 }
   14486           2 :                                 ndr->offset = _relative_save_offset;
   14487             :                         }
   14488           2 :                         ndr->flags = _flags_save_string;
   14489             :                 }
   14490             :                 {
   14491           2 :                         libndr_flags _flags_save_string = ndr->flags;
   14492           2 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   14493           2 :                         if (r->config_file) {
   14494           2 :                                 uint32_t _relative_save_offset;
   14495           2 :                                 _relative_save_offset = ndr->offset;
   14496           2 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
   14497           2 :                                 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
   14498           2 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
   14499           2 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
   14500           2 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
   14501           2 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   14502           0 :                                         ndr->relative_highest_offset = ndr->offset;
   14503             :                                 }
   14504           2 :                                 ndr->offset = _relative_save_offset;
   14505             :                         }
   14506           2 :                         ndr->flags = _flags_save_string;
   14507             :                 }
   14508             :                 {
   14509           2 :                         libndr_flags _flags_save_string = ndr->flags;
   14510           2 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   14511           2 :                         if (r->help_file) {
   14512           2 :                                 uint32_t _relative_save_offset;
   14513           2 :                                 _relative_save_offset = ndr->offset;
   14514           2 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
   14515           2 :                                 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
   14516           2 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
   14517           2 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
   14518           2 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
   14519           2 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   14520           0 :                                         ndr->relative_highest_offset = ndr->offset;
   14521             :                                 }
   14522           2 :                                 ndr->offset = _relative_save_offset;
   14523             :                         }
   14524           2 :                         ndr->flags = _flags_save_string;
   14525             :                 }
   14526             :                 {
   14527           2 :                         libndr_flags _flags_save_string_array = ndr->flags;
   14528           2 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   14529           2 :                         if (r->dependent_files) {
   14530           2 :                                 uint32_t _relative_save_offset;
   14531           2 :                                 _relative_save_offset = ndr->offset;
   14532           2 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
   14533           2 :                                 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
   14534           2 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
   14535           2 :                                 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
   14536           2 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
   14537           2 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   14538           0 :                                         ndr->relative_highest_offset = ndr->offset;
   14539             :                                 }
   14540           2 :                                 ndr->offset = _relative_save_offset;
   14541             :                         }
   14542           2 :                         ndr->flags = _flags_save_string_array;
   14543             :                 }
   14544             :                 {
   14545           2 :                         libndr_flags _flags_save_string = ndr->flags;
   14546           2 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   14547           2 :                         if (r->monitor_name) {
   14548           0 :                                 uint32_t _relative_save_offset;
   14549           0 :                                 _relative_save_offset = ndr->offset;
   14550           0 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
   14551           0 :                                 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
   14552           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
   14553           0 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
   14554           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
   14555           0 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   14556           0 :                                         ndr->relative_highest_offset = ndr->offset;
   14557             :                                 }
   14558           0 :                                 ndr->offset = _relative_save_offset;
   14559             :                         }
   14560           2 :                         ndr->flags = _flags_save_string;
   14561             :                 }
   14562             :                 {
   14563           2 :                         libndr_flags _flags_save_string = ndr->flags;
   14564           2 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   14565           2 :                         if (r->default_datatype) {
   14566           0 :                                 uint32_t _relative_save_offset;
   14567           0 :                                 _relative_save_offset = ndr->offset;
   14568           0 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
   14569           0 :                                 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
   14570           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
   14571           0 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
   14572           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
   14573           0 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   14574           0 :                                         ndr->relative_highest_offset = ndr->offset;
   14575             :                                 }
   14576           0 :                                 ndr->offset = _relative_save_offset;
   14577             :                         }
   14578           2 :                         ndr->flags = _flags_save_string;
   14579             :                 }
   14580             :                 {
   14581           2 :                         libndr_flags _flags_save_string_array = ndr->flags;
   14582           2 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   14583           2 :                         if (r->previous_names) {
   14584           0 :                                 uint32_t _relative_save_offset;
   14585           0 :                                 _relative_save_offset = ndr->offset;
   14586           0 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
   14587           0 :                                 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
   14588           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
   14589           0 :                                 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
   14590           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
   14591           0 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   14592           0 :                                         ndr->relative_highest_offset = ndr->offset;
   14593             :                                 }
   14594           0 :                                 ndr->offset = _relative_save_offset;
   14595             :                         }
   14596           2 :                         ndr->flags = _flags_save_string_array;
   14597             :                 }
   14598             :                 {
   14599           2 :                         libndr_flags _flags_save_string = ndr->flags;
   14600           2 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   14601           2 :                         if (r->manufacturer_name) {
   14602           2 :                                 uint32_t _relative_save_offset;
   14603           2 :                                 _relative_save_offset = ndr->offset;
   14604           2 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_name));
   14605           2 :                                 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
   14606           2 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
   14607           2 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_name));
   14608           2 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
   14609           2 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   14610           0 :                                         ndr->relative_highest_offset = ndr->offset;
   14611             :                                 }
   14612           2 :                                 ndr->offset = _relative_save_offset;
   14613             :                         }
   14614           2 :                         ndr->flags = _flags_save_string;
   14615             :                 }
   14616             :                 {
   14617           2 :                         libndr_flags _flags_save_string = ndr->flags;
   14618           2 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   14619           2 :                         if (r->manufacturer_url) {
   14620           2 :                                 uint32_t _relative_save_offset;
   14621           2 :                                 _relative_save_offset = ndr->offset;
   14622           2 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_url));
   14623           2 :                                 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
   14624           2 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
   14625           2 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_url));
   14626           2 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
   14627           2 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   14628           0 :                                         ndr->relative_highest_offset = ndr->offset;
   14629             :                                 }
   14630           2 :                                 ndr->offset = _relative_save_offset;
   14631             :                         }
   14632           2 :                         ndr->flags = _flags_save_string;
   14633             :                 }
   14634             :                 {
   14635           2 :                         libndr_flags _flags_save_string = ndr->flags;
   14636           2 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   14637           2 :                         if (r->hardware_id) {
   14638           2 :                                 uint32_t _relative_save_offset;
   14639           2 :                                 _relative_save_offset = ndr->offset;
   14640           2 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->hardware_id));
   14641           2 :                                 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
   14642           2 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
   14643           2 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->hardware_id));
   14644           2 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
   14645           2 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   14646           0 :                                         ndr->relative_highest_offset = ndr->offset;
   14647             :                                 }
   14648           2 :                                 ndr->offset = _relative_save_offset;
   14649             :                         }
   14650           2 :                         ndr->flags = _flags_save_string;
   14651             :                 }
   14652             :                 {
   14653           2 :                         libndr_flags _flags_save_string = ndr->flags;
   14654           2 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   14655           2 :                         if (r->provider) {
   14656           2 :                                 uint32_t _relative_save_offset;
   14657           2 :                                 _relative_save_offset = ndr->offset;
   14658           2 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->provider));
   14659           2 :                                 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
   14660           2 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
   14661           2 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->provider));
   14662           2 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
   14663           2 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   14664           0 :                                         ndr->relative_highest_offset = ndr->offset;
   14665             :                                 }
   14666           2 :                                 ndr->offset = _relative_save_offset;
   14667             :                         }
   14668           2 :                         ndr->flags = _flags_save_string;
   14669             :                 }
   14670             :         }
   14671           0 :         return NDR_ERR_SUCCESS;
   14672             : }
   14673             : 
   14674           0 : static void ndr_print_flags_spoolss_DriverInfo6(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_DriverInfo6 *r)
   14675             : {
   14676           0 :         ndr_print_spoolss_DriverInfo6(ndr, name, r);
   14677           0 : }
   14678             : 
   14679           2 : _PUBLIC_ void ndr_print_spoolss_DriverInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo6 *r)
   14680             : {
   14681           2 :         ndr_print_struct(ndr, name, "spoolss_DriverInfo6");
   14682           2 :         if (r == NULL) { ndr_print_null(ndr); return; }
   14683           2 :         ndr->depth++;
   14684           2 :         ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
   14685             :         {
   14686           2 :                 libndr_flags _flags_save_string = ndr->flags;
   14687           2 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   14688           2 :                 ndr_print_ptr(ndr, "driver_name", r->driver_name);
   14689           2 :                 ndr->depth++;
   14690           2 :                 if (r->driver_name) {
   14691           2 :                         ndr_print_string(ndr, "driver_name", r->driver_name);
   14692             :                 }
   14693           2 :                 ndr->depth--;
   14694           2 :                 ndr->flags = _flags_save_string;
   14695             :         }
   14696             :         {
   14697           2 :                 libndr_flags _flags_save_string = ndr->flags;
   14698           2 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   14699           2 :                 ndr_print_ptr(ndr, "architecture", r->architecture);
   14700           2 :                 ndr->depth++;
   14701           2 :                 if (r->architecture) {
   14702           2 :                         ndr_print_string(ndr, "architecture", r->architecture);
   14703             :                 }
   14704           2 :                 ndr->depth--;
   14705           2 :                 ndr->flags = _flags_save_string;
   14706             :         }
   14707             :         {
   14708           2 :                 libndr_flags _flags_save_string = ndr->flags;
   14709           2 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   14710           2 :                 ndr_print_ptr(ndr, "driver_path", r->driver_path);
   14711           2 :                 ndr->depth++;
   14712           2 :                 if (r->driver_path) {
   14713           2 :                         ndr_print_string(ndr, "driver_path", r->driver_path);
   14714             :                 }
   14715           2 :                 ndr->depth--;
   14716           2 :                 ndr->flags = _flags_save_string;
   14717             :         }
   14718             :         {
   14719           2 :                 libndr_flags _flags_save_string = ndr->flags;
   14720           2 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   14721           2 :                 ndr_print_ptr(ndr, "data_file", r->data_file);
   14722           2 :                 ndr->depth++;
   14723           2 :                 if (r->data_file) {
   14724           2 :                         ndr_print_string(ndr, "data_file", r->data_file);
   14725             :                 }
   14726           2 :                 ndr->depth--;
   14727           2 :                 ndr->flags = _flags_save_string;
   14728             :         }
   14729             :         {
   14730           2 :                 libndr_flags _flags_save_string = ndr->flags;
   14731           2 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   14732           2 :                 ndr_print_ptr(ndr, "config_file", r->config_file);
   14733           2 :                 ndr->depth++;
   14734           2 :                 if (r->config_file) {
   14735           2 :                         ndr_print_string(ndr, "config_file", r->config_file);
   14736             :                 }
   14737           2 :                 ndr->depth--;
   14738           2 :                 ndr->flags = _flags_save_string;
   14739             :         }
   14740             :         {
   14741           2 :                 libndr_flags _flags_save_string = ndr->flags;
   14742           2 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   14743           2 :                 ndr_print_ptr(ndr, "help_file", r->help_file);
   14744           2 :                 ndr->depth++;
   14745           2 :                 if (r->help_file) {
   14746           2 :                         ndr_print_string(ndr, "help_file", r->help_file);
   14747             :                 }
   14748           2 :                 ndr->depth--;
   14749           2 :                 ndr->flags = _flags_save_string;
   14750             :         }
   14751             :         {
   14752           2 :                 libndr_flags _flags_save_string_array = ndr->flags;
   14753           2 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   14754           2 :                 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
   14755           2 :                 ndr->depth++;
   14756           2 :                 if (r->dependent_files) {
   14757           2 :                         ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
   14758             :                 }
   14759           2 :                 ndr->depth--;
   14760           2 :                 ndr->flags = _flags_save_string_array;
   14761             :         }
   14762             :         {
   14763           2 :                 libndr_flags _flags_save_string = ndr->flags;
   14764           2 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   14765           2 :                 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
   14766           2 :                 ndr->depth++;
   14767           2 :                 if (r->monitor_name) {
   14768           0 :                         ndr_print_string(ndr, "monitor_name", r->monitor_name);
   14769             :                 }
   14770           2 :                 ndr->depth--;
   14771           2 :                 ndr->flags = _flags_save_string;
   14772             :         }
   14773             :         {
   14774           2 :                 libndr_flags _flags_save_string = ndr->flags;
   14775           2 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   14776           2 :                 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
   14777           2 :                 ndr->depth++;
   14778           2 :                 if (r->default_datatype) {
   14779           0 :                         ndr_print_string(ndr, "default_datatype", r->default_datatype);
   14780             :                 }
   14781           2 :                 ndr->depth--;
   14782           2 :                 ndr->flags = _flags_save_string;
   14783             :         }
   14784             :         {
   14785           2 :                 libndr_flags _flags_save_string_array = ndr->flags;
   14786           2 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   14787           2 :                 ndr_print_ptr(ndr, "previous_names", r->previous_names);
   14788           2 :                 ndr->depth++;
   14789           2 :                 if (r->previous_names) {
   14790           0 :                         ndr_print_string_array(ndr, "previous_names", r->previous_names);
   14791             :                 }
   14792           2 :                 ndr->depth--;
   14793           2 :                 ndr->flags = _flags_save_string_array;
   14794             :         }
   14795           2 :         ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
   14796           2 :         ndr_print_hyper(ndr, "driver_version", r->driver_version);
   14797             :         {
   14798           2 :                 libndr_flags _flags_save_string = ndr->flags;
   14799           2 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   14800           2 :                 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
   14801           2 :                 ndr->depth++;
   14802           2 :                 if (r->manufacturer_name) {
   14803           2 :                         ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
   14804             :                 }
   14805           2 :                 ndr->depth--;
   14806           2 :                 ndr->flags = _flags_save_string;
   14807             :         }
   14808             :         {
   14809           2 :                 libndr_flags _flags_save_string = ndr->flags;
   14810           2 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   14811           2 :                 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
   14812           2 :                 ndr->depth++;
   14813           2 :                 if (r->manufacturer_url) {
   14814           2 :                         ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
   14815             :                 }
   14816           2 :                 ndr->depth--;
   14817           2 :                 ndr->flags = _flags_save_string;
   14818             :         }
   14819             :         {
   14820           2 :                 libndr_flags _flags_save_string = ndr->flags;
   14821           2 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   14822           2 :                 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
   14823           2 :                 ndr->depth++;
   14824           2 :                 if (r->hardware_id) {
   14825           2 :                         ndr_print_string(ndr, "hardware_id", r->hardware_id);
   14826             :                 }
   14827           2 :                 ndr->depth--;
   14828           2 :                 ndr->flags = _flags_save_string;
   14829             :         }
   14830             :         {
   14831           2 :                 libndr_flags _flags_save_string = ndr->flags;
   14832           2 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   14833           2 :                 ndr_print_ptr(ndr, "provider", r->provider);
   14834           2 :                 ndr->depth++;
   14835           2 :                 if (r->provider) {
   14836           2 :                         ndr_print_string(ndr, "provider", r->provider);
   14837             :                 }
   14838           2 :                 ndr->depth--;
   14839           2 :                 ndr->flags = _flags_save_string;
   14840             :         }
   14841           2 :         ndr->depth--;
   14842             : }
   14843             : 
   14844           0 : _PUBLIC_ size_t ndr_size_spoolss_DriverInfo6(const struct spoolss_DriverInfo6 *r, libndr_flags flags)
   14845             : {
   14846           0 :         return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo6);
   14847             : }
   14848             : 
   14849           0 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo7(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_DriverInfo7 *r)
   14850             : {
   14851           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   14852           0 :         if (ndr_flags & NDR_SCALARS) {
   14853           0 :                 NDR_CHECK(ndr_push_align(ndr, 5));
   14854           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
   14855           0 :                 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
   14856             :                 {
   14857           0 :                         libndr_flags _flags_save_string = ndr->flags;
   14858           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   14859           0 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
   14860           0 :                         ndr->flags = _flags_save_string;
   14861             :                 }
   14862             :                 {
   14863           0 :                         libndr_flags _flags_save_string = ndr->flags;
   14864           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   14865           0 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->inf_name));
   14866           0 :                         ndr->flags = _flags_save_string;
   14867             :                 }
   14868             :                 {
   14869           0 :                         libndr_flags _flags_save_string = ndr->flags;
   14870           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   14871           0 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->install_source_root));
   14872           0 :                         ndr->flags = _flags_save_string;
   14873             :                 }
   14874           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
   14875             :         }
   14876           0 :         if (ndr_flags & NDR_BUFFERS) {
   14877             :                 {
   14878           0 :                         libndr_flags _flags_save_string = ndr->flags;
   14879           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   14880           0 :                         if (r->driver_name) {
   14881           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
   14882           0 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
   14883           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
   14884             :                         }
   14885           0 :                         ndr->flags = _flags_save_string;
   14886             :                 }
   14887             :                 {
   14888           0 :                         libndr_flags _flags_save_string = ndr->flags;
   14889           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   14890           0 :                         if (r->inf_name) {
   14891           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->inf_name));
   14892           0 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->inf_name));
   14893           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->inf_name));
   14894             :                         }
   14895           0 :                         ndr->flags = _flags_save_string;
   14896             :                 }
   14897             :                 {
   14898           0 :                         libndr_flags _flags_save_string = ndr->flags;
   14899           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   14900           0 :                         if (r->install_source_root) {
   14901           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->install_source_root));
   14902           0 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->install_source_root));
   14903           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->install_source_root));
   14904             :                         }
   14905           0 :                         ndr->flags = _flags_save_string;
   14906             :                 }
   14907             :         }
   14908           0 :         return NDR_ERR_SUCCESS;
   14909             : }
   14910             : 
   14911           0 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo7(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_DriverInfo7 *r)
   14912             : {
   14913           0 :         uint32_t _ptr_driver_name;
   14914           0 :         TALLOC_CTX *_mem_save_driver_name_0 = NULL;
   14915           0 :         uint32_t _ptr_inf_name;
   14916           0 :         TALLOC_CTX *_mem_save_inf_name_0 = NULL;
   14917           0 :         uint32_t _ptr_install_source_root;
   14918           0 :         TALLOC_CTX *_mem_save_install_source_root_0 = NULL;
   14919           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   14920           0 :         if (ndr_flags & NDR_SCALARS) {
   14921           0 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
   14922           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
   14923           0 :                 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
   14924             :                 {
   14925           0 :                         libndr_flags _flags_save_string = ndr->flags;
   14926           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   14927           0 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
   14928           0 :                         if (_ptr_driver_name) {
   14929           0 :                                 NDR_PULL_ALLOC(ndr, r->driver_name);
   14930           0 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
   14931             :                         } else {
   14932           0 :                                 r->driver_name = NULL;
   14933             :                         }
   14934           0 :                         ndr->flags = _flags_save_string;
   14935             :                 }
   14936             :                 {
   14937           0 :                         libndr_flags _flags_save_string = ndr->flags;
   14938           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   14939           0 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_inf_name));
   14940           0 :                         if (_ptr_inf_name) {
   14941           0 :                                 NDR_PULL_ALLOC(ndr, r->inf_name);
   14942           0 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->inf_name, _ptr_inf_name));
   14943             :                         } else {
   14944           0 :                                 r->inf_name = NULL;
   14945             :                         }
   14946           0 :                         ndr->flags = _flags_save_string;
   14947             :                 }
   14948             :                 {
   14949           0 :                         libndr_flags _flags_save_string = ndr->flags;
   14950           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   14951           0 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_install_source_root));
   14952           0 :                         if (_ptr_install_source_root) {
   14953           0 :                                 NDR_PULL_ALLOC(ndr, r->install_source_root);
   14954           0 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->install_source_root, _ptr_install_source_root));
   14955             :                         } else {
   14956           0 :                                 r->install_source_root = NULL;
   14957             :                         }
   14958           0 :                         ndr->flags = _flags_save_string;
   14959             :                 }
   14960           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
   14961             :         }
   14962           0 :         if (ndr_flags & NDR_BUFFERS) {
   14963             :                 {
   14964           0 :                         libndr_flags _flags_save_string = ndr->flags;
   14965           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   14966           0 :                         if (r->driver_name) {
   14967           0 :                                 uint32_t _relative_save_offset;
   14968           0 :                                 _relative_save_offset = ndr->offset;
   14969           0 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
   14970           0 :                                 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
   14971           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
   14972           0 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
   14973           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
   14974           0 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   14975           0 :                                         ndr->relative_highest_offset = ndr->offset;
   14976             :                                 }
   14977           0 :                                 ndr->offset = _relative_save_offset;
   14978             :                         }
   14979           0 :                         ndr->flags = _flags_save_string;
   14980             :                 }
   14981             :                 {
   14982           0 :                         libndr_flags _flags_save_string = ndr->flags;
   14983           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   14984           0 :                         if (r->inf_name) {
   14985           0 :                                 uint32_t _relative_save_offset;
   14986           0 :                                 _relative_save_offset = ndr->offset;
   14987           0 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->inf_name));
   14988           0 :                                 _mem_save_inf_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
   14989           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->inf_name, 0);
   14990           0 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->inf_name));
   14991           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_inf_name_0, 0);
   14992           0 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   14993           0 :                                         ndr->relative_highest_offset = ndr->offset;
   14994             :                                 }
   14995           0 :                                 ndr->offset = _relative_save_offset;
   14996             :                         }
   14997           0 :                         ndr->flags = _flags_save_string;
   14998             :                 }
   14999             :                 {
   15000           0 :                         libndr_flags _flags_save_string = ndr->flags;
   15001           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   15002           0 :                         if (r->install_source_root) {
   15003           0 :                                 uint32_t _relative_save_offset;
   15004           0 :                                 _relative_save_offset = ndr->offset;
   15005           0 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->install_source_root));
   15006           0 :                                 _mem_save_install_source_root_0 = NDR_PULL_GET_MEM_CTX(ndr);
   15007           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->install_source_root, 0);
   15008           0 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->install_source_root));
   15009           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_install_source_root_0, 0);
   15010           0 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   15011           0 :                                         ndr->relative_highest_offset = ndr->offset;
   15012             :                                 }
   15013           0 :                                 ndr->offset = _relative_save_offset;
   15014             :                         }
   15015           0 :                         ndr->flags = _flags_save_string;
   15016             :                 }
   15017             :         }
   15018           0 :         return NDR_ERR_SUCCESS;
   15019             : }
   15020             : 
   15021           0 : static void ndr_print_flags_spoolss_DriverInfo7(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_DriverInfo7 *r)
   15022             : {
   15023           0 :         ndr_print_spoolss_DriverInfo7(ndr, name, r);
   15024           0 : }
   15025             : 
   15026           0 : _PUBLIC_ void ndr_print_spoolss_DriverInfo7(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo7 *r)
   15027             : {
   15028           0 :         ndr_print_struct(ndr, name, "spoolss_DriverInfo7");
   15029           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   15030           0 :         ndr->depth++;
   15031           0 :         ndr_print_uint32(ndr, "size", r->size);
   15032           0 :         ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
   15033             :         {
   15034           0 :                 libndr_flags _flags_save_string = ndr->flags;
   15035           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   15036           0 :                 ndr_print_ptr(ndr, "driver_name", r->driver_name);
   15037           0 :                 ndr->depth++;
   15038           0 :                 if (r->driver_name) {
   15039           0 :                         ndr_print_string(ndr, "driver_name", r->driver_name);
   15040             :                 }
   15041           0 :                 ndr->depth--;
   15042           0 :                 ndr->flags = _flags_save_string;
   15043             :         }
   15044             :         {
   15045           0 :                 libndr_flags _flags_save_string = ndr->flags;
   15046           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   15047           0 :                 ndr_print_ptr(ndr, "inf_name", r->inf_name);
   15048           0 :                 ndr->depth++;
   15049           0 :                 if (r->inf_name) {
   15050           0 :                         ndr_print_string(ndr, "inf_name", r->inf_name);
   15051             :                 }
   15052           0 :                 ndr->depth--;
   15053           0 :                 ndr->flags = _flags_save_string;
   15054             :         }
   15055             :         {
   15056           0 :                 libndr_flags _flags_save_string = ndr->flags;
   15057           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   15058           0 :                 ndr_print_ptr(ndr, "install_source_root", r->install_source_root);
   15059           0 :                 ndr->depth++;
   15060           0 :                 if (r->install_source_root) {
   15061           0 :                         ndr_print_string(ndr, "install_source_root", r->install_source_root);
   15062             :                 }
   15063           0 :                 ndr->depth--;
   15064           0 :                 ndr->flags = _flags_save_string;
   15065             :         }
   15066           0 :         ndr->depth--;
   15067             : }
   15068             : 
   15069           0 : _PUBLIC_ size_t ndr_size_spoolss_DriverInfo7(const struct spoolss_DriverInfo7 *r, libndr_flags flags)
   15070             : {
   15071           0 :         return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo7);
   15072             : }
   15073             : 
   15074           0 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo8(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_DriverInfo8 *r)
   15075             : {
   15076           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   15077           0 :         if (ndr_flags & NDR_SCALARS) {
   15078           0 :                 NDR_CHECK(ndr_push_align(ndr, 8));
   15079           0 :                 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
   15080             :                 {
   15081           0 :                         libndr_flags _flags_save_string = ndr->flags;
   15082           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   15083           0 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
   15084           0 :                         ndr->flags = _flags_save_string;
   15085             :                 }
   15086             :                 {
   15087           0 :                         libndr_flags _flags_save_string = ndr->flags;
   15088           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   15089           0 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
   15090           0 :                         ndr->flags = _flags_save_string;
   15091             :                 }
   15092             :                 {
   15093           0 :                         libndr_flags _flags_save_string = ndr->flags;
   15094           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   15095           0 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
   15096           0 :                         ndr->flags = _flags_save_string;
   15097             :                 }
   15098             :                 {
   15099           0 :                         libndr_flags _flags_save_string = ndr->flags;
   15100           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   15101           0 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
   15102           0 :                         ndr->flags = _flags_save_string;
   15103             :                 }
   15104             :                 {
   15105           0 :                         libndr_flags _flags_save_string = ndr->flags;
   15106           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   15107           0 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
   15108           0 :                         ndr->flags = _flags_save_string;
   15109             :                 }
   15110             :                 {
   15111           0 :                         libndr_flags _flags_save_string = ndr->flags;
   15112           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   15113           0 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
   15114           0 :                         ndr->flags = _flags_save_string;
   15115             :                 }
   15116             :                 {
   15117           0 :                         libndr_flags _flags_save_string_array = ndr->flags;
   15118           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   15119           0 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
   15120           0 :                         ndr->flags = _flags_save_string_array;
   15121             :                 }
   15122             :                 {
   15123           0 :                         libndr_flags _flags_save_string = ndr->flags;
   15124           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   15125           0 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
   15126           0 :                         ndr->flags = _flags_save_string;
   15127             :                 }
   15128             :                 {
   15129           0 :                         libndr_flags _flags_save_string = ndr->flags;
   15130           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   15131           0 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
   15132           0 :                         ndr->flags = _flags_save_string;
   15133             :                 }
   15134             :                 {
   15135           0 :                         libndr_flags _flags_save_string_array = ndr->flags;
   15136           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   15137           0 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
   15138           0 :                         ndr->flags = _flags_save_string_array;
   15139             :                 }
   15140           0 :                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
   15141           0 :                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
   15142             :                 {
   15143           0 :                         libndr_flags _flags_save_string = ndr->flags;
   15144           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   15145           0 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_name));
   15146           0 :                         ndr->flags = _flags_save_string;
   15147             :                 }
   15148             :                 {
   15149           0 :                         libndr_flags _flags_save_string = ndr->flags;
   15150           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   15151           0 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_url));
   15152           0 :                         ndr->flags = _flags_save_string;
   15153             :                 }
   15154             :                 {
   15155           0 :                         libndr_flags _flags_save_string = ndr->flags;
   15156           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   15157           0 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->hardware_id));
   15158           0 :                         ndr->flags = _flags_save_string;
   15159             :                 }
   15160             :                 {
   15161           0 :                         libndr_flags _flags_save_string = ndr->flags;
   15162           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   15163           0 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->provider));
   15164           0 :                         ndr->flags = _flags_save_string;
   15165             :                 }
   15166             :                 {
   15167           0 :                         libndr_flags _flags_save_string = ndr->flags;
   15168           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   15169           0 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor));
   15170           0 :                         ndr->flags = _flags_save_string;
   15171             :                 }
   15172             :                 {
   15173           0 :                         libndr_flags _flags_save_string = ndr->flags;
   15174           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   15175           0 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->vendor_setup));
   15176           0 :                         ndr->flags = _flags_save_string;
   15177             :                 }
   15178             :                 {
   15179           0 :                         libndr_flags _flags_save_string_array = ndr->flags;
   15180           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   15181           0 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->color_profiles));
   15182           0 :                         ndr->flags = _flags_save_string_array;
   15183             :                 }
   15184             :                 {
   15185           0 :                         libndr_flags _flags_save_string = ndr->flags;
   15186           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   15187           0 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->inf_path));
   15188           0 :                         ndr->flags = _flags_save_string;
   15189             :                 }
   15190           0 :                 NDR_CHECK(ndr_push_spoolss_DriverAttributes(ndr, NDR_SCALARS, r->printer_driver_attributes));
   15191             :                 {
   15192           0 :                         libndr_flags _flags_save_string_array = ndr->flags;
   15193           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   15194           0 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->core_driver_dependencies));
   15195           0 :                         ndr->flags = _flags_save_string_array;
   15196             :                 }
   15197           0 :                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->min_inbox_driver_ver_date));
   15198           0 :                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->min_inbox_driver_ver_version));
   15199           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
   15200             :         }
   15201           0 :         if (ndr_flags & NDR_BUFFERS) {
   15202             :                 {
   15203           0 :                         libndr_flags _flags_save_string = ndr->flags;
   15204           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   15205           0 :                         if (r->driver_name) {
   15206           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
   15207           0 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
   15208           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
   15209             :                         }
   15210           0 :                         ndr->flags = _flags_save_string;
   15211             :                 }
   15212             :                 {
   15213           0 :                         libndr_flags _flags_save_string = ndr->flags;
   15214           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   15215           0 :                         if (r->architecture) {
   15216           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->architecture));
   15217           0 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
   15218           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->architecture));
   15219             :                         }
   15220           0 :                         ndr->flags = _flags_save_string;
   15221             :                 }
   15222             :                 {
   15223           0 :                         libndr_flags _flags_save_string = ndr->flags;
   15224           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   15225           0 :                         if (r->driver_path) {
   15226           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_path));
   15227           0 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
   15228           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_path));
   15229             :                         }
   15230           0 :                         ndr->flags = _flags_save_string;
   15231             :                 }
   15232             :                 {
   15233           0 :                         libndr_flags _flags_save_string = ndr->flags;
   15234           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   15235           0 :                         if (r->data_file) {
   15236           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_file));
   15237           0 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
   15238           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_file));
   15239             :                         }
   15240           0 :                         ndr->flags = _flags_save_string;
   15241             :                 }
   15242             :                 {
   15243           0 :                         libndr_flags _flags_save_string = ndr->flags;
   15244           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   15245           0 :                         if (r->config_file) {
   15246           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->config_file));
   15247           0 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
   15248           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->config_file));
   15249             :                         }
   15250           0 :                         ndr->flags = _flags_save_string;
   15251             :                 }
   15252             :                 {
   15253           0 :                         libndr_flags _flags_save_string = ndr->flags;
   15254           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   15255           0 :                         if (r->help_file) {
   15256           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->help_file));
   15257           0 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
   15258           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->help_file));
   15259             :                         }
   15260           0 :                         ndr->flags = _flags_save_string;
   15261             :                 }
   15262             :                 {
   15263           0 :                         libndr_flags _flags_save_string_array = ndr->flags;
   15264           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   15265           0 :                         if (r->dependent_files) {
   15266           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->dependent_files));
   15267           0 :                                 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
   15268           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->dependent_files));
   15269             :                         }
   15270           0 :                         ndr->flags = _flags_save_string_array;
   15271             :                 }
   15272             :                 {
   15273           0 :                         libndr_flags _flags_save_string = ndr->flags;
   15274           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   15275           0 :                         if (r->monitor_name) {
   15276           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->monitor_name));
   15277           0 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
   15278           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->monitor_name));
   15279             :                         }
   15280           0 :                         ndr->flags = _flags_save_string;
   15281             :                 }
   15282             :                 {
   15283           0 :                         libndr_flags _flags_save_string = ndr->flags;
   15284           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   15285           0 :                         if (r->default_datatype) {
   15286           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->default_datatype));
   15287           0 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
   15288           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->default_datatype));
   15289             :                         }
   15290           0 :                         ndr->flags = _flags_save_string;
   15291             :                 }
   15292             :                 {
   15293           0 :                         libndr_flags _flags_save_string_array = ndr->flags;
   15294           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   15295           0 :                         if (r->previous_names) {
   15296           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->previous_names));
   15297           0 :                                 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
   15298           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->previous_names));
   15299             :                         }
   15300           0 :                         ndr->flags = _flags_save_string_array;
   15301             :                 }
   15302             :                 {
   15303           0 :                         libndr_flags _flags_save_string = ndr->flags;
   15304           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   15305           0 :                         if (r->manufacturer_name) {
   15306           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->manufacturer_name));
   15307           0 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_name));
   15308           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->manufacturer_name));
   15309             :                         }
   15310           0 :                         ndr->flags = _flags_save_string;
   15311             :                 }
   15312             :                 {
   15313           0 :                         libndr_flags _flags_save_string = ndr->flags;
   15314           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   15315           0 :                         if (r->manufacturer_url) {
   15316           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->manufacturer_url));
   15317           0 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_url));
   15318           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->manufacturer_url));
   15319             :                         }
   15320           0 :                         ndr->flags = _flags_save_string;
   15321             :                 }
   15322             :                 {
   15323           0 :                         libndr_flags _flags_save_string = ndr->flags;
   15324           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   15325           0 :                         if (r->hardware_id) {
   15326           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->hardware_id));
   15327           0 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->hardware_id));
   15328           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->hardware_id));
   15329             :                         }
   15330           0 :                         ndr->flags = _flags_save_string;
   15331             :                 }
   15332             :                 {
   15333           0 :                         libndr_flags _flags_save_string = ndr->flags;
   15334           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   15335           0 :                         if (r->provider) {
   15336           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->provider));
   15337           0 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->provider));
   15338           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->provider));
   15339             :                         }
   15340           0 :                         ndr->flags = _flags_save_string;
   15341             :                 }
   15342             :                 {
   15343           0 :                         libndr_flags _flags_save_string = ndr->flags;
   15344           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   15345           0 :                         if (r->print_processor) {
   15346           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->print_processor));
   15347           0 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor));
   15348           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->print_processor));
   15349             :                         }
   15350           0 :                         ndr->flags = _flags_save_string;
   15351             :                 }
   15352             :                 {
   15353           0 :                         libndr_flags _flags_save_string = ndr->flags;
   15354           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   15355           0 :                         if (r->vendor_setup) {
   15356           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->vendor_setup));
   15357           0 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->vendor_setup));
   15358           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->vendor_setup));
   15359             :                         }
   15360           0 :                         ndr->flags = _flags_save_string;
   15361             :                 }
   15362             :                 {
   15363           0 :                         libndr_flags _flags_save_string_array = ndr->flags;
   15364           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   15365           0 :                         if (r->color_profiles) {
   15366           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->color_profiles));
   15367           0 :                                 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->color_profiles));
   15368           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->color_profiles));
   15369             :                         }
   15370           0 :                         ndr->flags = _flags_save_string_array;
   15371             :                 }
   15372             :                 {
   15373           0 :                         libndr_flags _flags_save_string = ndr->flags;
   15374           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   15375           0 :                         if (r->inf_path) {
   15376           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->inf_path));
   15377           0 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->inf_path));
   15378           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->inf_path));
   15379             :                         }
   15380           0 :                         ndr->flags = _flags_save_string;
   15381             :                 }
   15382             :                 {
   15383           0 :                         libndr_flags _flags_save_string_array = ndr->flags;
   15384           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   15385           0 :                         if (r->core_driver_dependencies) {
   15386           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->core_driver_dependencies));
   15387           0 :                                 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->core_driver_dependencies));
   15388           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->core_driver_dependencies));
   15389             :                         }
   15390           0 :                         ndr->flags = _flags_save_string_array;
   15391             :                 }
   15392             :         }
   15393           0 :         return NDR_ERR_SUCCESS;
   15394             : }
   15395             : 
   15396           0 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo8(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_DriverInfo8 *r)
   15397             : {
   15398           0 :         uint32_t _ptr_driver_name;
   15399           0 :         TALLOC_CTX *_mem_save_driver_name_0 = NULL;
   15400           0 :         uint32_t _ptr_architecture;
   15401           0 :         TALLOC_CTX *_mem_save_architecture_0 = NULL;
   15402           0 :         uint32_t _ptr_driver_path;
   15403           0 :         TALLOC_CTX *_mem_save_driver_path_0 = NULL;
   15404           0 :         uint32_t _ptr_data_file;
   15405           0 :         TALLOC_CTX *_mem_save_data_file_0 = NULL;
   15406           0 :         uint32_t _ptr_config_file;
   15407           0 :         TALLOC_CTX *_mem_save_config_file_0 = NULL;
   15408           0 :         uint32_t _ptr_help_file;
   15409           0 :         TALLOC_CTX *_mem_save_help_file_0 = NULL;
   15410           0 :         uint32_t _ptr_dependent_files;
   15411           0 :         TALLOC_CTX *_mem_save_dependent_files_0 = NULL;
   15412           0 :         uint32_t _ptr_monitor_name;
   15413           0 :         TALLOC_CTX *_mem_save_monitor_name_0 = NULL;
   15414           0 :         uint32_t _ptr_default_datatype;
   15415           0 :         TALLOC_CTX *_mem_save_default_datatype_0 = NULL;
   15416           0 :         uint32_t _ptr_previous_names;
   15417           0 :         TALLOC_CTX *_mem_save_previous_names_0 = NULL;
   15418           0 :         uint32_t _ptr_manufacturer_name;
   15419           0 :         TALLOC_CTX *_mem_save_manufacturer_name_0 = NULL;
   15420           0 :         uint32_t _ptr_manufacturer_url;
   15421           0 :         TALLOC_CTX *_mem_save_manufacturer_url_0 = NULL;
   15422           0 :         uint32_t _ptr_hardware_id;
   15423           0 :         TALLOC_CTX *_mem_save_hardware_id_0 = NULL;
   15424           0 :         uint32_t _ptr_provider;
   15425           0 :         TALLOC_CTX *_mem_save_provider_0 = NULL;
   15426           0 :         uint32_t _ptr_print_processor;
   15427           0 :         TALLOC_CTX *_mem_save_print_processor_0 = NULL;
   15428           0 :         uint32_t _ptr_vendor_setup;
   15429           0 :         TALLOC_CTX *_mem_save_vendor_setup_0 = NULL;
   15430           0 :         uint32_t _ptr_color_profiles;
   15431           0 :         TALLOC_CTX *_mem_save_color_profiles_0 = NULL;
   15432           0 :         uint32_t _ptr_inf_path;
   15433           0 :         TALLOC_CTX *_mem_save_inf_path_0 = NULL;
   15434           0 :         uint32_t _ptr_core_driver_dependencies;
   15435           0 :         TALLOC_CTX *_mem_save_core_driver_dependencies_0 = NULL;
   15436           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   15437           0 :         if (ndr_flags & NDR_SCALARS) {
   15438           0 :                 NDR_CHECK(ndr_pull_align(ndr, 8));
   15439           0 :                 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
   15440             :                 {
   15441           0 :                         libndr_flags _flags_save_string = ndr->flags;
   15442           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   15443           0 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
   15444           0 :                         if (_ptr_driver_name) {
   15445           0 :                                 NDR_PULL_ALLOC(ndr, r->driver_name);
   15446           0 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
   15447             :                         } else {
   15448           0 :                                 r->driver_name = NULL;
   15449             :                         }
   15450           0 :                         ndr->flags = _flags_save_string;
   15451             :                 }
   15452             :                 {
   15453           0 :                         libndr_flags _flags_save_string = ndr->flags;
   15454           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   15455           0 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
   15456           0 :                         if (_ptr_architecture) {
   15457           0 :                                 NDR_PULL_ALLOC(ndr, r->architecture);
   15458           0 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
   15459             :                         } else {
   15460           0 :                                 r->architecture = NULL;
   15461             :                         }
   15462           0 :                         ndr->flags = _flags_save_string;
   15463             :                 }
   15464             :                 {
   15465           0 :                         libndr_flags _flags_save_string = ndr->flags;
   15466           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   15467           0 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
   15468           0 :                         if (_ptr_driver_path) {
   15469           0 :                                 NDR_PULL_ALLOC(ndr, r->driver_path);
   15470           0 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
   15471             :                         } else {
   15472           0 :                                 r->driver_path = NULL;
   15473             :                         }
   15474           0 :                         ndr->flags = _flags_save_string;
   15475             :                 }
   15476             :                 {
   15477           0 :                         libndr_flags _flags_save_string = ndr->flags;
   15478           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   15479           0 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
   15480           0 :                         if (_ptr_data_file) {
   15481           0 :                                 NDR_PULL_ALLOC(ndr, r->data_file);
   15482           0 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
   15483             :                         } else {
   15484           0 :                                 r->data_file = NULL;
   15485             :                         }
   15486           0 :                         ndr->flags = _flags_save_string;
   15487             :                 }
   15488             :                 {
   15489           0 :                         libndr_flags _flags_save_string = ndr->flags;
   15490           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   15491           0 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
   15492           0 :                         if (_ptr_config_file) {
   15493           0 :                                 NDR_PULL_ALLOC(ndr, r->config_file);
   15494           0 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
   15495             :                         } else {
   15496           0 :                                 r->config_file = NULL;
   15497             :                         }
   15498           0 :                         ndr->flags = _flags_save_string;
   15499             :                 }
   15500             :                 {
   15501           0 :                         libndr_flags _flags_save_string = ndr->flags;
   15502           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   15503           0 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
   15504           0 :                         if (_ptr_help_file) {
   15505           0 :                                 NDR_PULL_ALLOC(ndr, r->help_file);
   15506           0 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
   15507             :                         } else {
   15508           0 :                                 r->help_file = NULL;
   15509             :                         }
   15510           0 :                         ndr->flags = _flags_save_string;
   15511             :                 }
   15512             :                 {
   15513           0 :                         libndr_flags _flags_save_string_array = ndr->flags;
   15514           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   15515           0 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
   15516           0 :                         if (_ptr_dependent_files) {
   15517           0 :                                 NDR_PULL_ALLOC(ndr, r->dependent_files);
   15518           0 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
   15519             :                         } else {
   15520           0 :                                 r->dependent_files = NULL;
   15521             :                         }
   15522           0 :                         ndr->flags = _flags_save_string_array;
   15523             :                 }
   15524             :                 {
   15525           0 :                         libndr_flags _flags_save_string = ndr->flags;
   15526           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   15527           0 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
   15528           0 :                         if (_ptr_monitor_name) {
   15529           0 :                                 NDR_PULL_ALLOC(ndr, r->monitor_name);
   15530           0 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
   15531             :                         } else {
   15532           0 :                                 r->monitor_name = NULL;
   15533             :                         }
   15534           0 :                         ndr->flags = _flags_save_string;
   15535             :                 }
   15536             :                 {
   15537           0 :                         libndr_flags _flags_save_string = ndr->flags;
   15538           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   15539           0 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
   15540           0 :                         if (_ptr_default_datatype) {
   15541           0 :                                 NDR_PULL_ALLOC(ndr, r->default_datatype);
   15542           0 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
   15543             :                         } else {
   15544           0 :                                 r->default_datatype = NULL;
   15545             :                         }
   15546           0 :                         ndr->flags = _flags_save_string;
   15547             :                 }
   15548             :                 {
   15549           0 :                         libndr_flags _flags_save_string_array = ndr->flags;
   15550           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   15551           0 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
   15552           0 :                         if (_ptr_previous_names) {
   15553           0 :                                 NDR_PULL_ALLOC(ndr, r->previous_names);
   15554           0 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
   15555             :                         } else {
   15556           0 :                                 r->previous_names = NULL;
   15557             :                         }
   15558           0 :                         ndr->flags = _flags_save_string_array;
   15559             :                 }
   15560           0 :                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
   15561           0 :                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
   15562             :                 {
   15563           0 :                         libndr_flags _flags_save_string = ndr->flags;
   15564           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   15565           0 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
   15566           0 :                         if (_ptr_manufacturer_name) {
   15567           0 :                                 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
   15568           0 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_name, _ptr_manufacturer_name));
   15569             :                         } else {
   15570           0 :                                 r->manufacturer_name = NULL;
   15571             :                         }
   15572           0 :                         ndr->flags = _flags_save_string;
   15573             :                 }
   15574             :                 {
   15575           0 :                         libndr_flags _flags_save_string = ndr->flags;
   15576           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   15577           0 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
   15578           0 :                         if (_ptr_manufacturer_url) {
   15579           0 :                                 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
   15580           0 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_url, _ptr_manufacturer_url));
   15581             :                         } else {
   15582           0 :                                 r->manufacturer_url = NULL;
   15583             :                         }
   15584           0 :                         ndr->flags = _flags_save_string;
   15585             :                 }
   15586             :                 {
   15587           0 :                         libndr_flags _flags_save_string = ndr->flags;
   15588           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   15589           0 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
   15590           0 :                         if (_ptr_hardware_id) {
   15591           0 :                                 NDR_PULL_ALLOC(ndr, r->hardware_id);
   15592           0 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->hardware_id, _ptr_hardware_id));
   15593             :                         } else {
   15594           0 :                                 r->hardware_id = NULL;
   15595             :                         }
   15596           0 :                         ndr->flags = _flags_save_string;
   15597             :                 }
   15598             :                 {
   15599           0 :                         libndr_flags _flags_save_string = ndr->flags;
   15600           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   15601           0 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
   15602           0 :                         if (_ptr_provider) {
   15603           0 :                                 NDR_PULL_ALLOC(ndr, r->provider);
   15604           0 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->provider, _ptr_provider));
   15605             :                         } else {
   15606           0 :                                 r->provider = NULL;
   15607             :                         }
   15608           0 :                         ndr->flags = _flags_save_string;
   15609             :                 }
   15610             :                 {
   15611           0 :                         libndr_flags _flags_save_string = ndr->flags;
   15612           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   15613           0 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
   15614           0 :                         if (_ptr_print_processor) {
   15615           0 :                                 NDR_PULL_ALLOC(ndr, r->print_processor);
   15616           0 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor, _ptr_print_processor));
   15617             :                         } else {
   15618           0 :                                 r->print_processor = NULL;
   15619             :                         }
   15620           0 :                         ndr->flags = _flags_save_string;
   15621             :                 }
   15622             :                 {
   15623           0 :                         libndr_flags _flags_save_string = ndr->flags;
   15624           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   15625           0 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_vendor_setup));
   15626           0 :                         if (_ptr_vendor_setup) {
   15627           0 :                                 NDR_PULL_ALLOC(ndr, r->vendor_setup);
   15628           0 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->vendor_setup, _ptr_vendor_setup));
   15629             :                         } else {
   15630           0 :                                 r->vendor_setup = NULL;
   15631             :                         }
   15632           0 :                         ndr->flags = _flags_save_string;
   15633             :                 }
   15634             :                 {
   15635           0 :                         libndr_flags _flags_save_string_array = ndr->flags;
   15636           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   15637           0 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_color_profiles));
   15638           0 :                         if (_ptr_color_profiles) {
   15639           0 :                                 NDR_PULL_ALLOC(ndr, r->color_profiles);
   15640           0 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->color_profiles, _ptr_color_profiles));
   15641             :                         } else {
   15642           0 :                                 r->color_profiles = NULL;
   15643             :                         }
   15644           0 :                         ndr->flags = _flags_save_string_array;
   15645             :                 }
   15646             :                 {
   15647           0 :                         libndr_flags _flags_save_string = ndr->flags;
   15648           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   15649           0 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_inf_path));
   15650           0 :                         if (_ptr_inf_path) {
   15651           0 :                                 NDR_PULL_ALLOC(ndr, r->inf_path);
   15652           0 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->inf_path, _ptr_inf_path));
   15653             :                         } else {
   15654           0 :                                 r->inf_path = NULL;
   15655             :                         }
   15656           0 :                         ndr->flags = _flags_save_string;
   15657             :                 }
   15658           0 :                 NDR_CHECK(ndr_pull_spoolss_DriverAttributes(ndr, NDR_SCALARS, &r->printer_driver_attributes));
   15659             :                 {
   15660           0 :                         libndr_flags _flags_save_string_array = ndr->flags;
   15661           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   15662           0 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_core_driver_dependencies));
   15663           0 :                         if (_ptr_core_driver_dependencies) {
   15664           0 :                                 NDR_PULL_ALLOC(ndr, r->core_driver_dependencies);
   15665           0 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->core_driver_dependencies, _ptr_core_driver_dependencies));
   15666             :                         } else {
   15667           0 :                                 r->core_driver_dependencies = NULL;
   15668             :                         }
   15669           0 :                         ndr->flags = _flags_save_string_array;
   15670             :                 }
   15671           0 :                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_date));
   15672           0 :                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_version));
   15673           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
   15674             :         }
   15675           0 :         if (ndr_flags & NDR_BUFFERS) {
   15676             :                 {
   15677           0 :                         libndr_flags _flags_save_string = ndr->flags;
   15678           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   15679           0 :                         if (r->driver_name) {
   15680           0 :                                 uint32_t _relative_save_offset;
   15681           0 :                                 _relative_save_offset = ndr->offset;
   15682           0 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
   15683           0 :                                 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
   15684           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
   15685           0 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
   15686           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
   15687           0 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   15688           0 :                                         ndr->relative_highest_offset = ndr->offset;
   15689             :                                 }
   15690           0 :                                 ndr->offset = _relative_save_offset;
   15691             :                         }
   15692           0 :                         ndr->flags = _flags_save_string;
   15693             :                 }
   15694             :                 {
   15695           0 :                         libndr_flags _flags_save_string = ndr->flags;
   15696           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   15697           0 :                         if (r->architecture) {
   15698           0 :                                 uint32_t _relative_save_offset;
   15699           0 :                                 _relative_save_offset = ndr->offset;
   15700           0 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
   15701           0 :                                 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
   15702           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
   15703           0 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
   15704           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
   15705           0 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   15706           0 :                                         ndr->relative_highest_offset = ndr->offset;
   15707             :                                 }
   15708           0 :                                 ndr->offset = _relative_save_offset;
   15709             :                         }
   15710           0 :                         ndr->flags = _flags_save_string;
   15711             :                 }
   15712             :                 {
   15713           0 :                         libndr_flags _flags_save_string = ndr->flags;
   15714           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   15715           0 :                         if (r->driver_path) {
   15716           0 :                                 uint32_t _relative_save_offset;
   15717           0 :                                 _relative_save_offset = ndr->offset;
   15718           0 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
   15719           0 :                                 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
   15720           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
   15721           0 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
   15722           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
   15723           0 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   15724           0 :                                         ndr->relative_highest_offset = ndr->offset;
   15725             :                                 }
   15726           0 :                                 ndr->offset = _relative_save_offset;
   15727             :                         }
   15728           0 :                         ndr->flags = _flags_save_string;
   15729             :                 }
   15730             :                 {
   15731           0 :                         libndr_flags _flags_save_string = ndr->flags;
   15732           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   15733           0 :                         if (r->data_file) {
   15734           0 :                                 uint32_t _relative_save_offset;
   15735           0 :                                 _relative_save_offset = ndr->offset;
   15736           0 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
   15737           0 :                                 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
   15738           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
   15739           0 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
   15740           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
   15741           0 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   15742           0 :                                         ndr->relative_highest_offset = ndr->offset;
   15743             :                                 }
   15744           0 :                                 ndr->offset = _relative_save_offset;
   15745             :                         }
   15746           0 :                         ndr->flags = _flags_save_string;
   15747             :                 }
   15748             :                 {
   15749           0 :                         libndr_flags _flags_save_string = ndr->flags;
   15750           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   15751           0 :                         if (r->config_file) {
   15752           0 :                                 uint32_t _relative_save_offset;
   15753           0 :                                 _relative_save_offset = ndr->offset;
   15754           0 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
   15755           0 :                                 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
   15756           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
   15757           0 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
   15758           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
   15759           0 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   15760           0 :                                         ndr->relative_highest_offset = ndr->offset;
   15761             :                                 }
   15762           0 :                                 ndr->offset = _relative_save_offset;
   15763             :                         }
   15764           0 :                         ndr->flags = _flags_save_string;
   15765             :                 }
   15766             :                 {
   15767           0 :                         libndr_flags _flags_save_string = ndr->flags;
   15768           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   15769           0 :                         if (r->help_file) {
   15770           0 :                                 uint32_t _relative_save_offset;
   15771           0 :                                 _relative_save_offset = ndr->offset;
   15772           0 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
   15773           0 :                                 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
   15774           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
   15775           0 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
   15776           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
   15777           0 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   15778           0 :                                         ndr->relative_highest_offset = ndr->offset;
   15779             :                                 }
   15780           0 :                                 ndr->offset = _relative_save_offset;
   15781             :                         }
   15782           0 :                         ndr->flags = _flags_save_string;
   15783             :                 }
   15784             :                 {
   15785           0 :                         libndr_flags _flags_save_string_array = ndr->flags;
   15786           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   15787           0 :                         if (r->dependent_files) {
   15788           0 :                                 uint32_t _relative_save_offset;
   15789           0 :                                 _relative_save_offset = ndr->offset;
   15790           0 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
   15791           0 :                                 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
   15792           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
   15793           0 :                                 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
   15794           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
   15795           0 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   15796           0 :                                         ndr->relative_highest_offset = ndr->offset;
   15797             :                                 }
   15798           0 :                                 ndr->offset = _relative_save_offset;
   15799             :                         }
   15800           0 :                         ndr->flags = _flags_save_string_array;
   15801             :                 }
   15802             :                 {
   15803           0 :                         libndr_flags _flags_save_string = ndr->flags;
   15804           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   15805           0 :                         if (r->monitor_name) {
   15806           0 :                                 uint32_t _relative_save_offset;
   15807           0 :                                 _relative_save_offset = ndr->offset;
   15808           0 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
   15809           0 :                                 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
   15810           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
   15811           0 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
   15812           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
   15813           0 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   15814           0 :                                         ndr->relative_highest_offset = ndr->offset;
   15815             :                                 }
   15816           0 :                                 ndr->offset = _relative_save_offset;
   15817             :                         }
   15818           0 :                         ndr->flags = _flags_save_string;
   15819             :                 }
   15820             :                 {
   15821           0 :                         libndr_flags _flags_save_string = ndr->flags;
   15822           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   15823           0 :                         if (r->default_datatype) {
   15824           0 :                                 uint32_t _relative_save_offset;
   15825           0 :                                 _relative_save_offset = ndr->offset;
   15826           0 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
   15827           0 :                                 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
   15828           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
   15829           0 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
   15830           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
   15831           0 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   15832           0 :                                         ndr->relative_highest_offset = ndr->offset;
   15833             :                                 }
   15834           0 :                                 ndr->offset = _relative_save_offset;
   15835             :                         }
   15836           0 :                         ndr->flags = _flags_save_string;
   15837             :                 }
   15838             :                 {
   15839           0 :                         libndr_flags _flags_save_string_array = ndr->flags;
   15840           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   15841           0 :                         if (r->previous_names) {
   15842           0 :                                 uint32_t _relative_save_offset;
   15843           0 :                                 _relative_save_offset = ndr->offset;
   15844           0 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
   15845           0 :                                 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
   15846           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
   15847           0 :                                 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
   15848           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
   15849           0 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   15850           0 :                                         ndr->relative_highest_offset = ndr->offset;
   15851             :                                 }
   15852           0 :                                 ndr->offset = _relative_save_offset;
   15853             :                         }
   15854           0 :                         ndr->flags = _flags_save_string_array;
   15855             :                 }
   15856             :                 {
   15857           0 :                         libndr_flags _flags_save_string = ndr->flags;
   15858           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   15859           0 :                         if (r->manufacturer_name) {
   15860           0 :                                 uint32_t _relative_save_offset;
   15861           0 :                                 _relative_save_offset = ndr->offset;
   15862           0 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_name));
   15863           0 :                                 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
   15864           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
   15865           0 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_name));
   15866           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
   15867           0 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   15868           0 :                                         ndr->relative_highest_offset = ndr->offset;
   15869             :                                 }
   15870           0 :                                 ndr->offset = _relative_save_offset;
   15871             :                         }
   15872           0 :                         ndr->flags = _flags_save_string;
   15873             :                 }
   15874             :                 {
   15875           0 :                         libndr_flags _flags_save_string = ndr->flags;
   15876           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   15877           0 :                         if (r->manufacturer_url) {
   15878           0 :                                 uint32_t _relative_save_offset;
   15879           0 :                                 _relative_save_offset = ndr->offset;
   15880           0 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_url));
   15881           0 :                                 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
   15882           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
   15883           0 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_url));
   15884           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
   15885           0 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   15886           0 :                                         ndr->relative_highest_offset = ndr->offset;
   15887             :                                 }
   15888           0 :                                 ndr->offset = _relative_save_offset;
   15889             :                         }
   15890           0 :                         ndr->flags = _flags_save_string;
   15891             :                 }
   15892             :                 {
   15893           0 :                         libndr_flags _flags_save_string = ndr->flags;
   15894           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   15895           0 :                         if (r->hardware_id) {
   15896           0 :                                 uint32_t _relative_save_offset;
   15897           0 :                                 _relative_save_offset = ndr->offset;
   15898           0 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->hardware_id));
   15899           0 :                                 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
   15900           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
   15901           0 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->hardware_id));
   15902           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
   15903           0 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   15904           0 :                                         ndr->relative_highest_offset = ndr->offset;
   15905             :                                 }
   15906           0 :                                 ndr->offset = _relative_save_offset;
   15907             :                         }
   15908           0 :                         ndr->flags = _flags_save_string;
   15909             :                 }
   15910             :                 {
   15911           0 :                         libndr_flags _flags_save_string = ndr->flags;
   15912           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   15913           0 :                         if (r->provider) {
   15914           0 :                                 uint32_t _relative_save_offset;
   15915           0 :                                 _relative_save_offset = ndr->offset;
   15916           0 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->provider));
   15917           0 :                                 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
   15918           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
   15919           0 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->provider));
   15920           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
   15921           0 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   15922           0 :                                         ndr->relative_highest_offset = ndr->offset;
   15923             :                                 }
   15924           0 :                                 ndr->offset = _relative_save_offset;
   15925             :                         }
   15926           0 :                         ndr->flags = _flags_save_string;
   15927             :                 }
   15928             :                 {
   15929           0 :                         libndr_flags _flags_save_string = ndr->flags;
   15930           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   15931           0 :                         if (r->print_processor) {
   15932           0 :                                 uint32_t _relative_save_offset;
   15933           0 :                                 _relative_save_offset = ndr->offset;
   15934           0 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor));
   15935           0 :                                 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
   15936           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
   15937           0 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor));
   15938           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
   15939           0 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   15940           0 :                                         ndr->relative_highest_offset = ndr->offset;
   15941             :                                 }
   15942           0 :                                 ndr->offset = _relative_save_offset;
   15943             :                         }
   15944           0 :                         ndr->flags = _flags_save_string;
   15945             :                 }
   15946             :                 {
   15947           0 :                         libndr_flags _flags_save_string = ndr->flags;
   15948           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   15949           0 :                         if (r->vendor_setup) {
   15950           0 :                                 uint32_t _relative_save_offset;
   15951           0 :                                 _relative_save_offset = ndr->offset;
   15952           0 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->vendor_setup));
   15953           0 :                                 _mem_save_vendor_setup_0 = NDR_PULL_GET_MEM_CTX(ndr);
   15954           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->vendor_setup, 0);
   15955           0 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->vendor_setup));
   15956           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vendor_setup_0, 0);
   15957           0 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   15958           0 :                                         ndr->relative_highest_offset = ndr->offset;
   15959             :                                 }
   15960           0 :                                 ndr->offset = _relative_save_offset;
   15961             :                         }
   15962           0 :                         ndr->flags = _flags_save_string;
   15963             :                 }
   15964             :                 {
   15965           0 :                         libndr_flags _flags_save_string_array = ndr->flags;
   15966           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   15967           0 :                         if (r->color_profiles) {
   15968           0 :                                 uint32_t _relative_save_offset;
   15969           0 :                                 _relative_save_offset = ndr->offset;
   15970           0 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->color_profiles));
   15971           0 :                                 _mem_save_color_profiles_0 = NDR_PULL_GET_MEM_CTX(ndr);
   15972           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->color_profiles, 0);
   15973           0 :                                 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->color_profiles));
   15974           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_color_profiles_0, 0);
   15975           0 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   15976           0 :                                         ndr->relative_highest_offset = ndr->offset;
   15977             :                                 }
   15978           0 :                                 ndr->offset = _relative_save_offset;
   15979             :                         }
   15980           0 :                         ndr->flags = _flags_save_string_array;
   15981             :                 }
   15982             :                 {
   15983           0 :                         libndr_flags _flags_save_string = ndr->flags;
   15984           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   15985           0 :                         if (r->inf_path) {
   15986           0 :                                 uint32_t _relative_save_offset;
   15987           0 :                                 _relative_save_offset = ndr->offset;
   15988           0 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->inf_path));
   15989           0 :                                 _mem_save_inf_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
   15990           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->inf_path, 0);
   15991           0 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->inf_path));
   15992           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_inf_path_0, 0);
   15993           0 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   15994           0 :                                         ndr->relative_highest_offset = ndr->offset;
   15995             :                                 }
   15996           0 :                                 ndr->offset = _relative_save_offset;
   15997             :                         }
   15998           0 :                         ndr->flags = _flags_save_string;
   15999             :                 }
   16000             :                 {
   16001           0 :                         libndr_flags _flags_save_string_array = ndr->flags;
   16002           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   16003           0 :                         if (r->core_driver_dependencies) {
   16004           0 :                                 uint32_t _relative_save_offset;
   16005           0 :                                 _relative_save_offset = ndr->offset;
   16006           0 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->core_driver_dependencies));
   16007           0 :                                 _mem_save_core_driver_dependencies_0 = NDR_PULL_GET_MEM_CTX(ndr);
   16008           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->core_driver_dependencies, 0);
   16009           0 :                                 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->core_driver_dependencies));
   16010           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_core_driver_dependencies_0, 0);
   16011           0 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   16012           0 :                                         ndr->relative_highest_offset = ndr->offset;
   16013             :                                 }
   16014           0 :                                 ndr->offset = _relative_save_offset;
   16015             :                         }
   16016           0 :                         ndr->flags = _flags_save_string_array;
   16017             :                 }
   16018             :         }
   16019           0 :         return NDR_ERR_SUCCESS;
   16020             : }
   16021             : 
   16022           0 : static void ndr_print_flags_spoolss_DriverInfo8(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_DriverInfo8 *r)
   16023             : {
   16024           0 :         ndr_print_spoolss_DriverInfo8(ndr, name, r);
   16025           0 : }
   16026             : 
   16027           0 : _PUBLIC_ void ndr_print_spoolss_DriverInfo8(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo8 *r)
   16028             : {
   16029           0 :         ndr_print_struct(ndr, name, "spoolss_DriverInfo8");
   16030           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   16031           0 :         ndr->depth++;
   16032           0 :         ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
   16033             :         {
   16034           0 :                 libndr_flags _flags_save_string = ndr->flags;
   16035           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   16036           0 :                 ndr_print_ptr(ndr, "driver_name", r->driver_name);
   16037           0 :                 ndr->depth++;
   16038           0 :                 if (r->driver_name) {
   16039           0 :                         ndr_print_string(ndr, "driver_name", r->driver_name);
   16040             :                 }
   16041           0 :                 ndr->depth--;
   16042           0 :                 ndr->flags = _flags_save_string;
   16043             :         }
   16044             :         {
   16045           0 :                 libndr_flags _flags_save_string = ndr->flags;
   16046           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   16047           0 :                 ndr_print_ptr(ndr, "architecture", r->architecture);
   16048           0 :                 ndr->depth++;
   16049           0 :                 if (r->architecture) {
   16050           0 :                         ndr_print_string(ndr, "architecture", r->architecture);
   16051             :                 }
   16052           0 :                 ndr->depth--;
   16053           0 :                 ndr->flags = _flags_save_string;
   16054             :         }
   16055             :         {
   16056           0 :                 libndr_flags _flags_save_string = ndr->flags;
   16057           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   16058           0 :                 ndr_print_ptr(ndr, "driver_path", r->driver_path);
   16059           0 :                 ndr->depth++;
   16060           0 :                 if (r->driver_path) {
   16061           0 :                         ndr_print_string(ndr, "driver_path", r->driver_path);
   16062             :                 }
   16063           0 :                 ndr->depth--;
   16064           0 :                 ndr->flags = _flags_save_string;
   16065             :         }
   16066             :         {
   16067           0 :                 libndr_flags _flags_save_string = ndr->flags;
   16068           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   16069           0 :                 ndr_print_ptr(ndr, "data_file", r->data_file);
   16070           0 :                 ndr->depth++;
   16071           0 :                 if (r->data_file) {
   16072           0 :                         ndr_print_string(ndr, "data_file", r->data_file);
   16073             :                 }
   16074           0 :                 ndr->depth--;
   16075           0 :                 ndr->flags = _flags_save_string;
   16076             :         }
   16077             :         {
   16078           0 :                 libndr_flags _flags_save_string = ndr->flags;
   16079           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   16080           0 :                 ndr_print_ptr(ndr, "config_file", r->config_file);
   16081           0 :                 ndr->depth++;
   16082           0 :                 if (r->config_file) {
   16083           0 :                         ndr_print_string(ndr, "config_file", r->config_file);
   16084             :                 }
   16085           0 :                 ndr->depth--;
   16086           0 :                 ndr->flags = _flags_save_string;
   16087             :         }
   16088             :         {
   16089           0 :                 libndr_flags _flags_save_string = ndr->flags;
   16090           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   16091           0 :                 ndr_print_ptr(ndr, "help_file", r->help_file);
   16092           0 :                 ndr->depth++;
   16093           0 :                 if (r->help_file) {
   16094           0 :                         ndr_print_string(ndr, "help_file", r->help_file);
   16095             :                 }
   16096           0 :                 ndr->depth--;
   16097           0 :                 ndr->flags = _flags_save_string;
   16098             :         }
   16099             :         {
   16100           0 :                 libndr_flags _flags_save_string_array = ndr->flags;
   16101           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   16102           0 :                 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
   16103           0 :                 ndr->depth++;
   16104           0 :                 if (r->dependent_files) {
   16105           0 :                         ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
   16106             :                 }
   16107           0 :                 ndr->depth--;
   16108           0 :                 ndr->flags = _flags_save_string_array;
   16109             :         }
   16110             :         {
   16111           0 :                 libndr_flags _flags_save_string = ndr->flags;
   16112           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   16113           0 :                 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
   16114           0 :                 ndr->depth++;
   16115           0 :                 if (r->monitor_name) {
   16116           0 :                         ndr_print_string(ndr, "monitor_name", r->monitor_name);
   16117             :                 }
   16118           0 :                 ndr->depth--;
   16119           0 :                 ndr->flags = _flags_save_string;
   16120             :         }
   16121             :         {
   16122           0 :                 libndr_flags _flags_save_string = ndr->flags;
   16123           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   16124           0 :                 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
   16125           0 :                 ndr->depth++;
   16126           0 :                 if (r->default_datatype) {
   16127           0 :                         ndr_print_string(ndr, "default_datatype", r->default_datatype);
   16128             :                 }
   16129           0 :                 ndr->depth--;
   16130           0 :                 ndr->flags = _flags_save_string;
   16131             :         }
   16132             :         {
   16133           0 :                 libndr_flags _flags_save_string_array = ndr->flags;
   16134           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   16135           0 :                 ndr_print_ptr(ndr, "previous_names", r->previous_names);
   16136           0 :                 ndr->depth++;
   16137           0 :                 if (r->previous_names) {
   16138           0 :                         ndr_print_string_array(ndr, "previous_names", r->previous_names);
   16139             :                 }
   16140           0 :                 ndr->depth--;
   16141           0 :                 ndr->flags = _flags_save_string_array;
   16142             :         }
   16143           0 :         ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
   16144           0 :         ndr_print_hyper(ndr, "driver_version", r->driver_version);
   16145             :         {
   16146           0 :                 libndr_flags _flags_save_string = ndr->flags;
   16147           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   16148           0 :                 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
   16149           0 :                 ndr->depth++;
   16150           0 :                 if (r->manufacturer_name) {
   16151           0 :                         ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
   16152             :                 }
   16153           0 :                 ndr->depth--;
   16154           0 :                 ndr->flags = _flags_save_string;
   16155             :         }
   16156             :         {
   16157           0 :                 libndr_flags _flags_save_string = ndr->flags;
   16158           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   16159           0 :                 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
   16160           0 :                 ndr->depth++;
   16161           0 :                 if (r->manufacturer_url) {
   16162           0 :                         ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
   16163             :                 }
   16164           0 :                 ndr->depth--;
   16165           0 :                 ndr->flags = _flags_save_string;
   16166             :         }
   16167             :         {
   16168           0 :                 libndr_flags _flags_save_string = ndr->flags;
   16169           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   16170           0 :                 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
   16171           0 :                 ndr->depth++;
   16172           0 :                 if (r->hardware_id) {
   16173           0 :                         ndr_print_string(ndr, "hardware_id", r->hardware_id);
   16174             :                 }
   16175           0 :                 ndr->depth--;
   16176           0 :                 ndr->flags = _flags_save_string;
   16177             :         }
   16178             :         {
   16179           0 :                 libndr_flags _flags_save_string = ndr->flags;
   16180           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   16181           0 :                 ndr_print_ptr(ndr, "provider", r->provider);
   16182           0 :                 ndr->depth++;
   16183           0 :                 if (r->provider) {
   16184           0 :                         ndr_print_string(ndr, "provider", r->provider);
   16185             :                 }
   16186           0 :                 ndr->depth--;
   16187           0 :                 ndr->flags = _flags_save_string;
   16188             :         }
   16189             :         {
   16190           0 :                 libndr_flags _flags_save_string = ndr->flags;
   16191           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   16192           0 :                 ndr_print_ptr(ndr, "print_processor", r->print_processor);
   16193           0 :                 ndr->depth++;
   16194           0 :                 if (r->print_processor) {
   16195           0 :                         ndr_print_string(ndr, "print_processor", r->print_processor);
   16196             :                 }
   16197           0 :                 ndr->depth--;
   16198           0 :                 ndr->flags = _flags_save_string;
   16199             :         }
   16200             :         {
   16201           0 :                 libndr_flags _flags_save_string = ndr->flags;
   16202           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   16203           0 :                 ndr_print_ptr(ndr, "vendor_setup", r->vendor_setup);
   16204           0 :                 ndr->depth++;
   16205           0 :                 if (r->vendor_setup) {
   16206           0 :                         ndr_print_string(ndr, "vendor_setup", r->vendor_setup);
   16207             :                 }
   16208           0 :                 ndr->depth--;
   16209           0 :                 ndr->flags = _flags_save_string;
   16210             :         }
   16211             :         {
   16212           0 :                 libndr_flags _flags_save_string_array = ndr->flags;
   16213           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   16214           0 :                 ndr_print_ptr(ndr, "color_profiles", r->color_profiles);
   16215           0 :                 ndr->depth++;
   16216           0 :                 if (r->color_profiles) {
   16217           0 :                         ndr_print_string_array(ndr, "color_profiles", r->color_profiles);
   16218             :                 }
   16219           0 :                 ndr->depth--;
   16220           0 :                 ndr->flags = _flags_save_string_array;
   16221             :         }
   16222             :         {
   16223           0 :                 libndr_flags _flags_save_string = ndr->flags;
   16224           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   16225           0 :                 ndr_print_ptr(ndr, "inf_path", r->inf_path);
   16226           0 :                 ndr->depth++;
   16227           0 :                 if (r->inf_path) {
   16228           0 :                         ndr_print_string(ndr, "inf_path", r->inf_path);
   16229             :                 }
   16230           0 :                 ndr->depth--;
   16231           0 :                 ndr->flags = _flags_save_string;
   16232             :         }
   16233           0 :         ndr_print_spoolss_DriverAttributes(ndr, "printer_driver_attributes", r->printer_driver_attributes);
   16234             :         {
   16235           0 :                 libndr_flags _flags_save_string_array = ndr->flags;
   16236           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   16237           0 :                 ndr_print_ptr(ndr, "core_driver_dependencies", r->core_driver_dependencies);
   16238           0 :                 ndr->depth++;
   16239           0 :                 if (r->core_driver_dependencies) {
   16240           0 :                         ndr_print_string_array(ndr, "core_driver_dependencies", r->core_driver_dependencies);
   16241             :                 }
   16242           0 :                 ndr->depth--;
   16243           0 :                 ndr->flags = _flags_save_string_array;
   16244             :         }
   16245           0 :         ndr_print_NTTIME(ndr, "min_inbox_driver_ver_date", r->min_inbox_driver_ver_date);
   16246           0 :         ndr_print_hyper(ndr, "min_inbox_driver_ver_version", r->min_inbox_driver_ver_version);
   16247           0 :         ndr->depth--;
   16248             : }
   16249             : 
   16250           0 : _PUBLIC_ size_t ndr_size_spoolss_DriverInfo8(const struct spoolss_DriverInfo8 *r, libndr_flags flags)
   16251             : {
   16252           0 :         return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo8);
   16253             : }
   16254             : 
   16255           0 : static enum ndr_err_code ndr_push_spoolss_DriverFileType(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum spoolss_DriverFileType r)
   16256             : {
   16257           0 :         NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
   16258           0 :         return NDR_ERR_SUCCESS;
   16259             : }
   16260             : 
   16261           0 : static enum ndr_err_code ndr_pull_spoolss_DriverFileType(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum spoolss_DriverFileType *r)
   16262             : {
   16263           0 :         uint32_t v;
   16264           0 :         NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
   16265           0 :         *r = v;
   16266           0 :         return NDR_ERR_SUCCESS;
   16267             : }
   16268             : 
   16269           0 : _PUBLIC_ void ndr_print_spoolss_DriverFileType(struct ndr_print *ndr, const char *name, enum spoolss_DriverFileType r)
   16270             : {
   16271           0 :         const char *val = NULL;
   16272             : 
   16273           0 :         switch (r) {
   16274           0 :                 case SPOOLSS_DRIVER_FILE_TYPE_RENDERING: val = "SPOOLSS_DRIVER_FILE_TYPE_RENDERING"; break;
   16275           0 :                 case SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION: val = "SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION"; break;
   16276           0 :                 case SPOOLSS_DRIVER_FILE_TYPE_DATA: val = "SPOOLSS_DRIVER_FILE_TYPE_DATA"; break;
   16277           0 :                 case SPOOLSS_DRIVER_FILE_TYPE_HELP: val = "SPOOLSS_DRIVER_FILE_TYPE_HELP"; break;
   16278           0 :                 case SPOOLSS_DRIVER_FILE_TYPE_OTHER: val = "SPOOLSS_DRIVER_FILE_TYPE_OTHER"; break;
   16279             :         }
   16280           0 :         ndr_print_enum(ndr, name, "ENUM", val, r);
   16281           0 : }
   16282             : 
   16283           0 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverFileInfo(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_DriverFileInfo *r)
   16284             : {
   16285           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   16286           0 :         if (ndr_flags & NDR_SCALARS) {
   16287           0 :                 NDR_CHECK(ndr_push_align(ndr, 5));
   16288             :                 {
   16289           0 :                         libndr_flags _flags_save_string = ndr->flags;
   16290           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   16291           0 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->file_name));
   16292           0 :                         ndr->flags = _flags_save_string;
   16293             :                 }
   16294           0 :                 NDR_CHECK(ndr_push_spoolss_DriverFileType(ndr, NDR_SCALARS, r->file_type));
   16295           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->file_version));
   16296           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
   16297             :         }
   16298           0 :         if (ndr_flags & NDR_BUFFERS) {
   16299             :                 {
   16300           0 :                         libndr_flags _flags_save_string = ndr->flags;
   16301           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   16302           0 :                         if (r->file_name) {
   16303           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->file_name));
   16304           0 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->file_name));
   16305           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->file_name));
   16306             :                         }
   16307           0 :                         ndr->flags = _flags_save_string;
   16308             :                 }
   16309             :         }
   16310           0 :         return NDR_ERR_SUCCESS;
   16311             : }
   16312             : 
   16313           0 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverFileInfo(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_DriverFileInfo *r)
   16314             : {
   16315           0 :         uint32_t _ptr_file_name;
   16316           0 :         TALLOC_CTX *_mem_save_file_name_0 = NULL;
   16317           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   16318           0 :         if (ndr_flags & NDR_SCALARS) {
   16319           0 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
   16320             :                 {
   16321           0 :                         libndr_flags _flags_save_string = ndr->flags;
   16322           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   16323           0 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_file_name));
   16324           0 :                         if (_ptr_file_name) {
   16325           0 :                                 NDR_PULL_ALLOC(ndr, r->file_name);
   16326           0 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->file_name, _ptr_file_name));
   16327             :                         } else {
   16328           0 :                                 r->file_name = NULL;
   16329             :                         }
   16330           0 :                         ndr->flags = _flags_save_string;
   16331             :                 }
   16332           0 :                 NDR_CHECK(ndr_pull_spoolss_DriverFileType(ndr, NDR_SCALARS, &r->file_type));
   16333           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->file_version));
   16334           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
   16335             :         }
   16336           0 :         if (ndr_flags & NDR_BUFFERS) {
   16337             :                 {
   16338           0 :                         libndr_flags _flags_save_string = ndr->flags;
   16339           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   16340           0 :                         if (r->file_name) {
   16341           0 :                                 uint32_t _relative_save_offset;
   16342           0 :                                 _relative_save_offset = ndr->offset;
   16343           0 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->file_name));
   16344           0 :                                 _mem_save_file_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
   16345           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->file_name, 0);
   16346           0 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->file_name));
   16347           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_file_name_0, 0);
   16348           0 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   16349           0 :                                         ndr->relative_highest_offset = ndr->offset;
   16350             :                                 }
   16351           0 :                                 ndr->offset = _relative_save_offset;
   16352             :                         }
   16353           0 :                         ndr->flags = _flags_save_string;
   16354             :                 }
   16355             :         }
   16356           0 :         return NDR_ERR_SUCCESS;
   16357             : }
   16358             : 
   16359           0 : static void ndr_print_flags_spoolss_DriverFileInfo(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_DriverFileInfo *r)
   16360             : {
   16361           0 :         ndr_print_spoolss_DriverFileInfo(ndr, name, r);
   16362           0 : }
   16363             : 
   16364           0 : _PUBLIC_ void ndr_print_spoolss_DriverFileInfo(struct ndr_print *ndr, const char *name, const struct spoolss_DriverFileInfo *r)
   16365             : {
   16366           0 :         ndr_print_struct(ndr, name, "spoolss_DriverFileInfo");
   16367           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   16368           0 :         ndr->depth++;
   16369             :         {
   16370           0 :                 libndr_flags _flags_save_string = ndr->flags;
   16371           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   16372           0 :                 ndr_print_ptr(ndr, "file_name", r->file_name);
   16373           0 :                 ndr->depth++;
   16374           0 :                 if (r->file_name) {
   16375           0 :                         ndr_print_string(ndr, "file_name", r->file_name);
   16376             :                 }
   16377           0 :                 ndr->depth--;
   16378           0 :                 ndr->flags = _flags_save_string;
   16379             :         }
   16380           0 :         ndr_print_spoolss_DriverFileType(ndr, "file_type", r->file_type);
   16381           0 :         ndr_print_uint32(ndr, "file_version", r->file_version);
   16382           0 :         ndr->depth--;
   16383             : }
   16384             : 
   16385           0 : static void ndr_print_flags_spoolss_DriverInfo101(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_DriverInfo101 *r)
   16386             : {
   16387           0 :         ndr_print_spoolss_DriverInfo101(ndr, name, r);
   16388           0 : }
   16389             : 
   16390           0 : _PUBLIC_ void ndr_print_spoolss_DriverInfo101(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo101 *r)
   16391             : {
   16392           0 :         uint32_t cntr_file_info_1;
   16393           0 :         ndr_print_struct(ndr, name, "spoolss_DriverInfo101");
   16394           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   16395           0 :         ndr->depth++;
   16396           0 :         ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
   16397             :         {
   16398           0 :                 libndr_flags _flags_save_string = ndr->flags;
   16399           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   16400           0 :                 ndr_print_ptr(ndr, "driver_name", r->driver_name);
   16401           0 :                 ndr->depth++;
   16402           0 :                 if (r->driver_name) {
   16403           0 :                         ndr_print_string(ndr, "driver_name", r->driver_name);
   16404             :                 }
   16405           0 :                 ndr->depth--;
   16406           0 :                 ndr->flags = _flags_save_string;
   16407             :         }
   16408             :         {
   16409           0 :                 libndr_flags _flags_save_string = ndr->flags;
   16410           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   16411           0 :                 ndr_print_ptr(ndr, "architecture", r->architecture);
   16412           0 :                 ndr->depth++;
   16413           0 :                 if (r->architecture) {
   16414           0 :                         ndr_print_string(ndr, "architecture", r->architecture);
   16415             :                 }
   16416           0 :                 ndr->depth--;
   16417           0 :                 ndr->flags = _flags_save_string;
   16418             :         }
   16419             :         {
   16420           0 :                 libndr_flags _flags_save_spoolss_DriverFileInfo = ndr->flags;
   16421           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
   16422           0 :                 ndr_print_ptr(ndr, "file_info", r->file_info);
   16423           0 :                 ndr->depth++;
   16424           0 :                 if (r->file_info) {
   16425           0 :                         ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "file_info", (uint32_t)(r->file_count));
   16426           0 :                         ndr->depth++;
   16427           0 :                         for (cntr_file_info_1 = 0; cntr_file_info_1 < (r->file_count); cntr_file_info_1++) {
   16428           0 :                                 ndr_print_spoolss_DriverFileInfo(ndr, "file_info", &r->file_info[cntr_file_info_1]);
   16429             :                         }
   16430           0 :                         ndr->depth--;
   16431             :                 }
   16432           0 :                 ndr->depth--;
   16433           0 :                 ndr->flags = _flags_save_spoolss_DriverFileInfo;
   16434             :         }
   16435           0 :         ndr_print_uint32(ndr, "file_count", r->file_count);
   16436             :         {
   16437           0 :                 libndr_flags _flags_save_string = ndr->flags;
   16438           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   16439           0 :                 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
   16440           0 :                 ndr->depth++;
   16441           0 :                 if (r->monitor_name) {
   16442           0 :                         ndr_print_string(ndr, "monitor_name", r->monitor_name);
   16443             :                 }
   16444           0 :                 ndr->depth--;
   16445           0 :                 ndr->flags = _flags_save_string;
   16446             :         }
   16447             :         {
   16448           0 :                 libndr_flags _flags_save_string = ndr->flags;
   16449           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   16450           0 :                 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
   16451           0 :                 ndr->depth++;
   16452           0 :                 if (r->default_datatype) {
   16453           0 :                         ndr_print_string(ndr, "default_datatype", r->default_datatype);
   16454             :                 }
   16455           0 :                 ndr->depth--;
   16456           0 :                 ndr->flags = _flags_save_string;
   16457             :         }
   16458             :         {
   16459           0 :                 libndr_flags _flags_save_string_array = ndr->flags;
   16460           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   16461           0 :                 ndr_print_ptr(ndr, "previous_names", r->previous_names);
   16462           0 :                 ndr->depth++;
   16463           0 :                 if (r->previous_names) {
   16464           0 :                         ndr_print_string_array(ndr, "previous_names", r->previous_names);
   16465             :                 }
   16466           0 :                 ndr->depth--;
   16467           0 :                 ndr->flags = _flags_save_string_array;
   16468             :         }
   16469           0 :         ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
   16470           0 :         ndr_print_hyper(ndr, "driver_version", r->driver_version);
   16471             :         {
   16472           0 :                 libndr_flags _flags_save_string = ndr->flags;
   16473           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   16474           0 :                 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
   16475           0 :                 ndr->depth++;
   16476           0 :                 if (r->manufacturer_name) {
   16477           0 :                         ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
   16478             :                 }
   16479           0 :                 ndr->depth--;
   16480           0 :                 ndr->flags = _flags_save_string;
   16481             :         }
   16482             :         {
   16483           0 :                 libndr_flags _flags_save_string = ndr->flags;
   16484           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   16485           0 :                 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
   16486           0 :                 ndr->depth++;
   16487           0 :                 if (r->manufacturer_url) {
   16488           0 :                         ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
   16489             :                 }
   16490           0 :                 ndr->depth--;
   16491           0 :                 ndr->flags = _flags_save_string;
   16492             :         }
   16493             :         {
   16494           0 :                 libndr_flags _flags_save_string = ndr->flags;
   16495           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   16496           0 :                 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
   16497           0 :                 ndr->depth++;
   16498           0 :                 if (r->hardware_id) {
   16499           0 :                         ndr_print_string(ndr, "hardware_id", r->hardware_id);
   16500             :                 }
   16501           0 :                 ndr->depth--;
   16502           0 :                 ndr->flags = _flags_save_string;
   16503             :         }
   16504             :         {
   16505           0 :                 libndr_flags _flags_save_string = ndr->flags;
   16506           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   16507           0 :                 ndr_print_ptr(ndr, "provider", r->provider);
   16508           0 :                 ndr->depth++;
   16509           0 :                 if (r->provider) {
   16510           0 :                         ndr_print_string(ndr, "provider", r->provider);
   16511             :                 }
   16512           0 :                 ndr->depth--;
   16513           0 :                 ndr->flags = _flags_save_string;
   16514             :         }
   16515           0 :         ndr->depth--;
   16516             : }
   16517             : 
   16518           0 : _PUBLIC_ size_t ndr_size_spoolss_DriverInfo101(const struct spoolss_DriverInfo101 *r, libndr_flags flags)
   16519             : {
   16520           0 :         return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo101);
   16521             : }
   16522             : 
   16523           0 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo(struct ndr_push *ndr, ndr_flags_type ndr_flags, const union spoolss_DriverInfo *r)
   16524             : {
   16525           0 :         uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
   16526           0 :         uint32_t level;
   16527             :         {
   16528           0 :                 libndr_flags _flags_save_UNION = ndr->flags;
   16529           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
   16530           0 :                 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   16531           0 :                 if (ndr_flags & NDR_SCALARS) {
   16532             :                         /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
   16533           0 :                         NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
   16534           0 :                         NDR_CHECK(ndr_push_union_align(ndr, 8));
   16535           0 :                         switch (level) {
   16536           0 :                                 case 1: {
   16537           0 :                                         NDR_CHECK(ndr_push_align(ndr, 5));
   16538           0 :                                         NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
   16539           0 :                                         NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr, NDR_SCALARS, &r->info1));
   16540           0 :                                 break; }
   16541             : 
   16542           0 :                                 case 2: {
   16543           0 :                                         NDR_CHECK(ndr_push_align(ndr, 5));
   16544           0 :                                         NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
   16545           0 :                                         NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr, NDR_SCALARS, &r->info2));
   16546           0 :                                 break; }
   16547             : 
   16548           0 :                                 case 3: {
   16549           0 :                                         NDR_CHECK(ndr_push_align(ndr, 5));
   16550           0 :                                         NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
   16551           0 :                                         NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr, NDR_SCALARS, &r->info3));
   16552           0 :                                 break; }
   16553             : 
   16554           0 :                                 case 4: {
   16555           0 :                                         NDR_CHECK(ndr_push_align(ndr, 5));
   16556           0 :                                         NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
   16557           0 :                                         NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr, NDR_SCALARS, &r->info4));
   16558           0 :                                 break; }
   16559             : 
   16560           0 :                                 case 5: {
   16561           0 :                                         NDR_CHECK(ndr_push_align(ndr, 5));
   16562           0 :                                         NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
   16563           0 :                                         NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr, NDR_SCALARS, &r->info5));
   16564           0 :                                 break; }
   16565             : 
   16566           0 :                                 case 6: {
   16567           0 :                                         NDR_CHECK(ndr_push_align(ndr, 8));
   16568           0 :                                         NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
   16569           0 :                                         NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr, NDR_SCALARS, &r->info6));
   16570           0 :                                 break; }
   16571             : 
   16572           0 :                                 case 7: {
   16573           0 :                                         NDR_CHECK(ndr_push_align(ndr, 5));
   16574           0 :                                         NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
   16575           0 :                                         NDR_CHECK(ndr_push_spoolss_DriverInfo7(ndr, NDR_SCALARS, &r->info7));
   16576           0 :                                 break; }
   16577             : 
   16578           0 :                                 case 8: {
   16579           0 :                                         NDR_CHECK(ndr_push_align(ndr, 8));
   16580           0 :                                         NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
   16581           0 :                                         NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr, NDR_SCALARS, &r->info8));
   16582           0 :                                 break; }
   16583             : 
   16584           0 :                                 case 101: {
   16585           0 :                                         NDR_CHECK(ndr_push_align(ndr, 8));
   16586           0 :                                         NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
   16587           0 :                                         NDR_CHECK(ndr_push_spoolss_DriverInfo101(ndr, NDR_SCALARS, &r->info101));
   16588           0 :                                 break; }
   16589             : 
   16590           0 :                                 default: {
   16591           0 :                                 break; }
   16592             : 
   16593             :                         }
   16594             :                 }
   16595           0 :                 if (ndr_flags & NDR_BUFFERS) {
   16596           0 :                         if (!(ndr_flags & NDR_SCALARS)) {
   16597             :                                 /* We didn't get it above, and the token is not needed after this. */
   16598           0 :                                 NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
   16599             :                         }
   16600           0 :                         NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
   16601           0 :                         switch (level) {
   16602           0 :                                 case 1:
   16603           0 :                                         NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr, NDR_BUFFERS, &r->info1));
   16604           0 :                                 break;
   16605             : 
   16606           0 :                                 case 2:
   16607           0 :                                         NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr, NDR_BUFFERS, &r->info2));
   16608           0 :                                 break;
   16609             : 
   16610           0 :                                 case 3:
   16611           0 :                                         NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr, NDR_BUFFERS, &r->info3));
   16612           0 :                                 break;
   16613             : 
   16614           0 :                                 case 4:
   16615           0 :                                         NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr, NDR_BUFFERS, &r->info4));
   16616           0 :                                 break;
   16617             : 
   16618           0 :                                 case 5:
   16619           0 :                                         NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr, NDR_BUFFERS, &r->info5));
   16620           0 :                                 break;
   16621             : 
   16622           0 :                                 case 6:
   16623           0 :                                         NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr, NDR_BUFFERS, &r->info6));
   16624           0 :                                 break;
   16625             : 
   16626           0 :                                 case 7:
   16627           0 :                                         NDR_CHECK(ndr_push_spoolss_DriverInfo7(ndr, NDR_BUFFERS, &r->info7));
   16628           0 :                                 break;
   16629             : 
   16630           0 :                                 case 8:
   16631           0 :                                         NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr, NDR_BUFFERS, &r->info8));
   16632           0 :                                 break;
   16633             : 
   16634           0 :                                 case 101:
   16635           0 :                                         NDR_CHECK(ndr_push_spoolss_DriverInfo101(ndr, NDR_BUFFERS, &r->info101));
   16636           0 :                                 break;
   16637             : 
   16638           0 :                                 default:
   16639           0 :                                 break;
   16640             : 
   16641             :                         }
   16642             :                 }
   16643           0 :                 ndr->flags = _flags_save_UNION;
   16644             :         }
   16645           0 :         ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
   16646           0 :         return NDR_ERR_SUCCESS;
   16647             : }
   16648             : 
   16649           2 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo(struct ndr_pull *ndr, ndr_flags_type ndr_flags, union spoolss_DriverInfo *r)
   16650             : {
   16651           2 :         uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
   16652           2 :         uint32_t level;
   16653             :         {
   16654           2 :                 libndr_flags _flags_save_UNION = ndr->flags;
   16655           2 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
   16656           2 :                 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   16657           2 :                 if (ndr_flags & NDR_SCALARS) {
   16658             :                         /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
   16659           2 :                         NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
   16660           2 :                         NDR_CHECK(ndr_pull_union_align(ndr, 8));
   16661           2 :                         switch (level) {
   16662           0 :                                 case 1: {
   16663           0 :                                         NDR_CHECK(ndr_pull_align(ndr, 5));
   16664           0 :                                         NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
   16665           0 :                                         NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr, NDR_SCALARS, &r->info1));
   16666           0 :                                 break; }
   16667             : 
   16668           0 :                                 case 2: {
   16669           0 :                                         NDR_CHECK(ndr_pull_align(ndr, 5));
   16670           0 :                                         NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
   16671           0 :                                         NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr, NDR_SCALARS, &r->info2));
   16672           0 :                                 break; }
   16673             : 
   16674           0 :                                 case 3: {
   16675           0 :                                         NDR_CHECK(ndr_pull_align(ndr, 5));
   16676           0 :                                         NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
   16677           0 :                                         NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr, NDR_SCALARS, &r->info3));
   16678           0 :                                 break; }
   16679             : 
   16680           0 :                                 case 4: {
   16681           0 :                                         NDR_CHECK(ndr_pull_align(ndr, 5));
   16682           0 :                                         NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
   16683           0 :                                         NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr, NDR_SCALARS, &r->info4));
   16684           0 :                                 break; }
   16685             : 
   16686           0 :                                 case 5: {
   16687           0 :                                         NDR_CHECK(ndr_pull_align(ndr, 5));
   16688           0 :                                         NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
   16689           0 :                                         NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr, NDR_SCALARS, &r->info5));
   16690           0 :                                 break; }
   16691             : 
   16692           2 :                                 case 6: {
   16693           2 :                                         NDR_CHECK(ndr_pull_align(ndr, 8));
   16694           2 :                                         NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
   16695           2 :                                         NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr, NDR_SCALARS, &r->info6));
   16696           0 :                                 break; }
   16697             : 
   16698           0 :                                 case 7: {
   16699           0 :                                         NDR_CHECK(ndr_pull_align(ndr, 5));
   16700           0 :                                         NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
   16701           0 :                                         NDR_CHECK(ndr_pull_spoolss_DriverInfo7(ndr, NDR_SCALARS, &r->info7));
   16702           0 :                                 break; }
   16703             : 
   16704           0 :                                 case 8: {
   16705           0 :                                         NDR_CHECK(ndr_pull_align(ndr, 8));
   16706           0 :                                         NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
   16707           0 :                                         NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr, NDR_SCALARS, &r->info8));
   16708           0 :                                 break; }
   16709             : 
   16710           0 :                                 case 101: {
   16711           0 :                                         NDR_CHECK(ndr_pull_align(ndr, 8));
   16712           0 :                                         NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
   16713           0 :                                         NDR_CHECK(ndr_pull_spoolss_DriverInfo101(ndr, NDR_SCALARS, &r->info101));
   16714           0 :                                 break; }
   16715             : 
   16716           0 :                                 default: {
   16717           0 :                                 break; }
   16718             : 
   16719             :                         }
   16720             :                 }
   16721           2 :                 if (ndr_flags & NDR_BUFFERS) {
   16722           2 :                         if (!(ndr_flags & NDR_SCALARS)) {
   16723             :                                 /* We didn't get it above, and the token is not needed after this. */
   16724           0 :                                 NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
   16725             :                         }
   16726           2 :                         switch (level) {
   16727           0 :                                 case 1:
   16728           0 :                                         NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
   16729           0 :                                         NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr, NDR_BUFFERS, &r->info1));
   16730           0 :                                 break;
   16731             : 
   16732           0 :                                 case 2:
   16733           0 :                                         NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
   16734           0 :                                         NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr, NDR_BUFFERS, &r->info2));
   16735           0 :                                 break;
   16736             : 
   16737           0 :                                 case 3:
   16738           0 :                                         NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
   16739           0 :                                         NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr, NDR_BUFFERS, &r->info3));
   16740           0 :                                 break;
   16741             : 
   16742           0 :                                 case 4:
   16743           0 :                                         NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
   16744           0 :                                         NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr, NDR_BUFFERS, &r->info4));
   16745           0 :                                 break;
   16746             : 
   16747           0 :                                 case 5:
   16748           0 :                                         NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
   16749           0 :                                         NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr, NDR_BUFFERS, &r->info5));
   16750           0 :                                 break;
   16751             : 
   16752           2 :                                 case 6:
   16753           2 :                                         NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
   16754           2 :                                         NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr, NDR_BUFFERS, &r->info6));
   16755           0 :                                 break;
   16756             : 
   16757           0 :                                 case 7:
   16758           0 :                                         NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
   16759           0 :                                         NDR_CHECK(ndr_pull_spoolss_DriverInfo7(ndr, NDR_BUFFERS, &r->info7));
   16760           0 :                                 break;
   16761             : 
   16762           0 :                                 case 8:
   16763           0 :                                         NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
   16764           0 :                                         NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr, NDR_BUFFERS, &r->info8));
   16765           0 :                                 break;
   16766             : 
   16767           0 :                                 case 101:
   16768           0 :                                         NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
   16769           0 :                                         NDR_CHECK(ndr_pull_spoolss_DriverInfo101(ndr, NDR_BUFFERS, &r->info101));
   16770           0 :                                 break;
   16771             : 
   16772           0 :                                 default:
   16773           0 :                                 break;
   16774             : 
   16775             :                         }
   16776             :                 }
   16777           2 :                 ndr->flags = _flags_save_UNION;
   16778             :         }
   16779           2 :         ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
   16780           2 :         return NDR_ERR_SUCCESS;
   16781             : }
   16782             : 
   16783           2 : _PUBLIC_ void ndr_print_spoolss_DriverInfo(struct ndr_print *ndr, const char *name, const union spoolss_DriverInfo *r)
   16784             : {
   16785           2 :         uint32_t level;
   16786             :         {
   16787           2 :                 libndr_flags _flags_save_UNION = ndr->flags;
   16788           2 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
   16789           2 :                 level = ndr_print_steal_switch_value(ndr, r);
   16790           2 :                 ndr_print_union(ndr, name, level, "spoolss_DriverInfo");
   16791           2 :                 switch (level) {
   16792           0 :                         case 1:
   16793           0 :                                 ndr_print_spoolss_DriverInfo1(ndr, "info1", &r->info1);
   16794           0 :                         break;
   16795             : 
   16796           0 :                         case 2:
   16797           0 :                                 ndr_print_spoolss_DriverInfo2(ndr, "info2", &r->info2);
   16798           0 :                         break;
   16799             : 
   16800           0 :                         case 3:
   16801           0 :                                 ndr_print_spoolss_DriverInfo3(ndr, "info3", &r->info3);
   16802           0 :                         break;
   16803             : 
   16804           0 :                         case 4:
   16805           0 :                                 ndr_print_spoolss_DriverInfo4(ndr, "info4", &r->info4);
   16806           0 :                         break;
   16807             : 
   16808           0 :                         case 5:
   16809           0 :                                 ndr_print_spoolss_DriverInfo5(ndr, "info5", &r->info5);
   16810           0 :                         break;
   16811             : 
   16812           2 :                         case 6:
   16813           2 :                                 ndr_print_spoolss_DriverInfo6(ndr, "info6", &r->info6);
   16814           2 :                         break;
   16815             : 
   16816           0 :                         case 7:
   16817           0 :                                 ndr_print_spoolss_DriverInfo7(ndr, "info7", &r->info7);
   16818           0 :                         break;
   16819             : 
   16820           0 :                         case 8:
   16821           0 :                                 ndr_print_spoolss_DriverInfo8(ndr, "info8", &r->info8);
   16822           0 :                         break;
   16823             : 
   16824           0 :                         case 101:
   16825           0 :                                 ndr_print_spoolss_DriverInfo101(ndr, "info101", &r->info101);
   16826           0 :                         break;
   16827             : 
   16828           0 :                         default:
   16829           0 :                         break;
   16830             : 
   16831             :                 }
   16832           2 :                 ndr->flags = _flags_save_UNION;
   16833             :         }
   16834           2 : }
   16835             : 
   16836           0 : _PUBLIC_ size_t ndr_size_spoolss_DriverInfo(const union spoolss_DriverInfo *r, uint32_t level, libndr_flags flags)
   16837             : {
   16838           0 :         flags |= LIBNDR_FLAG_RELATIVE_REVERSE;
   16839           0 :         return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo);
   16840             : }
   16841             : 
   16842         252 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverDirectoryInfo1(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_DriverDirectoryInfo1 *r)
   16843             : {
   16844         252 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   16845         252 :         if (ndr_flags & NDR_SCALARS) {
   16846         252 :                 NDR_CHECK(ndr_push_align(ndr, 4));
   16847             :                 {
   16848         252 :                         libndr_flags _flags_save_string = ndr->flags;
   16849         252 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   16850         252 :                         NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->directory_name));
   16851         252 :                         ndr->flags = _flags_save_string;
   16852             :                 }
   16853         252 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
   16854             :         }
   16855         252 :         if (ndr_flags & NDR_BUFFERS) {
   16856           0 :         }
   16857         252 :         return NDR_ERR_SUCCESS;
   16858             : }
   16859             : 
   16860          86 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverDirectoryInfo1(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_DriverDirectoryInfo1 *r)
   16861             : {
   16862          86 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   16863          86 :         if (ndr_flags & NDR_SCALARS) {
   16864          86 :                 NDR_CHECK(ndr_pull_align(ndr, 4));
   16865             :                 {
   16866          86 :                         libndr_flags _flags_save_string = ndr->flags;
   16867          86 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   16868          86 :                         NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->directory_name));
   16869          86 :                         ndr->flags = _flags_save_string;
   16870             :                 }
   16871          86 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
   16872             :         }
   16873          86 :         if (ndr_flags & NDR_BUFFERS) {
   16874           2 :         }
   16875          86 :         return NDR_ERR_SUCCESS;
   16876             : }
   16877             : 
   16878           0 : static void ndr_print_flags_spoolss_DriverDirectoryInfo1(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_DriverDirectoryInfo1 *r)
   16879             : {
   16880           0 :         ndr_print_spoolss_DriverDirectoryInfo1(ndr, name, r);
   16881           0 : }
   16882             : 
   16883           2 : _PUBLIC_ void ndr_print_spoolss_DriverDirectoryInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DriverDirectoryInfo1 *r)
   16884             : {
   16885           2 :         ndr_print_struct(ndr, name, "spoolss_DriverDirectoryInfo1");
   16886           2 :         if (r == NULL) { ndr_print_null(ndr); return; }
   16887           2 :         ndr->depth++;
   16888             :         {
   16889           2 :                 libndr_flags _flags_save_string = ndr->flags;
   16890           2 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   16891           2 :                 ndr_print_string(ndr, "directory_name", r->directory_name);
   16892           2 :                 ndr->flags = _flags_save_string;
   16893             :         }
   16894           2 :         ndr->depth--;
   16895             : }
   16896             : 
   16897           0 : _PUBLIC_ size_t ndr_size_spoolss_DriverDirectoryInfo1(const struct spoolss_DriverDirectoryInfo1 *r, libndr_flags flags)
   16898             : {
   16899           0 :         return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverDirectoryInfo1);
   16900             : }
   16901             : 
   16902         252 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverDirectoryInfo(struct ndr_push *ndr, ndr_flags_type ndr_flags, const union spoolss_DriverDirectoryInfo *r)
   16903             : {
   16904         252 :         uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
   16905           0 :         uint32_t level;
   16906             :         {
   16907         252 :                 libndr_flags _flags_save_UNION = ndr->flags;
   16908         252 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
   16909         252 :                 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   16910         252 :                 if (ndr_flags & NDR_SCALARS) {
   16911             :                         /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
   16912         252 :                         NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
   16913         252 :                         NDR_CHECK(ndr_push_union_align(ndr, 4));
   16914         252 :                         switch (level) {
   16915         228 :                                 case 1: {
   16916         228 :                                         NDR_CHECK(ndr_push_align(ndr, 4));
   16917         228 :                                         NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
   16918         228 :                                         NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
   16919         228 :                                 break; }
   16920             : 
   16921          24 :                                 default: {
   16922          24 :                                         NDR_CHECK(ndr_push_align(ndr, 4));
   16923          24 :                                         NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
   16924          24 :                                         NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
   16925          24 :                                 break; }
   16926             : 
   16927             :                         }
   16928             :                 }
   16929         252 :                 ndr->flags = _flags_save_UNION;
   16930             :         }
   16931         252 :         ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
   16932         252 :         return NDR_ERR_SUCCESS;
   16933             : }
   16934             : 
   16935          86 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverDirectoryInfo(struct ndr_pull *ndr, ndr_flags_type ndr_flags, union spoolss_DriverDirectoryInfo *r)
   16936             : {
   16937          86 :         uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
   16938           2 :         uint32_t level;
   16939             :         {
   16940          86 :                 libndr_flags _flags_save_UNION = ndr->flags;
   16941          86 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
   16942          86 :                 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   16943          86 :                 if (ndr_flags & NDR_SCALARS) {
   16944             :                         /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
   16945          86 :                         NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
   16946          86 :                         NDR_CHECK(ndr_pull_union_align(ndr, 4));
   16947          86 :                         switch (level) {
   16948          78 :                                 case 1: {
   16949          78 :                                         NDR_CHECK(ndr_pull_align(ndr, 4));
   16950          78 :                                         NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
   16951          78 :                                         NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
   16952          76 :                                 break; }
   16953             : 
   16954           8 :                                 default: {
   16955           8 :                                         NDR_CHECK(ndr_pull_align(ndr, 4));
   16956           8 :                                         NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
   16957           8 :                                         NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
   16958           8 :                                 break; }
   16959             : 
   16960             :                         }
   16961             :                 }
   16962          86 :                 ndr->flags = _flags_save_UNION;
   16963             :         }
   16964          86 :         ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
   16965          86 :         return NDR_ERR_SUCCESS;
   16966             : }
   16967             : 
   16968           2 : _PUBLIC_ void ndr_print_spoolss_DriverDirectoryInfo(struct ndr_print *ndr, const char *name, const union spoolss_DriverDirectoryInfo *r)
   16969             : {
   16970           2 :         uint32_t level;
   16971             :         {
   16972           2 :                 libndr_flags _flags_save_UNION = ndr->flags;
   16973           2 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
   16974           2 :                 level = ndr_print_steal_switch_value(ndr, r);
   16975           2 :                 ndr_print_union(ndr, name, level, "spoolss_DriverDirectoryInfo");
   16976           2 :                 switch (level) {
   16977           2 :                         case 1:
   16978           2 :                                 ndr_print_spoolss_DriverDirectoryInfo1(ndr, "info1", &r->info1);
   16979           2 :                         break;
   16980             : 
   16981           0 :                         default:
   16982           0 :                                 ndr_print_spoolss_DriverDirectoryInfo1(ndr, "info1", &r->info1);
   16983           0 :                         break;
   16984             : 
   16985             :                 }
   16986           2 :                 ndr->flags = _flags_save_UNION;
   16987             :         }
   16988           2 : }
   16989             : 
   16990         168 : _PUBLIC_ size_t ndr_size_spoolss_DriverDirectoryInfo(const union spoolss_DriverDirectoryInfo *r, uint32_t level, libndr_flags flags)
   16991             : {
   16992         168 :         flags |= LIBNDR_FLAG_RELATIVE_REVERSE;
   16993         168 :         return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverDirectoryInfo);
   16994             : }
   16995             : 
   16996          72 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorInfo1(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_PrintProcessorInfo1 *r)
   16997             : {
   16998          72 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   16999          72 :         if (ndr_flags & NDR_SCALARS) {
   17000          36 :                 NDR_CHECK(ndr_push_align(ndr, 5));
   17001             :                 {
   17002          36 :                         libndr_flags _flags_save_string = ndr->flags;
   17003          36 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   17004          36 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor_name));
   17005          36 :                         ndr->flags = _flags_save_string;
   17006             :                 }
   17007          36 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
   17008             :         }
   17009          72 :         if (ndr_flags & NDR_BUFFERS) {
   17010             :                 {
   17011          36 :                         libndr_flags _flags_save_string = ndr->flags;
   17012          36 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   17013          36 :                         if (r->print_processor_name) {
   17014          36 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->print_processor_name));
   17015          36 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor_name));
   17016          36 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->print_processor_name));
   17017             :                         }
   17018          36 :                         ndr->flags = _flags_save_string;
   17019             :                 }
   17020             :         }
   17021          72 :         return NDR_ERR_SUCCESS;
   17022             : }
   17023             : 
   17024          24 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorInfo1(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_PrintProcessorInfo1 *r)
   17025             : {
   17026           0 :         uint32_t _ptr_print_processor_name;
   17027          24 :         TALLOC_CTX *_mem_save_print_processor_name_0 = NULL;
   17028          24 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   17029          24 :         if (ndr_flags & NDR_SCALARS) {
   17030          12 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
   17031             :                 {
   17032          12 :                         libndr_flags _flags_save_string = ndr->flags;
   17033          12 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   17034          12 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor_name));
   17035          12 :                         if (_ptr_print_processor_name) {
   17036          12 :                                 NDR_PULL_ALLOC(ndr, r->print_processor_name);
   17037          12 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor_name, _ptr_print_processor_name));
   17038             :                         } else {
   17039           0 :                                 r->print_processor_name = NULL;
   17040             :                         }
   17041          12 :                         ndr->flags = _flags_save_string;
   17042             :                 }
   17043          12 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
   17044             :         }
   17045          24 :         if (ndr_flags & NDR_BUFFERS) {
   17046             :                 {
   17047          12 :                         libndr_flags _flags_save_string = ndr->flags;
   17048          12 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   17049          12 :                         if (r->print_processor_name) {
   17050           0 :                                 uint32_t _relative_save_offset;
   17051          12 :                                 _relative_save_offset = ndr->offset;
   17052          12 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor_name));
   17053          12 :                                 _mem_save_print_processor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
   17054          12 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor_name, 0);
   17055          12 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor_name));
   17056          12 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_name_0, 0);
   17057          12 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   17058          12 :                                         ndr->relative_highest_offset = ndr->offset;
   17059             :                                 }
   17060          12 :                                 ndr->offset = _relative_save_offset;
   17061             :                         }
   17062          12 :                         ndr->flags = _flags_save_string;
   17063             :                 }
   17064             :         }
   17065          24 :         return NDR_ERR_SUCCESS;
   17066             : }
   17067             : 
   17068           0 : static void ndr_print_flags_spoolss_PrintProcessorInfo1(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_PrintProcessorInfo1 *r)
   17069             : {
   17070           0 :         ndr_print_spoolss_PrintProcessorInfo1(ndr, name, r);
   17071           0 : }
   17072             : 
   17073           0 : _PUBLIC_ void ndr_print_spoolss_PrintProcessorInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcessorInfo1 *r)
   17074             : {
   17075           0 :         ndr_print_struct(ndr, name, "spoolss_PrintProcessorInfo1");
   17076           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   17077           0 :         ndr->depth++;
   17078             :         {
   17079           0 :                 libndr_flags _flags_save_string = ndr->flags;
   17080           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   17081           0 :                 ndr_print_ptr(ndr, "print_processor_name", r->print_processor_name);
   17082           0 :                 ndr->depth++;
   17083           0 :                 if (r->print_processor_name) {
   17084           0 :                         ndr_print_string(ndr, "print_processor_name", r->print_processor_name);
   17085             :                 }
   17086           0 :                 ndr->depth--;
   17087           0 :                 ndr->flags = _flags_save_string;
   17088             :         }
   17089           0 :         ndr->depth--;
   17090             : }
   17091             : 
   17092           0 : _PUBLIC_ size_t ndr_size_spoolss_PrintProcessorInfo1(const struct spoolss_PrintProcessorInfo1 *r, libndr_flags flags)
   17093             : {
   17094           0 :         return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcessorInfo1);
   17095             : }
   17096             : 
   17097          72 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorInfo(struct ndr_push *ndr, ndr_flags_type ndr_flags, const union spoolss_PrintProcessorInfo *r)
   17098             : {
   17099          72 :         uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
   17100           0 :         uint32_t level;
   17101             :         {
   17102          72 :                 libndr_flags _flags_save_UNION = ndr->flags;
   17103          72 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
   17104          72 :                 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   17105          72 :                 if (ndr_flags & NDR_SCALARS) {
   17106             :                         /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
   17107          36 :                         NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
   17108          36 :                         NDR_CHECK(ndr_push_union_align(ndr, 5));
   17109          36 :                         switch (level) {
   17110          36 :                                 case 1: {
   17111          36 :                                         NDR_CHECK(ndr_push_align(ndr, 5));
   17112          36 :                                         NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
   17113          36 :                                         NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr, NDR_SCALARS, &r->info1));
   17114          36 :                                 break; }
   17115             : 
   17116           0 :                                 default: {
   17117           0 :                                 break; }
   17118             : 
   17119             :                         }
   17120             :                 }
   17121          72 :                 if (ndr_flags & NDR_BUFFERS) {
   17122          36 :                         if (!(ndr_flags & NDR_SCALARS)) {
   17123             :                                 /* We didn't get it above, and the token is not needed after this. */
   17124          36 :                                 NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
   17125             :                         }
   17126          36 :                         NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
   17127          36 :                         switch (level) {
   17128          36 :                                 case 1:
   17129          36 :                                         NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr, NDR_BUFFERS, &r->info1));
   17130          36 :                                 break;
   17131             : 
   17132           0 :                                 default:
   17133           0 :                                 break;
   17134             : 
   17135             :                         }
   17136             :                 }
   17137          72 :                 ndr->flags = _flags_save_UNION;
   17138             :         }
   17139          72 :         ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
   17140          72 :         return NDR_ERR_SUCCESS;
   17141             : }
   17142             : 
   17143          24 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorInfo(struct ndr_pull *ndr, ndr_flags_type ndr_flags, union spoolss_PrintProcessorInfo *r)
   17144             : {
   17145          24 :         uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
   17146           0 :         uint32_t level;
   17147             :         {
   17148          24 :                 libndr_flags _flags_save_UNION = ndr->flags;
   17149          24 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
   17150          24 :                 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   17151          24 :                 if (ndr_flags & NDR_SCALARS) {
   17152             :                         /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
   17153          12 :                         NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
   17154          12 :                         NDR_CHECK(ndr_pull_union_align(ndr, 5));
   17155          12 :                         switch (level) {
   17156          12 :                                 case 1: {
   17157          12 :                                         NDR_CHECK(ndr_pull_align(ndr, 5));
   17158          12 :                                         NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
   17159          12 :                                         NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr, NDR_SCALARS, &r->info1));
   17160          12 :                                 break; }
   17161             : 
   17162           0 :                                 default: {
   17163           0 :                                 break; }
   17164             : 
   17165             :                         }
   17166             :                 }
   17167          24 :                 if (ndr_flags & NDR_BUFFERS) {
   17168          12 :                         if (!(ndr_flags & NDR_SCALARS)) {
   17169             :                                 /* We didn't get it above, and the token is not needed after this. */
   17170          12 :                                 NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
   17171             :                         }
   17172          12 :                         switch (level) {
   17173          12 :                                 case 1:
   17174          12 :                                         NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
   17175          12 :                                         NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr, NDR_BUFFERS, &r->info1));
   17176          12 :                                 break;
   17177             : 
   17178           0 :                                 default:
   17179           0 :                                 break;
   17180             : 
   17181             :                         }
   17182             :                 }
   17183          24 :                 ndr->flags = _flags_save_UNION;
   17184             :         }
   17185          24 :         ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
   17186          24 :         return NDR_ERR_SUCCESS;
   17187             : }
   17188             : 
   17189           0 : _PUBLIC_ void ndr_print_spoolss_PrintProcessorInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcessorInfo *r)
   17190             : {
   17191           0 :         uint32_t level;
   17192             :         {
   17193           0 :                 libndr_flags _flags_save_UNION = ndr->flags;
   17194           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
   17195           0 :                 level = ndr_print_steal_switch_value(ndr, r);
   17196           0 :                 ndr_print_union(ndr, name, level, "spoolss_PrintProcessorInfo");
   17197           0 :                 switch (level) {
   17198           0 :                         case 1:
   17199           0 :                                 ndr_print_spoolss_PrintProcessorInfo1(ndr, "info1", &r->info1);
   17200           0 :                         break;
   17201             : 
   17202           0 :                         default:
   17203           0 :                         break;
   17204             : 
   17205             :                 }
   17206           0 :                 ndr->flags = _flags_save_UNION;
   17207             :         }
   17208           0 : }
   17209             : 
   17210          60 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorDirectoryInfo1(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_PrintProcessorDirectoryInfo1 *r)
   17211             : {
   17212          60 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   17213          60 :         if (ndr_flags & NDR_SCALARS) {
   17214          60 :                 NDR_CHECK(ndr_push_align(ndr, 4));
   17215             :                 {
   17216          60 :                         libndr_flags _flags_save_string = ndr->flags;
   17217          60 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   17218          60 :                         NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->directory_name));
   17219          60 :                         ndr->flags = _flags_save_string;
   17220             :                 }
   17221          60 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
   17222             :         }
   17223          60 :         if (ndr_flags & NDR_BUFFERS) {
   17224           0 :         }
   17225          60 :         return NDR_ERR_SUCCESS;
   17226             : }
   17227             : 
   17228          20 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorDirectoryInfo1(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_PrintProcessorDirectoryInfo1 *r)
   17229             : {
   17230          20 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   17231          20 :         if (ndr_flags & NDR_SCALARS) {
   17232          20 :                 NDR_CHECK(ndr_pull_align(ndr, 4));
   17233             :                 {
   17234          20 :                         libndr_flags _flags_save_string = ndr->flags;
   17235          20 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   17236          20 :                         NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->directory_name));
   17237          20 :                         ndr->flags = _flags_save_string;
   17238             :                 }
   17239          20 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
   17240             :         }
   17241          20 :         if (ndr_flags & NDR_BUFFERS) {
   17242           0 :         }
   17243          20 :         return NDR_ERR_SUCCESS;
   17244             : }
   17245             : 
   17246           0 : static void ndr_print_flags_spoolss_PrintProcessorDirectoryInfo1(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_PrintProcessorDirectoryInfo1 *r)
   17247             : {
   17248           0 :         ndr_print_spoolss_PrintProcessorDirectoryInfo1(ndr, name, r);
   17249           0 : }
   17250             : 
   17251           0 : _PUBLIC_ void ndr_print_spoolss_PrintProcessorDirectoryInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcessorDirectoryInfo1 *r)
   17252             : {
   17253           0 :         ndr_print_struct(ndr, name, "spoolss_PrintProcessorDirectoryInfo1");
   17254           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   17255           0 :         ndr->depth++;
   17256             :         {
   17257           0 :                 libndr_flags _flags_save_string = ndr->flags;
   17258           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   17259           0 :                 ndr_print_string(ndr, "directory_name", r->directory_name);
   17260           0 :                 ndr->flags = _flags_save_string;
   17261             :         }
   17262           0 :         ndr->depth--;
   17263             : }
   17264             : 
   17265           0 : _PUBLIC_ size_t ndr_size_spoolss_PrintProcessorDirectoryInfo1(const struct spoolss_PrintProcessorDirectoryInfo1 *r, libndr_flags flags)
   17266             : {
   17267           0 :         return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcessorDirectoryInfo1);
   17268             : }
   17269             : 
   17270          60 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorDirectoryInfo(struct ndr_push *ndr, ndr_flags_type ndr_flags, const union spoolss_PrintProcessorDirectoryInfo *r)
   17271             : {
   17272          60 :         uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
   17273           0 :         uint32_t level;
   17274             :         {
   17275          60 :                 libndr_flags _flags_save_UNION = ndr->flags;
   17276          60 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
   17277          60 :                 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   17278          60 :                 if (ndr_flags & NDR_SCALARS) {
   17279             :                         /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
   17280          60 :                         NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
   17281          60 :                         NDR_CHECK(ndr_push_union_align(ndr, 4));
   17282          60 :                         switch (level) {
   17283          36 :                                 case 1: {
   17284          36 :                                         NDR_CHECK(ndr_push_align(ndr, 4));
   17285          36 :                                         NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
   17286          36 :                                         NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
   17287          36 :                                 break; }
   17288             : 
   17289          24 :                                 default: {
   17290          24 :                                         NDR_CHECK(ndr_push_align(ndr, 4));
   17291          24 :                                         NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
   17292          24 :                                         NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
   17293          24 :                                 break; }
   17294             : 
   17295             :                         }
   17296             :                 }
   17297          60 :                 ndr->flags = _flags_save_UNION;
   17298             :         }
   17299          60 :         ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
   17300          60 :         return NDR_ERR_SUCCESS;
   17301             : }
   17302             : 
   17303          20 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorDirectoryInfo(struct ndr_pull *ndr, ndr_flags_type ndr_flags, union spoolss_PrintProcessorDirectoryInfo *r)
   17304             : {
   17305          20 :         uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
   17306           0 :         uint32_t level;
   17307             :         {
   17308          20 :                 libndr_flags _flags_save_UNION = ndr->flags;
   17309          20 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
   17310          20 :                 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   17311          20 :                 if (ndr_flags & NDR_SCALARS) {
   17312             :                         /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
   17313          20 :                         NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
   17314          20 :                         NDR_CHECK(ndr_pull_union_align(ndr, 4));
   17315          20 :                         switch (level) {
   17316          12 :                                 case 1: {
   17317          12 :                                         NDR_CHECK(ndr_pull_align(ndr, 4));
   17318          12 :                                         NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
   17319          12 :                                         NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
   17320          12 :                                 break; }
   17321             : 
   17322           8 :                                 default: {
   17323           8 :                                         NDR_CHECK(ndr_pull_align(ndr, 4));
   17324           8 :                                         NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
   17325           8 :                                         NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
   17326           8 :                                 break; }
   17327             : 
   17328             :                         }
   17329             :                 }
   17330          20 :                 ndr->flags = _flags_save_UNION;
   17331             :         }
   17332          20 :         ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
   17333          20 :         return NDR_ERR_SUCCESS;
   17334             : }
   17335             : 
   17336           0 : _PUBLIC_ void ndr_print_spoolss_PrintProcessorDirectoryInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcessorDirectoryInfo *r)
   17337             : {
   17338           0 :         uint32_t level;
   17339             :         {
   17340           0 :                 libndr_flags _flags_save_UNION = ndr->flags;
   17341           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
   17342           0 :                 level = ndr_print_steal_switch_value(ndr, r);
   17343           0 :                 ndr_print_union(ndr, name, level, "spoolss_PrintProcessorDirectoryInfo");
   17344           0 :                 switch (level) {
   17345           0 :                         case 1:
   17346           0 :                                 ndr_print_spoolss_PrintProcessorDirectoryInfo1(ndr, "info1", &r->info1);
   17347           0 :                         break;
   17348             : 
   17349           0 :                         default:
   17350           0 :                                 ndr_print_spoolss_PrintProcessorDirectoryInfo1(ndr, "info1", &r->info1);
   17351           0 :                         break;
   17352             : 
   17353             :                 }
   17354           0 :                 ndr->flags = _flags_save_UNION;
   17355             :         }
   17356           0 : }
   17357             : 
   17358          40 : _PUBLIC_ size_t ndr_size_spoolss_PrintProcessorDirectoryInfo(const union spoolss_PrintProcessorDirectoryInfo *r, uint32_t level, libndr_flags flags)
   17359             : {
   17360          40 :         flags |= LIBNDR_FLAG_RELATIVE_REVERSE;
   17361          40 :         return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcessorDirectoryInfo);
   17362             : }
   17363             : 
   17364         668 : static enum ndr_err_code ndr_push_spoolss_DocumentInfo1(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_DocumentInfo1 *r)
   17365             : {
   17366         668 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   17367         668 :         if (ndr_flags & NDR_SCALARS) {
   17368         668 :                 NDR_CHECK(ndr_push_align(ndr, 5));
   17369         668 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
   17370         668 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->output_file));
   17371         668 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->datatype));
   17372         668 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
   17373             :         }
   17374         668 :         if (ndr_flags & NDR_BUFFERS) {
   17375         668 :                 if (r->document_name) {
   17376         668 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
   17377         668 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   17378         668 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
   17379         668 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   17380             :                 }
   17381         668 :                 if (r->output_file) {
   17382          28 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->output_file, CH_UTF16)));
   17383          28 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   17384          28 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->output_file, CH_UTF16)));
   17385          28 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->output_file, ndr_charset_length(r->output_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   17386             :                 }
   17387         668 :                 if (r->datatype) {
   17388         668 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
   17389         668 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   17390         668 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
   17391         668 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->datatype, ndr_charset_length(r->datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   17392             :                 }
   17393             :         }
   17394         668 :         return NDR_ERR_SUCCESS;
   17395             : }
   17396             : 
   17397         668 : static enum ndr_err_code ndr_pull_spoolss_DocumentInfo1(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_DocumentInfo1 *r)
   17398             : {
   17399           0 :         uint32_t _ptr_document_name;
   17400         668 :         uint32_t size_document_name_1 = 0;
   17401         668 :         uint32_t length_document_name_1 = 0;
   17402         668 :         TALLOC_CTX *_mem_save_document_name_0 = NULL;
   17403           0 :         uint32_t _ptr_output_file;
   17404         668 :         uint32_t size_output_file_1 = 0;
   17405         668 :         uint32_t length_output_file_1 = 0;
   17406         668 :         TALLOC_CTX *_mem_save_output_file_0 = NULL;
   17407           0 :         uint32_t _ptr_datatype;
   17408         668 :         uint32_t size_datatype_1 = 0;
   17409         668 :         uint32_t length_datatype_1 = 0;
   17410         668 :         TALLOC_CTX *_mem_save_datatype_0 = NULL;
   17411         668 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   17412         668 :         if (ndr_flags & NDR_SCALARS) {
   17413         668 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
   17414         668 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
   17415         668 :                 if (_ptr_document_name) {
   17416         668 :                         NDR_PULL_ALLOC(ndr, r->document_name);
   17417             :                 } else {
   17418           0 :                         r->document_name = NULL;
   17419             :                 }
   17420         668 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_output_file));
   17421         668 :                 if (_ptr_output_file) {
   17422          28 :                         NDR_PULL_ALLOC(ndr, r->output_file);
   17423             :                 } else {
   17424         640 :                         r->output_file = NULL;
   17425             :                 }
   17426         668 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
   17427         668 :                 if (_ptr_datatype) {
   17428         668 :                         NDR_PULL_ALLOC(ndr, r->datatype);
   17429             :                 } else {
   17430           0 :                         r->datatype = NULL;
   17431             :                 }
   17432         668 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
   17433             :         }
   17434         668 :         if (ndr_flags & NDR_BUFFERS) {
   17435         668 :                 if (r->document_name) {
   17436         668 :                         _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
   17437         668 :                         NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
   17438         668 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
   17439         668 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
   17440         668 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->document_name, &size_document_name_1));
   17441         668 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->document_name, &length_document_name_1));
   17442         668 :                         if (length_document_name_1 > size_document_name_1) {
   17443           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_document_name_1, length_document_name_1);
   17444             :                         }
   17445         668 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_document_name_1, sizeof(uint16_t)));
   17446         668 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, length_document_name_1, sizeof(uint16_t), CH_UTF16));
   17447         668 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
   17448             :                 }
   17449         668 :                 if (r->output_file) {
   17450          28 :                         _mem_save_output_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
   17451          28 :                         NDR_PULL_SET_MEM_CTX(ndr, r->output_file, 0);
   17452          28 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->output_file));
   17453          28 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->output_file));
   17454          28 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->output_file, &size_output_file_1));
   17455          28 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->output_file, &length_output_file_1));
   17456          28 :                         if (length_output_file_1 > size_output_file_1) {
   17457           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_output_file_1, length_output_file_1);
   17458             :                         }
   17459          28 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_output_file_1, sizeof(uint16_t)));
   17460          28 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->output_file, length_output_file_1, sizeof(uint16_t), CH_UTF16));
   17461          28 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_output_file_0, 0);
   17462             :                 }
   17463         668 :                 if (r->datatype) {
   17464         668 :                         _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
   17465         668 :                         NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
   17466         668 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->datatype));
   17467         668 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->datatype));
   17468         668 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->datatype, &size_datatype_1));
   17469         668 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->datatype, &length_datatype_1));
   17470         668 :                         if (length_datatype_1 > size_datatype_1) {
   17471           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_datatype_1, length_datatype_1);
   17472             :                         }
   17473         668 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_datatype_1, sizeof(uint16_t)));
   17474         668 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->datatype, length_datatype_1, sizeof(uint16_t), CH_UTF16));
   17475         668 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
   17476             :                 }
   17477             :         }
   17478         668 :         return NDR_ERR_SUCCESS;
   17479             : }
   17480             : 
   17481           0 : _PUBLIC_ void ndr_print_spoolss_DocumentInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DocumentInfo1 *r)
   17482             : {
   17483           0 :         ndr_print_struct(ndr, name, "spoolss_DocumentInfo1");
   17484           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   17485           0 :         ndr->depth++;
   17486           0 :         ndr_print_ptr(ndr, "document_name", r->document_name);
   17487           0 :         ndr->depth++;
   17488           0 :         if (r->document_name) {
   17489           0 :                 ndr_print_string(ndr, "document_name", r->document_name);
   17490             :         }
   17491           0 :         ndr->depth--;
   17492           0 :         ndr_print_ptr(ndr, "output_file", r->output_file);
   17493           0 :         ndr->depth++;
   17494           0 :         if (r->output_file) {
   17495           0 :                 ndr_print_string(ndr, "output_file", r->output_file);
   17496             :         }
   17497           0 :         ndr->depth--;
   17498           0 :         ndr_print_ptr(ndr, "datatype", r->datatype);
   17499           0 :         ndr->depth++;
   17500           0 :         if (r->datatype) {
   17501           0 :                 ndr_print_string(ndr, "datatype", r->datatype);
   17502             :         }
   17503           0 :         ndr->depth--;
   17504           0 :         ndr->depth--;
   17505             : }
   17506             : 
   17507        1336 : static enum ndr_err_code ndr_push_spoolss_DocumentInfo(struct ndr_push *ndr, ndr_flags_type ndr_flags, const union spoolss_DocumentInfo *r)
   17508             : {
   17509           0 :         uint32_t level;
   17510        1336 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   17511        1336 :         if (ndr_flags & NDR_SCALARS) {
   17512             :                 /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
   17513         668 :                 NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
   17514         668 :                 NDR_CHECK(ndr_push_union_align(ndr, 5));
   17515         668 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
   17516             :                 /* ms_union is always aligned to the largest union arm*/
   17517         668 :                 NDR_CHECK(ndr_push_align(ndr, 5));
   17518         668 :                 switch (level) {
   17519         668 :                         case 1: {
   17520         668 :                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
   17521         668 :                         break; }
   17522             : 
   17523           0 :                         case 2: {
   17524           0 :                         break; }
   17525             : 
   17526           0 :                         case 3: {
   17527           0 :                         break; }
   17528             : 
   17529           0 :                         default: {
   17530           0 :                         break; }
   17531             : 
   17532             :                 }
   17533             :         }
   17534        1336 :         if (ndr_flags & NDR_BUFFERS) {
   17535         668 :                 if (!(ndr_flags & NDR_SCALARS)) {
   17536             :                         /* We didn't get it above, and the token is not needed after this. */
   17537         668 :                         NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
   17538             :                 }
   17539         668 :                 switch (level) {
   17540         668 :                         case 1:
   17541         668 :                                 if (r->info1) {
   17542         668 :                                         NDR_CHECK(ndr_push_spoolss_DocumentInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
   17543             :                                 }
   17544         668 :                         break;
   17545             : 
   17546           0 :                         case 2:
   17547           0 :                         break;
   17548             : 
   17549           0 :                         case 3:
   17550           0 :                         break;
   17551             : 
   17552           0 :                         default:
   17553           0 :                         break;
   17554             : 
   17555             :                 }
   17556             :         }
   17557        1336 :         return NDR_ERR_SUCCESS;
   17558             : }
   17559             : 
   17560        1336 : static enum ndr_err_code ndr_pull_spoolss_DocumentInfo(struct ndr_pull *ndr, ndr_flags_type ndr_flags, union spoolss_DocumentInfo *r)
   17561             : {
   17562           0 :         uint32_t level;
   17563           0 :         uint32_t _level;
   17564        1336 :         TALLOC_CTX *_mem_save_info1_0 = NULL;
   17565           0 :         uint32_t _ptr_info1;
   17566        1336 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   17567        1336 :         if (ndr_flags & NDR_SCALARS) {
   17568             :                 /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
   17569         668 :                 NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
   17570         668 :                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
   17571         668 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
   17572         668 :                 if (_level != level) {
   17573           0 :                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32" for r at %s", (uint32_t)_level, __location__);
   17574             :                 }
   17575             :                 /* ms_union is always aligned to the largest union arm*/
   17576         668 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
   17577         668 :                 switch (level) {
   17578         668 :                         case 1: {
   17579         668 :                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
   17580         668 :                                 if (_ptr_info1) {
   17581         668 :                                         NDR_PULL_ALLOC(ndr, r->info1);
   17582             :                                 } else {
   17583           0 :                                         r->info1 = NULL;
   17584             :                                 }
   17585         668 :                         break; }
   17586             : 
   17587           0 :                         case 2: {
   17588           0 :                         break; }
   17589             : 
   17590           0 :                         case 3: {
   17591           0 :                         break; }
   17592             : 
   17593           0 :                         default: {
   17594           0 :                         break; }
   17595             : 
   17596             :                 }
   17597             :         }
   17598        1336 :         if (ndr_flags & NDR_BUFFERS) {
   17599         668 :                 if (!(ndr_flags & NDR_SCALARS)) {
   17600             :                         /* We didn't get it above, and the token is not needed after this. */
   17601         668 :                         NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
   17602             :                 }
   17603         668 :                 switch (level) {
   17604         668 :                         case 1:
   17605         668 :                                 if (r->info1) {
   17606         668 :                                         _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
   17607         668 :                                         NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
   17608         668 :                                         NDR_CHECK(ndr_pull_spoolss_DocumentInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
   17609         668 :                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
   17610             :                                 }
   17611         668 :                         break;
   17612             : 
   17613           0 :                         case 2:
   17614           0 :                         break;
   17615             : 
   17616           0 :                         case 3:
   17617           0 :                         break;
   17618             : 
   17619           0 :                         default:
   17620           0 :                         break;
   17621             : 
   17622             :                 }
   17623             :         }
   17624        1336 :         return NDR_ERR_SUCCESS;
   17625             : }
   17626             : 
   17627           0 : _PUBLIC_ void ndr_print_spoolss_DocumentInfo(struct ndr_print *ndr, const char *name, const union spoolss_DocumentInfo *r)
   17628             : {
   17629           0 :         uint32_t level;
   17630           0 :         level = ndr_print_steal_switch_value(ndr, r);
   17631           0 :         ndr_print_union(ndr, name, level, "spoolss_DocumentInfo");
   17632           0 :         switch (level) {
   17633           0 :                 case 1:
   17634           0 :                         ndr_print_ptr(ndr, "info1", r->info1);
   17635           0 :                         ndr->depth++;
   17636           0 :                         if (r->info1) {
   17637           0 :                                 ndr_print_spoolss_DocumentInfo1(ndr, "info1", r->info1);
   17638             :                         }
   17639           0 :                         ndr->depth--;
   17640           0 :                 break;
   17641             : 
   17642           0 :                 case 2:
   17643           0 :                 break;
   17644             : 
   17645           0 :                 case 3:
   17646           0 :                 break;
   17647             : 
   17648           0 :                 default:
   17649           0 :                 break;
   17650             : 
   17651             :         }
   17652           0 : }
   17653             : 
   17654         668 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DocumentInfoCtr(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_DocumentInfoCtr *r)
   17655             : {
   17656         668 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   17657         668 :         if (ndr_flags & NDR_SCALARS) {
   17658         668 :                 NDR_CHECK(ndr_push_align(ndr, 5));
   17659         668 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
   17660         668 :                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
   17661         668 :                 NDR_CHECK(ndr_push_spoolss_DocumentInfo(ndr, NDR_SCALARS, &r->info));
   17662         668 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
   17663             :         }
   17664         668 :         if (ndr_flags & NDR_BUFFERS) {
   17665         668 :                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
   17666         668 :                 NDR_CHECK(ndr_push_spoolss_DocumentInfo(ndr, NDR_BUFFERS, &r->info));
   17667             :         }
   17668         668 :         return NDR_ERR_SUCCESS;
   17669             : }
   17670             : 
   17671         668 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DocumentInfoCtr(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_DocumentInfoCtr *r)
   17672             : {
   17673         668 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   17674         668 :         if (ndr_flags & NDR_SCALARS) {
   17675         668 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
   17676         668 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
   17677         668 :                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
   17678         668 :                 NDR_CHECK(ndr_pull_spoolss_DocumentInfo(ndr, NDR_SCALARS, &r->info));
   17679         668 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
   17680             :         }
   17681         668 :         if (ndr_flags & NDR_BUFFERS) {
   17682         668 :                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
   17683         668 :                 NDR_CHECK(ndr_pull_spoolss_DocumentInfo(ndr, NDR_BUFFERS, &r->info));
   17684             :         }
   17685         668 :         return NDR_ERR_SUCCESS;
   17686             : }
   17687             : 
   17688           0 : static void ndr_print_flags_spoolss_DocumentInfoCtr(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_DocumentInfoCtr *r)
   17689             : {
   17690           0 :         ndr_print_spoolss_DocumentInfoCtr(ndr, name, r);
   17691           0 : }
   17692             : 
   17693           0 : _PUBLIC_ void ndr_print_spoolss_DocumentInfoCtr(struct ndr_print *ndr, const char *name, const struct spoolss_DocumentInfoCtr *r)
   17694             : {
   17695           0 :         ndr_print_struct(ndr, name, "spoolss_DocumentInfoCtr");
   17696           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   17697           0 :         ndr->depth++;
   17698           0 :         ndr_print_uint32(ndr, "level", r->level);
   17699           0 :         ndr_print_set_switch_value(ndr, &r->info, r->level);
   17700           0 :         ndr_print_spoolss_DocumentInfo(ndr, "info", &r->info);
   17701           0 :         ndr->depth--;
   17702             : }
   17703             : 
   17704          80 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OSVersion(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_OSVersion *r)
   17705             : {
   17706          80 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   17707          80 :         if (ndr_flags & NDR_SCALARS) {
   17708          80 :                 NDR_CHECK(ndr_push_align(ndr, 4));
   17709          80 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_OSVersion(r, ndr->flags)));
   17710          80 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->major));
   17711          80 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minor));
   17712          80 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
   17713          80 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
   17714             :                 {
   17715          80 :                         libndr_flags _flags_save_string = ndr->flags;
   17716          80 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   17717             :                         {
   17718           0 :                                 struct ndr_push *_ndr_extra_string;
   17719          80 :                                 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
   17720          80 :                                 NDR_CHECK(ndr_push_string(_ndr_extra_string, NDR_SCALARS, r->extra_string));
   17721          80 :                                 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_extra_string, 0, 256));
   17722             :                         }
   17723          80 :                         ndr->flags = _flags_save_string;
   17724             :                 }
   17725          80 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
   17726             :         }
   17727          80 :         if (ndr_flags & NDR_BUFFERS) {
   17728           0 :         }
   17729          80 :         return NDR_ERR_SUCCESS;
   17730             : }
   17731             : 
   17732           8 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OSVersion(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_OSVersion *r)
   17733             : {
   17734           8 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   17735           8 :         if (ndr_flags & NDR_SCALARS) {
   17736           8 :                 NDR_CHECK(ndr_pull_align(ndr, 4));
   17737           8 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
   17738           8 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->major));
   17739           8 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minor));
   17740           8 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
   17741           8 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->platform_id));
   17742             :                 {
   17743           8 :                         libndr_flags _flags_save_string = ndr->flags;
   17744           8 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   17745             :                         {
   17746           0 :                                 struct ndr_pull *_ndr_extra_string;
   17747           8 :                                 ssize_t sub_size = 256;
   17748           8 :                                 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_extra_string, 0, sub_size));
   17749           8 :                                 NDR_CHECK(ndr_pull_string(_ndr_extra_string, NDR_SCALARS, &r->extra_string));
   17750           8 :                                 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_extra_string, 0, sub_size));
   17751             :                         }
   17752           8 :                         ndr->flags = _flags_save_string;
   17753             :                 }
   17754           8 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
   17755             :         }
   17756           8 :         if (ndr_flags & NDR_BUFFERS) {
   17757           0 :         }
   17758           8 :         return NDR_ERR_SUCCESS;
   17759             : }
   17760             : 
   17761           0 : static void ndr_print_flags_spoolss_OSVersion(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_OSVersion *r)
   17762             : {
   17763           0 :         ndr_print_spoolss_OSVersion(ndr, name, r);
   17764           0 : }
   17765             : 
   17766           0 : _PUBLIC_ void ndr_print_spoolss_OSVersion(struct ndr_print *ndr, const char *name, const struct spoolss_OSVersion *r)
   17767             : {
   17768           0 :         ndr_print_struct(ndr, name, "spoolss_OSVersion");
   17769           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   17770           0 :         ndr->depth++;
   17771           0 :         ndr_print_uint32(ndr, "_ndr_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_spoolss_OSVersion(r, ndr->flags):r->_ndr_size);
   17772           0 :         ndr_print_uint32(ndr, "major", r->major);
   17773           0 :         ndr_print_uint32(ndr, "minor", r->minor);
   17774           0 :         ndr_print_uint32(ndr, "build", r->build);
   17775           0 :         ndr_print_uint32(ndr, "platform_id", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->platform_id);
   17776             :         {
   17777           0 :                 libndr_flags _flags_save_string = ndr->flags;
   17778           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   17779           0 :                 ndr_print_string(ndr, "extra_string", r->extra_string);
   17780           0 :                 ndr->flags = _flags_save_string;
   17781             :         }
   17782           0 :         ndr->depth--;
   17783             : }
   17784             : 
   17785          80 : _PUBLIC_ size_t ndr_size_spoolss_OSVersion(const struct spoolss_OSVersion *r, libndr_flags flags)
   17786             : {
   17787          80 :         return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_OSVersion);
   17788             : }
   17789             : 
   17790           0 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OSVersionEx(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_OSVersionEx *r)
   17791             : {
   17792           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   17793           0 :         if (ndr_flags & NDR_SCALARS) {
   17794           0 :                 NDR_CHECK(ndr_push_align(ndr, 4));
   17795           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_OSVersionEx(r, ndr->flags)));
   17796           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->major));
   17797           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minor));
   17798           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
   17799           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
   17800             :                 {
   17801           0 :                         libndr_flags _flags_save_string = ndr->flags;
   17802           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   17803             :                         {
   17804           0 :                                 struct ndr_push *_ndr_extra_string;
   17805           0 :                                 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
   17806           0 :                                 NDR_CHECK(ndr_push_string(_ndr_extra_string, NDR_SCALARS, r->extra_string));
   17807           0 :                                 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_extra_string, 0, 256));
   17808             :                         }
   17809           0 :                         ndr->flags = _flags_save_string;
   17810             :                 }
   17811           0 :                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->service_pack_major));
   17812           0 :                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->service_pack_minor));
   17813           0 :                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->suite_mask));
   17814           0 :                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->product_type));
   17815           0 :                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->reserved));
   17816           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
   17817             :         }
   17818           0 :         if (ndr_flags & NDR_BUFFERS) {
   17819           0 :         }
   17820           0 :         return NDR_ERR_SUCCESS;
   17821             : }
   17822             : 
   17823           0 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OSVersionEx(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_OSVersionEx *r)
   17824             : {
   17825           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   17826           0 :         if (ndr_flags & NDR_SCALARS) {
   17827           0 :                 NDR_CHECK(ndr_pull_align(ndr, 4));
   17828           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
   17829           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->major));
   17830           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minor));
   17831           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
   17832           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->platform_id));
   17833             :                 {
   17834           0 :                         libndr_flags _flags_save_string = ndr->flags;
   17835           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   17836             :                         {
   17837           0 :                                 struct ndr_pull *_ndr_extra_string;
   17838           0 :                                 ssize_t sub_size = 256;
   17839           0 :                                 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_extra_string, 0, sub_size));
   17840           0 :                                 NDR_CHECK(ndr_pull_string(_ndr_extra_string, NDR_SCALARS, &r->extra_string));
   17841           0 :                                 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_extra_string, 0, sub_size));
   17842             :                         }
   17843           0 :                         ndr->flags = _flags_save_string;
   17844             :                 }
   17845           0 :                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->service_pack_major));
   17846           0 :                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->service_pack_minor));
   17847           0 :                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->suite_mask));
   17848           0 :                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->product_type));
   17849           0 :                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->reserved));
   17850           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
   17851             :         }
   17852           0 :         if (ndr_flags & NDR_BUFFERS) {
   17853           0 :         }
   17854           0 :         return NDR_ERR_SUCCESS;
   17855             : }
   17856             : 
   17857           0 : static void ndr_print_flags_spoolss_OSVersionEx(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_OSVersionEx *r)
   17858             : {
   17859           0 :         ndr_print_spoolss_OSVersionEx(ndr, name, r);
   17860           0 : }
   17861             : 
   17862           0 : _PUBLIC_ void ndr_print_spoolss_OSVersionEx(struct ndr_print *ndr, const char *name, const struct spoolss_OSVersionEx *r)
   17863             : {
   17864           0 :         ndr_print_struct(ndr, name, "spoolss_OSVersionEx");
   17865           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   17866           0 :         ndr->depth++;
   17867           0 :         ndr_print_uint32(ndr, "_ndr_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_spoolss_OSVersionEx(r, ndr->flags):r->_ndr_size);
   17868           0 :         ndr_print_uint32(ndr, "major", r->major);
   17869           0 :         ndr_print_uint32(ndr, "minor", r->minor);
   17870           0 :         ndr_print_uint32(ndr, "build", r->build);
   17871           0 :         ndr_print_uint32(ndr, "platform_id", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->platform_id);
   17872             :         {
   17873           0 :                 libndr_flags _flags_save_string = ndr->flags;
   17874           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   17875           0 :                 ndr_print_string(ndr, "extra_string", r->extra_string);
   17876           0 :                 ndr->flags = _flags_save_string;
   17877             :         }
   17878           0 :         ndr_print_uint16(ndr, "service_pack_major", r->service_pack_major);
   17879           0 :         ndr_print_uint16(ndr, "service_pack_minor", r->service_pack_minor);
   17880           0 :         ndr_print_uint16(ndr, "suite_mask", r->suite_mask);
   17881           0 :         ndr_print_uint8(ndr, "product_type", r->product_type);
   17882           0 :         ndr_print_uint8(ndr, "reserved", r->reserved);
   17883           0 :         ndr->depth--;
   17884             : }
   17885             : 
   17886           0 : _PUBLIC_ size_t ndr_size_spoolss_OSVersionEx(const struct spoolss_OSVersionEx *r, libndr_flags flags)
   17887             : {
   17888           0 :         return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_OSVersionEx);
   17889             : }
   17890             : 
   17891         400 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterData(struct ndr_push *ndr, ndr_flags_type ndr_flags, const union spoolss_PrinterData *r)
   17892             : {
   17893           0 :         uint32_t level;
   17894         400 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   17895         400 :         if (ndr_flags & NDR_SCALARS) {
   17896             :                 /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
   17897         400 :                 NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
   17898         400 :                 NDR_CHECK(ndr_push_union_align(ndr, 4));
   17899         400 :                 switch (level) {
   17900           0 :                         case REG_NONE: {
   17901           0 :                         break; }
   17902             : 
   17903         208 :                         case REG_SZ: {
   17904             :                                 {
   17905         208 :                                         libndr_flags _flags_save_string = ndr->flags;
   17906         208 :                                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   17907         208 :                                         NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->string));
   17908         208 :                                         ndr->flags = _flags_save_string;
   17909             :                                 }
   17910         208 :                         break; }
   17911             : 
   17912          40 :                         case REG_BINARY: {
   17913             :                                 {
   17914          40 :                                         libndr_flags _flags_save_DATA_BLOB = ndr->flags;
   17915          40 :                                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
   17916          40 :                                         NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->binary));
   17917          40 :                                         ndr->flags = _flags_save_DATA_BLOB;
   17918             :                                 }
   17919          40 :                         break; }
   17920             : 
   17921         152 :                         case REG_DWORD: {
   17922         152 :                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->value));
   17923         152 :                         break; }
   17924             : 
   17925           0 :                         case REG_MULTI_SZ: {
   17926             :                                 {
   17927           0 :                                         libndr_flags _flags_save_string_array = ndr->flags;
   17928           0 :                                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   17929           0 :                                         NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->string_array));
   17930           0 :                                         ndr->flags = _flags_save_string_array;
   17931             :                                 }
   17932           0 :                         break; }
   17933             : 
   17934           0 :                         default: {
   17935             :                                 {
   17936           0 :                                         libndr_flags _flags_save_DATA_BLOB = ndr->flags;
   17937           0 :                                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
   17938           0 :                                         NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->data));
   17939           0 :                                         ndr->flags = _flags_save_DATA_BLOB;
   17940             :                                 }
   17941           0 :                         break; }
   17942             : 
   17943             :                 }
   17944             :         }
   17945         400 :         return NDR_ERR_SUCCESS;
   17946             : }
   17947             : 
   17948           0 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterData(struct ndr_pull *ndr, ndr_flags_type ndr_flags, union spoolss_PrinterData *r)
   17949             : {
   17950           0 :         uint32_t level;
   17951           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   17952           0 :         if (ndr_flags & NDR_SCALARS) {
   17953             :                 /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
   17954           0 :                 NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
   17955           0 :                 NDR_CHECK(ndr_pull_union_align(ndr, 4));
   17956           0 :                 switch (level) {
   17957           0 :                         case REG_NONE: {
   17958           0 :                         break; }
   17959             : 
   17960           0 :                         case REG_SZ: {
   17961             :                                 {
   17962           0 :                                         libndr_flags _flags_save_string = ndr->flags;
   17963           0 :                                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   17964           0 :                                         NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->string));
   17965           0 :                                         ndr->flags = _flags_save_string;
   17966             :                                 }
   17967           0 :                         break; }
   17968             : 
   17969           0 :                         case REG_BINARY: {
   17970             :                                 {
   17971           0 :                                         libndr_flags _flags_save_DATA_BLOB = ndr->flags;
   17972           0 :                                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
   17973           0 :                                         NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->binary));
   17974           0 :                                         ndr->flags = _flags_save_DATA_BLOB;
   17975             :                                 }
   17976           0 :                         break; }
   17977             : 
   17978           0 :                         case REG_DWORD: {
   17979           0 :                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->value));
   17980           0 :                         break; }
   17981             : 
   17982           0 :                         case REG_MULTI_SZ: {
   17983             :                                 {
   17984           0 :                                         libndr_flags _flags_save_string_array = ndr->flags;
   17985           0 :                                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   17986           0 :                                         NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->string_array));
   17987           0 :                                         ndr->flags = _flags_save_string_array;
   17988             :                                 }
   17989           0 :                         break; }
   17990             : 
   17991           0 :                         default: {
   17992             :                                 {
   17993           0 :                                         libndr_flags _flags_save_DATA_BLOB = ndr->flags;
   17994           0 :                                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
   17995           0 :                                         NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->data));
   17996           0 :                                         ndr->flags = _flags_save_DATA_BLOB;
   17997             :                                 }
   17998           0 :                         break; }
   17999             : 
   18000             :                 }
   18001             :         }
   18002           0 :         return NDR_ERR_SUCCESS;
   18003             : }
   18004             : 
   18005           0 : _PUBLIC_ void ndr_print_spoolss_PrinterData(struct ndr_print *ndr, const char *name, const union spoolss_PrinterData *r)
   18006             : {
   18007           0 :         uint32_t level;
   18008           0 :         level = ndr_print_steal_switch_value(ndr, r);
   18009           0 :         ndr_print_union(ndr, name, level, "spoolss_PrinterData");
   18010           0 :         switch (level) {
   18011           0 :                 case REG_NONE:
   18012           0 :                 break;
   18013             : 
   18014           0 :                 case REG_SZ:
   18015             :                         {
   18016           0 :                                 libndr_flags _flags_save_string = ndr->flags;
   18017           0 :                                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   18018           0 :                                 ndr_print_string(ndr, "string", r->string);
   18019           0 :                                 ndr->flags = _flags_save_string;
   18020             :                         }
   18021           0 :                 break;
   18022             : 
   18023           0 :                 case REG_BINARY:
   18024             :                         {
   18025           0 :                                 libndr_flags _flags_save_DATA_BLOB = ndr->flags;
   18026           0 :                                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
   18027           0 :                                 ndr_print_DATA_BLOB(ndr, "binary", r->binary);
   18028           0 :                                 ndr->flags = _flags_save_DATA_BLOB;
   18029             :                         }
   18030           0 :                 break;
   18031             : 
   18032           0 :                 case REG_DWORD:
   18033           0 :                         ndr_print_uint32(ndr, "value", r->value);
   18034           0 :                 break;
   18035             : 
   18036           0 :                 case REG_MULTI_SZ:
   18037             :                         {
   18038           0 :                                 libndr_flags _flags_save_string_array = ndr->flags;
   18039           0 :                                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   18040           0 :                                 ndr_print_string_array(ndr, "string_array", r->string_array);
   18041           0 :                                 ndr->flags = _flags_save_string_array;
   18042             :                         }
   18043           0 :                 break;
   18044             : 
   18045           0 :                 default:
   18046             :                         {
   18047           0 :                                 libndr_flags _flags_save_DATA_BLOB = ndr->flags;
   18048           0 :                                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
   18049           0 :                                 ndr_print_DATA_BLOB(ndr, "data", r->data);
   18050           0 :                                 ndr->flags = _flags_save_DATA_BLOB;
   18051             :                         }
   18052           0 :                 break;
   18053             : 
   18054             :         }
   18055           0 : }
   18056             : 
   18057      103376 : static enum ndr_err_code ndr_push_spoolss_FormFlags(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum spoolss_FormFlags r)
   18058             : {
   18059      103376 :         NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
   18060      103376 :         return NDR_ERR_SUCCESS;
   18061             : }
   18062             : 
   18063       34896 : static enum ndr_err_code ndr_pull_spoolss_FormFlags(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum spoolss_FormFlags *r)
   18064             : {
   18065           0 :         uint32_t v;
   18066       34896 :         NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
   18067       34896 :         *r = v;
   18068       34896 :         return NDR_ERR_SUCCESS;
   18069             : }
   18070             : 
   18071           0 : _PUBLIC_ void ndr_print_spoolss_FormFlags(struct ndr_print *ndr, const char *name, enum spoolss_FormFlags r)
   18072             : {
   18073           0 :         const char *val = NULL;
   18074             : 
   18075           0 :         switch (r) {
   18076           0 :                 case SPOOLSS_FORM_USER: val = "SPOOLSS_FORM_USER"; break;
   18077           0 :                 case SPOOLSS_FORM_BUILTIN: val = "SPOOLSS_FORM_BUILTIN"; break;
   18078           0 :                 case SPOOLSS_FORM_PRINTER: val = "SPOOLSS_FORM_PRINTER"; break;
   18079             :         }
   18080           0 :         ndr_print_enum(ndr, name, "ENUM", val, r);
   18081           0 : }
   18082             : 
   18083      103376 : static enum ndr_err_code ndr_push_spoolss_FormSize(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_FormSize *r)
   18084             : {
   18085      103376 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   18086      103376 :         if (ndr_flags & NDR_SCALARS) {
   18087      103376 :                 NDR_CHECK(ndr_push_align(ndr, 4));
   18088      103376 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->width));
   18089      103376 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->height));
   18090      103376 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
   18091             :         }
   18092      103376 :         if (ndr_flags & NDR_BUFFERS) {
   18093           0 :         }
   18094      103376 :         return NDR_ERR_SUCCESS;
   18095             : }
   18096             : 
   18097       34896 : static enum ndr_err_code ndr_pull_spoolss_FormSize(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_FormSize *r)
   18098             : {
   18099       34896 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   18100       34896 :         if (ndr_flags & NDR_SCALARS) {
   18101       34896 :                 NDR_CHECK(ndr_pull_align(ndr, 4));
   18102       34896 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->width));
   18103       34896 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->height));
   18104       34896 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
   18105             :         }
   18106       34896 :         if (ndr_flags & NDR_BUFFERS) {
   18107           0 :         }
   18108       34896 :         return NDR_ERR_SUCCESS;
   18109             : }
   18110             : 
   18111           0 : _PUBLIC_ void ndr_print_spoolss_FormSize(struct ndr_print *ndr, const char *name, const struct spoolss_FormSize *r)
   18112             : {
   18113           0 :         ndr_print_struct(ndr, name, "spoolss_FormSize");
   18114           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   18115           0 :         ndr->depth++;
   18116           0 :         ndr_print_uint32(ndr, "width", r->width);
   18117           0 :         ndr_print_uint32(ndr, "height", r->height);
   18118           0 :         ndr->depth--;
   18119             : }
   18120             : 
   18121      103376 : static enum ndr_err_code ndr_push_spoolss_FormArea(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_FormArea *r)
   18122             : {
   18123      103376 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   18124      103376 :         if (ndr_flags & NDR_SCALARS) {
   18125      103376 :                 NDR_CHECK(ndr_push_align(ndr, 4));
   18126      103376 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->left));
   18127      103376 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->top));
   18128      103376 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->right));
   18129      103376 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bottom));
   18130      103376 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
   18131             :         }
   18132      103376 :         if (ndr_flags & NDR_BUFFERS) {
   18133           0 :         }
   18134      103376 :         return NDR_ERR_SUCCESS;
   18135             : }
   18136             : 
   18137       34896 : static enum ndr_err_code ndr_pull_spoolss_FormArea(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_FormArea *r)
   18138             : {
   18139       34896 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   18140       34896 :         if (ndr_flags & NDR_SCALARS) {
   18141       34896 :                 NDR_CHECK(ndr_pull_align(ndr, 4));
   18142       34896 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->left));
   18143       34896 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->top));
   18144       34896 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->right));
   18145       34896 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bottom));
   18146       34896 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
   18147             :         }
   18148       34896 :         if (ndr_flags & NDR_BUFFERS) {
   18149           0 :         }
   18150       34896 :         return NDR_ERR_SUCCESS;
   18151             : }
   18152             : 
   18153           0 : _PUBLIC_ void ndr_print_spoolss_FormArea(struct ndr_print *ndr, const char *name, const struct spoolss_FormArea *r)
   18154             : {
   18155           0 :         ndr_print_struct(ndr, name, "spoolss_FormArea");
   18156           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   18157           0 :         ndr->depth++;
   18158           0 :         ndr_print_uint32(ndr, "left", r->left);
   18159           0 :         ndr_print_uint32(ndr, "top", r->top);
   18160           0 :         ndr_print_uint32(ndr, "right", r->right);
   18161           0 :         ndr_print_uint32(ndr, "bottom", r->bottom);
   18162           0 :         ndr->depth--;
   18163             : }
   18164             : 
   18165      205440 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo1(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_FormInfo1 *r)
   18166             : {
   18167      205440 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   18168      205440 :         if (ndr_flags & NDR_SCALARS) {
   18169      102720 :                 NDR_CHECK(ndr_push_align(ndr, 5));
   18170      102720 :                 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
   18171             :                 {
   18172      102720 :                         libndr_flags _flags_save_string = ndr->flags;
   18173      102720 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   18174      102720 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->form_name));
   18175      102720 :                         ndr->flags = _flags_save_string;
   18176             :                 }
   18177      102720 :                 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
   18178      102720 :                 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
   18179      102720 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
   18180             :         }
   18181      205440 :         if (ndr_flags & NDR_BUFFERS) {
   18182             :                 {
   18183      102720 :                         libndr_flags _flags_save_string = ndr->flags;
   18184      102720 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   18185      102720 :                         if (r->form_name) {
   18186      102720 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->form_name));
   18187      102720 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->form_name));
   18188      102720 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->form_name));
   18189             :                         }
   18190      102720 :                         ndr->flags = _flags_save_string;
   18191             :                 }
   18192             :         }
   18193      205440 :         return NDR_ERR_SUCCESS;
   18194             : }
   18195             : 
   18196       68480 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo1(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_FormInfo1 *r)
   18197             : {
   18198           0 :         uint32_t _ptr_form_name;
   18199       68480 :         TALLOC_CTX *_mem_save_form_name_0 = NULL;
   18200       68480 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   18201       68480 :         if (ndr_flags & NDR_SCALARS) {
   18202       34240 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
   18203       34240 :                 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
   18204             :                 {
   18205       34240 :                         libndr_flags _flags_save_string = ndr->flags;
   18206       34240 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   18207       34240 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
   18208       34240 :                         if (_ptr_form_name) {
   18209       34240 :                                 NDR_PULL_ALLOC(ndr, r->form_name);
   18210       34240 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->form_name, _ptr_form_name));
   18211             :                         } else {
   18212           0 :                                 r->form_name = NULL;
   18213             :                         }
   18214       34240 :                         ndr->flags = _flags_save_string;
   18215             :                 }
   18216       34240 :                 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
   18217       34240 :                 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
   18218       34240 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
   18219             :         }
   18220       68480 :         if (ndr_flags & NDR_BUFFERS) {
   18221             :                 {
   18222       34240 :                         libndr_flags _flags_save_string = ndr->flags;
   18223       34240 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   18224       34240 :                         if (r->form_name) {
   18225           0 :                                 uint32_t _relative_save_offset;
   18226       34240 :                                 _relative_save_offset = ndr->offset;
   18227       34240 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->form_name));
   18228       34240 :                                 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
   18229       34240 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
   18230       34240 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->form_name));
   18231       34240 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
   18232       34240 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   18233        2788 :                                         ndr->relative_highest_offset = ndr->offset;
   18234             :                                 }
   18235       34240 :                                 ndr->offset = _relative_save_offset;
   18236             :                         }
   18237       34240 :                         ndr->flags = _flags_save_string;
   18238             :                 }
   18239             :         }
   18240       68480 :         return NDR_ERR_SUCCESS;
   18241             : }
   18242             : 
   18243           0 : static void ndr_print_flags_spoolss_FormInfo1(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_FormInfo1 *r)
   18244             : {
   18245           0 :         ndr_print_spoolss_FormInfo1(ndr, name, r);
   18246           0 : }
   18247             : 
   18248           0 : _PUBLIC_ void ndr_print_spoolss_FormInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_FormInfo1 *r)
   18249             : {
   18250           0 :         ndr_print_struct(ndr, name, "spoolss_FormInfo1");
   18251           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   18252           0 :         ndr->depth++;
   18253           0 :         ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
   18254             :         {
   18255           0 :                 libndr_flags _flags_save_string = ndr->flags;
   18256           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   18257           0 :                 ndr_print_ptr(ndr, "form_name", r->form_name);
   18258           0 :                 ndr->depth++;
   18259           0 :                 if (r->form_name) {
   18260           0 :                         ndr_print_string(ndr, "form_name", r->form_name);
   18261             :                 }
   18262           0 :                 ndr->depth--;
   18263           0 :                 ndr->flags = _flags_save_string;
   18264             :         }
   18265           0 :         ndr_print_spoolss_FormSize(ndr, "size", &r->size);
   18266           0 :         ndr_print_spoolss_FormArea(ndr, "area", &r->area);
   18267           0 :         ndr->depth--;
   18268             : }
   18269             : 
   18270           0 : _PUBLIC_ size_t ndr_size_spoolss_FormInfo1(const struct spoolss_FormInfo1 *r, libndr_flags flags)
   18271             : {
   18272           0 :         return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_FormInfo1);
   18273             : }
   18274             : 
   18275           0 : static enum ndr_err_code ndr_push_spoolss_FormStringType(struct ndr_push *ndr, ndr_flags_type ndr_flags, uint32_t r)
   18276             : {
   18277           0 :         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
   18278           0 :         return NDR_ERR_SUCCESS;
   18279             : }
   18280             : 
   18281           0 : static enum ndr_err_code ndr_pull_spoolss_FormStringType(struct ndr_pull *ndr, ndr_flags_type ndr_flags, uint32_t *r)
   18282             : {
   18283           0 :         uint32_t v;
   18284           0 :         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
   18285           0 :         *r = v;
   18286           0 :         return NDR_ERR_SUCCESS;
   18287             : }
   18288             : 
   18289           0 : _PUBLIC_ void ndr_print_spoolss_FormStringType(struct ndr_print *ndr, const char *name, uint32_t r)
   18290             : {
   18291           0 :         ndr_print_uint32(ndr, name, r);
   18292           0 :         ndr->depth++;
   18293           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_NONE", SPOOLSS_FORM_STRING_TYPE_NONE, r);
   18294           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_MUI_DLL", SPOOLSS_FORM_STRING_TYPE_MUI_DLL, r);
   18295           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_LANG_PAIR", SPOOLSS_FORM_STRING_TYPE_LANG_PAIR, r);
   18296           0 :         ndr->depth--;
   18297           0 : }
   18298             : 
   18299           0 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo2(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_FormInfo2 *r)
   18300             : {
   18301           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   18302           0 :         if (ndr_flags & NDR_SCALARS) {
   18303           0 :                 NDR_CHECK(ndr_push_align(ndr, 5));
   18304           0 :                 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
   18305             :                 {
   18306           0 :                         libndr_flags _flags_save_string = ndr->flags;
   18307           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   18308           0 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->form_name));
   18309           0 :                         ndr->flags = _flags_save_string;
   18310             :                 }
   18311           0 :                 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
   18312           0 :                 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
   18313             :                 {
   18314           0 :                         libndr_flags _flags_save_string = ndr->flags;
   18315           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
   18316           0 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->keyword));
   18317           0 :                         ndr->flags = _flags_save_string;
   18318             :                 }
   18319           0 :                 NDR_CHECK(ndr_push_spoolss_FormStringType(ndr, NDR_SCALARS, r->string_type));
   18320             :                 {
   18321           0 :                         libndr_flags _flags_save_string = ndr->flags;
   18322           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   18323           0 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->mui_dll));
   18324           0 :                         ndr->flags = _flags_save_string;
   18325             :                 }
   18326           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ressource_id));
   18327             :                 {
   18328           0 :                         libndr_flags _flags_save_string = ndr->flags;
   18329           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   18330           0 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->display_name));
   18331           0 :                         ndr->flags = _flags_save_string;
   18332             :                 }
   18333           0 :                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lang_id));
   18334           0 :                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->unused));
   18335           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
   18336             :         }
   18337           0 :         if (ndr_flags & NDR_BUFFERS) {
   18338             :                 {
   18339           0 :                         libndr_flags _flags_save_string = ndr->flags;
   18340           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   18341           0 :                         if (r->form_name) {
   18342           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->form_name));
   18343           0 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->form_name));
   18344           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->form_name));
   18345             :                         }
   18346           0 :                         ndr->flags = _flags_save_string;
   18347             :                 }
   18348             :                 {
   18349           0 :                         libndr_flags _flags_save_string = ndr->flags;
   18350           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
   18351           0 :                         if (r->keyword) {
   18352           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->keyword));
   18353           0 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->keyword));
   18354           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->keyword));
   18355             :                         }
   18356           0 :                         ndr->flags = _flags_save_string;
   18357             :                 }
   18358             :                 {
   18359           0 :                         libndr_flags _flags_save_string = ndr->flags;
   18360           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   18361           0 :                         if (r->mui_dll) {
   18362           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->mui_dll));
   18363           0 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->mui_dll));
   18364           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->mui_dll));
   18365             :                         }
   18366           0 :                         ndr->flags = _flags_save_string;
   18367             :                 }
   18368             :                 {
   18369           0 :                         libndr_flags _flags_save_string = ndr->flags;
   18370           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   18371           0 :                         if (r->display_name) {
   18372           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->display_name));
   18373           0 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->display_name));
   18374           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->display_name));
   18375             :                         }
   18376           0 :                         ndr->flags = _flags_save_string;
   18377             :                 }
   18378             :         }
   18379           0 :         return NDR_ERR_SUCCESS;
   18380             : }
   18381             : 
   18382           0 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo2(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_FormInfo2 *r)
   18383             : {
   18384           0 :         uint32_t _ptr_form_name;
   18385           0 :         TALLOC_CTX *_mem_save_form_name_0 = NULL;
   18386           0 :         uint32_t _ptr_keyword;
   18387           0 :         TALLOC_CTX *_mem_save_keyword_0 = NULL;
   18388           0 :         uint32_t _ptr_mui_dll;
   18389           0 :         TALLOC_CTX *_mem_save_mui_dll_0 = NULL;
   18390           0 :         uint32_t _ptr_display_name;
   18391           0 :         TALLOC_CTX *_mem_save_display_name_0 = NULL;
   18392           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   18393           0 :         if (ndr_flags & NDR_SCALARS) {
   18394           0 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
   18395           0 :                 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
   18396             :                 {
   18397           0 :                         libndr_flags _flags_save_string = ndr->flags;
   18398           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   18399           0 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
   18400           0 :                         if (_ptr_form_name) {
   18401           0 :                                 NDR_PULL_ALLOC(ndr, r->form_name);
   18402           0 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->form_name, _ptr_form_name));
   18403             :                         } else {
   18404           0 :                                 r->form_name = NULL;
   18405             :                         }
   18406           0 :                         ndr->flags = _flags_save_string;
   18407             :                 }
   18408           0 :                 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
   18409           0 :                 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
   18410             :                 {
   18411           0 :                         libndr_flags _flags_save_string = ndr->flags;
   18412           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
   18413           0 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_keyword));
   18414           0 :                         if (_ptr_keyword) {
   18415           0 :                                 NDR_PULL_ALLOC(ndr, r->keyword);
   18416           0 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->keyword, _ptr_keyword));
   18417             :                         } else {
   18418           0 :                                 r->keyword = NULL;
   18419             :                         }
   18420           0 :                         ndr->flags = _flags_save_string;
   18421             :                 }
   18422           0 :                 NDR_CHECK(ndr_pull_spoolss_FormStringType(ndr, NDR_SCALARS, &r->string_type));
   18423             :                 {
   18424           0 :                         libndr_flags _flags_save_string = ndr->flags;
   18425           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   18426           0 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_mui_dll));
   18427           0 :                         if (_ptr_mui_dll) {
   18428           0 :                                 NDR_PULL_ALLOC(ndr, r->mui_dll);
   18429           0 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->mui_dll, _ptr_mui_dll));
   18430             :                         } else {
   18431           0 :                                 r->mui_dll = NULL;
   18432             :                         }
   18433           0 :                         ndr->flags = _flags_save_string;
   18434             :                 }
   18435           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ressource_id));
   18436             :                 {
   18437           0 :                         libndr_flags _flags_save_string = ndr->flags;
   18438           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   18439           0 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_display_name));
   18440           0 :                         if (_ptr_display_name) {
   18441           0 :                                 NDR_PULL_ALLOC(ndr, r->display_name);
   18442           0 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->display_name, _ptr_display_name));
   18443             :                         } else {
   18444           0 :                                 r->display_name = NULL;
   18445             :                         }
   18446           0 :                         ndr->flags = _flags_save_string;
   18447             :                 }
   18448           0 :                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lang_id));
   18449           0 :                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->unused));
   18450           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
   18451             :         }
   18452           0 :         if (ndr_flags & NDR_BUFFERS) {
   18453             :                 {
   18454           0 :                         libndr_flags _flags_save_string = ndr->flags;
   18455           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   18456           0 :                         if (r->form_name) {
   18457           0 :                                 uint32_t _relative_save_offset;
   18458           0 :                                 _relative_save_offset = ndr->offset;
   18459           0 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->form_name));
   18460           0 :                                 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
   18461           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
   18462           0 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->form_name));
   18463           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
   18464           0 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   18465           0 :                                         ndr->relative_highest_offset = ndr->offset;
   18466             :                                 }
   18467           0 :                                 ndr->offset = _relative_save_offset;
   18468             :                         }
   18469           0 :                         ndr->flags = _flags_save_string;
   18470             :                 }
   18471             :                 {
   18472           0 :                         libndr_flags _flags_save_string = ndr->flags;
   18473           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
   18474           0 :                         if (r->keyword) {
   18475           0 :                                 uint32_t _relative_save_offset;
   18476           0 :                                 _relative_save_offset = ndr->offset;
   18477           0 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->keyword));
   18478           0 :                                 _mem_save_keyword_0 = NDR_PULL_GET_MEM_CTX(ndr);
   18479           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->keyword, 0);
   18480           0 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->keyword));
   18481           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_keyword_0, 0);
   18482           0 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   18483           0 :                                         ndr->relative_highest_offset = ndr->offset;
   18484             :                                 }
   18485           0 :                                 ndr->offset = _relative_save_offset;
   18486             :                         }
   18487           0 :                         ndr->flags = _flags_save_string;
   18488             :                 }
   18489             :                 {
   18490           0 :                         libndr_flags _flags_save_string = ndr->flags;
   18491           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   18492           0 :                         if (r->mui_dll) {
   18493           0 :                                 uint32_t _relative_save_offset;
   18494           0 :                                 _relative_save_offset = ndr->offset;
   18495           0 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->mui_dll));
   18496           0 :                                 _mem_save_mui_dll_0 = NDR_PULL_GET_MEM_CTX(ndr);
   18497           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->mui_dll, 0);
   18498           0 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->mui_dll));
   18499           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_mui_dll_0, 0);
   18500           0 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   18501           0 :                                         ndr->relative_highest_offset = ndr->offset;
   18502             :                                 }
   18503           0 :                                 ndr->offset = _relative_save_offset;
   18504             :                         }
   18505           0 :                         ndr->flags = _flags_save_string;
   18506             :                 }
   18507             :                 {
   18508           0 :                         libndr_flags _flags_save_string = ndr->flags;
   18509           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   18510           0 :                         if (r->display_name) {
   18511           0 :                                 uint32_t _relative_save_offset;
   18512           0 :                                 _relative_save_offset = ndr->offset;
   18513           0 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->display_name));
   18514           0 :                                 _mem_save_display_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
   18515           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->display_name, 0);
   18516           0 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->display_name));
   18517           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_display_name_0, 0);
   18518           0 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   18519           0 :                                         ndr->relative_highest_offset = ndr->offset;
   18520             :                                 }
   18521           0 :                                 ndr->offset = _relative_save_offset;
   18522             :                         }
   18523           0 :                         ndr->flags = _flags_save_string;
   18524             :                 }
   18525             :         }
   18526           0 :         return NDR_ERR_SUCCESS;
   18527             : }
   18528             : 
   18529           0 : static void ndr_print_flags_spoolss_FormInfo2(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_FormInfo2 *r)
   18530             : {
   18531           0 :         ndr_print_spoolss_FormInfo2(ndr, name, r);
   18532           0 : }
   18533             : 
   18534           0 : _PUBLIC_ void ndr_print_spoolss_FormInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_FormInfo2 *r)
   18535             : {
   18536           0 :         ndr_print_struct(ndr, name, "spoolss_FormInfo2");
   18537           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   18538           0 :         ndr->depth++;
   18539           0 :         ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
   18540             :         {
   18541           0 :                 libndr_flags _flags_save_string = ndr->flags;
   18542           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   18543           0 :                 ndr_print_ptr(ndr, "form_name", r->form_name);
   18544           0 :                 ndr->depth++;
   18545           0 :                 if (r->form_name) {
   18546           0 :                         ndr_print_string(ndr, "form_name", r->form_name);
   18547             :                 }
   18548           0 :                 ndr->depth--;
   18549           0 :                 ndr->flags = _flags_save_string;
   18550             :         }
   18551           0 :         ndr_print_spoolss_FormSize(ndr, "size", &r->size);
   18552           0 :         ndr_print_spoolss_FormArea(ndr, "area", &r->area);
   18553             :         {
   18554           0 :                 libndr_flags _flags_save_string = ndr->flags;
   18555           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
   18556           0 :                 ndr_print_ptr(ndr, "keyword", r->keyword);
   18557           0 :                 ndr->depth++;
   18558           0 :                 if (r->keyword) {
   18559           0 :                         ndr_print_string(ndr, "keyword", r->keyword);
   18560             :                 }
   18561           0 :                 ndr->depth--;
   18562           0 :                 ndr->flags = _flags_save_string;
   18563             :         }
   18564           0 :         ndr_print_spoolss_FormStringType(ndr, "string_type", r->string_type);
   18565             :         {
   18566           0 :                 libndr_flags _flags_save_string = ndr->flags;
   18567           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   18568           0 :                 ndr_print_ptr(ndr, "mui_dll", r->mui_dll);
   18569           0 :                 ndr->depth++;
   18570           0 :                 if (r->mui_dll) {
   18571           0 :                         ndr_print_string(ndr, "mui_dll", r->mui_dll);
   18572             :                 }
   18573           0 :                 ndr->depth--;
   18574           0 :                 ndr->flags = _flags_save_string;
   18575             :         }
   18576           0 :         ndr_print_uint32(ndr, "ressource_id", r->ressource_id);
   18577             :         {
   18578           0 :                 libndr_flags _flags_save_string = ndr->flags;
   18579           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   18580           0 :                 ndr_print_ptr(ndr, "display_name", r->display_name);
   18581           0 :                 ndr->depth++;
   18582           0 :                 if (r->display_name) {
   18583           0 :                         ndr_print_string(ndr, "display_name", r->display_name);
   18584             :                 }
   18585           0 :                 ndr->depth--;
   18586           0 :                 ndr->flags = _flags_save_string;
   18587             :         }
   18588           0 :         ndr_print_uint16(ndr, "lang_id", r->lang_id);
   18589           0 :         ndr_print_uint16(ndr, "unused", r->unused);
   18590           0 :         ndr->depth--;
   18591             : }
   18592             : 
   18593           0 : _PUBLIC_ size_t ndr_size_spoolss_FormInfo2(const struct spoolss_FormInfo2 *r, libndr_flags flags)
   18594             : {
   18595           0 :         return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_FormInfo2);
   18596             : }
   18597             : 
   18598      197880 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo(struct ndr_push *ndr, ndr_flags_type ndr_flags, const union spoolss_FormInfo *r)
   18599             : {
   18600      197880 :         uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
   18601           0 :         uint32_t level;
   18602             :         {
   18603      197880 :                 libndr_flags _flags_save_UNION = ndr->flags;
   18604      197880 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
   18605      197880 :                 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   18606      197880 :                 if (ndr_flags & NDR_SCALARS) {
   18607             :                         /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
   18608      102720 :                         NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
   18609      102720 :                         NDR_CHECK(ndr_push_union_align(ndr, 5));
   18610      102720 :                         switch (level) {
   18611      102720 :                                 case 1: {
   18612      102720 :                                         NDR_CHECK(ndr_push_align(ndr, 5));
   18613      102720 :                                         NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
   18614      102720 :                                         NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr, NDR_SCALARS, &r->info1));
   18615      102720 :                                 break; }
   18616             : 
   18617           0 :                                 case 2: {
   18618           0 :                                         NDR_CHECK(ndr_push_align(ndr, 5));
   18619           0 :                                         NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
   18620           0 :                                         NDR_CHECK(ndr_push_spoolss_FormInfo2(ndr, NDR_SCALARS, &r->info2));
   18621           0 :                                 break; }
   18622             : 
   18623           0 :                                 default: {
   18624           0 :                                 break; }
   18625             : 
   18626             :                         }
   18627             :                 }
   18628      197880 :                 if (ndr_flags & NDR_BUFFERS) {
   18629      102720 :                         if (!(ndr_flags & NDR_SCALARS)) {
   18630             :                                 /* We didn't get it above, and the token is not needed after this. */
   18631       95160 :                                 NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
   18632             :                         }
   18633      102720 :                         NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
   18634      102720 :                         switch (level) {
   18635      102720 :                                 case 1:
   18636      102720 :                                         NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr, NDR_BUFFERS, &r->info1));
   18637      102720 :                                 break;
   18638             : 
   18639           0 :                                 case 2:
   18640           0 :                                         NDR_CHECK(ndr_push_spoolss_FormInfo2(ndr, NDR_BUFFERS, &r->info2));
   18641           0 :                                 break;
   18642             : 
   18643           0 :                                 default:
   18644           0 :                                 break;
   18645             : 
   18646             :                         }
   18647             :                 }
   18648      197880 :                 ndr->flags = _flags_save_UNION;
   18649             :         }
   18650      197880 :         ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
   18651      197880 :         return NDR_ERR_SUCCESS;
   18652             : }
   18653             : 
   18654       66472 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo(struct ndr_pull *ndr, ndr_flags_type ndr_flags, union spoolss_FormInfo *r)
   18655             : {
   18656       66472 :         uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
   18657         512 :         uint32_t level;
   18658             :         {
   18659       66472 :                 libndr_flags _flags_save_UNION = ndr->flags;
   18660       66472 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
   18661       66472 :                 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   18662       66472 :                 if (ndr_flags & NDR_SCALARS) {
   18663             :                         /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
   18664       34496 :                         NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
   18665       34496 :                         NDR_CHECK(ndr_pull_union_align(ndr, 5));
   18666       34496 :                         switch (level) {
   18667       34240 :                                 case 1: {
   18668       34240 :                                         NDR_CHECK(ndr_pull_align(ndr, 5));
   18669       34240 :                                         NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
   18670       34240 :                                         NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr, NDR_SCALARS, &r->info1));
   18671       34240 :                                 break; }
   18672             : 
   18673           0 :                                 case 2: {
   18674           0 :                                         NDR_CHECK(ndr_pull_align(ndr, 5));
   18675           0 :                                         NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
   18676           0 :                                         NDR_CHECK(ndr_pull_spoolss_FormInfo2(ndr, NDR_SCALARS, &r->info2));
   18677           0 :                                 break; }
   18678             : 
   18679           0 :                                 default: {
   18680           0 :                                 break; }
   18681             : 
   18682             :                         }
   18683             :                 }
   18684       66472 :                 if (ndr_flags & NDR_BUFFERS) {
   18685       34496 :                         if (!(ndr_flags & NDR_SCALARS)) {
   18686             :                                 /* We didn't get it above, and the token is not needed after this. */
   18687       31976 :                                 NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
   18688             :                         }
   18689       34496 :                         switch (level) {
   18690       34240 :                                 case 1:
   18691       34240 :                                         NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
   18692       34240 :                                         NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr, NDR_BUFFERS, &r->info1));
   18693       34240 :                                 break;
   18694             : 
   18695           0 :                                 case 2:
   18696           0 :                                         NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
   18697           0 :                                         NDR_CHECK(ndr_pull_spoolss_FormInfo2(ndr, NDR_BUFFERS, &r->info2));
   18698           0 :                                 break;
   18699             : 
   18700           0 :                                 default:
   18701           0 :                                 break;
   18702             : 
   18703             :                         }
   18704             :                 }
   18705       66472 :                 ndr->flags = _flags_save_UNION;
   18706             :         }
   18707       66472 :         ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
   18708       66472 :         return NDR_ERR_SUCCESS;
   18709             : }
   18710             : 
   18711         256 : _PUBLIC_ void ndr_print_spoolss_FormInfo(struct ndr_print *ndr, const char *name, const union spoolss_FormInfo *r)
   18712             : {
   18713         256 :         uint32_t level;
   18714             :         {
   18715         256 :                 libndr_flags _flags_save_UNION = ndr->flags;
   18716         256 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
   18717         256 :                 level = ndr_print_steal_switch_value(ndr, r);
   18718         256 :                 ndr_print_union(ndr, name, level, "spoolss_FormInfo");
   18719         256 :                 switch (level) {
   18720           0 :                         case 1:
   18721           0 :                                 ndr_print_spoolss_FormInfo1(ndr, "info1", &r->info1);
   18722           0 :                         break;
   18723             : 
   18724           0 :                         case 2:
   18725           0 :                                 ndr_print_spoolss_FormInfo2(ndr, "info2", &r->info2);
   18726           0 :                         break;
   18727             : 
   18728           0 :                         default:
   18729           0 :                         break;
   18730             : 
   18731             :                 }
   18732         256 :                 ndr->flags = _flags_save_UNION;
   18733             :         }
   18734         256 : }
   18735             : 
   18736        5040 : _PUBLIC_ size_t ndr_size_spoolss_FormInfo(const union spoolss_FormInfo *r, uint32_t level, libndr_flags flags)
   18737             : {
   18738        5040 :         flags |= LIBNDR_FLAG_RELATIVE_REVERSE;
   18739        5040 :         return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_FormInfo);
   18740             : }
   18741             : 
   18742         656 : static enum ndr_err_code ndr_push_spoolss_AddFormInfo1(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_AddFormInfo1 *r)
   18743             : {
   18744         656 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   18745         656 :         if (ndr_flags & NDR_SCALARS) {
   18746         656 :                 NDR_CHECK(ndr_push_align(ndr, 5));
   18747         656 :                 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
   18748         656 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->form_name));
   18749         656 :                 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
   18750         656 :                 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
   18751         656 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
   18752             :         }
   18753         656 :         if (ndr_flags & NDR_BUFFERS) {
   18754         656 :                 if (r->form_name) {
   18755         656 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
   18756         656 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   18757         656 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
   18758         656 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->form_name, ndr_charset_length(r->form_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   18759             :                 }
   18760             :         }
   18761         656 :         return NDR_ERR_SUCCESS;
   18762             : }
   18763             : 
   18764         656 : static enum ndr_err_code ndr_pull_spoolss_AddFormInfo1(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_AddFormInfo1 *r)
   18765             : {
   18766           0 :         uint32_t _ptr_form_name;
   18767         656 :         uint32_t size_form_name_1 = 0;
   18768         656 :         uint32_t length_form_name_1 = 0;
   18769         656 :         TALLOC_CTX *_mem_save_form_name_0 = NULL;
   18770         656 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   18771         656 :         if (ndr_flags & NDR_SCALARS) {
   18772         656 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
   18773         656 :                 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
   18774         656 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
   18775         656 :                 if (_ptr_form_name) {
   18776         656 :                         NDR_PULL_ALLOC(ndr, r->form_name);
   18777             :                 } else {
   18778           0 :                         r->form_name = NULL;
   18779             :                 }
   18780         656 :                 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
   18781         656 :                 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
   18782         656 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
   18783             :         }
   18784         656 :         if (ndr_flags & NDR_BUFFERS) {
   18785         656 :                 if (r->form_name) {
   18786         656 :                         _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
   18787         656 :                         NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
   18788         656 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->form_name));
   18789         656 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->form_name));
   18790         656 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->form_name, &size_form_name_1));
   18791         656 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->form_name, &length_form_name_1));
   18792         656 :                         if (length_form_name_1 > size_form_name_1) {
   18793           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_form_name_1, length_form_name_1);
   18794             :                         }
   18795         656 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_form_name_1, sizeof(uint16_t)));
   18796         656 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->form_name, length_form_name_1, sizeof(uint16_t), CH_UTF16));
   18797         656 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
   18798             :                 }
   18799             :         }
   18800         656 :         return NDR_ERR_SUCCESS;
   18801             : }
   18802             : 
   18803           0 : _PUBLIC_ void ndr_print_spoolss_AddFormInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_AddFormInfo1 *r)
   18804             : {
   18805           0 :         ndr_print_struct(ndr, name, "spoolss_AddFormInfo1");
   18806           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   18807           0 :         ndr->depth++;
   18808           0 :         ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
   18809           0 :         ndr_print_ptr(ndr, "form_name", r->form_name);
   18810           0 :         ndr->depth++;
   18811           0 :         if (r->form_name) {
   18812           0 :                 ndr_print_string(ndr, "form_name", r->form_name);
   18813             :         }
   18814           0 :         ndr->depth--;
   18815           0 :         ndr_print_spoolss_FormSize(ndr, "size", &r->size);
   18816           0 :         ndr_print_spoolss_FormArea(ndr, "area", &r->area);
   18817           0 :         ndr->depth--;
   18818             : }
   18819             : 
   18820           0 : static enum ndr_err_code ndr_push_spoolss_AddFormInfo2(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_AddFormInfo2 *r)
   18821             : {
   18822           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   18823           0 :         if (ndr_flags & NDR_SCALARS) {
   18824           0 :                 NDR_CHECK(ndr_push_align(ndr, 5));
   18825           0 :                 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
   18826           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->form_name));
   18827           0 :                 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
   18828           0 :                 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
   18829           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->keyword));
   18830           0 :                 NDR_CHECK(ndr_push_spoolss_FormStringType(ndr, NDR_SCALARS, r->string_type));
   18831           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->mui_dll));
   18832           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ressource_id));
   18833           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->display_name));
   18834           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->lang_id));
   18835           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
   18836             :         }
   18837           0 :         if (ndr_flags & NDR_BUFFERS) {
   18838           0 :                 if (r->form_name) {
   18839           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
   18840           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   18841           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
   18842           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->form_name, ndr_charset_length(r->form_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   18843             :                 }
   18844           0 :                 if (r->keyword) {
   18845           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->keyword, CH_DOS)));
   18846           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   18847           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->keyword, CH_DOS)));
   18848           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->keyword, ndr_charset_length(r->keyword, CH_DOS), sizeof(uint8_t), CH_DOS));
   18849             :                 }
   18850           0 :                 if (r->mui_dll) {
   18851           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->mui_dll, CH_UTF16)));
   18852           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   18853           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->mui_dll, CH_UTF16)));
   18854           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->mui_dll, ndr_charset_length(r->mui_dll, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   18855             :                 }
   18856           0 :                 if (r->display_name) {
   18857           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->display_name, CH_UTF16)));
   18858           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   18859           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->display_name, CH_UTF16)));
   18860           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->display_name, ndr_charset_length(r->display_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   18861             :                 }
   18862             :         }
   18863           0 :         return NDR_ERR_SUCCESS;
   18864             : }
   18865             : 
   18866           0 : static enum ndr_err_code ndr_pull_spoolss_AddFormInfo2(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_AddFormInfo2 *r)
   18867             : {
   18868           0 :         uint32_t _ptr_form_name;
   18869           0 :         uint32_t size_form_name_1 = 0;
   18870           0 :         uint32_t length_form_name_1 = 0;
   18871           0 :         TALLOC_CTX *_mem_save_form_name_0 = NULL;
   18872           0 :         uint32_t _ptr_keyword;
   18873           0 :         uint32_t size_keyword_1 = 0;
   18874           0 :         uint32_t length_keyword_1 = 0;
   18875           0 :         TALLOC_CTX *_mem_save_keyword_0 = NULL;
   18876           0 :         uint32_t _ptr_mui_dll;
   18877           0 :         uint32_t size_mui_dll_1 = 0;
   18878           0 :         uint32_t length_mui_dll_1 = 0;
   18879           0 :         TALLOC_CTX *_mem_save_mui_dll_0 = NULL;
   18880           0 :         uint32_t _ptr_display_name;
   18881           0 :         uint32_t size_display_name_1 = 0;
   18882           0 :         uint32_t length_display_name_1 = 0;
   18883           0 :         TALLOC_CTX *_mem_save_display_name_0 = NULL;
   18884           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   18885           0 :         if (ndr_flags & NDR_SCALARS) {
   18886           0 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
   18887           0 :                 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
   18888           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
   18889           0 :                 if (_ptr_form_name) {
   18890           0 :                         NDR_PULL_ALLOC(ndr, r->form_name);
   18891             :                 } else {
   18892           0 :                         r->form_name = NULL;
   18893             :                 }
   18894           0 :                 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
   18895           0 :                 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
   18896           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_keyword));
   18897           0 :                 if (_ptr_keyword) {
   18898           0 :                         NDR_PULL_ALLOC(ndr, r->keyword);
   18899             :                 } else {
   18900           0 :                         r->keyword = NULL;
   18901             :                 }
   18902           0 :                 NDR_CHECK(ndr_pull_spoolss_FormStringType(ndr, NDR_SCALARS, &r->string_type));
   18903           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_mui_dll));
   18904           0 :                 if (_ptr_mui_dll) {
   18905           0 :                         NDR_PULL_ALLOC(ndr, r->mui_dll);
   18906             :                 } else {
   18907           0 :                         r->mui_dll = NULL;
   18908             :                 }
   18909           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ressource_id));
   18910           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_display_name));
   18911           0 :                 if (_ptr_display_name) {
   18912           0 :                         NDR_PULL_ALLOC(ndr, r->display_name);
   18913             :                 } else {
   18914           0 :                         r->display_name = NULL;
   18915             :                 }
   18916           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->lang_id));
   18917           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
   18918             :         }
   18919           0 :         if (ndr_flags & NDR_BUFFERS) {
   18920           0 :                 if (r->form_name) {
   18921           0 :                         _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
   18922           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
   18923           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->form_name));
   18924           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->form_name));
   18925           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->form_name, &size_form_name_1));
   18926           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->form_name, &length_form_name_1));
   18927           0 :                         if (length_form_name_1 > size_form_name_1) {
   18928           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_form_name_1, length_form_name_1);
   18929             :                         }
   18930           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_form_name_1, sizeof(uint16_t)));
   18931           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->form_name, length_form_name_1, sizeof(uint16_t), CH_UTF16));
   18932           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
   18933             :                 }
   18934           0 :                 if (r->keyword) {
   18935           0 :                         _mem_save_keyword_0 = NDR_PULL_GET_MEM_CTX(ndr);
   18936           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->keyword, 0);
   18937           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->keyword));
   18938           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->keyword));
   18939           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->keyword, &size_keyword_1));
   18940           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->keyword, &length_keyword_1));
   18941           0 :                         if (length_keyword_1 > size_keyword_1) {
   18942           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_keyword_1, length_keyword_1);
   18943             :                         }
   18944           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_keyword_1, sizeof(uint8_t)));
   18945           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->keyword, length_keyword_1, sizeof(uint8_t), CH_DOS));
   18946           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_keyword_0, 0);
   18947             :                 }
   18948           0 :                 if (r->mui_dll) {
   18949           0 :                         _mem_save_mui_dll_0 = NDR_PULL_GET_MEM_CTX(ndr);
   18950           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->mui_dll, 0);
   18951           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->mui_dll));
   18952           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->mui_dll));
   18953           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->mui_dll, &size_mui_dll_1));
   18954           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->mui_dll, &length_mui_dll_1));
   18955           0 :                         if (length_mui_dll_1 > size_mui_dll_1) {
   18956           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_mui_dll_1, length_mui_dll_1);
   18957             :                         }
   18958           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_mui_dll_1, sizeof(uint16_t)));
   18959           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->mui_dll, length_mui_dll_1, sizeof(uint16_t), CH_UTF16));
   18960           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_mui_dll_0, 0);
   18961             :                 }
   18962           0 :                 if (r->display_name) {
   18963           0 :                         _mem_save_display_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
   18964           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->display_name, 0);
   18965           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->display_name));
   18966           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->display_name));
   18967           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->display_name, &size_display_name_1));
   18968           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->display_name, &length_display_name_1));
   18969           0 :                         if (length_display_name_1 > size_display_name_1) {
   18970           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_display_name_1, length_display_name_1);
   18971             :                         }
   18972           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_display_name_1, sizeof(uint16_t)));
   18973           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->display_name, length_display_name_1, sizeof(uint16_t), CH_UTF16));
   18974           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_display_name_0, 0);
   18975             :                 }
   18976             :         }
   18977           0 :         return NDR_ERR_SUCCESS;
   18978             : }
   18979             : 
   18980           0 : _PUBLIC_ void ndr_print_spoolss_AddFormInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_AddFormInfo2 *r)
   18981             : {
   18982           0 :         ndr_print_struct(ndr, name, "spoolss_AddFormInfo2");
   18983           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   18984           0 :         ndr->depth++;
   18985           0 :         ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
   18986           0 :         ndr_print_ptr(ndr, "form_name", r->form_name);
   18987           0 :         ndr->depth++;
   18988           0 :         if (r->form_name) {
   18989           0 :                 ndr_print_string(ndr, "form_name", r->form_name);
   18990             :         }
   18991           0 :         ndr->depth--;
   18992           0 :         ndr_print_spoolss_FormSize(ndr, "size", &r->size);
   18993           0 :         ndr_print_spoolss_FormArea(ndr, "area", &r->area);
   18994           0 :         ndr_print_ptr(ndr, "keyword", r->keyword);
   18995           0 :         ndr->depth++;
   18996           0 :         if (r->keyword) {
   18997           0 :                 ndr_print_string(ndr, "keyword", r->keyword);
   18998             :         }
   18999           0 :         ndr->depth--;
   19000           0 :         ndr_print_spoolss_FormStringType(ndr, "string_type", r->string_type);
   19001           0 :         ndr_print_ptr(ndr, "mui_dll", r->mui_dll);
   19002           0 :         ndr->depth++;
   19003           0 :         if (r->mui_dll) {
   19004           0 :                 ndr_print_string(ndr, "mui_dll", r->mui_dll);
   19005             :         }
   19006           0 :         ndr->depth--;
   19007           0 :         ndr_print_uint32(ndr, "ressource_id", r->ressource_id);
   19008           0 :         ndr_print_ptr(ndr, "display_name", r->display_name);
   19009           0 :         ndr->depth++;
   19010           0 :         if (r->display_name) {
   19011           0 :                 ndr_print_string(ndr, "display_name", r->display_name);
   19012             :         }
   19013           0 :         ndr->depth--;
   19014           0 :         ndr_print_uint32(ndr, "lang_id", r->lang_id);
   19015           0 :         ndr->depth--;
   19016             : }
   19017             : 
   19018        1312 : static enum ndr_err_code ndr_push_spoolss_AddFormInfo(struct ndr_push *ndr, ndr_flags_type ndr_flags, const union spoolss_AddFormInfo *r)
   19019             : {
   19020           0 :         uint32_t level;
   19021        1312 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   19022        1312 :         if (ndr_flags & NDR_SCALARS) {
   19023             :                 /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
   19024         656 :                 NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
   19025         656 :                 NDR_CHECK(ndr_push_union_align(ndr, 5));
   19026         656 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
   19027             :                 /* ms_union is always aligned to the largest union arm*/
   19028         656 :                 NDR_CHECK(ndr_push_align(ndr, 5));
   19029         656 :                 switch (level) {
   19030         656 :                         case 1: {
   19031         656 :                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
   19032         656 :                         break; }
   19033             : 
   19034           0 :                         case 2: {
   19035           0 :                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
   19036           0 :                         break; }
   19037             : 
   19038           0 :                         default:
   19039           0 :                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32, level);
   19040             :                 }
   19041             :         }
   19042        1312 :         if (ndr_flags & NDR_BUFFERS) {
   19043         656 :                 if (!(ndr_flags & NDR_SCALARS)) {
   19044             :                         /* We didn't get it above, and the token is not needed after this. */
   19045         656 :                         NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
   19046             :                 }
   19047         656 :                 switch (level) {
   19048         656 :                         case 1:
   19049         656 :                                 if (r->info1) {
   19050         656 :                                         NDR_CHECK(ndr_push_spoolss_AddFormInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
   19051             :                                 }
   19052         656 :                         break;
   19053             : 
   19054           0 :                         case 2:
   19055           0 :                                 if (r->info2) {
   19056           0 :                                         NDR_CHECK(ndr_push_spoolss_AddFormInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
   19057             :                                 }
   19058           0 :                         break;
   19059             : 
   19060           0 :                         default:
   19061           0 :                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32, level);
   19062             :                 }
   19063             :         }
   19064        1312 :         return NDR_ERR_SUCCESS;
   19065             : }
   19066             : 
   19067        1312 : static enum ndr_err_code ndr_pull_spoolss_AddFormInfo(struct ndr_pull *ndr, ndr_flags_type ndr_flags, union spoolss_AddFormInfo *r)
   19068             : {
   19069           0 :         uint32_t level;
   19070           0 :         uint32_t _level;
   19071        1312 :         TALLOC_CTX *_mem_save_info1_0 = NULL;
   19072           0 :         uint32_t _ptr_info1;
   19073        1312 :         TALLOC_CTX *_mem_save_info2_0 = NULL;
   19074           0 :         uint32_t _ptr_info2;
   19075        1312 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   19076        1312 :         if (ndr_flags & NDR_SCALARS) {
   19077             :                 /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
   19078         656 :                 NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
   19079         656 :                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
   19080         656 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
   19081         656 :                 if (_level != level) {
   19082           0 :                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32" for r at %s", (uint32_t)_level, __location__);
   19083             :                 }
   19084             :                 /* ms_union is always aligned to the largest union arm*/
   19085         656 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
   19086         656 :                 switch (level) {
   19087         656 :                         case 1: {
   19088         656 :                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
   19089         656 :                                 if (_ptr_info1) {
   19090         656 :                                         NDR_PULL_ALLOC(ndr, r->info1);
   19091             :                                 } else {
   19092           0 :                                         r->info1 = NULL;
   19093             :                                 }
   19094         656 :                         break; }
   19095             : 
   19096           0 :                         case 2: {
   19097           0 :                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
   19098           0 :                                 if (_ptr_info2) {
   19099           0 :                                         NDR_PULL_ALLOC(ndr, r->info2);
   19100             :                                 } else {
   19101           0 :                                         r->info2 = NULL;
   19102             :                                 }
   19103           0 :                         break; }
   19104             : 
   19105           0 :                         default:
   19106           0 :                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32" at %s", level, __location__);
   19107             :                 }
   19108             :         }
   19109        1312 :         if (ndr_flags & NDR_BUFFERS) {
   19110         656 :                 if (!(ndr_flags & NDR_SCALARS)) {
   19111             :                         /* We didn't get it above, and the token is not needed after this. */
   19112         656 :                         NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
   19113             :                 }
   19114         656 :                 switch (level) {
   19115         656 :                         case 1:
   19116         656 :                                 if (r->info1) {
   19117         656 :                                         _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
   19118         656 :                                         NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
   19119         656 :                                         NDR_CHECK(ndr_pull_spoolss_AddFormInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
   19120         656 :                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
   19121             :                                 }
   19122         656 :                         break;
   19123             : 
   19124           0 :                         case 2:
   19125           0 :                                 if (r->info2) {
   19126           0 :                                         _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
   19127           0 :                                         NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
   19128           0 :                                         NDR_CHECK(ndr_pull_spoolss_AddFormInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
   19129           0 :                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
   19130             :                                 }
   19131           0 :                         break;
   19132             : 
   19133           0 :                         default:
   19134           0 :                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32" at %s", level, __location__);
   19135             :                 }
   19136             :         }
   19137        1312 :         return NDR_ERR_SUCCESS;
   19138             : }
   19139             : 
   19140           0 : _PUBLIC_ void ndr_print_spoolss_AddFormInfo(struct ndr_print *ndr, const char *name, const union spoolss_AddFormInfo *r)
   19141             : {
   19142           0 :         uint32_t level;
   19143           0 :         level = ndr_print_steal_switch_value(ndr, r);
   19144           0 :         ndr_print_union(ndr, name, level, "spoolss_AddFormInfo");
   19145           0 :         switch (level) {
   19146           0 :                 case 1:
   19147           0 :                         ndr_print_ptr(ndr, "info1", r->info1);
   19148           0 :                         ndr->depth++;
   19149           0 :                         if (r->info1) {
   19150           0 :                                 ndr_print_spoolss_AddFormInfo1(ndr, "info1", r->info1);
   19151             :                         }
   19152           0 :                         ndr->depth--;
   19153           0 :                 break;
   19154             : 
   19155           0 :                 case 2:
   19156           0 :                         ndr_print_ptr(ndr, "info2", r->info2);
   19157           0 :                         ndr->depth++;
   19158           0 :                         if (r->info2) {
   19159           0 :                                 ndr_print_spoolss_AddFormInfo2(ndr, "info2", r->info2);
   19160             :                         }
   19161           0 :                         ndr->depth--;
   19162           0 :                 break;
   19163             : 
   19164           0 :                 default:
   19165           0 :                         ndr_print_bad_level(ndr, name, level);
   19166             :         }
   19167           0 : }
   19168             : 
   19169         656 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_AddFormInfoCtr(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_AddFormInfoCtr *r)
   19170             : {
   19171         656 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   19172         656 :         if (ndr_flags & NDR_SCALARS) {
   19173         656 :                 NDR_CHECK(ndr_push_align(ndr, 5));
   19174         656 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
   19175         656 :                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
   19176         656 :                 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr, NDR_SCALARS, &r->info));
   19177         656 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
   19178             :         }
   19179         656 :         if (ndr_flags & NDR_BUFFERS) {
   19180         656 :                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
   19181         656 :                 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr, NDR_BUFFERS, &r->info));
   19182             :         }
   19183         656 :         return NDR_ERR_SUCCESS;
   19184             : }
   19185             : 
   19186         656 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_AddFormInfoCtr(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_AddFormInfoCtr *r)
   19187             : {
   19188         656 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   19189         656 :         if (ndr_flags & NDR_SCALARS) {
   19190         656 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
   19191         656 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
   19192         656 :                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
   19193         656 :                 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr, NDR_SCALARS, &r->info));
   19194         656 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
   19195             :         }
   19196         656 :         if (ndr_flags & NDR_BUFFERS) {
   19197         656 :                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
   19198         656 :                 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr, NDR_BUFFERS, &r->info));
   19199             :         }
   19200         656 :         return NDR_ERR_SUCCESS;
   19201             : }
   19202             : 
   19203           0 : static void ndr_print_flags_spoolss_AddFormInfoCtr(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_AddFormInfoCtr *r)
   19204             : {
   19205           0 :         ndr_print_spoolss_AddFormInfoCtr(ndr, name, r);
   19206           0 : }
   19207             : 
   19208           0 : _PUBLIC_ void ndr_print_spoolss_AddFormInfoCtr(struct ndr_print *ndr, const char *name, const struct spoolss_AddFormInfoCtr *r)
   19209             : {
   19210           0 :         ndr_print_struct(ndr, name, "spoolss_AddFormInfoCtr");
   19211           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   19212           0 :         ndr->depth++;
   19213           0 :         ndr_print_uint32(ndr, "level", r->level);
   19214           0 :         ndr_print_set_switch_value(ndr, &r->info, r->level);
   19215           0 :         ndr_print_spoolss_AddFormInfo(ndr, "info", &r->info);
   19216           0 :         ndr->depth--;
   19217             : }
   19218             : 
   19219          24 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo1(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_PortInfo1 *r)
   19220             : {
   19221          24 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   19222          24 :         if (ndr_flags & NDR_SCALARS) {
   19223          12 :                 NDR_CHECK(ndr_push_align(ndr, 5));
   19224             :                 {
   19225          12 :                         libndr_flags _flags_save_string = ndr->flags;
   19226          12 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   19227          12 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
   19228          12 :                         ndr->flags = _flags_save_string;
   19229             :                 }
   19230          12 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
   19231             :         }
   19232          24 :         if (ndr_flags & NDR_BUFFERS) {
   19233             :                 {
   19234          12 :                         libndr_flags _flags_save_string = ndr->flags;
   19235          12 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   19236          12 :                         if (r->port_name) {
   19237          12 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->port_name));
   19238          12 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
   19239          12 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->port_name));
   19240             :                         }
   19241          12 :                         ndr->flags = _flags_save_string;
   19242             :                 }
   19243             :         }
   19244          24 :         return NDR_ERR_SUCCESS;
   19245             : }
   19246             : 
   19247           8 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo1(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_PortInfo1 *r)
   19248             : {
   19249           0 :         uint32_t _ptr_port_name;
   19250           8 :         TALLOC_CTX *_mem_save_port_name_0 = NULL;
   19251           8 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   19252           8 :         if (ndr_flags & NDR_SCALARS) {
   19253           4 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
   19254             :                 {
   19255           4 :                         libndr_flags _flags_save_string = ndr->flags;
   19256           4 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   19257           4 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
   19258           4 :                         if (_ptr_port_name) {
   19259           4 :                                 NDR_PULL_ALLOC(ndr, r->port_name);
   19260           4 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
   19261             :                         } else {
   19262           0 :                                 r->port_name = NULL;
   19263             :                         }
   19264           4 :                         ndr->flags = _flags_save_string;
   19265             :                 }
   19266           4 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
   19267             :         }
   19268           8 :         if (ndr_flags & NDR_BUFFERS) {
   19269             :                 {
   19270           4 :                         libndr_flags _flags_save_string = ndr->flags;
   19271           4 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   19272           4 :                         if (r->port_name) {
   19273           0 :                                 uint32_t _relative_save_offset;
   19274           4 :                                 _relative_save_offset = ndr->offset;
   19275           4 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
   19276           4 :                                 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
   19277           4 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
   19278           4 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
   19279           4 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
   19280           4 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   19281           4 :                                         ndr->relative_highest_offset = ndr->offset;
   19282             :                                 }
   19283           4 :                                 ndr->offset = _relative_save_offset;
   19284             :                         }
   19285           4 :                         ndr->flags = _flags_save_string;
   19286             :                 }
   19287             :         }
   19288           8 :         return NDR_ERR_SUCCESS;
   19289             : }
   19290             : 
   19291           0 : static void ndr_print_flags_spoolss_PortInfo1(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_PortInfo1 *r)
   19292             : {
   19293           0 :         ndr_print_spoolss_PortInfo1(ndr, name, r);
   19294           0 : }
   19295             : 
   19296           0 : _PUBLIC_ void ndr_print_spoolss_PortInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo1 *r)
   19297             : {
   19298           0 :         ndr_print_struct(ndr, name, "spoolss_PortInfo1");
   19299           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   19300           0 :         ndr->depth++;
   19301             :         {
   19302           0 :                 libndr_flags _flags_save_string = ndr->flags;
   19303           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   19304           0 :                 ndr_print_ptr(ndr, "port_name", r->port_name);
   19305           0 :                 ndr->depth++;
   19306           0 :                 if (r->port_name) {
   19307           0 :                         ndr_print_string(ndr, "port_name", r->port_name);
   19308             :                 }
   19309           0 :                 ndr->depth--;
   19310           0 :                 ndr->flags = _flags_save_string;
   19311             :         }
   19312           0 :         ndr->depth--;
   19313             : }
   19314             : 
   19315           0 : _PUBLIC_ size_t ndr_size_spoolss_PortInfo1(const struct spoolss_PortInfo1 *r, libndr_flags flags)
   19316             : {
   19317           0 :         return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfo1);
   19318             : }
   19319             : 
   19320          24 : static enum ndr_err_code ndr_push_spoolss_PortType(struct ndr_push *ndr, ndr_flags_type ndr_flags, uint32_t r)
   19321             : {
   19322          24 :         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
   19323          24 :         return NDR_ERR_SUCCESS;
   19324             : }
   19325             : 
   19326           8 : static enum ndr_err_code ndr_pull_spoolss_PortType(struct ndr_pull *ndr, ndr_flags_type ndr_flags, uint32_t *r)
   19327             : {
   19328           0 :         uint32_t v;
   19329           8 :         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
   19330           8 :         *r = v;
   19331           8 :         return NDR_ERR_SUCCESS;
   19332             : }
   19333             : 
   19334           0 : _PUBLIC_ void ndr_print_spoolss_PortType(struct ndr_print *ndr, const char *name, uint32_t r)
   19335             : {
   19336           0 :         ndr_print_uint32(ndr, name, r);
   19337           0 :         ndr->depth++;
   19338           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_WRITE", SPOOLSS_PORT_TYPE_WRITE, r);
   19339           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_READ", SPOOLSS_PORT_TYPE_READ, r);
   19340           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_REDIRECTED", SPOOLSS_PORT_TYPE_REDIRECTED, r);
   19341           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_NET_ATTACHED", SPOOLSS_PORT_TYPE_NET_ATTACHED, r);
   19342           0 :         ndr->depth--;
   19343           0 : }
   19344             : 
   19345          48 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo2(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_PortInfo2 *r)
   19346             : {
   19347          48 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   19348          48 :         if (ndr_flags & NDR_SCALARS) {
   19349          24 :                 NDR_CHECK(ndr_push_align(ndr, 5));
   19350             :                 {
   19351          24 :                         libndr_flags _flags_save_string = ndr->flags;
   19352          24 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   19353          24 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
   19354          24 :                         ndr->flags = _flags_save_string;
   19355             :                 }
   19356             :                 {
   19357          24 :                         libndr_flags _flags_save_string = ndr->flags;
   19358          24 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   19359          24 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
   19360          24 :                         ndr->flags = _flags_save_string;
   19361             :                 }
   19362             :                 {
   19363          24 :                         libndr_flags _flags_save_string = ndr->flags;
   19364          24 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   19365          24 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->description));
   19366          24 :                         ndr->flags = _flags_save_string;
   19367             :                 }
   19368          24 :                 NDR_CHECK(ndr_push_spoolss_PortType(ndr, NDR_SCALARS, r->port_type));
   19369          24 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
   19370          24 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
   19371             :         }
   19372          48 :         if (ndr_flags & NDR_BUFFERS) {
   19373             :                 {
   19374          24 :                         libndr_flags _flags_save_string = ndr->flags;
   19375          24 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   19376          24 :                         if (r->port_name) {
   19377          24 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->port_name));
   19378          24 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
   19379          24 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->port_name));
   19380             :                         }
   19381          24 :                         ndr->flags = _flags_save_string;
   19382             :                 }
   19383             :                 {
   19384          24 :                         libndr_flags _flags_save_string = ndr->flags;
   19385          24 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   19386          24 :                         if (r->monitor_name) {
   19387          24 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->monitor_name));
   19388          24 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
   19389          24 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->monitor_name));
   19390             :                         }
   19391          24 :                         ndr->flags = _flags_save_string;
   19392             :                 }
   19393             :                 {
   19394          24 :                         libndr_flags _flags_save_string = ndr->flags;
   19395          24 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   19396          24 :                         if (r->description) {
   19397          24 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->description));
   19398          24 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->description));
   19399          24 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->description));
   19400             :                         }
   19401          24 :                         ndr->flags = _flags_save_string;
   19402             :                 }
   19403             :         }
   19404          48 :         return NDR_ERR_SUCCESS;
   19405             : }
   19406             : 
   19407          16 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo2(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_PortInfo2 *r)
   19408             : {
   19409           0 :         uint32_t _ptr_port_name;
   19410          16 :         TALLOC_CTX *_mem_save_port_name_0 = NULL;
   19411           0 :         uint32_t _ptr_monitor_name;
   19412          16 :         TALLOC_CTX *_mem_save_monitor_name_0 = NULL;
   19413           0 :         uint32_t _ptr_description;
   19414          16 :         TALLOC_CTX *_mem_save_description_0 = NULL;
   19415          16 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   19416          16 :         if (ndr_flags & NDR_SCALARS) {
   19417           8 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
   19418             :                 {
   19419           8 :                         libndr_flags _flags_save_string = ndr->flags;
   19420           8 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   19421           8 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
   19422           8 :                         if (_ptr_port_name) {
   19423           8 :                                 NDR_PULL_ALLOC(ndr, r->port_name);
   19424           8 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
   19425             :                         } else {
   19426           0 :                                 r->port_name = NULL;
   19427             :                         }
   19428           8 :                         ndr->flags = _flags_save_string;
   19429             :                 }
   19430             :                 {
   19431           8 :                         libndr_flags _flags_save_string = ndr->flags;
   19432           8 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   19433           8 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
   19434           8 :                         if (_ptr_monitor_name) {
   19435           8 :                                 NDR_PULL_ALLOC(ndr, r->monitor_name);
   19436           8 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
   19437             :                         } else {
   19438           0 :                                 r->monitor_name = NULL;
   19439             :                         }
   19440           8 :                         ndr->flags = _flags_save_string;
   19441             :                 }
   19442             :                 {
   19443           8 :                         libndr_flags _flags_save_string = ndr->flags;
   19444           8 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   19445           8 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
   19446           8 :                         if (_ptr_description) {
   19447           8 :                                 NDR_PULL_ALLOC(ndr, r->description);
   19448           8 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->description, _ptr_description));
   19449             :                         } else {
   19450           0 :                                 r->description = NULL;
   19451             :                         }
   19452           8 :                         ndr->flags = _flags_save_string;
   19453             :                 }
   19454           8 :                 NDR_CHECK(ndr_pull_spoolss_PortType(ndr, NDR_SCALARS, &r->port_type));
   19455           8 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
   19456           8 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
   19457             :         }
   19458          16 :         if (ndr_flags & NDR_BUFFERS) {
   19459             :                 {
   19460           8 :                         libndr_flags _flags_save_string = ndr->flags;
   19461           8 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   19462           8 :                         if (r->port_name) {
   19463           0 :                                 uint32_t _relative_save_offset;
   19464           8 :                                 _relative_save_offset = ndr->offset;
   19465           8 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
   19466           8 :                                 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
   19467           8 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
   19468           8 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
   19469           8 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
   19470           8 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   19471           8 :                                         ndr->relative_highest_offset = ndr->offset;
   19472             :                                 }
   19473           8 :                                 ndr->offset = _relative_save_offset;
   19474             :                         }
   19475           8 :                         ndr->flags = _flags_save_string;
   19476             :                 }
   19477             :                 {
   19478           8 :                         libndr_flags _flags_save_string = ndr->flags;
   19479           8 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   19480           8 :                         if (r->monitor_name) {
   19481           0 :                                 uint32_t _relative_save_offset;
   19482           8 :                                 _relative_save_offset = ndr->offset;
   19483           8 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
   19484           8 :                                 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
   19485           8 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
   19486           8 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
   19487           8 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
   19488           8 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   19489           0 :                                         ndr->relative_highest_offset = ndr->offset;
   19490             :                                 }
   19491           8 :                                 ndr->offset = _relative_save_offset;
   19492             :                         }
   19493           8 :                         ndr->flags = _flags_save_string;
   19494             :                 }
   19495             :                 {
   19496           8 :                         libndr_flags _flags_save_string = ndr->flags;
   19497           8 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   19498           8 :                         if (r->description) {
   19499           0 :                                 uint32_t _relative_save_offset;
   19500           8 :                                 _relative_save_offset = ndr->offset;
   19501           8 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->description));
   19502           8 :                                 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
   19503           8 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
   19504           8 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->description));
   19505           8 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
   19506           8 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   19507           0 :                                         ndr->relative_highest_offset = ndr->offset;
   19508             :                                 }
   19509           8 :                                 ndr->offset = _relative_save_offset;
   19510             :                         }
   19511           8 :                         ndr->flags = _flags_save_string;
   19512             :                 }
   19513             :         }
   19514          16 :         return NDR_ERR_SUCCESS;
   19515             : }
   19516             : 
   19517           0 : static void ndr_print_flags_spoolss_PortInfo2(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_PortInfo2 *r)
   19518             : {
   19519           0 :         ndr_print_spoolss_PortInfo2(ndr, name, r);
   19520           0 : }
   19521             : 
   19522           0 : _PUBLIC_ void ndr_print_spoolss_PortInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo2 *r)
   19523             : {
   19524           0 :         ndr_print_struct(ndr, name, "spoolss_PortInfo2");
   19525           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   19526           0 :         ndr->depth++;
   19527             :         {
   19528           0 :                 libndr_flags _flags_save_string = ndr->flags;
   19529           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   19530           0 :                 ndr_print_ptr(ndr, "port_name", r->port_name);
   19531           0 :                 ndr->depth++;
   19532           0 :                 if (r->port_name) {
   19533           0 :                         ndr_print_string(ndr, "port_name", r->port_name);
   19534             :                 }
   19535           0 :                 ndr->depth--;
   19536           0 :                 ndr->flags = _flags_save_string;
   19537             :         }
   19538             :         {
   19539           0 :                 libndr_flags _flags_save_string = ndr->flags;
   19540           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   19541           0 :                 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
   19542           0 :                 ndr->depth++;
   19543           0 :                 if (r->monitor_name) {
   19544           0 :                         ndr_print_string(ndr, "monitor_name", r->monitor_name);
   19545             :                 }
   19546           0 :                 ndr->depth--;
   19547           0 :                 ndr->flags = _flags_save_string;
   19548             :         }
   19549             :         {
   19550           0 :                 libndr_flags _flags_save_string = ndr->flags;
   19551           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   19552           0 :                 ndr_print_ptr(ndr, "description", r->description);
   19553           0 :                 ndr->depth++;
   19554           0 :                 if (r->description) {
   19555           0 :                         ndr_print_string(ndr, "description", r->description);
   19556             :                 }
   19557           0 :                 ndr->depth--;
   19558           0 :                 ndr->flags = _flags_save_string;
   19559             :         }
   19560           0 :         ndr_print_spoolss_PortType(ndr, "port_type", r->port_type);
   19561           0 :         ndr_print_uint32(ndr, "reserved", r->reserved);
   19562           0 :         ndr->depth--;
   19563             : }
   19564             : 
   19565           0 : _PUBLIC_ size_t ndr_size_spoolss_PortInfo2(const struct spoolss_PortInfo2 *r, libndr_flags flags)
   19566             : {
   19567           0 :         return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfo2);
   19568             : }
   19569             : 
   19570           0 : static enum ndr_err_code ndr_push_spoolss_PortStatus(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum spoolss_PortStatus r)
   19571             : {
   19572           0 :         NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
   19573           0 :         return NDR_ERR_SUCCESS;
   19574             : }
   19575             : 
   19576           0 : static enum ndr_err_code ndr_pull_spoolss_PortStatus(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum spoolss_PortStatus *r)
   19577             : {
   19578           0 :         uint32_t v;
   19579           0 :         NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
   19580           0 :         *r = v;
   19581           0 :         return NDR_ERR_SUCCESS;
   19582             : }
   19583             : 
   19584           0 : _PUBLIC_ void ndr_print_spoolss_PortStatus(struct ndr_print *ndr, const char *name, enum spoolss_PortStatus r)
   19585             : {
   19586           0 :         const char *val = NULL;
   19587             : 
   19588           0 :         switch (r) {
   19589           0 :                 case PORT_STATUS_CLEAR: val = "PORT_STATUS_CLEAR"; break;
   19590           0 :                 case PORT_STATUS_OFFLINE: val = "PORT_STATUS_OFFLINE"; break;
   19591           0 :                 case PORT_STATUS_PAPER_JAM: val = "PORT_STATUS_PAPER_JAM"; break;
   19592           0 :                 case PORT_STATUS_PAPER_OUT: val = "PORT_STATUS_PAPER_OUT"; break;
   19593           0 :                 case PORT_STATUS_OUTPUT_BIN_FULL: val = "PORT_STATUS_OUTPUT_BIN_FULL"; break;
   19594           0 :                 case PORT_STATUS_PAPER_PROBLEM: val = "PORT_STATUS_PAPER_PROBLEM"; break;
   19595           0 :                 case PORT_STATUS_NO_TONER: val = "PORT_STATUS_NO_TONER"; break;
   19596           0 :                 case PORT_STATUS_DOOR_OPEN: val = "PORT_STATUS_DOOR_OPEN"; break;
   19597           0 :                 case PORT_STATUS_USER_INTERVENTION: val = "PORT_STATUS_USER_INTERVENTION"; break;
   19598           0 :                 case PORT_STATUS_OUT_OF_MEMORY: val = "PORT_STATUS_OUT_OF_MEMORY"; break;
   19599           0 :                 case PORT_STATUS_TONER_LOW: val = "PORT_STATUS_TONER_LOW"; break;
   19600           0 :                 case PORT_STATUS_WARMING_UP: val = "PORT_STATUS_WARMING_UP"; break;
   19601           0 :                 case PORT_STATUS_POWER_SAVE: val = "PORT_STATUS_POWER_SAVE"; break;
   19602             :         }
   19603           0 :         ndr_print_enum(ndr, name, "ENUM", val, r);
   19604           0 : }
   19605             : 
   19606           0 : static enum ndr_err_code ndr_push_spoolss_PortSeverity(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum spoolss_PortSeverity r)
   19607             : {
   19608           0 :         NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
   19609           0 :         return NDR_ERR_SUCCESS;
   19610             : }
   19611             : 
   19612           0 : static enum ndr_err_code ndr_pull_spoolss_PortSeverity(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum spoolss_PortSeverity *r)
   19613             : {
   19614           0 :         uint32_t v;
   19615           0 :         NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
   19616           0 :         *r = v;
   19617           0 :         return NDR_ERR_SUCCESS;
   19618             : }
   19619             : 
   19620           0 : _PUBLIC_ void ndr_print_spoolss_PortSeverity(struct ndr_print *ndr, const char *name, enum spoolss_PortSeverity r)
   19621             : {
   19622           0 :         const char *val = NULL;
   19623             : 
   19624           0 :         switch (r) {
   19625           0 :                 case PORT_STATUS_TYPE_ERROR: val = "PORT_STATUS_TYPE_ERROR"; break;
   19626           0 :                 case PORT_STATUS_TYPE_WARNING: val = "PORT_STATUS_TYPE_WARNING"; break;
   19627           0 :                 case PORT_STATUS_TYPE_INFO: val = "PORT_STATUS_TYPE_INFO"; break;
   19628             :         }
   19629           0 :         ndr_print_enum(ndr, name, "ENUM", val, r);
   19630           0 : }
   19631             : 
   19632           0 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo3(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_PortInfo3 *r)
   19633             : {
   19634           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   19635           0 :         if (ndr_flags & NDR_SCALARS) {
   19636           0 :                 NDR_CHECK(ndr_push_align(ndr, 5));
   19637           0 :                 NDR_CHECK(ndr_push_spoolss_PortStatus(ndr, NDR_SCALARS, r->status));
   19638             :                 {
   19639           0 :                         libndr_flags _flags_save_string = ndr->flags;
   19640           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   19641           0 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->status_string));
   19642           0 :                         ndr->flags = _flags_save_string;
   19643             :                 }
   19644           0 :                 NDR_CHECK(ndr_push_spoolss_PortSeverity(ndr, NDR_SCALARS, r->severity));
   19645           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
   19646             :         }
   19647           0 :         if (ndr_flags & NDR_BUFFERS) {
   19648             :                 {
   19649           0 :                         libndr_flags _flags_save_string = ndr->flags;
   19650           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   19651           0 :                         if (r->status_string) {
   19652           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->status_string));
   19653           0 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->status_string));
   19654           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->status_string));
   19655             :                         }
   19656           0 :                         ndr->flags = _flags_save_string;
   19657             :                 }
   19658             :         }
   19659           0 :         return NDR_ERR_SUCCESS;
   19660             : }
   19661             : 
   19662           0 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo3(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_PortInfo3 *r)
   19663             : {
   19664           0 :         uint32_t _ptr_status_string;
   19665           0 :         TALLOC_CTX *_mem_save_status_string_0 = NULL;
   19666           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   19667           0 :         if (ndr_flags & NDR_SCALARS) {
   19668           0 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
   19669           0 :                 NDR_CHECK(ndr_pull_spoolss_PortStatus(ndr, NDR_SCALARS, &r->status));
   19670             :                 {
   19671           0 :                         libndr_flags _flags_save_string = ndr->flags;
   19672           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   19673           0 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_status_string));
   19674           0 :                         if (_ptr_status_string) {
   19675           0 :                                 NDR_PULL_ALLOC(ndr, r->status_string);
   19676           0 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->status_string, _ptr_status_string));
   19677             :                         } else {
   19678           0 :                                 r->status_string = NULL;
   19679             :                         }
   19680           0 :                         ndr->flags = _flags_save_string;
   19681             :                 }
   19682           0 :                 NDR_CHECK(ndr_pull_spoolss_PortSeverity(ndr, NDR_SCALARS, &r->severity));
   19683           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
   19684             :         }
   19685           0 :         if (ndr_flags & NDR_BUFFERS) {
   19686             :                 {
   19687           0 :                         libndr_flags _flags_save_string = ndr->flags;
   19688           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   19689           0 :                         if (r->status_string) {
   19690           0 :                                 uint32_t _relative_save_offset;
   19691           0 :                                 _relative_save_offset = ndr->offset;
   19692           0 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->status_string));
   19693           0 :                                 _mem_save_status_string_0 = NDR_PULL_GET_MEM_CTX(ndr);
   19694           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->status_string, 0);
   19695           0 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->status_string));
   19696           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_string_0, 0);
   19697           0 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   19698           0 :                                         ndr->relative_highest_offset = ndr->offset;
   19699             :                                 }
   19700           0 :                                 ndr->offset = _relative_save_offset;
   19701             :                         }
   19702           0 :                         ndr->flags = _flags_save_string;
   19703             :                 }
   19704             :         }
   19705           0 :         return NDR_ERR_SUCCESS;
   19706             : }
   19707             : 
   19708           0 : static void ndr_print_flags_spoolss_PortInfo3(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_PortInfo3 *r)
   19709             : {
   19710           0 :         ndr_print_spoolss_PortInfo3(ndr, name, r);
   19711           0 : }
   19712             : 
   19713           0 : _PUBLIC_ void ndr_print_spoolss_PortInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo3 *r)
   19714             : {
   19715           0 :         ndr_print_struct(ndr, name, "spoolss_PortInfo3");
   19716           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   19717           0 :         ndr->depth++;
   19718           0 :         ndr_print_spoolss_PortStatus(ndr, "status", r->status);
   19719             :         {
   19720           0 :                 libndr_flags _flags_save_string = ndr->flags;
   19721           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   19722           0 :                 ndr_print_ptr(ndr, "status_string", r->status_string);
   19723           0 :                 ndr->depth++;
   19724           0 :                 if (r->status_string) {
   19725           0 :                         ndr_print_string(ndr, "status_string", r->status_string);
   19726             :                 }
   19727           0 :                 ndr->depth--;
   19728           0 :                 ndr->flags = _flags_save_string;
   19729             :         }
   19730           0 :         ndr_print_spoolss_PortSeverity(ndr, "severity", r->severity);
   19731           0 :         ndr->depth--;
   19732             : }
   19733             : 
   19734           0 : _PUBLIC_ size_t ndr_size_spoolss_PortInfo3(const struct spoolss_PortInfo3 *r, libndr_flags flags)
   19735             : {
   19736           0 :         return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfo3);
   19737             : }
   19738             : 
   19739           0 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfoFF(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_PortInfoFF *r)
   19740             : {
   19741           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   19742           0 :         if (ndr_flags & NDR_SCALARS) {
   19743           0 :                 NDR_CHECK(ndr_push_align(ndr, 5));
   19744             :                 {
   19745           0 :                         libndr_flags _flags_save_string = ndr->flags;
   19746           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   19747           0 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
   19748           0 :                         ndr->flags = _flags_save_string;
   19749             :                 }
   19750           0 :                 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->monitor_data));
   19751           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
   19752             :         }
   19753           0 :         if (ndr_flags & NDR_BUFFERS) {
   19754             :                 {
   19755           0 :                         libndr_flags _flags_save_string = ndr->flags;
   19756           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   19757           0 :                         if (r->port_name) {
   19758           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->port_name));
   19759           0 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
   19760           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->port_name));
   19761             :                         }
   19762           0 :                         ndr->flags = _flags_save_string;
   19763             :                 }
   19764             :         }
   19765           0 :         return NDR_ERR_SUCCESS;
   19766             : }
   19767             : 
   19768           0 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfoFF(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_PortInfoFF *r)
   19769             : {
   19770           0 :         uint32_t _ptr_port_name;
   19771           0 :         TALLOC_CTX *_mem_save_port_name_0 = NULL;
   19772           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   19773           0 :         if (ndr_flags & NDR_SCALARS) {
   19774           0 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
   19775             :                 {
   19776           0 :                         libndr_flags _flags_save_string = ndr->flags;
   19777           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   19778           0 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
   19779           0 :                         if (_ptr_port_name) {
   19780           0 :                                 NDR_PULL_ALLOC(ndr, r->port_name);
   19781           0 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
   19782             :                         } else {
   19783           0 :                                 r->port_name = NULL;
   19784             :                         }
   19785           0 :                         ndr->flags = _flags_save_string;
   19786             :                 }
   19787           0 :                 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->monitor_data));
   19788           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
   19789             :         }
   19790           0 :         if (ndr_flags & NDR_BUFFERS) {
   19791             :                 {
   19792           0 :                         libndr_flags _flags_save_string = ndr->flags;
   19793           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   19794           0 :                         if (r->port_name) {
   19795           0 :                                 uint32_t _relative_save_offset;
   19796           0 :                                 _relative_save_offset = ndr->offset;
   19797           0 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
   19798           0 :                                 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
   19799           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
   19800           0 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
   19801           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
   19802           0 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   19803           0 :                                         ndr->relative_highest_offset = ndr->offset;
   19804             :                                 }
   19805           0 :                                 ndr->offset = _relative_save_offset;
   19806             :                         }
   19807           0 :                         ndr->flags = _flags_save_string;
   19808             :                 }
   19809             :         }
   19810           0 :         return NDR_ERR_SUCCESS;
   19811             : }
   19812             : 
   19813           0 : static void ndr_print_flags_spoolss_PortInfoFF(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_PortInfoFF *r)
   19814             : {
   19815           0 :         ndr_print_spoolss_PortInfoFF(ndr, name, r);
   19816           0 : }
   19817             : 
   19818           0 : _PUBLIC_ void ndr_print_spoolss_PortInfoFF(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfoFF *r)
   19819             : {
   19820           0 :         ndr_print_struct(ndr, name, "spoolss_PortInfoFF");
   19821           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   19822           0 :         ndr->depth++;
   19823             :         {
   19824           0 :                 libndr_flags _flags_save_string = ndr->flags;
   19825           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   19826           0 :                 ndr_print_ptr(ndr, "port_name", r->port_name);
   19827           0 :                 ndr->depth++;
   19828           0 :                 if (r->port_name) {
   19829           0 :                         ndr_print_string(ndr, "port_name", r->port_name);
   19830             :                 }
   19831           0 :                 ndr->depth--;
   19832           0 :                 ndr->flags = _flags_save_string;
   19833             :         }
   19834           0 :         ndr_print_DATA_BLOB(ndr, "monitor_data", r->monitor_data);
   19835           0 :         ndr->depth--;
   19836             : }
   19837             : 
   19838           0 : _PUBLIC_ size_t ndr_size_spoolss_PortInfoFF(const struct spoolss_PortInfoFF *r, libndr_flags flags)
   19839             : {
   19840           0 :         return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfoFF);
   19841             : }
   19842             : 
   19843          72 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo(struct ndr_push *ndr, ndr_flags_type ndr_flags, const union spoolss_PortInfo *r)
   19844             : {
   19845          72 :         uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
   19846           0 :         uint32_t level;
   19847             :         {
   19848          72 :                 libndr_flags _flags_save_UNION = ndr->flags;
   19849          72 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
   19850          72 :                 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   19851          72 :                 if (ndr_flags & NDR_SCALARS) {
   19852             :                         /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
   19853          36 :                         NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
   19854          36 :                         NDR_CHECK(ndr_push_union_align(ndr, 5));
   19855          36 :                         switch (level) {
   19856          12 :                                 case 1: {
   19857          12 :                                         NDR_CHECK(ndr_push_align(ndr, 5));
   19858          12 :                                         NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
   19859          12 :                                         NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr, NDR_SCALARS, &r->info1));
   19860          12 :                                 break; }
   19861             : 
   19862          24 :                                 case 2: {
   19863          24 :                                         NDR_CHECK(ndr_push_align(ndr, 5));
   19864          24 :                                         NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
   19865          24 :                                         NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr, NDR_SCALARS, &r->info2));
   19866          24 :                                 break; }
   19867             : 
   19868           0 :                                 case 3: {
   19869           0 :                                         NDR_CHECK(ndr_push_align(ndr, 5));
   19870           0 :                                         NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
   19871           0 :                                         NDR_CHECK(ndr_push_spoolss_PortInfo3(ndr, NDR_SCALARS, &r->info3));
   19872           0 :                                 break; }
   19873             : 
   19874           0 :                                 case 0xff: {
   19875           0 :                                         NDR_CHECK(ndr_push_align(ndr, 5));
   19876           0 :                                         NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
   19877           0 :                                         NDR_CHECK(ndr_push_spoolss_PortInfoFF(ndr, NDR_SCALARS, &r->infoFF));
   19878           0 :                                 break; }
   19879             : 
   19880           0 :                                 default: {
   19881           0 :                                 break; }
   19882             : 
   19883             :                         }
   19884             :                 }
   19885          72 :                 if (ndr_flags & NDR_BUFFERS) {
   19886          36 :                         if (!(ndr_flags & NDR_SCALARS)) {
   19887             :                                 /* We didn't get it above, and the token is not needed after this. */
   19888          36 :                                 NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
   19889             :                         }
   19890          36 :                         NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
   19891          36 :                         switch (level) {
   19892          12 :                                 case 1:
   19893          12 :                                         NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr, NDR_BUFFERS, &r->info1));
   19894          12 :                                 break;
   19895             : 
   19896          24 :                                 case 2:
   19897          24 :                                         NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr, NDR_BUFFERS, &r->info2));
   19898          24 :                                 break;
   19899             : 
   19900           0 :                                 case 3:
   19901           0 :                                         NDR_CHECK(ndr_push_spoolss_PortInfo3(ndr, NDR_BUFFERS, &r->info3));
   19902           0 :                                 break;
   19903             : 
   19904           0 :                                 case 0xff:
   19905           0 :                                         NDR_CHECK(ndr_push_spoolss_PortInfoFF(ndr, NDR_BUFFERS, &r->infoFF));
   19906           0 :                                 break;
   19907             : 
   19908           0 :                                 default:
   19909           0 :                                 break;
   19910             : 
   19911             :                         }
   19912             :                 }
   19913          72 :                 ndr->flags = _flags_save_UNION;
   19914             :         }
   19915          72 :         ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
   19916          72 :         return NDR_ERR_SUCCESS;
   19917             : }
   19918             : 
   19919          24 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo(struct ndr_pull *ndr, ndr_flags_type ndr_flags, union spoolss_PortInfo *r)
   19920             : {
   19921          24 :         uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
   19922           0 :         uint32_t level;
   19923             :         {
   19924          24 :                 libndr_flags _flags_save_UNION = ndr->flags;
   19925          24 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
   19926          24 :                 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   19927          24 :                 if (ndr_flags & NDR_SCALARS) {
   19928             :                         /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
   19929          12 :                         NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
   19930          12 :                         NDR_CHECK(ndr_pull_union_align(ndr, 5));
   19931          12 :                         switch (level) {
   19932           4 :                                 case 1: {
   19933           4 :                                         NDR_CHECK(ndr_pull_align(ndr, 5));
   19934           4 :                                         NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
   19935           4 :                                         NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr, NDR_SCALARS, &r->info1));
   19936           4 :                                 break; }
   19937             : 
   19938           8 :                                 case 2: {
   19939           8 :                                         NDR_CHECK(ndr_pull_align(ndr, 5));
   19940           8 :                                         NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
   19941           8 :                                         NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr, NDR_SCALARS, &r->info2));
   19942           8 :                                 break; }
   19943             : 
   19944           0 :                                 case 3: {
   19945           0 :                                         NDR_CHECK(ndr_pull_align(ndr, 5));
   19946           0 :                                         NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
   19947           0 :                                         NDR_CHECK(ndr_pull_spoolss_PortInfo3(ndr, NDR_SCALARS, &r->info3));
   19948           0 :                                 break; }
   19949             : 
   19950           0 :                                 case 0xff: {
   19951           0 :                                         NDR_CHECK(ndr_pull_align(ndr, 5));
   19952           0 :                                         NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
   19953           0 :                                         NDR_CHECK(ndr_pull_spoolss_PortInfoFF(ndr, NDR_SCALARS, &r->infoFF));
   19954           0 :                                 break; }
   19955             : 
   19956           0 :                                 default: {
   19957           0 :                                 break; }
   19958             : 
   19959             :                         }
   19960             :                 }
   19961          24 :                 if (ndr_flags & NDR_BUFFERS) {
   19962          12 :                         if (!(ndr_flags & NDR_SCALARS)) {
   19963             :                                 /* We didn't get it above, and the token is not needed after this. */
   19964          12 :                                 NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
   19965             :                         }
   19966          12 :                         switch (level) {
   19967           4 :                                 case 1:
   19968           4 :                                         NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
   19969           4 :                                         NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr, NDR_BUFFERS, &r->info1));
   19970           4 :                                 break;
   19971             : 
   19972           8 :                                 case 2:
   19973           8 :                                         NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
   19974           8 :                                         NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr, NDR_BUFFERS, &r->info2));
   19975           8 :                                 break;
   19976             : 
   19977           0 :                                 case 3:
   19978           0 :                                         NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
   19979           0 :                                         NDR_CHECK(ndr_pull_spoolss_PortInfo3(ndr, NDR_BUFFERS, &r->info3));
   19980           0 :                                 break;
   19981             : 
   19982           0 :                                 case 0xff:
   19983           0 :                                         NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
   19984           0 :                                         NDR_CHECK(ndr_pull_spoolss_PortInfoFF(ndr, NDR_BUFFERS, &r->infoFF));
   19985           0 :                                 break;
   19986             : 
   19987           0 :                                 default:
   19988           0 :                                 break;
   19989             : 
   19990             :                         }
   19991             :                 }
   19992          24 :                 ndr->flags = _flags_save_UNION;
   19993             :         }
   19994          24 :         ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
   19995          24 :         return NDR_ERR_SUCCESS;
   19996             : }
   19997             : 
   19998           0 : _PUBLIC_ void ndr_print_spoolss_PortInfo(struct ndr_print *ndr, const char *name, const union spoolss_PortInfo *r)
   19999             : {
   20000           0 :         uint32_t level;
   20001             :         {
   20002           0 :                 libndr_flags _flags_save_UNION = ndr->flags;
   20003           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
   20004           0 :                 level = ndr_print_steal_switch_value(ndr, r);
   20005           0 :                 ndr_print_union(ndr, name, level, "spoolss_PortInfo");
   20006           0 :                 switch (level) {
   20007           0 :                         case 1:
   20008           0 :                                 ndr_print_spoolss_PortInfo1(ndr, "info1", &r->info1);
   20009           0 :                         break;
   20010             : 
   20011           0 :                         case 2:
   20012           0 :                                 ndr_print_spoolss_PortInfo2(ndr, "info2", &r->info2);
   20013           0 :                         break;
   20014             : 
   20015           0 :                         case 3:
   20016           0 :                                 ndr_print_spoolss_PortInfo3(ndr, "info3", &r->info3);
   20017           0 :                         break;
   20018             : 
   20019           0 :                         case 0xff:
   20020           0 :                                 ndr_print_spoolss_PortInfoFF(ndr, "infoFF", &r->infoFF);
   20021           0 :                         break;
   20022             : 
   20023           0 :                         default:
   20024           0 :                         break;
   20025             : 
   20026             :                 }
   20027           0 :                 ndr->flags = _flags_save_UNION;
   20028             :         }
   20029           0 : }
   20030             : 
   20031          48 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo1(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_MonitorInfo1 *r)
   20032             : {
   20033          48 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   20034          48 :         if (ndr_flags & NDR_SCALARS) {
   20035          24 :                 NDR_CHECK(ndr_push_align(ndr, 5));
   20036             :                 {
   20037          24 :                         libndr_flags _flags_save_string = ndr->flags;
   20038          24 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   20039          24 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
   20040          24 :                         ndr->flags = _flags_save_string;
   20041             :                 }
   20042          24 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
   20043             :         }
   20044          48 :         if (ndr_flags & NDR_BUFFERS) {
   20045             :                 {
   20046          24 :                         libndr_flags _flags_save_string = ndr->flags;
   20047          24 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   20048          24 :                         if (r->monitor_name) {
   20049          24 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->monitor_name));
   20050          24 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
   20051          24 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->monitor_name));
   20052             :                         }
   20053          24 :                         ndr->flags = _flags_save_string;
   20054             :                 }
   20055             :         }
   20056          48 :         return NDR_ERR_SUCCESS;
   20057             : }
   20058             : 
   20059          16 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo1(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_MonitorInfo1 *r)
   20060             : {
   20061           0 :         uint32_t _ptr_monitor_name;
   20062          16 :         TALLOC_CTX *_mem_save_monitor_name_0 = NULL;
   20063          16 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   20064          16 :         if (ndr_flags & NDR_SCALARS) {
   20065           8 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
   20066             :                 {
   20067           8 :                         libndr_flags _flags_save_string = ndr->flags;
   20068           8 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   20069           8 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
   20070           8 :                         if (_ptr_monitor_name) {
   20071           8 :                                 NDR_PULL_ALLOC(ndr, r->monitor_name);
   20072           8 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
   20073             :                         } else {
   20074           0 :                                 r->monitor_name = NULL;
   20075             :                         }
   20076           8 :                         ndr->flags = _flags_save_string;
   20077             :                 }
   20078           8 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
   20079             :         }
   20080          16 :         if (ndr_flags & NDR_BUFFERS) {
   20081             :                 {
   20082           8 :                         libndr_flags _flags_save_string = ndr->flags;
   20083           8 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   20084           8 :                         if (r->monitor_name) {
   20085           0 :                                 uint32_t _relative_save_offset;
   20086           8 :                                 _relative_save_offset = ndr->offset;
   20087           8 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
   20088           8 :                                 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
   20089           8 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
   20090           8 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
   20091           8 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
   20092           8 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   20093           4 :                                         ndr->relative_highest_offset = ndr->offset;
   20094             :                                 }
   20095           8 :                                 ndr->offset = _relative_save_offset;
   20096             :                         }
   20097           8 :                         ndr->flags = _flags_save_string;
   20098             :                 }
   20099             :         }
   20100          16 :         return NDR_ERR_SUCCESS;
   20101             : }
   20102             : 
   20103           0 : static void ndr_print_flags_spoolss_MonitorInfo1(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_MonitorInfo1 *r)
   20104             : {
   20105           0 :         ndr_print_spoolss_MonitorInfo1(ndr, name, r);
   20106           0 : }
   20107             : 
   20108           0 : _PUBLIC_ void ndr_print_spoolss_MonitorInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorInfo1 *r)
   20109             : {
   20110           0 :         ndr_print_struct(ndr, name, "spoolss_MonitorInfo1");
   20111           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   20112           0 :         ndr->depth++;
   20113             :         {
   20114           0 :                 libndr_flags _flags_save_string = ndr->flags;
   20115           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   20116           0 :                 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
   20117           0 :                 ndr->depth++;
   20118           0 :                 if (r->monitor_name) {
   20119           0 :                         ndr_print_string(ndr, "monitor_name", r->monitor_name);
   20120             :                 }
   20121           0 :                 ndr->depth--;
   20122           0 :                 ndr->flags = _flags_save_string;
   20123             :         }
   20124           0 :         ndr->depth--;
   20125             : }
   20126             : 
   20127           0 : _PUBLIC_ size_t ndr_size_spoolss_MonitorInfo1(const struct spoolss_MonitorInfo1 *r, libndr_flags flags)
   20128             : {
   20129           0 :         return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_MonitorInfo1);
   20130             : }
   20131             : 
   20132          48 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo2(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_MonitorInfo2 *r)
   20133             : {
   20134          48 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   20135          48 :         if (ndr_flags & NDR_SCALARS) {
   20136          24 :                 NDR_CHECK(ndr_push_align(ndr, 5));
   20137             :                 {
   20138          24 :                         libndr_flags _flags_save_string = ndr->flags;
   20139          24 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   20140          24 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
   20141          24 :                         ndr->flags = _flags_save_string;
   20142             :                 }
   20143             :                 {
   20144          24 :                         libndr_flags _flags_save_string = ndr->flags;
   20145          24 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   20146          24 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->environment));
   20147          24 :                         ndr->flags = _flags_save_string;
   20148             :                 }
   20149             :                 {
   20150          24 :                         libndr_flags _flags_save_string = ndr->flags;
   20151          24 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   20152          24 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dll_name));
   20153          24 :                         ndr->flags = _flags_save_string;
   20154             :                 }
   20155          24 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
   20156             :         }
   20157          48 :         if (ndr_flags & NDR_BUFFERS) {
   20158             :                 {
   20159          24 :                         libndr_flags _flags_save_string = ndr->flags;
   20160          24 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   20161          24 :                         if (r->monitor_name) {
   20162          24 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->monitor_name));
   20163          24 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
   20164          24 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->monitor_name));
   20165             :                         }
   20166          24 :                         ndr->flags = _flags_save_string;
   20167             :                 }
   20168             :                 {
   20169          24 :                         libndr_flags _flags_save_string = ndr->flags;
   20170          24 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   20171          24 :                         if (r->environment) {
   20172          24 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->environment));
   20173          24 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->environment));
   20174          24 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->environment));
   20175             :                         }
   20176          24 :                         ndr->flags = _flags_save_string;
   20177             :                 }
   20178             :                 {
   20179          24 :                         libndr_flags _flags_save_string = ndr->flags;
   20180          24 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   20181          24 :                         if (r->dll_name) {
   20182          24 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->dll_name));
   20183          24 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->dll_name));
   20184          24 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->dll_name));
   20185             :                         }
   20186          24 :                         ndr->flags = _flags_save_string;
   20187             :                 }
   20188             :         }
   20189          48 :         return NDR_ERR_SUCCESS;
   20190             : }
   20191             : 
   20192          16 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo2(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_MonitorInfo2 *r)
   20193             : {
   20194           0 :         uint32_t _ptr_monitor_name;
   20195          16 :         TALLOC_CTX *_mem_save_monitor_name_0 = NULL;
   20196           0 :         uint32_t _ptr_environment;
   20197          16 :         TALLOC_CTX *_mem_save_environment_0 = NULL;
   20198           0 :         uint32_t _ptr_dll_name;
   20199          16 :         TALLOC_CTX *_mem_save_dll_name_0 = NULL;
   20200          16 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   20201          16 :         if (ndr_flags & NDR_SCALARS) {
   20202           8 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
   20203             :                 {
   20204           8 :                         libndr_flags _flags_save_string = ndr->flags;
   20205           8 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   20206           8 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
   20207           8 :                         if (_ptr_monitor_name) {
   20208           8 :                                 NDR_PULL_ALLOC(ndr, r->monitor_name);
   20209           8 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
   20210             :                         } else {
   20211           0 :                                 r->monitor_name = NULL;
   20212             :                         }
   20213           8 :                         ndr->flags = _flags_save_string;
   20214             :                 }
   20215             :                 {
   20216           8 :                         libndr_flags _flags_save_string = ndr->flags;
   20217           8 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   20218           8 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
   20219           8 :                         if (_ptr_environment) {
   20220           8 :                                 NDR_PULL_ALLOC(ndr, r->environment);
   20221           8 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->environment, _ptr_environment));
   20222             :                         } else {
   20223           0 :                                 r->environment = NULL;
   20224             :                         }
   20225           8 :                         ndr->flags = _flags_save_string;
   20226             :                 }
   20227             :                 {
   20228           8 :                         libndr_flags _flags_save_string = ndr->flags;
   20229           8 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   20230           8 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dll_name));
   20231           8 :                         if (_ptr_dll_name) {
   20232           8 :                                 NDR_PULL_ALLOC(ndr, r->dll_name);
   20233           8 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dll_name, _ptr_dll_name));
   20234             :                         } else {
   20235           0 :                                 r->dll_name = NULL;
   20236             :                         }
   20237           8 :                         ndr->flags = _flags_save_string;
   20238             :                 }
   20239           8 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
   20240             :         }
   20241          16 :         if (ndr_flags & NDR_BUFFERS) {
   20242             :                 {
   20243           8 :                         libndr_flags _flags_save_string = ndr->flags;
   20244           8 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   20245           8 :                         if (r->monitor_name) {
   20246           0 :                                 uint32_t _relative_save_offset;
   20247           8 :                                 _relative_save_offset = ndr->offset;
   20248           8 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
   20249           8 :                                 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
   20250           8 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
   20251           8 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
   20252           8 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
   20253           8 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   20254           4 :                                         ndr->relative_highest_offset = ndr->offset;
   20255             :                                 }
   20256           8 :                                 ndr->offset = _relative_save_offset;
   20257             :                         }
   20258           8 :                         ndr->flags = _flags_save_string;
   20259             :                 }
   20260             :                 {
   20261           8 :                         libndr_flags _flags_save_string = ndr->flags;
   20262           8 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   20263           8 :                         if (r->environment) {
   20264           0 :                                 uint32_t _relative_save_offset;
   20265           8 :                                 _relative_save_offset = ndr->offset;
   20266           8 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->environment));
   20267           8 :                                 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
   20268           8 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->environment, 0);
   20269           8 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->environment));
   20270           8 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
   20271           8 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   20272           0 :                                         ndr->relative_highest_offset = ndr->offset;
   20273             :                                 }
   20274           8 :                                 ndr->offset = _relative_save_offset;
   20275             :                         }
   20276           8 :                         ndr->flags = _flags_save_string;
   20277             :                 }
   20278             :                 {
   20279           8 :                         libndr_flags _flags_save_string = ndr->flags;
   20280           8 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   20281           8 :                         if (r->dll_name) {
   20282           0 :                                 uint32_t _relative_save_offset;
   20283           8 :                                 _relative_save_offset = ndr->offset;
   20284           8 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dll_name));
   20285           8 :                                 _mem_save_dll_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
   20286           8 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->dll_name, 0);
   20287           8 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->dll_name));
   20288           8 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dll_name_0, 0);
   20289           8 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   20290           0 :                                         ndr->relative_highest_offset = ndr->offset;
   20291             :                                 }
   20292           8 :                                 ndr->offset = _relative_save_offset;
   20293             :                         }
   20294           8 :                         ndr->flags = _flags_save_string;
   20295             :                 }
   20296             :         }
   20297          16 :         return NDR_ERR_SUCCESS;
   20298             : }
   20299             : 
   20300           0 : static void ndr_print_flags_spoolss_MonitorInfo2(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_MonitorInfo2 *r)
   20301             : {
   20302           0 :         ndr_print_spoolss_MonitorInfo2(ndr, name, r);
   20303           0 : }
   20304             : 
   20305           0 : _PUBLIC_ void ndr_print_spoolss_MonitorInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorInfo2 *r)
   20306             : {
   20307           0 :         ndr_print_struct(ndr, name, "spoolss_MonitorInfo2");
   20308           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   20309           0 :         ndr->depth++;
   20310             :         {
   20311           0 :                 libndr_flags _flags_save_string = ndr->flags;
   20312           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   20313           0 :                 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
   20314           0 :                 ndr->depth++;
   20315           0 :                 if (r->monitor_name) {
   20316           0 :                         ndr_print_string(ndr, "monitor_name", r->monitor_name);
   20317             :                 }
   20318           0 :                 ndr->depth--;
   20319           0 :                 ndr->flags = _flags_save_string;
   20320             :         }
   20321             :         {
   20322           0 :                 libndr_flags _flags_save_string = ndr->flags;
   20323           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   20324           0 :                 ndr_print_ptr(ndr, "environment", r->environment);
   20325           0 :                 ndr->depth++;
   20326           0 :                 if (r->environment) {
   20327           0 :                         ndr_print_string(ndr, "environment", r->environment);
   20328             :                 }
   20329           0 :                 ndr->depth--;
   20330           0 :                 ndr->flags = _flags_save_string;
   20331             :         }
   20332             :         {
   20333           0 :                 libndr_flags _flags_save_string = ndr->flags;
   20334           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   20335           0 :                 ndr_print_ptr(ndr, "dll_name", r->dll_name);
   20336           0 :                 ndr->depth++;
   20337           0 :                 if (r->dll_name) {
   20338           0 :                         ndr_print_string(ndr, "dll_name", r->dll_name);
   20339             :                 }
   20340           0 :                 ndr->depth--;
   20341           0 :                 ndr->flags = _flags_save_string;
   20342             :         }
   20343           0 :         ndr->depth--;
   20344             : }
   20345             : 
   20346           0 : _PUBLIC_ size_t ndr_size_spoolss_MonitorInfo2(const struct spoolss_MonitorInfo2 *r, libndr_flags flags)
   20347             : {
   20348           0 :         return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_MonitorInfo2);
   20349             : }
   20350             : 
   20351          96 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo(struct ndr_push *ndr, ndr_flags_type ndr_flags, const union spoolss_MonitorInfo *r)
   20352             : {
   20353          96 :         uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
   20354           0 :         uint32_t level;
   20355             :         {
   20356          96 :                 libndr_flags _flags_save_UNION = ndr->flags;
   20357          96 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
   20358          96 :                 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   20359          96 :                 if (ndr_flags & NDR_SCALARS) {
   20360             :                         /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
   20361          48 :                         NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
   20362          48 :                         NDR_CHECK(ndr_push_union_align(ndr, 5));
   20363          48 :                         switch (level) {
   20364          24 :                                 case 1: {
   20365          24 :                                         NDR_CHECK(ndr_push_align(ndr, 5));
   20366          24 :                                         NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
   20367          24 :                                         NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr, NDR_SCALARS, &r->info1));
   20368          24 :                                 break; }
   20369             : 
   20370          24 :                                 case 2: {
   20371          24 :                                         NDR_CHECK(ndr_push_align(ndr, 5));
   20372          24 :                                         NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
   20373          24 :                                         NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr, NDR_SCALARS, &r->info2));
   20374          24 :                                 break; }
   20375             : 
   20376           0 :                                 default: {
   20377           0 :                                 break; }
   20378             : 
   20379             :                         }
   20380             :                 }
   20381          96 :                 if (ndr_flags & NDR_BUFFERS) {
   20382          48 :                         if (!(ndr_flags & NDR_SCALARS)) {
   20383             :                                 /* We didn't get it above, and the token is not needed after this. */
   20384          48 :                                 NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
   20385             :                         }
   20386          48 :                         NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
   20387          48 :                         switch (level) {
   20388          24 :                                 case 1:
   20389          24 :                                         NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr, NDR_BUFFERS, &r->info1));
   20390          24 :                                 break;
   20391             : 
   20392          24 :                                 case 2:
   20393          24 :                                         NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr, NDR_BUFFERS, &r->info2));
   20394          24 :                                 break;
   20395             : 
   20396           0 :                                 default:
   20397           0 :                                 break;
   20398             : 
   20399             :                         }
   20400             :                 }
   20401          96 :                 ndr->flags = _flags_save_UNION;
   20402             :         }
   20403          96 :         ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
   20404          96 :         return NDR_ERR_SUCCESS;
   20405             : }
   20406             : 
   20407          32 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo(struct ndr_pull *ndr, ndr_flags_type ndr_flags, union spoolss_MonitorInfo *r)
   20408             : {
   20409          32 :         uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
   20410           0 :         uint32_t level;
   20411             :         {
   20412          32 :                 libndr_flags _flags_save_UNION = ndr->flags;
   20413          32 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
   20414          32 :                 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   20415          32 :                 if (ndr_flags & NDR_SCALARS) {
   20416             :                         /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
   20417          16 :                         NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
   20418          16 :                         NDR_CHECK(ndr_pull_union_align(ndr, 5));
   20419          16 :                         switch (level) {
   20420           8 :                                 case 1: {
   20421           8 :                                         NDR_CHECK(ndr_pull_align(ndr, 5));
   20422           8 :                                         NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
   20423           8 :                                         NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr, NDR_SCALARS, &r->info1));
   20424           8 :                                 break; }
   20425             : 
   20426           8 :                                 case 2: {
   20427           8 :                                         NDR_CHECK(ndr_pull_align(ndr, 5));
   20428           8 :                                         NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
   20429           8 :                                         NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr, NDR_SCALARS, &r->info2));
   20430           8 :                                 break; }
   20431             : 
   20432           0 :                                 default: {
   20433           0 :                                 break; }
   20434             : 
   20435             :                         }
   20436             :                 }
   20437          32 :                 if (ndr_flags & NDR_BUFFERS) {
   20438          16 :                         if (!(ndr_flags & NDR_SCALARS)) {
   20439             :                                 /* We didn't get it above, and the token is not needed after this. */
   20440          16 :                                 NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
   20441             :                         }
   20442          16 :                         switch (level) {
   20443           8 :                                 case 1:
   20444           8 :                                         NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
   20445           8 :                                         NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr, NDR_BUFFERS, &r->info1));
   20446           8 :                                 break;
   20447             : 
   20448           8 :                                 case 2:
   20449           8 :                                         NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
   20450           8 :                                         NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr, NDR_BUFFERS, &r->info2));
   20451           8 :                                 break;
   20452             : 
   20453           0 :                                 default:
   20454           0 :                                 break;
   20455             : 
   20456             :                         }
   20457             :                 }
   20458          32 :                 ndr->flags = _flags_save_UNION;
   20459             :         }
   20460          32 :         ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
   20461          32 :         return NDR_ERR_SUCCESS;
   20462             : }
   20463             : 
   20464           0 : _PUBLIC_ void ndr_print_spoolss_MonitorInfo(struct ndr_print *ndr, const char *name, const union spoolss_MonitorInfo *r)
   20465             : {
   20466           0 :         uint32_t level;
   20467             :         {
   20468           0 :                 libndr_flags _flags_save_UNION = ndr->flags;
   20469           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
   20470           0 :                 level = ndr_print_steal_switch_value(ndr, r);
   20471           0 :                 ndr_print_union(ndr, name, level, "spoolss_MonitorInfo");
   20472           0 :                 switch (level) {
   20473           0 :                         case 1:
   20474           0 :                                 ndr_print_spoolss_MonitorInfo1(ndr, "info1", &r->info1);
   20475           0 :                         break;
   20476             : 
   20477           0 :                         case 2:
   20478           0 :                                 ndr_print_spoolss_MonitorInfo2(ndr, "info2", &r->info2);
   20479           0 :                         break;
   20480             : 
   20481           0 :                         default:
   20482           0 :                         break;
   20483             : 
   20484             :                 }
   20485           0 :                 ndr->flags = _flags_save_UNION;
   20486             :         }
   20487           0 : }
   20488             : 
   20489           0 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_SetPortInfo1(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_SetPortInfo1 *r)
   20490             : {
   20491           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   20492           0 :         if (ndr_flags & NDR_SCALARS) {
   20493           0 :                 NDR_CHECK(ndr_push_align(ndr, 5));
   20494           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->port_name));
   20495           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
   20496             :         }
   20497           0 :         if (ndr_flags & NDR_BUFFERS) {
   20498           0 :                 if (r->port_name) {
   20499           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->port_name, CH_UTF16)));
   20500           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   20501           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->port_name, CH_UTF16)));
   20502           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->port_name, ndr_charset_length(r->port_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   20503             :                 }
   20504             :         }
   20505           0 :         return NDR_ERR_SUCCESS;
   20506             : }
   20507             : 
   20508           0 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_SetPortInfo1(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_SetPortInfo1 *r)
   20509             : {
   20510           0 :         uint32_t _ptr_port_name;
   20511           0 :         uint32_t size_port_name_1 = 0;
   20512           0 :         uint32_t length_port_name_1 = 0;
   20513           0 :         TALLOC_CTX *_mem_save_port_name_0 = NULL;
   20514           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   20515           0 :         if (ndr_flags & NDR_SCALARS) {
   20516           0 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
   20517           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
   20518           0 :                 if (_ptr_port_name) {
   20519           0 :                         NDR_PULL_ALLOC(ndr, r->port_name);
   20520             :                 } else {
   20521           0 :                         r->port_name = NULL;
   20522             :                 }
   20523           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
   20524             :         }
   20525           0 :         if (ndr_flags & NDR_BUFFERS) {
   20526           0 :                 if (r->port_name) {
   20527           0 :                         _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
   20528           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
   20529           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->port_name));
   20530           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->port_name));
   20531           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->port_name, &size_port_name_1));
   20532           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->port_name, &length_port_name_1));
   20533           0 :                         if (length_port_name_1 > size_port_name_1) {
   20534           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_port_name_1, length_port_name_1);
   20535             :                         }
   20536           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_port_name_1, sizeof(uint16_t)));
   20537           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->port_name, length_port_name_1, sizeof(uint16_t), CH_UTF16));
   20538           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
   20539             :                 }
   20540             :         }
   20541           0 :         return NDR_ERR_SUCCESS;
   20542             : }
   20543             : 
   20544           0 : static void ndr_print_flags_spoolss_SetPortInfo1(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_SetPortInfo1 *r)
   20545             : {
   20546           0 :         ndr_print_spoolss_SetPortInfo1(ndr, name, r);
   20547           0 : }
   20548             : 
   20549           0 : _PUBLIC_ void ndr_print_spoolss_SetPortInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_SetPortInfo1 *r)
   20550             : {
   20551           0 :         ndr_print_struct(ndr, name, "spoolss_SetPortInfo1");
   20552           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   20553           0 :         ndr->depth++;
   20554           0 :         ndr_print_ptr(ndr, "port_name", r->port_name);
   20555           0 :         ndr->depth++;
   20556           0 :         if (r->port_name) {
   20557           0 :                 ndr_print_string(ndr, "port_name", r->port_name);
   20558             :         }
   20559           0 :         ndr->depth--;
   20560           0 :         ndr->depth--;
   20561             : }
   20562             : 
   20563           0 : _PUBLIC_ size_t ndr_size_spoolss_SetPortInfo1(const struct spoolss_SetPortInfo1 *r, libndr_flags flags)
   20564             : {
   20565           0 :         return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_SetPortInfo1);
   20566             : }
   20567             : 
   20568           0 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_SetPortInfo2(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_SetPortInfo2 *r)
   20569             : {
   20570           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   20571           0 :         if (ndr_flags & NDR_SCALARS) {
   20572           0 :                 NDR_CHECK(ndr_push_align(ndr, 5));
   20573           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->port_name));
   20574           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
   20575           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->description));
   20576           0 :                 NDR_CHECK(ndr_push_spoolss_PortType(ndr, NDR_SCALARS, r->port_type));
   20577           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
   20578           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
   20579             :         }
   20580           0 :         if (ndr_flags & NDR_BUFFERS) {
   20581           0 :                 if (r->port_name) {
   20582           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->port_name, CH_UTF16)));
   20583           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   20584           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->port_name, CH_UTF16)));
   20585           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->port_name, ndr_charset_length(r->port_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   20586             :                 }
   20587           0 :                 if (r->monitor_name) {
   20588           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
   20589           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   20590           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
   20591           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   20592             :                 }
   20593           0 :                 if (r->description) {
   20594           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->description, CH_UTF16)));
   20595           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   20596           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->description, CH_UTF16)));
   20597           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->description, ndr_charset_length(r->description, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   20598             :                 }
   20599             :         }
   20600           0 :         return NDR_ERR_SUCCESS;
   20601             : }
   20602             : 
   20603           0 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_SetPortInfo2(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_SetPortInfo2 *r)
   20604             : {
   20605           0 :         uint32_t _ptr_port_name;
   20606           0 :         uint32_t size_port_name_1 = 0;
   20607           0 :         uint32_t length_port_name_1 = 0;
   20608           0 :         TALLOC_CTX *_mem_save_port_name_0 = NULL;
   20609           0 :         uint32_t _ptr_monitor_name;
   20610           0 :         uint32_t size_monitor_name_1 = 0;
   20611           0 :         uint32_t length_monitor_name_1 = 0;
   20612           0 :         TALLOC_CTX *_mem_save_monitor_name_0 = NULL;
   20613           0 :         uint32_t _ptr_description;
   20614           0 :         uint32_t size_description_1 = 0;
   20615           0 :         uint32_t length_description_1 = 0;
   20616           0 :         TALLOC_CTX *_mem_save_description_0 = NULL;
   20617           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   20618           0 :         if (ndr_flags & NDR_SCALARS) {
   20619           0 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
   20620           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
   20621           0 :                 if (_ptr_port_name) {
   20622           0 :                         NDR_PULL_ALLOC(ndr, r->port_name);
   20623             :                 } else {
   20624           0 :                         r->port_name = NULL;
   20625             :                 }
   20626           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
   20627           0 :                 if (_ptr_monitor_name) {
   20628           0 :                         NDR_PULL_ALLOC(ndr, r->monitor_name);
   20629             :                 } else {
   20630           0 :                         r->monitor_name = NULL;
   20631             :                 }
   20632           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
   20633           0 :                 if (_ptr_description) {
   20634           0 :                         NDR_PULL_ALLOC(ndr, r->description);
   20635             :                 } else {
   20636           0 :                         r->description = NULL;
   20637             :                 }
   20638           0 :                 NDR_CHECK(ndr_pull_spoolss_PortType(ndr, NDR_SCALARS, &r->port_type));
   20639           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
   20640           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
   20641             :         }
   20642           0 :         if (ndr_flags & NDR_BUFFERS) {
   20643           0 :                 if (r->port_name) {
   20644           0 :                         _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
   20645           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
   20646           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->port_name));
   20647           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->port_name));
   20648           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->port_name, &size_port_name_1));
   20649           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->port_name, &length_port_name_1));
   20650           0 :                         if (length_port_name_1 > size_port_name_1) {
   20651           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_port_name_1, length_port_name_1);
   20652             :                         }
   20653           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_port_name_1, sizeof(uint16_t)));
   20654           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->port_name, length_port_name_1, sizeof(uint16_t), CH_UTF16));
   20655           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
   20656             :                 }
   20657           0 :                 if (r->monitor_name) {
   20658           0 :                         _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
   20659           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
   20660           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
   20661           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
   20662           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->monitor_name, &size_monitor_name_1));
   20663           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->monitor_name, &length_monitor_name_1));
   20664           0 :                         if (length_monitor_name_1 > size_monitor_name_1) {
   20665           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_monitor_name_1, length_monitor_name_1);
   20666             :                         }
   20667           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_monitor_name_1, sizeof(uint16_t)));
   20668           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, length_monitor_name_1, sizeof(uint16_t), CH_UTF16));
   20669           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
   20670             :                 }
   20671           0 :                 if (r->description) {
   20672           0 :                         _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
   20673           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
   20674           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->description));
   20675           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->description));
   20676           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->description, &size_description_1));
   20677           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->description, &length_description_1));
   20678           0 :                         if (length_description_1 > size_description_1) {
   20679           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_description_1, length_description_1);
   20680             :                         }
   20681           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_description_1, sizeof(uint16_t)));
   20682           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->description, length_description_1, sizeof(uint16_t), CH_UTF16));
   20683           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
   20684             :                 }
   20685             :         }
   20686           0 :         return NDR_ERR_SUCCESS;
   20687             : }
   20688             : 
   20689           0 : static void ndr_print_flags_spoolss_SetPortInfo2(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_SetPortInfo2 *r)
   20690             : {
   20691           0 :         ndr_print_spoolss_SetPortInfo2(ndr, name, r);
   20692           0 : }
   20693             : 
   20694           0 : _PUBLIC_ void ndr_print_spoolss_SetPortInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_SetPortInfo2 *r)
   20695             : {
   20696           0 :         ndr_print_struct(ndr, name, "spoolss_SetPortInfo2");
   20697           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   20698           0 :         ndr->depth++;
   20699           0 :         ndr_print_ptr(ndr, "port_name", r->port_name);
   20700           0 :         ndr->depth++;
   20701           0 :         if (r->port_name) {
   20702           0 :                 ndr_print_string(ndr, "port_name", r->port_name);
   20703             :         }
   20704           0 :         ndr->depth--;
   20705           0 :         ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
   20706           0 :         ndr->depth++;
   20707           0 :         if (r->monitor_name) {
   20708           0 :                 ndr_print_string(ndr, "monitor_name", r->monitor_name);
   20709             :         }
   20710           0 :         ndr->depth--;
   20711           0 :         ndr_print_ptr(ndr, "description", r->description);
   20712           0 :         ndr->depth++;
   20713           0 :         if (r->description) {
   20714           0 :                 ndr_print_string(ndr, "description", r->description);
   20715             :         }
   20716           0 :         ndr->depth--;
   20717           0 :         ndr_print_spoolss_PortType(ndr, "port_type", r->port_type);
   20718           0 :         ndr_print_uint32(ndr, "reserved", r->reserved);
   20719           0 :         ndr->depth--;
   20720             : }
   20721             : 
   20722           0 : _PUBLIC_ size_t ndr_size_spoolss_SetPortInfo2(const struct spoolss_SetPortInfo2 *r, libndr_flags flags)
   20723             : {
   20724           0 :         return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_SetPortInfo2);
   20725             : }
   20726             : 
   20727           0 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_SetPortInfo3(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_SetPortInfo3 *r)
   20728             : {
   20729           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   20730           0 :         if (ndr_flags & NDR_SCALARS) {
   20731           0 :                 NDR_CHECK(ndr_push_align(ndr, 5));
   20732           0 :                 NDR_CHECK(ndr_push_spoolss_PortStatus(ndr, NDR_SCALARS, r->status));
   20733           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->status_string));
   20734           0 :                 NDR_CHECK(ndr_push_spoolss_PortSeverity(ndr, NDR_SCALARS, r->severity));
   20735           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
   20736             :         }
   20737           0 :         if (ndr_flags & NDR_BUFFERS) {
   20738           0 :                 if (r->status_string) {
   20739           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->status_string, CH_UTF16)));
   20740           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   20741           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->status_string, CH_UTF16)));
   20742           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->status_string, ndr_charset_length(r->status_string, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   20743             :                 }
   20744             :         }
   20745           0 :         return NDR_ERR_SUCCESS;
   20746             : }
   20747             : 
   20748           0 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_SetPortInfo3(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_SetPortInfo3 *r)
   20749             : {
   20750           0 :         uint32_t _ptr_status_string;
   20751           0 :         uint32_t size_status_string_1 = 0;
   20752           0 :         uint32_t length_status_string_1 = 0;
   20753           0 :         TALLOC_CTX *_mem_save_status_string_0 = NULL;
   20754           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   20755           0 :         if (ndr_flags & NDR_SCALARS) {
   20756           0 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
   20757           0 :                 NDR_CHECK(ndr_pull_spoolss_PortStatus(ndr, NDR_SCALARS, &r->status));
   20758           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_status_string));
   20759           0 :                 if (_ptr_status_string) {
   20760           0 :                         NDR_PULL_ALLOC(ndr, r->status_string);
   20761             :                 } else {
   20762           0 :                         r->status_string = NULL;
   20763             :                 }
   20764           0 :                 NDR_CHECK(ndr_pull_spoolss_PortSeverity(ndr, NDR_SCALARS, &r->severity));
   20765           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
   20766             :         }
   20767           0 :         if (ndr_flags & NDR_BUFFERS) {
   20768           0 :                 if (r->status_string) {
   20769           0 :                         _mem_save_status_string_0 = NDR_PULL_GET_MEM_CTX(ndr);
   20770           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->status_string, 0);
   20771           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->status_string));
   20772           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->status_string));
   20773           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->status_string, &size_status_string_1));
   20774           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->status_string, &length_status_string_1));
   20775           0 :                         if (length_status_string_1 > size_status_string_1) {
   20776           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_status_string_1, length_status_string_1);
   20777             :                         }
   20778           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_status_string_1, sizeof(uint16_t)));
   20779           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->status_string, length_status_string_1, sizeof(uint16_t), CH_UTF16));
   20780           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_string_0, 0);
   20781             :                 }
   20782             :         }
   20783           0 :         return NDR_ERR_SUCCESS;
   20784             : }
   20785             : 
   20786           0 : static void ndr_print_flags_spoolss_SetPortInfo3(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_SetPortInfo3 *r)
   20787             : {
   20788           0 :         ndr_print_spoolss_SetPortInfo3(ndr, name, r);
   20789           0 : }
   20790             : 
   20791           0 : _PUBLIC_ void ndr_print_spoolss_SetPortInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_SetPortInfo3 *r)
   20792             : {
   20793           0 :         ndr_print_struct(ndr, name, "spoolss_SetPortInfo3");
   20794           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   20795           0 :         ndr->depth++;
   20796           0 :         ndr_print_spoolss_PortStatus(ndr, "status", r->status);
   20797           0 :         ndr_print_ptr(ndr, "status_string", r->status_string);
   20798           0 :         ndr->depth++;
   20799           0 :         if (r->status_string) {
   20800           0 :                 ndr_print_string(ndr, "status_string", r->status_string);
   20801             :         }
   20802           0 :         ndr->depth--;
   20803           0 :         ndr_print_spoolss_PortSeverity(ndr, "severity", r->severity);
   20804           0 :         ndr->depth--;
   20805             : }
   20806             : 
   20807           0 : _PUBLIC_ size_t ndr_size_spoolss_SetPortInfo3(const struct spoolss_SetPortInfo3 *r, libndr_flags flags)
   20808             : {
   20809           0 :         return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_SetPortInfo3);
   20810             : }
   20811             : 
   20812           0 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_SetPortInfoFF(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_SetPortInfoFF *r)
   20813             : {
   20814           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   20815           0 :         if (ndr_flags & NDR_SCALARS) {
   20816           0 :                 NDR_CHECK(ndr_push_align(ndr, 5));
   20817           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->port_name));
   20818           0 :                 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->monitor_data));
   20819           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
   20820             :         }
   20821           0 :         if (ndr_flags & NDR_BUFFERS) {
   20822           0 :                 if (r->port_name) {
   20823           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->port_name, CH_UTF16)));
   20824           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   20825           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->port_name, CH_UTF16)));
   20826           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->port_name, ndr_charset_length(r->port_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   20827             :                 }
   20828             :         }
   20829           0 :         return NDR_ERR_SUCCESS;
   20830             : }
   20831             : 
   20832           0 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_SetPortInfoFF(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_SetPortInfoFF *r)
   20833             : {
   20834           0 :         uint32_t _ptr_port_name;
   20835           0 :         uint32_t size_port_name_1 = 0;
   20836           0 :         uint32_t length_port_name_1 = 0;
   20837           0 :         TALLOC_CTX *_mem_save_port_name_0 = NULL;
   20838           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   20839           0 :         if (ndr_flags & NDR_SCALARS) {
   20840           0 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
   20841           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
   20842           0 :                 if (_ptr_port_name) {
   20843           0 :                         NDR_PULL_ALLOC(ndr, r->port_name);
   20844             :                 } else {
   20845           0 :                         r->port_name = NULL;
   20846             :                 }
   20847           0 :                 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->monitor_data));
   20848           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
   20849             :         }
   20850           0 :         if (ndr_flags & NDR_BUFFERS) {
   20851           0 :                 if (r->port_name) {
   20852           0 :                         _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
   20853           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
   20854           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->port_name));
   20855           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->port_name));
   20856           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->port_name, &size_port_name_1));
   20857           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->port_name, &length_port_name_1));
   20858           0 :                         if (length_port_name_1 > size_port_name_1) {
   20859           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_port_name_1, length_port_name_1);
   20860             :                         }
   20861           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_port_name_1, sizeof(uint16_t)));
   20862           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->port_name, length_port_name_1, sizeof(uint16_t), CH_UTF16));
   20863           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
   20864             :                 }
   20865             :         }
   20866           0 :         return NDR_ERR_SUCCESS;
   20867             : }
   20868             : 
   20869           0 : static void ndr_print_flags_spoolss_SetPortInfoFF(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_SetPortInfoFF *r)
   20870             : {
   20871           0 :         ndr_print_spoolss_SetPortInfoFF(ndr, name, r);
   20872           0 : }
   20873             : 
   20874           0 : _PUBLIC_ void ndr_print_spoolss_SetPortInfoFF(struct ndr_print *ndr, const char *name, const struct spoolss_SetPortInfoFF *r)
   20875             : {
   20876           0 :         ndr_print_struct(ndr, name, "spoolss_SetPortInfoFF");
   20877           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   20878           0 :         ndr->depth++;
   20879           0 :         ndr_print_ptr(ndr, "port_name", r->port_name);
   20880           0 :         ndr->depth++;
   20881           0 :         if (r->port_name) {
   20882           0 :                 ndr_print_string(ndr, "port_name", r->port_name);
   20883             :         }
   20884           0 :         ndr->depth--;
   20885           0 :         ndr_print_DATA_BLOB(ndr, "monitor_data", r->monitor_data);
   20886           0 :         ndr->depth--;
   20887             : }
   20888             : 
   20889           0 : _PUBLIC_ size_t ndr_size_spoolss_SetPortInfoFF(const struct spoolss_SetPortInfoFF *r, libndr_flags flags)
   20890             : {
   20891           0 :         return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_SetPortInfoFF);
   20892             : }
   20893             : 
   20894           0 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_SetPortInfoContainer(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_SetPortInfoContainer *r)
   20895             : {
   20896           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   20897           0 :         if (ndr_flags & NDR_SCALARS) {
   20898           0 :                 NDR_CHECK(ndr_push_align(ndr, 5));
   20899           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
   20900           0 :                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
   20901           0 :                 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr, NDR_SCALARS, &r->info));
   20902           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
   20903             :         }
   20904           0 :         if (ndr_flags & NDR_BUFFERS) {
   20905           0 :                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
   20906           0 :                 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr, NDR_BUFFERS, &r->info));
   20907             :         }
   20908           0 :         return NDR_ERR_SUCCESS;
   20909             : }
   20910             : 
   20911           0 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_SetPortInfoContainer(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_SetPortInfoContainer *r)
   20912             : {
   20913           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   20914           0 :         if (ndr_flags & NDR_SCALARS) {
   20915           0 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
   20916           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
   20917           0 :                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
   20918           0 :                 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr, NDR_SCALARS, &r->info));
   20919           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
   20920             :         }
   20921           0 :         if (ndr_flags & NDR_BUFFERS) {
   20922           0 :                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
   20923           0 :                 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr, NDR_BUFFERS, &r->info));
   20924             :         }
   20925           0 :         return NDR_ERR_SUCCESS;
   20926             : }
   20927             : 
   20928           0 : static void ndr_print_flags_spoolss_SetPortInfoContainer(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_SetPortInfoContainer *r)
   20929             : {
   20930           0 :         ndr_print_spoolss_SetPortInfoContainer(ndr, name, r);
   20931           0 : }
   20932             : 
   20933           0 : _PUBLIC_ void ndr_print_spoolss_SetPortInfoContainer(struct ndr_print *ndr, const char *name, const struct spoolss_SetPortInfoContainer *r)
   20934             : {
   20935           0 :         ndr_print_struct(ndr, name, "spoolss_SetPortInfoContainer");
   20936           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   20937           0 :         ndr->depth++;
   20938           0 :         ndr_print_uint32(ndr, "level", r->level);
   20939           0 :         ndr_print_set_switch_value(ndr, &r->info, r->level);
   20940           0 :         ndr_print_spoolss_SetPrinterInfo(ndr, "info", &r->info);
   20941           0 :         ndr->depth--;
   20942             : }
   20943             : 
   20944           0 : static enum ndr_err_code ndr_push_UNIVERSAL_FONT_ID(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct UNIVERSAL_FONT_ID *r)
   20945             : {
   20946           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   20947           0 :         if (ndr_flags & NDR_SCALARS) {
   20948           0 :                 NDR_CHECK(ndr_push_align(ndr, 4));
   20949           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->Checksum));
   20950           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->Index));
   20951           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
   20952             :         }
   20953           0 :         if (ndr_flags & NDR_BUFFERS) {
   20954           0 :         }
   20955           0 :         return NDR_ERR_SUCCESS;
   20956             : }
   20957             : 
   20958           0 : static enum ndr_err_code ndr_pull_UNIVERSAL_FONT_ID(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct UNIVERSAL_FONT_ID *r)
   20959             : {
   20960           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   20961           0 :         if (ndr_flags & NDR_SCALARS) {
   20962           0 :                 NDR_CHECK(ndr_pull_align(ndr, 4));
   20963           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->Checksum));
   20964           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->Index));
   20965           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
   20966             :         }
   20967           0 :         if (ndr_flags & NDR_BUFFERS) {
   20968           0 :         }
   20969           0 :         return NDR_ERR_SUCCESS;
   20970             : }
   20971             : 
   20972           0 : _PUBLIC_ void ndr_print_UNIVERSAL_FONT_ID(struct ndr_print *ndr, const char *name, const struct UNIVERSAL_FONT_ID *r)
   20973             : {
   20974           0 :         ndr_print_struct(ndr, name, "UNIVERSAL_FONT_ID");
   20975           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   20976           0 :         ndr->depth++;
   20977           0 :         ndr_print_uint32(ndr, "Checksum", r->Checksum);
   20978           0 :         ndr_print_uint32(ndr, "Index", r->Index);
   20979           0 :         ndr->depth--;
   20980             : }
   20981             : 
   20982           0 : _PUBLIC_ enum ndr_err_code ndr_push_UNIVERSAL_FONT_ID_ctr(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct UNIVERSAL_FONT_ID_ctr *r)
   20983             : {
   20984           0 :         uint32_t cntr_fonts_0;
   20985           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   20986           0 :         if (ndr_flags & NDR_SCALARS) {
   20987           0 :                 NDR_CHECK(ndr_push_align(ndr, 4));
   20988           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
   20989           0 :                 for (cntr_fonts_0 = 0; cntr_fonts_0 < (r->count); cntr_fonts_0++) {
   20990           0 :                         NDR_CHECK(ndr_push_UNIVERSAL_FONT_ID(ndr, NDR_SCALARS, &r->fonts[cntr_fonts_0]));
   20991             :                 }
   20992           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
   20993             :         }
   20994           0 :         if (ndr_flags & NDR_BUFFERS) {
   20995           0 :         }
   20996           0 :         return NDR_ERR_SUCCESS;
   20997             : }
   20998             : 
   20999           0 : _PUBLIC_ enum ndr_err_code ndr_pull_UNIVERSAL_FONT_ID_ctr(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct UNIVERSAL_FONT_ID_ctr *r)
   21000             : {
   21001           0 :         uint32_t size_fonts_0 = 0;
   21002           0 :         uint32_t cntr_fonts_0;
   21003           0 :         TALLOC_CTX *_mem_save_fonts_0 = NULL;
   21004           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   21005           0 :         if (ndr_flags & NDR_SCALARS) {
   21006           0 :                 NDR_CHECK(ndr_pull_align(ndr, 4));
   21007           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
   21008           0 :                 size_fonts_0 = r->count;
   21009           0 :                 NDR_PULL_ALLOC_N(ndr, r->fonts, size_fonts_0);
   21010           0 :                 _mem_save_fonts_0 = NDR_PULL_GET_MEM_CTX(ndr);
   21011           0 :                 NDR_PULL_SET_MEM_CTX(ndr, r->fonts, 0);
   21012           0 :                 for (cntr_fonts_0 = 0; cntr_fonts_0 < (size_fonts_0); cntr_fonts_0++) {
   21013           0 :                         NDR_CHECK(ndr_pull_UNIVERSAL_FONT_ID(ndr, NDR_SCALARS, &r->fonts[cntr_fonts_0]));
   21014             :                 }
   21015           0 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_fonts_0, 0);
   21016           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
   21017             :         }
   21018           0 :         if (ndr_flags & NDR_BUFFERS) {
   21019           0 :         }
   21020           0 :         return NDR_ERR_SUCCESS;
   21021             : }
   21022             : 
   21023           0 : static void ndr_print_flags_UNIVERSAL_FONT_ID_ctr(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct UNIVERSAL_FONT_ID_ctr *r)
   21024             : {
   21025           0 :         ndr_print_UNIVERSAL_FONT_ID_ctr(ndr, name, r);
   21026           0 : }
   21027             : 
   21028           0 : _PUBLIC_ void ndr_print_UNIVERSAL_FONT_ID_ctr(struct ndr_print *ndr, const char *name, const struct UNIVERSAL_FONT_ID_ctr *r)
   21029             : {
   21030           0 :         uint32_t cntr_fonts_0;
   21031           0 :         ndr_print_struct(ndr, name, "UNIVERSAL_FONT_ID_ctr");
   21032           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   21033           0 :         ndr->depth++;
   21034           0 :         ndr_print_uint32(ndr, "count", r->count);
   21035           0 :         ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "fonts", (uint32_t)(r->count));
   21036           0 :         ndr->depth++;
   21037           0 :         for (cntr_fonts_0 = 0; cntr_fonts_0 < (r->count); cntr_fonts_0++) {
   21038           0 :                 ndr_print_UNIVERSAL_FONT_ID(ndr, "fonts", &r->fonts[cntr_fonts_0]);
   21039             :         }
   21040           0 :         ndr->depth--;
   21041           0 :         ndr->depth--;
   21042             : }
   21043             : 
   21044           0 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorContainer(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_MonitorContainer *r)
   21045             : {
   21046           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   21047           0 :         if (ndr_flags & NDR_SCALARS) {
   21048           0 :                 NDR_CHECK(ndr_push_align(ndr, 5));
   21049           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
   21050           0 :                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
   21051           0 :                 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr, NDR_SCALARS, &r->info));
   21052           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
   21053             :         }
   21054           0 :         if (ndr_flags & NDR_BUFFERS) {
   21055           0 :                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
   21056           0 :                 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr, NDR_BUFFERS, &r->info));
   21057             :         }
   21058           0 :         return NDR_ERR_SUCCESS;
   21059             : }
   21060             : 
   21061           0 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorContainer(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_MonitorContainer *r)
   21062             : {
   21063           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   21064           0 :         if (ndr_flags & NDR_SCALARS) {
   21065           0 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
   21066           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
   21067           0 :                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
   21068           0 :                 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr, NDR_SCALARS, &r->info));
   21069           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
   21070             :         }
   21071           0 :         if (ndr_flags & NDR_BUFFERS) {
   21072           0 :                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
   21073           0 :                 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr, NDR_BUFFERS, &r->info));
   21074             :         }
   21075           0 :         return NDR_ERR_SUCCESS;
   21076             : }
   21077             : 
   21078           0 : static void ndr_print_flags_spoolss_MonitorContainer(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_MonitorContainer *r)
   21079             : {
   21080           0 :         ndr_print_spoolss_MonitorContainer(ndr, name, r);
   21081           0 : }
   21082             : 
   21083           0 : _PUBLIC_ void ndr_print_spoolss_MonitorContainer(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorContainer *r)
   21084             : {
   21085           0 :         ndr_print_struct(ndr, name, "spoolss_MonitorContainer");
   21086           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   21087           0 :         ndr->depth++;
   21088           0 :         ndr_print_uint32(ndr, "level", r->level);
   21089           0 :         ndr_print_set_switch_value(ndr, &r->info, r->level);
   21090           0 :         ndr_print_spoolss_MonitorInfo(ndr, "info", &r->info);
   21091           0 :         ndr->depth--;
   21092             : }
   21093             : 
   21094          48 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcDataTypesInfo1(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_PrintProcDataTypesInfo1 *r)
   21095             : {
   21096          48 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   21097          48 :         if (ndr_flags & NDR_SCALARS) {
   21098          24 :                 NDR_CHECK(ndr_push_align(ndr, 5));
   21099             :                 {
   21100          24 :                         libndr_flags _flags_save_string = ndr->flags;
   21101          24 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   21102          24 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->name_array));
   21103          24 :                         ndr->flags = _flags_save_string;
   21104             :                 }
   21105          24 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
   21106             :         }
   21107          48 :         if (ndr_flags & NDR_BUFFERS) {
   21108             :                 {
   21109          24 :                         libndr_flags _flags_save_string = ndr->flags;
   21110          24 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   21111          24 :                         if (r->name_array) {
   21112          24 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->name_array));
   21113          24 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->name_array));
   21114          24 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->name_array));
   21115             :                         }
   21116          24 :                         ndr->flags = _flags_save_string;
   21117             :                 }
   21118             :         }
   21119          48 :         return NDR_ERR_SUCCESS;
   21120             : }
   21121             : 
   21122          16 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcDataTypesInfo1(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_PrintProcDataTypesInfo1 *r)
   21123             : {
   21124           0 :         uint32_t _ptr_name_array;
   21125          16 :         TALLOC_CTX *_mem_save_name_array_0 = NULL;
   21126          16 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   21127          16 :         if (ndr_flags & NDR_SCALARS) {
   21128           8 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
   21129             :                 {
   21130           8 :                         libndr_flags _flags_save_string = ndr->flags;
   21131           8 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   21132           8 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name_array));
   21133           8 :                         if (_ptr_name_array) {
   21134           8 :                                 NDR_PULL_ALLOC(ndr, r->name_array);
   21135           8 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->name_array, _ptr_name_array));
   21136             :                         } else {
   21137           0 :                                 r->name_array = NULL;
   21138             :                         }
   21139           8 :                         ndr->flags = _flags_save_string;
   21140             :                 }
   21141           8 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
   21142             :         }
   21143          16 :         if (ndr_flags & NDR_BUFFERS) {
   21144             :                 {
   21145           8 :                         libndr_flags _flags_save_string = ndr->flags;
   21146           8 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   21147           8 :                         if (r->name_array) {
   21148           0 :                                 uint32_t _relative_save_offset;
   21149           8 :                                 _relative_save_offset = ndr->offset;
   21150           8 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->name_array));
   21151           8 :                                 _mem_save_name_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
   21152           8 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->name_array, 0);
   21153           8 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->name_array));
   21154           8 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_array_0, 0);
   21155           8 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   21156           8 :                                         ndr->relative_highest_offset = ndr->offset;
   21157             :                                 }
   21158           8 :                                 ndr->offset = _relative_save_offset;
   21159             :                         }
   21160           8 :                         ndr->flags = _flags_save_string;
   21161             :                 }
   21162             :         }
   21163          16 :         return NDR_ERR_SUCCESS;
   21164             : }
   21165             : 
   21166           0 : static void ndr_print_flags_spoolss_PrintProcDataTypesInfo1(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_PrintProcDataTypesInfo1 *r)
   21167             : {
   21168           0 :         ndr_print_spoolss_PrintProcDataTypesInfo1(ndr, name, r);
   21169           0 : }
   21170             : 
   21171           0 : _PUBLIC_ void ndr_print_spoolss_PrintProcDataTypesInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcDataTypesInfo1 *r)
   21172             : {
   21173           0 :         ndr_print_struct(ndr, name, "spoolss_PrintProcDataTypesInfo1");
   21174           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   21175           0 :         ndr->depth++;
   21176             :         {
   21177           0 :                 libndr_flags _flags_save_string = ndr->flags;
   21178           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   21179           0 :                 ndr_print_ptr(ndr, "name_array", r->name_array);
   21180           0 :                 ndr->depth++;
   21181           0 :                 if (r->name_array) {
   21182           0 :                         ndr_print_string(ndr, "name_array", r->name_array);
   21183             :                 }
   21184           0 :                 ndr->depth--;
   21185           0 :                 ndr->flags = _flags_save_string;
   21186             :         }
   21187           0 :         ndr->depth--;
   21188             : }
   21189             : 
   21190           0 : _PUBLIC_ size_t ndr_size_spoolss_PrintProcDataTypesInfo1(const struct spoolss_PrintProcDataTypesInfo1 *r, libndr_flags flags)
   21191             : {
   21192           0 :         return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcDataTypesInfo1);
   21193             : }
   21194             : 
   21195          48 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcDataTypesInfo(struct ndr_push *ndr, ndr_flags_type ndr_flags, const union spoolss_PrintProcDataTypesInfo *r)
   21196             : {
   21197          48 :         uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
   21198           0 :         uint32_t level;
   21199             :         {
   21200          48 :                 libndr_flags _flags_save_UNION = ndr->flags;
   21201          48 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
   21202          48 :                 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   21203          48 :                 if (ndr_flags & NDR_SCALARS) {
   21204             :                         /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
   21205          24 :                         NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
   21206          24 :                         NDR_CHECK(ndr_push_union_align(ndr, 5));
   21207          24 :                         switch (level) {
   21208          24 :                                 case 1: {
   21209          24 :                                         NDR_CHECK(ndr_push_align(ndr, 5));
   21210          24 :                                         NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
   21211          24 :                                         NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo1(ndr, NDR_SCALARS, &r->info1));
   21212          24 :                                 break; }
   21213             : 
   21214           0 :                                 default: {
   21215           0 :                                 break; }
   21216             : 
   21217             :                         }
   21218             :                 }
   21219          48 :                 if (ndr_flags & NDR_BUFFERS) {
   21220          24 :                         if (!(ndr_flags & NDR_SCALARS)) {
   21221             :                                 /* We didn't get it above, and the token is not needed after this. */
   21222          24 :                                 NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
   21223             :                         }
   21224          24 :                         NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
   21225          24 :                         switch (level) {
   21226          24 :                                 case 1:
   21227          24 :                                         NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo1(ndr, NDR_BUFFERS, &r->info1));
   21228          24 :                                 break;
   21229             : 
   21230           0 :                                 default:
   21231           0 :                                 break;
   21232             : 
   21233             :                         }
   21234             :                 }
   21235          48 :                 ndr->flags = _flags_save_UNION;
   21236             :         }
   21237          48 :         ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
   21238          48 :         return NDR_ERR_SUCCESS;
   21239             : }
   21240             : 
   21241          16 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcDataTypesInfo(struct ndr_pull *ndr, ndr_flags_type ndr_flags, union spoolss_PrintProcDataTypesInfo *r)
   21242             : {
   21243          16 :         uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
   21244           0 :         uint32_t level;
   21245             :         {
   21246          16 :                 libndr_flags _flags_save_UNION = ndr->flags;
   21247          16 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
   21248          16 :                 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   21249          16 :                 if (ndr_flags & NDR_SCALARS) {
   21250             :                         /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
   21251           8 :                         NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
   21252           8 :                         NDR_CHECK(ndr_pull_union_align(ndr, 5));
   21253           8 :                         switch (level) {
   21254           8 :                                 case 1: {
   21255           8 :                                         NDR_CHECK(ndr_pull_align(ndr, 5));
   21256           8 :                                         NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
   21257           8 :                                         NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo1(ndr, NDR_SCALARS, &r->info1));
   21258           8 :                                 break; }
   21259             : 
   21260           0 :                                 default: {
   21261           0 :                                 break; }
   21262             : 
   21263             :                         }
   21264             :                 }
   21265          16 :                 if (ndr_flags & NDR_BUFFERS) {
   21266           8 :                         if (!(ndr_flags & NDR_SCALARS)) {
   21267             :                                 /* We didn't get it above, and the token is not needed after this. */
   21268           8 :                                 NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
   21269             :                         }
   21270           8 :                         switch (level) {
   21271           8 :                                 case 1:
   21272           8 :                                         NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
   21273           8 :                                         NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo1(ndr, NDR_BUFFERS, &r->info1));
   21274           8 :                                 break;
   21275             : 
   21276           0 :                                 default:
   21277           0 :                                 break;
   21278             : 
   21279             :                         }
   21280             :                 }
   21281          16 :                 ndr->flags = _flags_save_UNION;
   21282             :         }
   21283          16 :         ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
   21284          16 :         return NDR_ERR_SUCCESS;
   21285             : }
   21286             : 
   21287           0 : _PUBLIC_ void ndr_print_spoolss_PrintProcDataTypesInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcDataTypesInfo *r)
   21288             : {
   21289           0 :         uint32_t level;
   21290             :         {
   21291           0 :                 libndr_flags _flags_save_UNION = ndr->flags;
   21292           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
   21293           0 :                 level = ndr_print_steal_switch_value(ndr, r);
   21294           0 :                 ndr_print_union(ndr, name, level, "spoolss_PrintProcDataTypesInfo");
   21295           0 :                 switch (level) {
   21296           0 :                         case 1:
   21297           0 :                                 ndr_print_spoolss_PrintProcDataTypesInfo1(ndr, "info1", &r->info1);
   21298           0 :                         break;
   21299             : 
   21300           0 :                         default:
   21301           0 :                         break;
   21302             : 
   21303             :                 }
   21304           0 :                 ndr->flags = _flags_save_UNION;
   21305             :         }
   21306           0 : }
   21307             : 
   21308           2 : static enum ndr_err_code ndr_push_spoolss_PrinterChangeFlags(struct ndr_push *ndr, ndr_flags_type ndr_flags, uint32_t r)
   21309             : {
   21310           2 :         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
   21311           2 :         return NDR_ERR_SUCCESS;
   21312             : }
   21313             : 
   21314           4 : static enum ndr_err_code ndr_pull_spoolss_PrinterChangeFlags(struct ndr_pull *ndr, ndr_flags_type ndr_flags, uint32_t *r)
   21315             : {
   21316           2 :         uint32_t v;
   21317           4 :         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
   21318           4 :         *r = v;
   21319           4 :         return NDR_ERR_SUCCESS;
   21320             : }
   21321             : 
   21322           2 : _PUBLIC_ void ndr_print_spoolss_PrinterChangeFlags(struct ndr_print *ndr, const char *name, uint32_t r)
   21323             : {
   21324           2 :         ndr_print_uint32(ndr, name, r);
   21325           2 :         ndr->depth++;
   21326           2 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER", PRINTER_CHANGE_ADD_PRINTER, r);
   21327           2 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER", PRINTER_CHANGE_SET_PRINTER, r);
   21328           2 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER", PRINTER_CHANGE_DELETE_PRINTER, r);
   21329           2 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_FAILED_CONNECTION_PRINTER", PRINTER_CHANGE_FAILED_CONNECTION_PRINTER, r);
   21330           2 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_JOB", PRINTER_CHANGE_ADD_JOB, r);
   21331           2 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_JOB", PRINTER_CHANGE_SET_JOB, r);
   21332           2 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_JOB", PRINTER_CHANGE_DELETE_JOB, r);
   21333           2 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_WRITE_JOB", PRINTER_CHANGE_WRITE_JOB, r);
   21334           2 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_FORM", PRINTER_CHANGE_ADD_FORM, r);
   21335           2 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_FORM", PRINTER_CHANGE_SET_FORM, r);
   21336           2 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_FORM", PRINTER_CHANGE_DELETE_FORM, r);
   21337           2 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PORT", PRINTER_CHANGE_ADD_PORT, r);
   21338           2 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_CONFIGURE_PORT", PRINTER_CHANGE_CONFIGURE_PORT, r);
   21339           2 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PORT", PRINTER_CHANGE_DELETE_PORT, r);
   21340           2 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINT_PROCESSOR", PRINTER_CHANGE_ADD_PRINT_PROCESSOR, r);
   21341           2 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINT_PROCESSOR", PRINTER_CHANGE_DELETE_PRINT_PROCESSOR, r);
   21342           2 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SERVER", PRINTER_CHANGE_SERVER, r);
   21343           2 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER_DRIVER", PRINTER_CHANGE_ADD_PRINTER_DRIVER, r);
   21344           2 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER_DRIVER", PRINTER_CHANGE_SET_PRINTER_DRIVER, r);
   21345           2 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER_DRIVER", PRINTER_CHANGE_DELETE_PRINTER_DRIVER, r);
   21346           2 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_TIMEOUT", PRINTER_CHANGE_TIMEOUT, r);
   21347           2 :         ndr->depth--;
   21348           2 : }
   21349             : 
   21350           0 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortVarContainer(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_PortVarContainer *r)
   21351             : {
   21352           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   21353           0 :         if (ndr_flags & NDR_SCALARS) {
   21354           0 :                 NDR_CHECK(ndr_push_align(ndr, 5));
   21355           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->monitor_data_size));
   21356           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_data));
   21357           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
   21358             :         }
   21359           0 :         if (ndr_flags & NDR_BUFFERS) {
   21360           0 :                 if (r->monitor_data) {
   21361           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->monitor_data_size));
   21362           0 :                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->monitor_data, r->monitor_data_size));
   21363             :                 }
   21364             :         }
   21365           0 :         return NDR_ERR_SUCCESS;
   21366             : }
   21367             : 
   21368           0 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortVarContainer(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_PortVarContainer *r)
   21369             : {
   21370           0 :         uint32_t _ptr_monitor_data;
   21371           0 :         uint32_t size_monitor_data_1 = 0;
   21372           0 :         TALLOC_CTX *_mem_save_monitor_data_0 = NULL;
   21373           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   21374           0 :         if (ndr_flags & NDR_SCALARS) {
   21375           0 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
   21376           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->monitor_data_size));
   21377           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_data));
   21378           0 :                 if (_ptr_monitor_data) {
   21379           0 :                         NDR_PULL_ALLOC(ndr, r->monitor_data);
   21380             :                 } else {
   21381           0 :                         r->monitor_data = NULL;
   21382             :                 }
   21383           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
   21384             :         }
   21385           0 :         if (ndr_flags & NDR_BUFFERS) {
   21386           0 :                 if (r->monitor_data) {
   21387           0 :                         _mem_save_monitor_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
   21388           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->monitor_data, 0);
   21389           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_data));
   21390           0 :                         NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->monitor_data, &size_monitor_data_1));
   21391           0 :                         NDR_PULL_ALLOC_N(ndr, r->monitor_data, size_monitor_data_1);
   21392           0 :                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->monitor_data, size_monitor_data_1));
   21393           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_data_0, 0);
   21394             :                 }
   21395           0 :                 if (r->monitor_data) {
   21396           0 :                         NDR_CHECK(ndr_check_steal_array_size(ndr, (void*)&r->monitor_data, r->monitor_data_size));
   21397             :                 }
   21398             :         }
   21399           0 :         return NDR_ERR_SUCCESS;
   21400             : }
   21401             : 
   21402           0 : static void ndr_print_flags_spoolss_PortVarContainer(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_PortVarContainer *r)
   21403             : {
   21404           0 :         ndr_print_spoolss_PortVarContainer(ndr, name, r);
   21405           0 : }
   21406             : 
   21407           0 : _PUBLIC_ void ndr_print_spoolss_PortVarContainer(struct ndr_print *ndr, const char *name, const struct spoolss_PortVarContainer *r)
   21408             : {
   21409           0 :         ndr_print_struct(ndr, name, "spoolss_PortVarContainer");
   21410           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   21411           0 :         ndr->depth++;
   21412           0 :         ndr_print_uint32(ndr, "monitor_data_size", r->monitor_data_size);
   21413           0 :         ndr_print_ptr(ndr, "monitor_data", r->monitor_data);
   21414           0 :         ndr->depth++;
   21415           0 :         if (r->monitor_data) {
   21416           0 :                 ndr_print_array_uint8(ndr, "monitor_data", r->monitor_data, r->monitor_data_size);
   21417             :         }
   21418           0 :         ndr->depth--;
   21419           0 :         ndr->depth--;
   21420             : }
   21421             : 
   21422           0 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobNotifyField(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum spoolss_JobNotifyField r)
   21423             : {
   21424           0 :         NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
   21425           0 :         return NDR_ERR_SUCCESS;
   21426             : }
   21427             : 
   21428           0 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobNotifyField(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum spoolss_JobNotifyField *r)
   21429             : {
   21430           0 :         uint16_t v;
   21431           0 :         NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
   21432           0 :         *r = v;
   21433           0 :         return NDR_ERR_SUCCESS;
   21434             : }
   21435             : 
   21436          76 : _PUBLIC_ void ndr_print_spoolss_JobNotifyField(struct ndr_print *ndr, const char *name, enum spoolss_JobNotifyField r)
   21437             : {
   21438          76 :         const char *val = NULL;
   21439             : 
   21440          76 :         switch (r) {
   21441           2 :                 case JOB_NOTIFY_FIELD_PRINTER_NAME: val = "JOB_NOTIFY_FIELD_PRINTER_NAME"; break;
   21442           2 :                 case JOB_NOTIFY_FIELD_MACHINE_NAME: val = "JOB_NOTIFY_FIELD_MACHINE_NAME"; break;
   21443           6 :                 case JOB_NOTIFY_FIELD_PORT_NAME: val = "JOB_NOTIFY_FIELD_PORT_NAME"; break;
   21444           6 :                 case JOB_NOTIFY_FIELD_USER_NAME: val = "JOB_NOTIFY_FIELD_USER_NAME"; break;
   21445           2 :                 case JOB_NOTIFY_FIELD_NOTIFY_NAME: val = "JOB_NOTIFY_FIELD_NOTIFY_NAME"; break;
   21446           0 :                 case JOB_NOTIFY_FIELD_DATATYPE: val = "JOB_NOTIFY_FIELD_DATATYPE"; break;
   21447           0 :                 case JOB_NOTIFY_FIELD_PRINT_PROCESSOR: val = "JOB_NOTIFY_FIELD_PRINT_PROCESSOR"; break;
   21448           0 :                 case JOB_NOTIFY_FIELD_PARAMETERS: val = "JOB_NOTIFY_FIELD_PARAMETERS"; break;
   21449           2 :                 case JOB_NOTIFY_FIELD_DRIVER_NAME: val = "JOB_NOTIFY_FIELD_DRIVER_NAME"; break;
   21450           0 :                 case JOB_NOTIFY_FIELD_DEVMODE: val = "JOB_NOTIFY_FIELD_DEVMODE"; break;
   21451           6 :                 case JOB_NOTIFY_FIELD_STATUS: val = "JOB_NOTIFY_FIELD_STATUS"; break;
   21452           6 :                 case JOB_NOTIFY_FIELD_STATUS_STRING: val = "JOB_NOTIFY_FIELD_STATUS_STRING"; break;
   21453           0 :                 case JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR: val = "JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR"; break;
   21454           6 :                 case JOB_NOTIFY_FIELD_DOCUMENT: val = "JOB_NOTIFY_FIELD_DOCUMENT"; break;
   21455           0 :                 case JOB_NOTIFY_FIELD_PRIORITY: val = "JOB_NOTIFY_FIELD_PRIORITY"; break;
   21456           6 :                 case JOB_NOTIFY_FIELD_POSITION: val = "JOB_NOTIFY_FIELD_POSITION"; break;
   21457           6 :                 case JOB_NOTIFY_FIELD_SUBMITTED: val = "JOB_NOTIFY_FIELD_SUBMITTED"; break;
   21458           0 :                 case JOB_NOTIFY_FIELD_START_TIME: val = "JOB_NOTIFY_FIELD_START_TIME"; break;
   21459           0 :                 case JOB_NOTIFY_FIELD_UNTIL_TIME: val = "JOB_NOTIFY_FIELD_UNTIL_TIME"; break;
   21460           2 :                 case JOB_NOTIFY_FIELD_TIME: val = "JOB_NOTIFY_FIELD_TIME"; break;
   21461           6 :                 case JOB_NOTIFY_FIELD_TOTAL_PAGES: val = "JOB_NOTIFY_FIELD_TOTAL_PAGES"; break;
   21462           6 :                 case JOB_NOTIFY_FIELD_PAGES_PRINTED: val = "JOB_NOTIFY_FIELD_PAGES_PRINTED"; break;
   21463           6 :                 case JOB_NOTIFY_FIELD_TOTAL_BYTES: val = "JOB_NOTIFY_FIELD_TOTAL_BYTES"; break;
   21464           6 :                 case JOB_NOTIFY_FIELD_BYTES_PRINTED: val = "JOB_NOTIFY_FIELD_BYTES_PRINTED"; break;
   21465             :         }
   21466          76 :         ndr_print_enum(ndr, name, "ENUM", val, r);
   21467          76 : }
   21468             : 
   21469           0 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintNotifyField(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum spoolss_PrintNotifyField r)
   21470             : {
   21471           0 :         NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
   21472           0 :         return NDR_ERR_SUCCESS;
   21473             : }
   21474             : 
   21475           0 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintNotifyField(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum spoolss_PrintNotifyField *r)
   21476             : {
   21477           0 :         uint16_t v;
   21478           0 :         NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
   21479           0 :         *r = v;
   21480           0 :         return NDR_ERR_SUCCESS;
   21481             : }
   21482             : 
   21483          46 : _PUBLIC_ void ndr_print_spoolss_PrintNotifyField(struct ndr_print *ndr, const char *name, enum spoolss_PrintNotifyField r)
   21484             : {
   21485          46 :         const char *val = NULL;
   21486             : 
   21487          46 :         switch (r) {
   21488           4 :                 case PRINTER_NOTIFY_FIELD_SERVER_NAME: val = "PRINTER_NOTIFY_FIELD_SERVER_NAME"; break;
   21489           6 :                 case PRINTER_NOTIFY_FIELD_PRINTER_NAME: val = "PRINTER_NOTIFY_FIELD_PRINTER_NAME"; break;
   21490           2 :                 case PRINTER_NOTIFY_FIELD_SHARE_NAME: val = "PRINTER_NOTIFY_FIELD_SHARE_NAME"; break;
   21491           4 :                 case PRINTER_NOTIFY_FIELD_PORT_NAME: val = "PRINTER_NOTIFY_FIELD_PORT_NAME"; break;
   21492           4 :                 case PRINTER_NOTIFY_FIELD_DRIVER_NAME: val = "PRINTER_NOTIFY_FIELD_DRIVER_NAME"; break;
   21493           4 :                 case PRINTER_NOTIFY_FIELD_COMMENT: val = "PRINTER_NOTIFY_FIELD_COMMENT"; break;
   21494           4 :                 case PRINTER_NOTIFY_FIELD_LOCATION: val = "PRINTER_NOTIFY_FIELD_LOCATION"; break;
   21495           0 :                 case PRINTER_NOTIFY_FIELD_DEVMODE: val = "PRINTER_NOTIFY_FIELD_DEVMODE"; break;
   21496           0 :                 case PRINTER_NOTIFY_FIELD_SEPFILE: val = "PRINTER_NOTIFY_FIELD_SEPFILE"; break;
   21497           0 :                 case PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR: val = "PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR"; break;
   21498           0 :                 case PRINTER_NOTIFY_FIELD_PARAMETERS: val = "PRINTER_NOTIFY_FIELD_PARAMETERS"; break;
   21499           0 :                 case PRINTER_NOTIFY_FIELD_DATATYPE: val = "PRINTER_NOTIFY_FIELD_DATATYPE"; break;
   21500           2 :                 case PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR: val = "PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR"; break;
   21501           6 :                 case PRINTER_NOTIFY_FIELD_ATTRIBUTES: val = "PRINTER_NOTIFY_FIELD_ATTRIBUTES"; break;
   21502           0 :                 case PRINTER_NOTIFY_FIELD_PRIORITY: val = "PRINTER_NOTIFY_FIELD_PRIORITY"; break;
   21503           0 :                 case PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY: val = "PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY"; break;
   21504           0 :                 case PRINTER_NOTIFY_FIELD_START_TIME: val = "PRINTER_NOTIFY_FIELD_START_TIME"; break;
   21505           0 :                 case PRINTER_NOTIFY_FIELD_UNTIL_TIME: val = "PRINTER_NOTIFY_FIELD_UNTIL_TIME"; break;
   21506           6 :                 case PRINTER_NOTIFY_FIELD_STATUS: val = "PRINTER_NOTIFY_FIELD_STATUS"; break;
   21507           0 :                 case PRINTER_NOTIFY_FIELD_STATUS_STRING: val = "PRINTER_NOTIFY_FIELD_STATUS_STRING"; break;
   21508           4 :                 case PRINTER_NOTIFY_FIELD_CJOBS: val = "PRINTER_NOTIFY_FIELD_CJOBS"; break;
   21509           0 :                 case PRINTER_NOTIFY_FIELD_AVERAGE_PPM: val = "PRINTER_NOTIFY_FIELD_AVERAGE_PPM"; break;
   21510           0 :                 case PRINTER_NOTIFY_FIELD_TOTAL_PAGES: val = "PRINTER_NOTIFY_FIELD_TOTAL_PAGES"; break;
   21511           0 :                 case PRINTER_NOTIFY_FIELD_PAGES_PRINTED: val = "PRINTER_NOTIFY_FIELD_PAGES_PRINTED"; break;
   21512           0 :                 case PRINTER_NOTIFY_FIELD_TOTAL_BYTES: val = "PRINTER_NOTIFY_FIELD_TOTAL_BYTES"; break;
   21513           0 :                 case PRINTER_NOTIFY_FIELD_BYTES_PRINTED: val = "PRINTER_NOTIFY_FIELD_BYTES_PRINTED"; break;
   21514           0 :                 case PRINTER_NOTIFY_FIELD_OBJECT_GUID: val = "PRINTER_NOTIFY_FIELD_OBJECT_GUID"; break;
   21515           0 :                 case PRINTER_NOTIFY_FIELD_FRIENDLY_NAME: val = "PRINTER_NOTIFY_FIELD_FRIENDLY_NAME"; break;
   21516             :         }
   21517          46 :         ndr_print_enum(ndr, name, "ENUM", val, r);
   21518          46 : }
   21519             : 
   21520           8 : static enum ndr_err_code ndr_push_spoolss_NotifyType(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum spoolss_NotifyType r)
   21521             : {
   21522           8 :         NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
   21523           8 :         return NDR_ERR_SUCCESS;
   21524             : }
   21525             : 
   21526          66 : static enum ndr_err_code ndr_pull_spoolss_NotifyType(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum spoolss_NotifyType *r)
   21527             : {
   21528          58 :         uint16_t v;
   21529          66 :         NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
   21530          66 :         *r = v;
   21531          66 :         return NDR_ERR_SUCCESS;
   21532             : }
   21533             : 
   21534          58 : _PUBLIC_ void ndr_print_spoolss_NotifyType(struct ndr_print *ndr, const char *name, enum spoolss_NotifyType r)
   21535             : {
   21536          58 :         const char *val = NULL;
   21537             : 
   21538          58 :         switch (r) {
   21539          12 :                 case PRINTER_NOTIFY_TYPE: val = "PRINTER_NOTIFY_TYPE"; break;
   21540          46 :                 case JOB_NOTIFY_TYPE: val = "JOB_NOTIFY_TYPE"; break;
   21541             :         }
   21542          58 :         ndr_print_enum(ndr, name, "ENUM", val, r);
   21543          58 : }
   21544             : 
   21545           8 : static enum ndr_err_code ndr_push_spoolss_Field(struct ndr_push *ndr, ndr_flags_type ndr_flags, const union spoolss_Field *r)
   21546             : {
   21547           0 :         uint32_t level;
   21548           8 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   21549           8 :         if (ndr_flags & NDR_SCALARS) {
   21550             :                 /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
   21551           8 :                 NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
   21552           8 :                 NDR_CHECK(ndr_push_union_align(ndr, 2));
   21553           8 :                 switch (level) {
   21554           4 :                         case PRINTER_NOTIFY_TYPE: {
   21555           4 :                                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->field));
   21556           4 :                         break; }
   21557             : 
   21558           4 :                         case JOB_NOTIFY_TYPE: {
   21559           4 :                                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->field));
   21560           4 :                         break; }
   21561             : 
   21562           0 :                         default: {
   21563           0 :                                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->field));
   21564           0 :                         break; }
   21565             : 
   21566             :                 }
   21567             :         }
   21568           8 :         return NDR_ERR_SUCCESS;
   21569             : }
   21570             : 
   21571         130 : static enum ndr_err_code ndr_pull_spoolss_Field(struct ndr_pull *ndr, ndr_flags_type ndr_flags, union spoolss_Field *r)
   21572             : {
   21573         122 :         uint32_t level;
   21574         130 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   21575         130 :         if (ndr_flags & NDR_SCALARS) {
   21576             :                 /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
   21577         130 :                 NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
   21578         130 :                 NDR_CHECK(ndr_pull_union_align(ndr, 2));
   21579         130 :                 switch (level) {
   21580          50 :                         case PRINTER_NOTIFY_TYPE: {
   21581          50 :                                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->field));
   21582           4 :                         break; }
   21583             : 
   21584          80 :                         case JOB_NOTIFY_TYPE: {
   21585          80 :                                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->field));
   21586           4 :                         break; }
   21587             : 
   21588           0 :                         default: {
   21589           0 :                                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->field));
   21590           0 :                         break; }
   21591             : 
   21592             :                 }
   21593             :         }
   21594           8 :         return NDR_ERR_SUCCESS;
   21595             : }
   21596             : 
   21597          16 : static enum ndr_err_code ndr_push_spoolss_NotifyOptionType(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_NotifyOptionType *r)
   21598             : {
   21599           0 :         uint32_t cntr_fields_1;
   21600          16 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   21601          16 :         if (ndr_flags & NDR_SCALARS) {
   21602           8 :                 NDR_CHECK(ndr_push_align(ndr, 5));
   21603           8 :                 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr, NDR_SCALARS, r->type));
   21604           8 :                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->u1));
   21605           8 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u2));
   21606           8 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u3));
   21607           8 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
   21608           8 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->fields));
   21609           8 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
   21610             :         }
   21611          16 :         if (ndr_flags & NDR_BUFFERS) {
   21612           8 :                 if (r->fields) {
   21613           8 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
   21614          16 :                         for (cntr_fields_1 = 0; cntr_fields_1 < (r->count); cntr_fields_1++) {
   21615           8 :                                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->fields[cntr_fields_1], r->type));
   21616           8 :                                 NDR_CHECK(ndr_push_spoolss_Field(ndr, NDR_SCALARS, &r->fields[cntr_fields_1]));
   21617             :                         }
   21618             :                 }
   21619             :         }
   21620          16 :         return NDR_ERR_SUCCESS;
   21621             : }
   21622             : 
   21623          28 : static enum ndr_err_code ndr_pull_spoolss_NotifyOptionType(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_NotifyOptionType *r)
   21624             : {
   21625          12 :         uint32_t _ptr_fields;
   21626          28 :         uint32_t size_fields_1 = 0;
   21627          12 :         uint32_t cntr_fields_1;
   21628          28 :         TALLOC_CTX *_mem_save_fields_0 = NULL;
   21629          28 :         TALLOC_CTX *_mem_save_fields_1 = NULL;
   21630          28 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   21631          28 :         if (ndr_flags & NDR_SCALARS) {
   21632          14 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
   21633          20 :                 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr, NDR_SCALARS, &r->type));
   21634          14 :                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->u1));
   21635          14 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u2));
   21636          14 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u3));
   21637          14 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
   21638          14 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_fields));
   21639          14 :                 if (_ptr_fields) {
   21640          14 :                         NDR_PULL_ALLOC(ndr, r->fields);
   21641             :                 } else {
   21642           0 :                         r->fields = NULL;
   21643             :                 }
   21644          14 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
   21645             :         }
   21646          28 :         if (ndr_flags & NDR_BUFFERS) {
   21647          14 :                 if (r->fields) {
   21648          14 :                         _mem_save_fields_0 = NDR_PULL_GET_MEM_CTX(ndr);
   21649          14 :                         NDR_PULL_SET_MEM_CTX(ndr, r->fields, 0);
   21650          14 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->fields));
   21651          14 :                         NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->fields, &size_fields_1));
   21652          14 :                         NDR_PULL_ALLOC_N(ndr, r->fields, size_fields_1);
   21653          14 :                         _mem_save_fields_1 = NDR_PULL_GET_MEM_CTX(ndr);
   21654          14 :                         NDR_PULL_SET_MEM_CTX(ndr, r->fields, 0);
   21655          92 :                         for (cntr_fields_1 = 0; cntr_fields_1 < (size_fields_1); cntr_fields_1++) {
   21656          78 :                                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->fields[cntr_fields_1], r->type));
   21657          78 :                                 NDR_CHECK(ndr_pull_spoolss_Field(ndr, NDR_SCALARS, &r->fields[cntr_fields_1]));
   21658             :                         }
   21659          14 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_fields_1, 0);
   21660          14 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_fields_0, 0);
   21661             :                 }
   21662          14 :                 if (r->fields) {
   21663          14 :                         NDR_CHECK(ndr_check_steal_array_size(ndr, (void*)&r->fields, r->count));
   21664             :                 }
   21665             :         }
   21666          16 :         return NDR_ERR_SUCCESS;
   21667             : }
   21668             : 
   21669           6 : _PUBLIC_ void ndr_print_spoolss_NotifyOptionType(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyOptionType *r)
   21670             : {
   21671           6 :         uint32_t cntr_fields_1;
   21672           6 :         ndr_print_struct(ndr, name, "spoolss_NotifyOptionType");
   21673           6 :         if (r == NULL) { ndr_print_null(ndr); return; }
   21674           6 :         ndr->depth++;
   21675           6 :         ndr_print_spoolss_NotifyType(ndr, "type", r->type);
   21676           6 :         ndr_print_uint16(ndr, "u1", r->u1);
   21677           6 :         ndr_print_uint32(ndr, "u2", r->u2);
   21678           6 :         ndr_print_uint32(ndr, "u3", r->u3);
   21679           6 :         ndr_print_uint32(ndr, "count", r->count);
   21680           6 :         ndr_print_ptr(ndr, "fields", r->fields);
   21681           6 :         ndr->depth++;
   21682           6 :         if (r->fields) {
   21683           6 :                 ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "fields", (uint32_t)(r->count));
   21684           6 :                 ndr->depth++;
   21685          76 :                 for (cntr_fields_1 = 0; cntr_fields_1 < (r->count); cntr_fields_1++) {
   21686          70 :                         ndr_print_set_switch_value(ndr, &r->fields[cntr_fields_1], r->type);
   21687          70 :                         ndr_print_spoolss_Field(ndr, "fields", &r->fields[cntr_fields_1]);
   21688             :                 }
   21689           6 :                 ndr->depth--;
   21690             :         }
   21691           6 :         ndr->depth--;
   21692           6 :         ndr->depth--;
   21693             : }
   21694             : 
   21695           4 : static enum ndr_err_code ndr_push_spoolssNotifyOptionFlags(struct ndr_push *ndr, ndr_flags_type ndr_flags, uint32_t r)
   21696             : {
   21697           4 :         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
   21698           4 :         return NDR_ERR_SUCCESS;
   21699             : }
   21700             : 
   21701          10 : static enum ndr_err_code ndr_pull_spoolssNotifyOptionFlags(struct ndr_pull *ndr, ndr_flags_type ndr_flags, uint32_t *r)
   21702             : {
   21703           6 :         uint32_t v;
   21704          10 :         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
   21705          10 :         *r = v;
   21706          10 :         return NDR_ERR_SUCCESS;
   21707             : }
   21708             : 
   21709           6 : _PUBLIC_ void ndr_print_spoolssNotifyOptionFlags(struct ndr_print *ndr, const char *name, uint32_t r)
   21710             : {
   21711           6 :         ndr_print_uint32(ndr, name, r);
   21712           6 :         ndr->depth++;
   21713           6 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_OPTIONS_REFRESH", PRINTER_NOTIFY_OPTIONS_REFRESH, r);
   21714           6 :         ndr->depth--;
   21715           6 : }
   21716             : 
   21717           4 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_NotifyOption(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_NotifyOption *r)
   21718             : {
   21719           0 :         uint32_t cntr_types_1;
   21720           4 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   21721           4 :         if (ndr_flags & NDR_SCALARS) {
   21722           4 :                 NDR_CHECK(ndr_push_align(ndr, 5));
   21723           4 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
   21724           4 :                 NDR_CHECK(ndr_push_spoolssNotifyOptionFlags(ndr, NDR_SCALARS, r->flags));
   21725           4 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
   21726           4 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->types));
   21727           4 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
   21728             :         }
   21729           4 :         if (ndr_flags & NDR_BUFFERS) {
   21730           4 :                 if (r->types) {
   21731           4 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
   21732          12 :                         for (cntr_types_1 = 0; cntr_types_1 < (r->count); cntr_types_1++) {
   21733           8 :                                 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr, NDR_SCALARS, &r->types[cntr_types_1]));
   21734             :                         }
   21735          12 :                         for (cntr_types_1 = 0; cntr_types_1 < (r->count); cntr_types_1++) {
   21736           8 :                                 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr, NDR_BUFFERS, &r->types[cntr_types_1]));
   21737             :                         }
   21738             :                 }
   21739             :         }
   21740           4 :         return NDR_ERR_SUCCESS;
   21741             : }
   21742             : 
   21743          10 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_NotifyOption(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_NotifyOption *r)
   21744             : {
   21745           6 :         uint32_t _ptr_types;
   21746          10 :         uint32_t size_types_1 = 0;
   21747           6 :         uint32_t cntr_types_1;
   21748          10 :         TALLOC_CTX *_mem_save_types_0 = NULL;
   21749          10 :         TALLOC_CTX *_mem_save_types_1 = NULL;
   21750          10 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   21751          10 :         if (ndr_flags & NDR_SCALARS) {
   21752          10 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
   21753          10 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
   21754          16 :                 NDR_CHECK(ndr_pull_spoolssNotifyOptionFlags(ndr, NDR_SCALARS, &r->flags));
   21755          10 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
   21756          10 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_types));
   21757          10 :                 if (_ptr_types) {
   21758           8 :                         NDR_PULL_ALLOC(ndr, r->types);
   21759             :                 } else {
   21760           2 :                         r->types = NULL;
   21761             :                 }
   21762          10 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
   21763             :         }
   21764          10 :         if (ndr_flags & NDR_BUFFERS) {
   21765          10 :                 if (r->types) {
   21766           8 :                         _mem_save_types_0 = NDR_PULL_GET_MEM_CTX(ndr);
   21767           8 :                         NDR_PULL_SET_MEM_CTX(ndr, r->types, 0);
   21768           8 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->types));
   21769           8 :                         NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->types, &size_types_1));
   21770           8 :                         NDR_PULL_ALLOC_N(ndr, r->types, size_types_1);
   21771           8 :                         _mem_save_types_1 = NDR_PULL_GET_MEM_CTX(ndr);
   21772           8 :                         NDR_PULL_SET_MEM_CTX(ndr, r->types, 0);
   21773          22 :                         for (cntr_types_1 = 0; cntr_types_1 < (size_types_1); cntr_types_1++) {
   21774          14 :                                 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr, NDR_SCALARS, &r->types[cntr_types_1]));
   21775             :                         }
   21776          22 :                         for (cntr_types_1 = 0; cntr_types_1 < (size_types_1); cntr_types_1++) {
   21777          14 :                                 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr, NDR_BUFFERS, &r->types[cntr_types_1]));
   21778             :                         }
   21779           8 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_types_1, 0);
   21780           8 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_types_0, 0);
   21781             :                 }
   21782          10 :                 if (r->types) {
   21783           8 :                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->types, r->count));
   21784             :                 }
   21785          24 :                 for (cntr_types_1 = 0; cntr_types_1 < (size_types_1); cntr_types_1++) {
   21786           6 :                 }
   21787             :         }
   21788           4 :         return NDR_ERR_SUCCESS;
   21789             : }
   21790             : 
   21791           0 : static void ndr_print_flags_spoolss_NotifyOption(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_NotifyOption *r)
   21792             : {
   21793           0 :         ndr_print_spoolss_NotifyOption(ndr, name, r);
   21794           0 : }
   21795             : 
   21796           6 : _PUBLIC_ void ndr_print_spoolss_NotifyOption(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyOption *r)
   21797             : {
   21798           6 :         uint32_t cntr_types_1;
   21799           6 :         ndr_print_struct(ndr, name, "spoolss_NotifyOption");
   21800           6 :         if (r == NULL) { ndr_print_null(ndr); return; }
   21801           6 :         ndr->depth++;
   21802           6 :         ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->version);
   21803           6 :         ndr_print_spoolssNotifyOptionFlags(ndr, "flags", r->flags);
   21804           6 :         ndr_print_uint32(ndr, "count", r->count);
   21805           6 :         ndr_print_ptr(ndr, "types", r->types);
   21806           6 :         ndr->depth++;
   21807           6 :         if (r->types) {
   21808           4 :                 ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "types", (uint32_t)(r->count));
   21809           4 :                 ndr->depth++;
   21810          10 :                 for (cntr_types_1 = 0; cntr_types_1 < (r->count); cntr_types_1++) {
   21811           6 :                         ndr_print_spoolss_NotifyOptionType(ndr, "types", &r->types[cntr_types_1]);
   21812             :                 }
   21813           4 :                 ndr->depth--;
   21814             :         }
   21815           6 :         ndr->depth--;
   21816           6 :         ndr->depth--;
   21817             : }
   21818             : 
   21819           0 : static enum ndr_err_code ndr_push_spoolss_NotifyString(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_NotifyString *r)
   21820             : {
   21821           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   21822           0 :         if (ndr_flags & NDR_SCALARS) {
   21823           0 :                 NDR_CHECK(ndr_push_align(ndr, 5));
   21824           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
   21825           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->string));
   21826           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
   21827             :         }
   21828           0 :         if (ndr_flags & NDR_BUFFERS) {
   21829           0 :                 if (r->string) {
   21830           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->size / 2));
   21831           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->string, r->size / 2, sizeof(uint16_t), CH_UTF16));
   21832             :                 }
   21833             :         }
   21834           0 :         return NDR_ERR_SUCCESS;
   21835             : }
   21836             : 
   21837          40 : static enum ndr_err_code ndr_pull_spoolss_NotifyString(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_NotifyString *r)
   21838             : {
   21839          40 :         uint32_t _ptr_string;
   21840          40 :         uint32_t size_string_1 = 0;
   21841          40 :         TALLOC_CTX *_mem_save_string_0 = NULL;
   21842          40 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   21843          40 :         if (ndr_flags & NDR_SCALARS) {
   21844          20 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
   21845          20 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
   21846          20 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_string));
   21847          20 :                 if (_ptr_string) {
   21848          20 :                         NDR_PULL_ALLOC(ndr, r->string);
   21849             :                 } else {
   21850           0 :                         r->string = NULL;
   21851             :                 }
   21852          20 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
   21853             :         }
   21854          40 :         if (ndr_flags & NDR_BUFFERS) {
   21855          20 :                 if (r->string) {
   21856          20 :                         _mem_save_string_0 = NDR_PULL_GET_MEM_CTX(ndr);
   21857          20 :                         NDR_PULL_SET_MEM_CTX(ndr, r->string, 0);
   21858          20 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->string));
   21859          20 :                         NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->string, &size_string_1));
   21860          20 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->string, size_string_1, sizeof(uint16_t), CH_UTF16));
   21861          20 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_string_0, 0);
   21862             :                 }
   21863          20 :                 if (r->string) {
   21864          20 :                         NDR_CHECK(ndr_check_steal_array_size(ndr, (void*)&r->string, r->size / 2));
   21865             :                 }
   21866             :         }
   21867           0 :         return NDR_ERR_SUCCESS;
   21868             : }
   21869             : 
   21870          20 : _PUBLIC_ void ndr_print_spoolss_NotifyString(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyString *r)
   21871             : {
   21872          20 :         ndr_print_struct(ndr, name, "spoolss_NotifyString");
   21873          20 :         if (r == NULL) { ndr_print_null(ndr); return; }
   21874          20 :         ndr->depth++;
   21875          20 :         ndr_print_uint32(ndr, "size", r->size);
   21876          20 :         ndr_print_ptr(ndr, "string", r->string);
   21877          20 :         ndr->depth++;
   21878          20 :         if (r->string) {
   21879          20 :                 ndr_print_string(ndr, "string", r->string);
   21880             :         }
   21881          20 :         ndr->depth--;
   21882          20 :         ndr->depth--;
   21883             : }
   21884             : 
   21885           0 : static enum ndr_err_code ndr_push_spoolss_NotifyTable(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum spoolss_NotifyTable r)
   21886             : {
   21887           0 :         NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
   21888           0 :         return NDR_ERR_SUCCESS;
   21889             : }
   21890             : 
   21891          52 : static enum ndr_err_code ndr_pull_spoolss_NotifyTable(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum spoolss_NotifyTable *r)
   21892             : {
   21893          52 :         uint32_t v;
   21894          52 :         NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
   21895          52 :         *r = v;
   21896          52 :         return NDR_ERR_SUCCESS;
   21897             : }
   21898             : 
   21899          52 : _PUBLIC_ void ndr_print_spoolss_NotifyTable(struct ndr_print *ndr, const char *name, enum spoolss_NotifyTable r)
   21900             : {
   21901          52 :         const char *val = NULL;
   21902             : 
   21903          52 :         switch (r) {
   21904          28 :                 case NOTIFY_TABLE_DWORD: val = "NOTIFY_TABLE_DWORD"; break;
   21905          20 :                 case NOTIFY_TABLE_STRING: val = "NOTIFY_TABLE_STRING"; break;
   21906           0 :                 case NOTIFY_TABLE_DEVMODE: val = "NOTIFY_TABLE_DEVMODE"; break;
   21907           4 :                 case NOTIFY_TABLE_TIME: val = "NOTIFY_TABLE_TIME"; break;
   21908           0 :                 case NOTIFY_TABLE_SECURITYDESCRIPTOR: val = "NOTIFY_TABLE_SECURITYDESCRIPTOR"; break;
   21909             :         }
   21910          52 :         ndr_print_enum(ndr, name, "ENUM", val, r);
   21911          52 : }
   21912             : 
   21913           0 : static enum ndr_err_code ndr_push_spoolss_NotifyData(struct ndr_push *ndr, ndr_flags_type ndr_flags, const union spoolss_NotifyData *r)
   21914             : {
   21915           0 :         uint32_t level;
   21916           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   21917           0 :         if (ndr_flags & NDR_SCALARS) {
   21918             :                 /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
   21919           0 :                 NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
   21920           0 :                 NDR_CHECK(ndr_push_union_align(ndr, 5));
   21921           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
   21922             :                 /* ms_union is always aligned to the largest union arm*/
   21923           0 :                 NDR_CHECK(ndr_push_align(ndr, 5));
   21924           0 :                 switch (level) {
   21925           0 :                         case 1: {
   21926             :                                 uint32_t cntr_integer_0;
   21927           0 :                                 for (cntr_integer_0 = 0; cntr_integer_0 < (2); cntr_integer_0++) {
   21928           0 :                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->integer[cntr_integer_0]));
   21929             :                                 }
   21930           0 :                         break; }
   21931             : 
   21932           0 :                         case 2: {
   21933           0 :                                 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr, NDR_SCALARS, &r->string));
   21934           0 :                         break; }
   21935             : 
   21936           0 :                         case 3: {
   21937           0 :                                 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS, &r->devmode));
   21938           0 :                         break; }
   21939             : 
   21940           0 :                         case 4: {
   21941           0 :                                 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr, NDR_SCALARS, &r->time));
   21942           0 :                         break; }
   21943             : 
   21944           0 :                         case 5: {
   21945           0 :                                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sd));
   21946           0 :                         break; }
   21947             : 
   21948           0 :                         default:
   21949           0 :                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32, level);
   21950             :                 }
   21951             :         }
   21952           0 :         if (ndr_flags & NDR_BUFFERS) {
   21953           0 :                 if (!(ndr_flags & NDR_SCALARS)) {
   21954             :                         /* We didn't get it above, and the token is not needed after this. */
   21955           0 :                         NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
   21956             :                 }
   21957           0 :                 switch (level) {
   21958           0 :                         case 1:
   21959           0 :                         break;
   21960             : 
   21961           0 :                         case 2:
   21962           0 :                                 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr, NDR_BUFFERS, &r->string));
   21963           0 :                         break;
   21964             : 
   21965           0 :                         case 3:
   21966           0 :                                 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_BUFFERS, &r->devmode));
   21967           0 :                         break;
   21968             : 
   21969           0 :                         case 4:
   21970           0 :                                 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr, NDR_BUFFERS, &r->time));
   21971           0 :                         break;
   21972             : 
   21973           0 :                         case 5:
   21974           0 :                                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sd));
   21975           0 :                         break;
   21976             : 
   21977           0 :                         default:
   21978           0 :                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32, level);
   21979             :                 }
   21980             :         }
   21981           0 :         return NDR_ERR_SUCCESS;
   21982             : }
   21983             : 
   21984         104 : static enum ndr_err_code ndr_pull_spoolss_NotifyData(struct ndr_pull *ndr, ndr_flags_type ndr_flags, union spoolss_NotifyData *r)
   21985             : {
   21986         104 :         uint32_t level;
   21987         104 :         uint32_t _level;
   21988         104 :         uint32_t size_integer_0 = 0;
   21989         104 :         uint32_t cntr_integer_0;
   21990         104 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   21991         104 :         if (ndr_flags & NDR_SCALARS) {
   21992             :                 /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
   21993          52 :                 NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
   21994          52 :                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
   21995          52 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
   21996          52 :                 if (_level != level) {
   21997           0 :                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32" for r at %s", (uint32_t)_level, __location__);
   21998             :                 }
   21999             :                 /* ms_union is always aligned to the largest union arm*/
   22000          52 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
   22001          52 :                 switch (level) {
   22002           0 :                         case 1: {
   22003          84 :                                 size_integer_0 = 2;
   22004          84 :                                 for (cntr_integer_0 = 0; cntr_integer_0 < (size_integer_0); cntr_integer_0++) {
   22005          56 :                                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->integer[cntr_integer_0]));
   22006             :                                 }
   22007           0 :                         break; }
   22008             : 
   22009          20 :                         case 2: {
   22010          20 :                                 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr, NDR_SCALARS, &r->string));
   22011           0 :                         break; }
   22012             : 
   22013           0 :                         case 3: {
   22014           0 :                                 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS, &r->devmode));
   22015           0 :                         break; }
   22016             : 
   22017           4 :                         case 4: {
   22018           4 :                                 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr, NDR_SCALARS, &r->time));
   22019           0 :                         break; }
   22020             : 
   22021           0 :                         case 5: {
   22022           0 :                                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sd));
   22023           0 :                         break; }
   22024             : 
   22025           0 :                         default:
   22026           0 :                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32" at %s", level, __location__);
   22027             :                 }
   22028             :         }
   22029         104 :         if (ndr_flags & NDR_BUFFERS) {
   22030          52 :                 if (!(ndr_flags & NDR_SCALARS)) {
   22031             :                         /* We didn't get it above, and the token is not needed after this. */
   22032          52 :                         NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
   22033             :                 }
   22034          52 :                 switch (level) {
   22035           0 :                         case 1:
   22036           0 :                         break;
   22037             : 
   22038          20 :                         case 2:
   22039          20 :                                 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr, NDR_BUFFERS, &r->string));
   22040           0 :                         break;
   22041             : 
   22042           0 :                         case 3:
   22043           0 :                                 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_BUFFERS, &r->devmode));
   22044           0 :                         break;
   22045             : 
   22046           4 :                         case 4:
   22047           4 :                                 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr, NDR_BUFFERS, &r->time));
   22048           0 :                         break;
   22049             : 
   22050           0 :                         case 5:
   22051           0 :                                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sd));
   22052           0 :                         break;
   22053             : 
   22054           0 :                         default:
   22055           0 :                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32" at %s", level, __location__);
   22056             :                 }
   22057             :         }
   22058           0 :         return NDR_ERR_SUCCESS;
   22059             : }
   22060             : 
   22061          52 : _PUBLIC_ void ndr_print_spoolss_NotifyData(struct ndr_print *ndr, const char *name, const union spoolss_NotifyData *r)
   22062             : {
   22063          52 :         uint32_t level;
   22064          52 :         uint32_t cntr_integer_0;
   22065          52 :         level = ndr_print_steal_switch_value(ndr, r);
   22066          52 :         ndr_print_union(ndr, name, level, "spoolss_NotifyData");
   22067          52 :         switch (level) {
   22068          28 :                 case 1:
   22069          28 :                         ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "integer", (uint32_t)(2));
   22070          28 :                         ndr->depth++;
   22071          84 :                         for (cntr_integer_0 = 0; cntr_integer_0 < (2); cntr_integer_0++) {
   22072          56 :                                 ndr_print_uint32(ndr, "integer", r->integer[cntr_integer_0]);
   22073             :                         }
   22074          28 :                         ndr->depth--;
   22075          28 :                 break;
   22076             : 
   22077          20 :                 case 2:
   22078          20 :                         ndr_print_spoolss_NotifyString(ndr, "string", &r->string);
   22079          20 :                 break;
   22080             : 
   22081           0 :                 case 3:
   22082           0 :                         ndr_print_spoolss_DevmodeContainer(ndr, "devmode", &r->devmode);
   22083           0 :                 break;
   22084             : 
   22085           4 :                 case 4:
   22086           4 :                         ndr_print_spoolss_TimeCtr(ndr, "time", &r->time);
   22087           4 :                 break;
   22088             : 
   22089           0 :                 case 5:
   22090           0 :                         ndr_print_sec_desc_buf(ndr, "sd", &r->sd);
   22091           0 :                 break;
   22092             : 
   22093           0 :                 default:
   22094           0 :                         ndr_print_bad_level(ndr, name, level);
   22095             :         }
   22096          52 : }
   22097             : 
   22098           0 : static enum ndr_err_code ndr_push_spoolss_Notify(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_Notify *r)
   22099             : {
   22100           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   22101           0 :         if (ndr_flags & NDR_SCALARS) {
   22102           0 :                 NDR_CHECK(ndr_push_align(ndr, 5));
   22103           0 :                 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr, NDR_SCALARS, r->type));
   22104           0 :                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->field, r->type));
   22105           0 :                 NDR_CHECK(ndr_push_spoolss_Field(ndr, NDR_SCALARS, &r->field));
   22106           0 :                 NDR_CHECK(ndr_push_spoolss_NotifyTable(ndr, NDR_SCALARS, r->variable_type));
   22107           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
   22108           0 :                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->data, r->variable_type));
   22109           0 :                 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr, NDR_SCALARS, &r->data));
   22110           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
   22111             :         }
   22112           0 :         if (ndr_flags & NDR_BUFFERS) {
   22113           0 :                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->data, r->variable_type));
   22114           0 :                 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr, NDR_BUFFERS, &r->data));
   22115             :         }
   22116           0 :         return NDR_ERR_SUCCESS;
   22117             : }
   22118             : 
   22119         104 : static enum ndr_err_code ndr_pull_spoolss_Notify(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_Notify *r)
   22120             : {
   22121         104 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   22122         104 :         if (ndr_flags & NDR_SCALARS) {
   22123          52 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
   22124         104 :                 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr, NDR_SCALARS, &r->type));
   22125          52 :                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->field, r->type));
   22126          52 :                 NDR_CHECK(ndr_pull_spoolss_Field(ndr, NDR_SCALARS, &r->field));
   22127         104 :                 NDR_CHECK(ndr_pull_spoolss_NotifyTable(ndr, NDR_SCALARS, &r->variable_type));
   22128          52 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
   22129          52 :                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->data, r->variable_type));
   22130          52 :                 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr, NDR_SCALARS, &r->data));
   22131          52 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
   22132             :         }
   22133         104 :         if (ndr_flags & NDR_BUFFERS) {
   22134          52 :                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->data, r->variable_type));
   22135          52 :                 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr, NDR_BUFFERS, &r->data));
   22136             :         }
   22137           0 :         return NDR_ERR_SUCCESS;
   22138             : }
   22139             : 
   22140          52 : _PUBLIC_ void ndr_print_spoolss_Notify(struct ndr_print *ndr, const char *name, const struct spoolss_Notify *r)
   22141             : {
   22142          52 :         ndr_print_struct(ndr, name, "spoolss_Notify");
   22143          52 :         if (r == NULL) { ndr_print_null(ndr); return; }
   22144          52 :         ndr->depth++;
   22145          52 :         ndr_print_spoolss_NotifyType(ndr, "type", r->type);
   22146          52 :         ndr_print_set_switch_value(ndr, &r->field, r->type);
   22147          52 :         ndr_print_spoolss_Field(ndr, "field", &r->field);
   22148          52 :         ndr_print_spoolss_NotifyTable(ndr, "variable_type", r->variable_type);
   22149          52 :         ndr_print_uint32(ndr, "job_id", r->job_id);
   22150          52 :         ndr_print_set_switch_value(ndr, &r->data, r->variable_type);
   22151          52 :         ndr_print_spoolss_NotifyData(ndr, "data", &r->data);
   22152          52 :         ndr->depth--;
   22153             : }
   22154             : 
   22155           4 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_NotifyInfo(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_NotifyInfo *r)
   22156             : {
   22157           0 :         uint32_t cntr_notifies_0;
   22158           4 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   22159           4 :         if (ndr_flags & NDR_SCALARS) {
   22160           4 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
   22161           4 :                 NDR_CHECK(ndr_push_align(ndr, 5));
   22162           4 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
   22163           4 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
   22164           4 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
   22165           4 :                 for (cntr_notifies_0 = 0; cntr_notifies_0 < (r->count); cntr_notifies_0++) {
   22166           0 :                         NDR_CHECK(ndr_push_spoolss_Notify(ndr, NDR_SCALARS, &r->notifies[cntr_notifies_0]));
   22167             :                 }
   22168           4 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
   22169             :         }
   22170           4 :         if (ndr_flags & NDR_BUFFERS) {
   22171           4 :                 for (cntr_notifies_0 = 0; cntr_notifies_0 < (r->count); cntr_notifies_0++) {
   22172           0 :                         NDR_CHECK(ndr_push_spoolss_Notify(ndr, NDR_BUFFERS, &r->notifies[cntr_notifies_0]));
   22173             :                 }
   22174             :         }
   22175           4 :         return NDR_ERR_SUCCESS;
   22176             : }
   22177             : 
   22178           6 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_NotifyInfo(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_NotifyInfo *r)
   22179             : {
   22180           6 :         uint32_t size_notifies_0 = 0;
   22181           2 :         uint32_t cntr_notifies_0;
   22182           6 :         TALLOC_CTX *_mem_save_notifies_0 = NULL;
   22183           6 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   22184           6 :         if (ndr_flags & NDR_SCALARS) {
   22185           6 :                 NDR_CHECK(ndr_pull_array_size(ndr, &r->notifies));
   22186           6 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
   22187           6 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
   22188           6 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
   22189           6 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
   22190           6 :                 NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->notifies, &size_notifies_0));
   22191           6 :                 NDR_PULL_ALLOC_N(ndr, r->notifies, size_notifies_0);
   22192           6 :                 _mem_save_notifies_0 = NDR_PULL_GET_MEM_CTX(ndr);
   22193           6 :                 NDR_PULL_SET_MEM_CTX(ndr, r->notifies, 0);
   22194          58 :                 for (cntr_notifies_0 = 0; cntr_notifies_0 < (size_notifies_0); cntr_notifies_0++) {
   22195          52 :                         NDR_CHECK(ndr_pull_spoolss_Notify(ndr, NDR_SCALARS, &r->notifies[cntr_notifies_0]));
   22196             :                 }
   22197           6 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notifies_0, 0);
   22198           6 :                 if (r->notifies) {
   22199           6 :                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->notifies, r->count));
   22200             :                 }
   22201           6 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
   22202             :         }
   22203           6 :         if (ndr_flags & NDR_BUFFERS) {
   22204           6 :                 NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->notifies, &size_notifies_0));
   22205           6 :                 _mem_save_notifies_0 = NDR_PULL_GET_MEM_CTX(ndr);
   22206           6 :                 NDR_PULL_SET_MEM_CTX(ndr, r->notifies, 0);
   22207          58 :                 for (cntr_notifies_0 = 0; cntr_notifies_0 < (size_notifies_0); cntr_notifies_0++) {
   22208          52 :                         NDR_CHECK(ndr_pull_spoolss_Notify(ndr, NDR_BUFFERS, &r->notifies[cntr_notifies_0]));
   22209             :                 }
   22210           6 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notifies_0, 0);
   22211           6 :                 for (cntr_notifies_0 = 0; cntr_notifies_0 < (size_notifies_0); cntr_notifies_0++) {
   22212             :                 }
   22213             :         }
   22214           4 :         return NDR_ERR_SUCCESS;
   22215             : }
   22216             : 
   22217           0 : static void ndr_print_flags_spoolss_NotifyInfo(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_NotifyInfo *r)
   22218             : {
   22219           0 :         ndr_print_spoolss_NotifyInfo(ndr, name, r);
   22220           0 : }
   22221             : 
   22222           2 : _PUBLIC_ void ndr_print_spoolss_NotifyInfo(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyInfo *r)
   22223             : {
   22224           2 :         uint32_t cntr_notifies_0;
   22225           2 :         ndr_print_struct(ndr, name, "spoolss_NotifyInfo");
   22226           2 :         if (r == NULL) { ndr_print_null(ndr); return; }
   22227           2 :         ndr->depth++;
   22228           2 :         ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->version);
   22229           2 :         ndr_print_uint32(ndr, "flags", r->flags);
   22230           2 :         ndr_print_uint32(ndr, "count", r->count);
   22231           2 :         ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "notifies", (uint32_t)(r->count));
   22232           2 :         ndr->depth++;
   22233          54 :         for (cntr_notifies_0 = 0; cntr_notifies_0 < (r->count); cntr_notifies_0++) {
   22234          52 :                 ndr_print_spoolss_Notify(ndr, "notifies", &r->notifies[cntr_notifies_0]);
   22235             :         }
   22236           2 :         ndr->depth--;
   22237           2 :         ndr->depth--;
   22238             : }
   22239             : 
   22240           0 : static enum ndr_err_code ndr_push_spoolss_ReplyPrinterInfo(struct ndr_push *ndr, ndr_flags_type ndr_flags, const union spoolss_ReplyPrinterInfo *r)
   22241             : {
   22242           0 :         uint32_t level;
   22243           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   22244           0 :         if (ndr_flags & NDR_SCALARS) {
   22245             :                 /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
   22246           0 :                 NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
   22247           0 :                 NDR_CHECK(ndr_push_union_align(ndr, 5));
   22248           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
   22249             :                 /* ms_union is always aligned to the largest union arm*/
   22250           0 :                 NDR_CHECK(ndr_push_align(ndr, 5));
   22251           0 :                 switch (level) {
   22252           0 :                         case 0: {
   22253           0 :                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info0));
   22254           0 :                         break; }
   22255             : 
   22256           0 :                         default:
   22257           0 :                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32, level);
   22258             :                 }
   22259             :         }
   22260           0 :         if (ndr_flags & NDR_BUFFERS) {
   22261           0 :                 if (!(ndr_flags & NDR_SCALARS)) {
   22262             :                         /* We didn't get it above, and the token is not needed after this. */
   22263           0 :                         NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
   22264             :                 }
   22265           0 :                 switch (level) {
   22266           0 :                         case 0:
   22267           0 :                                 if (r->info0) {
   22268           0 :                                         NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
   22269             :                                 }
   22270           0 :                         break;
   22271             : 
   22272           0 :                         default:
   22273           0 :                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32, level);
   22274             :                 }
   22275             :         }
   22276           0 :         return NDR_ERR_SUCCESS;
   22277             : }
   22278             : 
   22279           0 : static enum ndr_err_code ndr_pull_spoolss_ReplyPrinterInfo(struct ndr_pull *ndr, ndr_flags_type ndr_flags, union spoolss_ReplyPrinterInfo *r)
   22280             : {
   22281           0 :         uint32_t level;
   22282           0 :         uint32_t _level;
   22283           0 :         TALLOC_CTX *_mem_save_info0_0 = NULL;
   22284           0 :         uint32_t _ptr_info0;
   22285           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   22286           0 :         if (ndr_flags & NDR_SCALARS) {
   22287             :                 /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
   22288           0 :                 NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
   22289           0 :                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
   22290           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
   22291           0 :                 if (_level != level) {
   22292           0 :                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32" for r at %s", (uint32_t)_level, __location__);
   22293             :                 }
   22294             :                 /* ms_union is always aligned to the largest union arm*/
   22295           0 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
   22296           0 :                 switch (level) {
   22297           0 :                         case 0: {
   22298           0 :                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info0));
   22299           0 :                                 if (_ptr_info0) {
   22300           0 :                                         NDR_PULL_ALLOC(ndr, r->info0);
   22301             :                                 } else {
   22302           0 :                                         r->info0 = NULL;
   22303             :                                 }
   22304           0 :                         break; }
   22305             : 
   22306           0 :                         default:
   22307           0 :                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32" at %s", level, __location__);
   22308             :                 }
   22309             :         }
   22310           0 :         if (ndr_flags & NDR_BUFFERS) {
   22311           0 :                 if (!(ndr_flags & NDR_SCALARS)) {
   22312             :                         /* We didn't get it above, and the token is not needed after this. */
   22313           0 :                         NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
   22314             :                 }
   22315           0 :                 switch (level) {
   22316           0 :                         case 0:
   22317           0 :                                 if (r->info0) {
   22318           0 :                                         _mem_save_info0_0 = NDR_PULL_GET_MEM_CTX(ndr);
   22319           0 :                                         NDR_PULL_SET_MEM_CTX(ndr, r->info0, 0);
   22320           0 :                                         NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
   22321           0 :                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info0_0, 0);
   22322             :                                 }
   22323           0 :                         break;
   22324             : 
   22325           0 :                         default:
   22326           0 :                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32" at %s", level, __location__);
   22327             :                 }
   22328             :         }
   22329           0 :         return NDR_ERR_SUCCESS;
   22330             : }
   22331             : 
   22332           0 : _PUBLIC_ void ndr_print_spoolss_ReplyPrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_ReplyPrinterInfo *r)
   22333             : {
   22334           0 :         uint32_t level;
   22335           0 :         level = ndr_print_steal_switch_value(ndr, r);
   22336           0 :         ndr_print_union(ndr, name, level, "spoolss_ReplyPrinterInfo");
   22337           0 :         switch (level) {
   22338           0 :                 case 0:
   22339           0 :                         ndr_print_ptr(ndr, "info0", r->info0);
   22340           0 :                         ndr->depth++;
   22341           0 :                         if (r->info0) {
   22342           0 :                                 ndr_print_spoolss_NotifyInfo(ndr, "info0", r->info0);
   22343             :                         }
   22344           0 :                         ndr->depth--;
   22345           0 :                 break;
   22346             : 
   22347           0 :                 default:
   22348           0 :                         ndr_print_bad_level(ndr, name, level);
   22349             :         }
   22350           0 : }
   22351             : 
   22352           0 : static enum ndr_err_code ndr_push_spoolss_PrinterNotifyFlags(struct ndr_push *ndr, ndr_flags_type ndr_flags, uint32_t r)
   22353             : {
   22354           0 :         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
   22355           0 :         return NDR_ERR_SUCCESS;
   22356             : }
   22357             : 
   22358           0 : static enum ndr_err_code ndr_pull_spoolss_PrinterNotifyFlags(struct ndr_pull *ndr, ndr_flags_type ndr_flags, uint32_t *r)
   22359             : {
   22360           0 :         uint32_t v;
   22361           0 :         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
   22362           0 :         *r = v;
   22363           0 :         return NDR_ERR_SUCCESS;
   22364             : }
   22365             : 
   22366           0 : _PUBLIC_ void ndr_print_spoolss_PrinterNotifyFlags(struct ndr_print *ndr, const char *name, uint32_t r)
   22367             : {
   22368           0 :         ndr_print_uint32(ndr, name, r);
   22369           0 :         ndr->depth++;
   22370           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDED", PRINTER_NOTIFY_INFO_DISCARDED, r);
   22371           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDNOTED", PRINTER_NOTIFY_INFO_DISCARDNOTED, r);
   22372           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_COLOR_MISMATCH", PRINTER_NOTIFY_INFO_COLOR_MISMATCH, r);
   22373           0 :         ndr->depth--;
   22374           0 : }
   22375             : 
   22376         766 : static enum ndr_err_code ndr_push_spoolss_UserLevel1(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_UserLevel1 *r)
   22377             : {
   22378         766 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   22379         766 :         if (ndr_flags & NDR_SCALARS) {
   22380         766 :                 NDR_CHECK(ndr_push_align(ndr, 5));
   22381         766 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
   22382         766 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client));
   22383         766 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
   22384         766 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
   22385         766 :                 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr, NDR_SCALARS, r->major));
   22386         766 :                 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr, NDR_SCALARS, r->minor));
   22387         766 :                 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor));
   22388         766 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
   22389             :         }
   22390         766 :         if (ndr_flags & NDR_BUFFERS) {
   22391         766 :                 if (r->client) {
   22392         754 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
   22393         754 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   22394         754 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
   22395         754 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client, ndr_charset_length(r->client, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   22396             :                 }
   22397         766 :                 if (r->user) {
   22398         754 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
   22399         754 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   22400         754 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
   22401         754 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user, ndr_charset_length(r->user, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   22402             :                 }
   22403             :         }
   22404         766 :         return NDR_ERR_SUCCESS;
   22405             : }
   22406             : 
   22407         778 : static enum ndr_err_code ndr_pull_spoolss_UserLevel1(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_UserLevel1 *r)
   22408             : {
   22409          12 :         uint32_t _ptr_client;
   22410         778 :         uint32_t size_client_1 = 0;
   22411         778 :         uint32_t length_client_1 = 0;
   22412         778 :         TALLOC_CTX *_mem_save_client_0 = NULL;
   22413          12 :         uint32_t _ptr_user;
   22414         778 :         uint32_t size_user_1 = 0;
   22415         778 :         uint32_t length_user_1 = 0;
   22416         778 :         TALLOC_CTX *_mem_save_user_0 = NULL;
   22417         778 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   22418         778 :         if (ndr_flags & NDR_SCALARS) {
   22419         778 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
   22420         778 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
   22421         778 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client));
   22422         778 :                 if (_ptr_client) {
   22423         766 :                         NDR_PULL_ALLOC(ndr, r->client);
   22424             :                 } else {
   22425          12 :                         r->client = NULL;
   22426             :                 }
   22427         778 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
   22428         778 :                 if (_ptr_user) {
   22429         766 :                         NDR_PULL_ALLOC(ndr, r->user);
   22430             :                 } else {
   22431          12 :                         r->user = NULL;
   22432             :                 }
   22433         778 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
   22434         790 :                 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr, NDR_SCALARS, &r->major));
   22435         790 :                 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr, NDR_SCALARS, &r->minor));
   22436         790 :                 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor));
   22437         778 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
   22438             :         }
   22439         778 :         if (ndr_flags & NDR_BUFFERS) {
   22440         778 :                 if (r->client) {
   22441         766 :                         _mem_save_client_0 = NDR_PULL_GET_MEM_CTX(ndr);
   22442         766 :                         NDR_PULL_SET_MEM_CTX(ndr, r->client, 0);
   22443         766 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->client));
   22444         766 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->client));
   22445         766 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->client, &size_client_1));
   22446         766 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->client, &length_client_1));
   22447         766 :                         if (length_client_1 > size_client_1) {
   22448           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_client_1, length_client_1);
   22449             :                         }
   22450         766 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_client_1, sizeof(uint16_t)));
   22451         766 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, length_client_1, sizeof(uint16_t), CH_UTF16));
   22452         766 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_0, 0);
   22453             :                 }
   22454         778 :                 if (r->user) {
   22455         766 :                         _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
   22456         766 :                         NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
   22457         766 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->user));
   22458         766 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->user));
   22459         766 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->user, &size_user_1));
   22460         766 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->user, &length_user_1));
   22461         766 :                         if (length_user_1 > size_user_1) {
   22462           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_user_1, length_user_1);
   22463             :                         }
   22464         766 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_user_1, sizeof(uint16_t)));
   22465         766 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, length_user_1, sizeof(uint16_t), CH_UTF16));
   22466         766 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
   22467             :                 }
   22468             :         }
   22469         766 :         return NDR_ERR_SUCCESS;
   22470             : }
   22471             : 
   22472          12 : _PUBLIC_ void ndr_print_spoolss_UserLevel1(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel1 *r)
   22473             : {
   22474          12 :         ndr_print_struct(ndr, name, "spoolss_UserLevel1");
   22475          12 :         if (r == NULL) { ndr_print_null(ndr); return; }
   22476          12 :         ndr->depth++;
   22477          12 :         ndr_print_uint32(ndr, "size", r->size);
   22478          12 :         ndr_print_ptr(ndr, "client", r->client);
   22479          12 :         ndr->depth++;
   22480          12 :         if (r->client) {
   22481          12 :                 ndr_print_string(ndr, "client", r->client);
   22482             :         }
   22483          12 :         ndr->depth--;
   22484          12 :         ndr_print_ptr(ndr, "user", r->user);
   22485          12 :         ndr->depth++;
   22486          12 :         if (r->user) {
   22487          12 :                 ndr_print_string(ndr, "user", r->user);
   22488             :         }
   22489          12 :         ndr->depth--;
   22490          12 :         ndr_print_uint32(ndr, "build", r->build);
   22491          12 :         ndr_print_spoolss_MajorVersion(ndr, "major", r->major);
   22492          12 :         ndr_print_spoolss_MinorVersion(ndr, "minor", r->minor);
   22493          12 :         ndr_print_spoolss_ProcessorArchitecture(ndr, "processor", r->processor);
   22494          12 :         ndr->depth--;
   22495             : }
   22496             : 
   22497           0 : static enum ndr_err_code ndr_push_spoolss_UserLevel2(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_UserLevel2 *r)
   22498             : {
   22499           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   22500           0 :         if (ndr_flags & NDR_SCALARS) {
   22501           0 :                 NDR_CHECK(ndr_push_align(ndr, 4));
   22502           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->not_used));
   22503           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
   22504             :         }
   22505           0 :         if (ndr_flags & NDR_BUFFERS) {
   22506           0 :         }
   22507           0 :         return NDR_ERR_SUCCESS;
   22508             : }
   22509             : 
   22510           0 : static enum ndr_err_code ndr_pull_spoolss_UserLevel2(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_UserLevel2 *r)
   22511             : {
   22512           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   22513           0 :         if (ndr_flags & NDR_SCALARS) {
   22514           0 :                 NDR_CHECK(ndr_pull_align(ndr, 4));
   22515           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->not_used));
   22516           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
   22517             :         }
   22518           0 :         if (ndr_flags & NDR_BUFFERS) {
   22519           0 :         }
   22520           0 :         return NDR_ERR_SUCCESS;
   22521             : }
   22522             : 
   22523           0 : _PUBLIC_ void ndr_print_spoolss_UserLevel2(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel2 *r)
   22524             : {
   22525           0 :         ndr_print_struct(ndr, name, "spoolss_UserLevel2");
   22526           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   22527           0 :         ndr->depth++;
   22528           0 :         ndr_print_uint32(ndr, "not_used", r->not_used);
   22529           0 :         ndr->depth--;
   22530             : }
   22531             : 
   22532           0 : static enum ndr_err_code ndr_push_spoolss_UserLevel3(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_UserLevel3 *r)
   22533             : {
   22534           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   22535           0 :         if (ndr_flags & NDR_SCALARS) {
   22536           0 :                 NDR_CHECK(ndr_push_align(ndr, 5));
   22537           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
   22538           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
   22539           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size2));
   22540           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client));
   22541           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
   22542           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
   22543           0 :                 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr, NDR_SCALARS, r->major));
   22544           0 :                 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr, NDR_SCALARS, r->minor));
   22545           0 :                 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor));
   22546           0 :                 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->reserved));
   22547           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
   22548             :         }
   22549           0 :         if (ndr_flags & NDR_BUFFERS) {
   22550           0 :                 if (r->client) {
   22551           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
   22552           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   22553           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
   22554           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client, ndr_charset_length(r->client, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   22555             :                 }
   22556           0 :                 if (r->user) {
   22557           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
   22558           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   22559           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
   22560           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user, ndr_charset_length(r->user, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   22561             :                 }
   22562             :         }
   22563           0 :         return NDR_ERR_SUCCESS;
   22564             : }
   22565             : 
   22566           0 : static enum ndr_err_code ndr_pull_spoolss_UserLevel3(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_UserLevel3 *r)
   22567             : {
   22568           0 :         uint32_t _ptr_client;
   22569           0 :         uint32_t size_client_1 = 0;
   22570           0 :         uint32_t length_client_1 = 0;
   22571           0 :         TALLOC_CTX *_mem_save_client_0 = NULL;
   22572           0 :         uint32_t _ptr_user;
   22573           0 :         uint32_t size_user_1 = 0;
   22574           0 :         uint32_t length_user_1 = 0;
   22575           0 :         TALLOC_CTX *_mem_save_user_0 = NULL;
   22576           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   22577           0 :         if (ndr_flags & NDR_SCALARS) {
   22578           0 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
   22579           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
   22580           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
   22581           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size2));
   22582           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client));
   22583           0 :                 if (_ptr_client) {
   22584           0 :                         NDR_PULL_ALLOC(ndr, r->client);
   22585             :                 } else {
   22586           0 :                         r->client = NULL;
   22587             :                 }
   22588           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
   22589           0 :                 if (_ptr_user) {
   22590           0 :                         NDR_PULL_ALLOC(ndr, r->user);
   22591             :                 } else {
   22592           0 :                         r->user = NULL;
   22593             :                 }
   22594           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
   22595           0 :                 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr, NDR_SCALARS, &r->major));
   22596           0 :                 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr, NDR_SCALARS, &r->minor));
   22597           0 :                 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor));
   22598           0 :                 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->reserved));
   22599           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
   22600             :         }
   22601           0 :         if (ndr_flags & NDR_BUFFERS) {
   22602           0 :                 if (r->client) {
   22603           0 :                         _mem_save_client_0 = NDR_PULL_GET_MEM_CTX(ndr);
   22604           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->client, 0);
   22605           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->client));
   22606           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->client));
   22607           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->client, &size_client_1));
   22608           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->client, &length_client_1));
   22609           0 :                         if (length_client_1 > size_client_1) {
   22610           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_client_1, length_client_1);
   22611             :                         }
   22612           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_client_1, sizeof(uint16_t)));
   22613           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, length_client_1, sizeof(uint16_t), CH_UTF16));
   22614           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_0, 0);
   22615             :                 }
   22616           0 :                 if (r->user) {
   22617           0 :                         _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
   22618           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
   22619           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->user));
   22620           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->user));
   22621           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->user, &size_user_1));
   22622           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->user, &length_user_1));
   22623           0 :                         if (length_user_1 > size_user_1) {
   22624           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_user_1, length_user_1);
   22625             :                         }
   22626           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_user_1, sizeof(uint16_t)));
   22627           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, length_user_1, sizeof(uint16_t), CH_UTF16));
   22628           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
   22629             :                 }
   22630             :         }
   22631           0 :         return NDR_ERR_SUCCESS;
   22632             : }
   22633             : 
   22634           0 : _PUBLIC_ void ndr_print_spoolss_UserLevel3(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel3 *r)
   22635             : {
   22636           0 :         ndr_print_struct(ndr, name, "spoolss_UserLevel3");
   22637           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   22638           0 :         ndr->depth++;
   22639           0 :         ndr_print_uint32(ndr, "size", r->size);
   22640           0 :         ndr_print_uint32(ndr, "flags", r->flags);
   22641           0 :         ndr_print_uint32(ndr, "size2", r->size2);
   22642           0 :         ndr_print_ptr(ndr, "client", r->client);
   22643           0 :         ndr->depth++;
   22644           0 :         if (r->client) {
   22645           0 :                 ndr_print_string(ndr, "client", r->client);
   22646             :         }
   22647           0 :         ndr->depth--;
   22648           0 :         ndr_print_ptr(ndr, "user", r->user);
   22649           0 :         ndr->depth++;
   22650           0 :         if (r->user) {
   22651           0 :                 ndr_print_string(ndr, "user", r->user);
   22652             :         }
   22653           0 :         ndr->depth--;
   22654           0 :         ndr_print_uint32(ndr, "build", r->build);
   22655           0 :         ndr_print_spoolss_MajorVersion(ndr, "major", r->major);
   22656           0 :         ndr_print_spoolss_MinorVersion(ndr, "minor", r->minor);
   22657           0 :         ndr_print_spoolss_ProcessorArchitecture(ndr, "processor", r->processor);
   22658           0 :         ndr_print_udlong(ndr, "reserved", r->reserved);
   22659           0 :         ndr->depth--;
   22660             : }
   22661             : 
   22662        1636 : static enum ndr_err_code ndr_push_spoolss_UserLevel(struct ndr_push *ndr, ndr_flags_type ndr_flags, const union spoolss_UserLevel *r)
   22663             : {
   22664           0 :         uint32_t level;
   22665        1636 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   22666        1636 :         if (ndr_flags & NDR_SCALARS) {
   22667             :                 /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
   22668         818 :                 NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
   22669         818 :                 NDR_CHECK(ndr_push_union_align(ndr, 5));
   22670         818 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
   22671             :                 /* ms_union is always aligned to the largest union arm*/
   22672         818 :                 NDR_CHECK(ndr_push_align(ndr, 5));
   22673         818 :                 switch (level) {
   22674         818 :                         case 1: {
   22675         818 :                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level1));
   22676         818 :                         break; }
   22677             : 
   22678           0 :                         case 2: {
   22679           0 :                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level2));
   22680           0 :                         break; }
   22681             : 
   22682           0 :                         case 3: {
   22683           0 :                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level3));
   22684           0 :                         break; }
   22685             : 
   22686           0 :                         default:
   22687           0 :                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32, level);
   22688             :                 }
   22689             :         }
   22690        1636 :         if (ndr_flags & NDR_BUFFERS) {
   22691         818 :                 if (!(ndr_flags & NDR_SCALARS)) {
   22692             :                         /* We didn't get it above, and the token is not needed after this. */
   22693         818 :                         NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
   22694             :                 }
   22695         818 :                 switch (level) {
   22696         818 :                         case 1:
   22697         818 :                                 if (r->level1) {
   22698         766 :                                         NDR_CHECK(ndr_push_spoolss_UserLevel1(ndr, NDR_SCALARS|NDR_BUFFERS, r->level1));
   22699             :                                 }
   22700         818 :                         break;
   22701             : 
   22702           0 :                         case 2:
   22703           0 :                                 if (r->level2) {
   22704           0 :                                         NDR_CHECK(ndr_push_spoolss_UserLevel2(ndr, NDR_SCALARS, r->level2));
   22705             :                                 }
   22706           0 :                         break;
   22707             : 
   22708           0 :                         case 3:
   22709           0 :                                 if (r->level3) {
   22710           0 :                                         NDR_CHECK(ndr_push_spoolss_UserLevel3(ndr, NDR_SCALARS|NDR_BUFFERS, r->level3));
   22711             :                                 }
   22712           0 :                         break;
   22713             : 
   22714           0 :                         default:
   22715           0 :                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32, level);
   22716             :                 }
   22717             :         }
   22718        1636 :         return NDR_ERR_SUCCESS;
   22719             : }
   22720             : 
   22721        1660 : static enum ndr_err_code ndr_pull_spoolss_UserLevel(struct ndr_pull *ndr, ndr_flags_type ndr_flags, union spoolss_UserLevel *r)
   22722             : {
   22723          24 :         uint32_t level;
   22724          24 :         uint32_t _level;
   22725        1660 :         TALLOC_CTX *_mem_save_level1_0 = NULL;
   22726          24 :         uint32_t _ptr_level1;
   22727        1660 :         TALLOC_CTX *_mem_save_level2_0 = NULL;
   22728          24 :         uint32_t _ptr_level2;
   22729        1660 :         TALLOC_CTX *_mem_save_level3_0 = NULL;
   22730          24 :         uint32_t _ptr_level3;
   22731        1660 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   22732        1660 :         if (ndr_flags & NDR_SCALARS) {
   22733             :                 /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
   22734         830 :                 NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
   22735         830 :                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
   22736         830 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
   22737         830 :                 if (_level != level) {
   22738           0 :                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32" for r at %s", (uint32_t)_level, __location__);
   22739             :                 }
   22740             :                 /* ms_union is always aligned to the largest union arm*/
   22741         830 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
   22742         830 :                 switch (level) {
   22743         830 :                         case 1: {
   22744         830 :                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level1));
   22745         830 :                                 if (_ptr_level1) {
   22746         778 :                                         NDR_PULL_ALLOC(ndr, r->level1);
   22747             :                                 } else {
   22748          52 :                                         r->level1 = NULL;
   22749             :                                 }
   22750         818 :                         break; }
   22751             : 
   22752           0 :                         case 2: {
   22753           0 :                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level2));
   22754           0 :                                 if (_ptr_level2) {
   22755           0 :                                         NDR_PULL_ALLOC(ndr, r->level2);
   22756             :                                 } else {
   22757           0 :                                         r->level2 = NULL;
   22758             :                                 }
   22759           0 :                         break; }
   22760             : 
   22761           0 :                         case 3: {
   22762           0 :                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level3));
   22763           0 :                                 if (_ptr_level3) {
   22764           0 :                                         NDR_PULL_ALLOC(ndr, r->level3);
   22765             :                                 } else {
   22766           0 :                                         r->level3 = NULL;
   22767             :                                 }
   22768           0 :                         break; }
   22769             : 
   22770           0 :                         default:
   22771           0 :                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32" at %s", level, __location__);
   22772             :                 }
   22773             :         }
   22774        1660 :         if (ndr_flags & NDR_BUFFERS) {
   22775         830 :                 if (!(ndr_flags & NDR_SCALARS)) {
   22776             :                         /* We didn't get it above, and the token is not needed after this. */
   22777         830 :                         NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
   22778             :                 }
   22779         830 :                 switch (level) {
   22780         830 :                         case 1:
   22781         830 :                                 if (r->level1) {
   22782         778 :                                         _mem_save_level1_0 = NDR_PULL_GET_MEM_CTX(ndr);
   22783         778 :                                         NDR_PULL_SET_MEM_CTX(ndr, r->level1, 0);
   22784         778 :                                         NDR_CHECK(ndr_pull_spoolss_UserLevel1(ndr, NDR_SCALARS|NDR_BUFFERS, r->level1));
   22785         778 :                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level1_0, 0);
   22786             :                                 }
   22787         818 :                         break;
   22788             : 
   22789           0 :                         case 2:
   22790           0 :                                 if (r->level2) {
   22791           0 :                                         _mem_save_level2_0 = NDR_PULL_GET_MEM_CTX(ndr);
   22792           0 :                                         NDR_PULL_SET_MEM_CTX(ndr, r->level2, 0);
   22793           0 :                                         NDR_CHECK(ndr_pull_spoolss_UserLevel2(ndr, NDR_SCALARS, r->level2));
   22794           0 :                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level2_0, 0);
   22795             :                                 }
   22796           0 :                         break;
   22797             : 
   22798           0 :                         case 3:
   22799           0 :                                 if (r->level3) {
   22800           0 :                                         _mem_save_level3_0 = NDR_PULL_GET_MEM_CTX(ndr);
   22801           0 :                                         NDR_PULL_SET_MEM_CTX(ndr, r->level3, 0);
   22802           0 :                                         NDR_CHECK(ndr_pull_spoolss_UserLevel3(ndr, NDR_SCALARS|NDR_BUFFERS, r->level3));
   22803           0 :                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level3_0, 0);
   22804             :                                 }
   22805           0 :                         break;
   22806             : 
   22807           0 :                         default:
   22808           0 :                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32" at %s", level, __location__);
   22809             :                 }
   22810             :         }
   22811        1636 :         return NDR_ERR_SUCCESS;
   22812             : }
   22813             : 
   22814          12 : _PUBLIC_ void ndr_print_spoolss_UserLevel(struct ndr_print *ndr, const char *name, const union spoolss_UserLevel *r)
   22815             : {
   22816          12 :         uint32_t level;
   22817          12 :         level = ndr_print_steal_switch_value(ndr, r);
   22818          12 :         ndr_print_union(ndr, name, level, "spoolss_UserLevel");
   22819          12 :         switch (level) {
   22820          12 :                 case 1:
   22821          12 :                         ndr_print_ptr(ndr, "level1", r->level1);
   22822          12 :                         ndr->depth++;
   22823          12 :                         if (r->level1) {
   22824          12 :                                 ndr_print_spoolss_UserLevel1(ndr, "level1", r->level1);
   22825             :                         }
   22826          12 :                         ndr->depth--;
   22827          12 :                 break;
   22828             : 
   22829           0 :                 case 2:
   22830           0 :                         ndr_print_ptr(ndr, "level2", r->level2);
   22831           0 :                         ndr->depth++;
   22832           0 :                         if (r->level2) {
   22833           0 :                                 ndr_print_spoolss_UserLevel2(ndr, "level2", r->level2);
   22834             :                         }
   22835           0 :                         ndr->depth--;
   22836           0 :                 break;
   22837             : 
   22838           0 :                 case 3:
   22839           0 :                         ndr_print_ptr(ndr, "level3", r->level3);
   22840           0 :                         ndr->depth++;
   22841           0 :                         if (r->level3) {
   22842           0 :                                 ndr_print_spoolss_UserLevel3(ndr, "level3", r->level3);
   22843             :                         }
   22844           0 :                         ndr->depth--;
   22845           0 :                 break;
   22846             : 
   22847           0 :                 default:
   22848           0 :                         ndr_print_bad_level(ndr, name, level);
   22849             :         }
   22850          12 : }
   22851             : 
   22852         818 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_UserLevelCtr(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_UserLevelCtr *r)
   22853             : {
   22854         818 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   22855         818 :         if (ndr_flags & NDR_SCALARS) {
   22856         818 :                 NDR_CHECK(ndr_push_align(ndr, 5));
   22857         818 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
   22858         818 :                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->user_info, r->level));
   22859         818 :                 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_SCALARS, &r->user_info));
   22860         818 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
   22861             :         }
   22862         818 :         if (ndr_flags & NDR_BUFFERS) {
   22863         818 :                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->user_info, r->level));
   22864         818 :                 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_BUFFERS, &r->user_info));
   22865             :         }
   22866         818 :         return NDR_ERR_SUCCESS;
   22867             : }
   22868             : 
   22869         830 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_UserLevelCtr(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_UserLevelCtr *r)
   22870             : {
   22871         830 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   22872         830 :         if (ndr_flags & NDR_SCALARS) {
   22873         830 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
   22874         830 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
   22875         830 :                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->user_info, r->level));
   22876         830 :                 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_SCALARS, &r->user_info));
   22877         830 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
   22878             :         }
   22879         830 :         if (ndr_flags & NDR_BUFFERS) {
   22880         830 :                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->user_info, r->level));
   22881         830 :                 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_BUFFERS, &r->user_info));
   22882             :         }
   22883         818 :         return NDR_ERR_SUCCESS;
   22884             : }
   22885             : 
   22886           0 : static void ndr_print_flags_spoolss_UserLevelCtr(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_UserLevelCtr *r)
   22887             : {
   22888           0 :         ndr_print_spoolss_UserLevelCtr(ndr, name, r);
   22889           0 : }
   22890             : 
   22891          12 : _PUBLIC_ void ndr_print_spoolss_UserLevelCtr(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevelCtr *r)
   22892             : {
   22893          12 :         ndr_print_struct(ndr, name, "spoolss_UserLevelCtr");
   22894          12 :         if (r == NULL) { ndr_print_null(ndr); return; }
   22895          12 :         ndr->depth++;
   22896          12 :         ndr_print_uint32(ndr, "level", r->level);
   22897          12 :         ndr_print_set_switch_value(ndr, &r->user_info, r->level);
   22898          12 :         ndr_print_spoolss_UserLevel(ndr, "user_info", &r->user_info);
   22899          12 :         ndr->depth--;
   22900             : }
   22901             : 
   22902         988 : static enum ndr_err_code ndr_push_spoolss_AccessRights(struct ndr_push *ndr, ndr_flags_type ndr_flags, uint32_t r)
   22903             : {
   22904         988 :         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
   22905         988 :         return NDR_ERR_SUCCESS;
   22906             : }
   22907             : 
   22908         994 : static enum ndr_err_code ndr_pull_spoolss_AccessRights(struct ndr_pull *ndr, ndr_flags_type ndr_flags, uint32_t *r)
   22909             : {
   22910           6 :         uint32_t v;
   22911         994 :         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
   22912         994 :         *r = v;
   22913         994 :         return NDR_ERR_SUCCESS;
   22914             : }
   22915             : 
   22916           6 : _PUBLIC_ void ndr_print_spoolss_AccessRights(struct ndr_print *ndr, const char *name, uint32_t r)
   22917             : {
   22918           6 :         ndr_print_uint32(ndr, name, r);
   22919           6 :         ndr->depth++;
   22920           6 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SERVER_ACCESS_ADMINISTER", SERVER_ACCESS_ADMINISTER, r);
   22921           6 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SERVER_ACCESS_ENUMERATE", SERVER_ACCESS_ENUMERATE, r);
   22922           6 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ACCESS_ADMINISTER", PRINTER_ACCESS_ADMINISTER, r);
   22923           6 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ACCESS_USE", PRINTER_ACCESS_USE, r);
   22924           6 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_ACCESS_ADMINISTER", JOB_ACCESS_ADMINISTER, r);
   22925           6 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_ACCESS_READ", JOB_ACCESS_READ, r);
   22926           6 :         ndr->depth--;
   22927           6 : }
   22928             : 
   22929       11088 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterEnumValues(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_PrinterEnumValues *r)
   22930             : {
   22931       11088 :         uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
   22932       11088 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   22933       11088 :         if (ndr_flags & NDR_SCALARS) {
   22934        5544 :                 NDR_CHECK(ndr_push_align(ndr, 5));
   22935        5544 :                 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
   22936             :                 {
   22937        5544 :                         libndr_flags _flags_save_string = ndr->flags;
   22938        5544 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   22939        5544 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->value_name));
   22940        5544 :                         ndr->flags = _flags_save_string;
   22941             :                 }
   22942        5544 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2 * strlen_m_term(r->value_name)));
   22943        5544 :                 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->type));
   22944             :                 {
   22945        5544 :                         libndr_flags _flags_save_DATA_BLOB = ndr->flags;
   22946        5544 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING|ndr_spoolss_PrinterEnumValues_align(r->type));
   22947        5544 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data));
   22948        5544 :                         ndr->flags = _flags_save_DATA_BLOB;
   22949             :                 }
   22950        5544 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->data?r->data->length:0));
   22951        5544 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
   22952             :         }
   22953       11088 :         if (ndr_flags & NDR_BUFFERS) {
   22954        5544 :                 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
   22955             :                 {
   22956        5544 :                         libndr_flags _flags_save_string = ndr->flags;
   22957        5544 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   22958        5544 :                         if (r->value_name) {
   22959        5544 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->value_name));
   22960        5544 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->value_name));
   22961        5544 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->value_name));
   22962             :                         }
   22963        5544 :                         ndr->flags = _flags_save_string;
   22964             :                 }
   22965             :                 {
   22966        5544 :                         libndr_flags _flags_save_DATA_BLOB = ndr->flags;
   22967        5544 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING|ndr_spoolss_PrinterEnumValues_align(r->type));
   22968        5544 :                         if (r->data) {
   22969        5436 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data));
   22970             :                                 {
   22971           0 :                                         struct ndr_push *_ndr_data;
   22972        5436 :                                         NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_data, 0, r->data?r->data->length:0));
   22973        5436 :                                         NDR_CHECK(ndr_push_DATA_BLOB(_ndr_data, NDR_SCALARS, *r->data));
   22974        5436 :                                         NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_data, 0, r->data?r->data->length:0));
   22975             :                                 }
   22976        5436 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data));
   22977             :                         }
   22978        5544 :                         ndr->flags = _flags_save_DATA_BLOB;
   22979             :                 }
   22980             :         }
   22981       11088 :         ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
   22982       11088 :         return NDR_ERR_SUCCESS;
   22983             : }
   22984             : 
   22985        3348 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterEnumValues(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_PrinterEnumValues *r)
   22986             : {
   22987        3348 :         uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
   22988         100 :         uint32_t _ptr_value_name;
   22989        3348 :         TALLOC_CTX *_mem_save_value_name_0 = NULL;
   22990         100 :         uint32_t _ptr_data;
   22991        3348 :         TALLOC_CTX *_mem_save_data_0 = NULL;
   22992        3348 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   22993        3348 :         if (ndr_flags & NDR_SCALARS) {
   22994        1674 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
   22995        1674 :                 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
   22996             :                 {
   22997        1674 :                         libndr_flags _flags_save_string = ndr->flags;
   22998        1674 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   22999        1674 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_value_name));
   23000        1674 :                         if (_ptr_value_name) {
   23001        1674 :                                 NDR_PULL_ALLOC(ndr, r->value_name);
   23002        1674 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->value_name, _ptr_value_name));
   23003             :                         } else {
   23004           0 :                                 r->value_name = NULL;
   23005             :                         }
   23006        1674 :                         ndr->flags = _flags_save_string;
   23007             :                 }
   23008        1674 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->value_name_len));
   23009        1674 :                 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->type));
   23010             :                 {
   23011        1674 :                         libndr_flags _flags_save_DATA_BLOB = ndr->flags;
   23012        1674 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING|ndr_spoolss_PrinterEnumValues_align(r->type));
   23013        1674 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
   23014        1674 :                         if (_ptr_data) {
   23015        1638 :                                 NDR_PULL_ALLOC(ndr, r->data);
   23016        1638 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data, _ptr_data));
   23017             :                         } else {
   23018          36 :                                 r->data = NULL;
   23019             :                         }
   23020        1674 :                         ndr->flags = _flags_save_DATA_BLOB;
   23021             :                 }
   23022        1674 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->data_length));
   23023        1674 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
   23024             :         }
   23025        3348 :         if (ndr_flags & NDR_BUFFERS) {
   23026        1674 :                 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
   23027             :                 {
   23028        1674 :                         libndr_flags _flags_save_string = ndr->flags;
   23029        1674 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   23030        1674 :                         if (r->value_name) {
   23031          50 :                                 uint32_t _relative_save_offset;
   23032        1674 :                                 _relative_save_offset = ndr->offset;
   23033        1674 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->value_name));
   23034        1674 :                                 _mem_save_value_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
   23035        1674 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->value_name, 0);
   23036        1674 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->value_name));
   23037        1674 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_name_0, 0);
   23038        1674 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   23039        1674 :                                         ndr->relative_highest_offset = ndr->offset;
   23040             :                                 }
   23041        1674 :                                 ndr->offset = _relative_save_offset;
   23042             :                         }
   23043        1674 :                         ndr->flags = _flags_save_string;
   23044             :                 }
   23045             :                 {
   23046        1674 :                         libndr_flags _flags_save_DATA_BLOB = ndr->flags;
   23047        1674 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING|ndr_spoolss_PrinterEnumValues_align(r->type));
   23048        1674 :                         if (r->data) {
   23049          50 :                                 uint32_t _relative_save_offset;
   23050        1638 :                                 _relative_save_offset = ndr->offset;
   23051        1638 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data));
   23052        1638 :                                 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
   23053        1638 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
   23054             :                                 {
   23055          50 :                                         struct ndr_pull *_ndr_data;
   23056        1638 :                                         ssize_t sub_size = r->data_length;
   23057        1638 :                                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_data, 0, sub_size));
   23058        1638 :                                         NDR_CHECK(ndr_pull_DATA_BLOB(_ndr_data, NDR_SCALARS, r->data));
   23059        1638 :                                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_data, 0, sub_size));
   23060             :                                 }
   23061        1638 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
   23062        1638 :                                 if (ndr->offset > ndr->relative_highest_offset) {
   23063        1638 :                                         ndr->relative_highest_offset = ndr->offset;
   23064             :                                 }
   23065        1638 :                                 ndr->offset = _relative_save_offset;
   23066             :                         }
   23067        1674 :                         ndr->flags = _flags_save_DATA_BLOB;
   23068             :                 }
   23069             :         }
   23070        3348 :         ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
   23071        3348 :         return NDR_ERR_SUCCESS;
   23072             : }
   23073             : 
   23074           0 : static void ndr_print_flags_spoolss_PrinterEnumValues(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_PrinterEnumValues *r)
   23075             : {
   23076           0 :         ndr_print_spoolss_PrinterEnumValues(ndr, name, r);
   23077           0 : }
   23078             : 
   23079          50 : _PUBLIC_ void ndr_print_spoolss_PrinterEnumValues(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterEnumValues *r)
   23080             : {
   23081          50 :         ndr_print_struct(ndr, name, "spoolss_PrinterEnumValues");
   23082          50 :         if (r == NULL) { ndr_print_null(ndr); return; }
   23083          50 :         ndr->depth++;
   23084             :         {
   23085          50 :                 libndr_flags _flags_save_string = ndr->flags;
   23086          50 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   23087          50 :                 ndr_print_ptr(ndr, "value_name", r->value_name);
   23088          50 :                 ndr->depth++;
   23089          50 :                 if (r->value_name) {
   23090          50 :                         ndr_print_string(ndr, "value_name", r->value_name);
   23091             :                 }
   23092          50 :                 ndr->depth--;
   23093          50 :                 ndr->flags = _flags_save_string;
   23094             :         }
   23095          50 :         ndr_print_uint32(ndr, "value_name_len", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2 * strlen_m_term(r->value_name):r->value_name_len);
   23096          50 :         ndr_print_winreg_Type(ndr, "type", r->type);
   23097             :         {
   23098          50 :                 libndr_flags _flags_save_DATA_BLOB = ndr->flags;
   23099          50 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING|ndr_spoolss_PrinterEnumValues_align(r->type));
   23100          50 :                 ndr_print_ptr(ndr, "data", r->data);
   23101          50 :                 ndr->depth++;
   23102          50 :                 if (r->data) {
   23103          50 :                         ndr_print_DATA_BLOB(ndr, "data", *r->data);
   23104             :                 }
   23105          50 :                 ndr->depth--;
   23106          50 :                 ndr->flags = _flags_save_DATA_BLOB;
   23107             :         }
   23108          50 :         ndr_print_uint32(ndr, "data_length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->data?r->data->length:0:r->data_length);
   23109          50 :         ndr->depth--;
   23110             : }
   23111             : 
   23112           0 : _PUBLIC_ size_t ndr_size_spoolss_PrinterEnumValues(const struct spoolss_PrinterEnumValues *r, libndr_flags flags)
   23113             : {
   23114           0 :         return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterEnumValues);
   23115             : }
   23116             : 
   23117        3384 : static enum ndr_err_code ndr_push_spoolss_KeyNames(struct ndr_push *ndr, ndr_flags_type ndr_flags, const union spoolss_KeyNames *r)
   23118             : {
   23119           0 :         uint32_t level;
   23120        3384 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   23121        3384 :         if (ndr_flags & NDR_SCALARS) {
   23122             :                 /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
   23123        3384 :                 NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
   23124        3384 :                 NDR_CHECK(ndr_push_union_align(ndr, 4));
   23125        3384 :                 switch (level) {
   23126         340 :                         case 0: {
   23127         340 :                         break; }
   23128             : 
   23129         328 :                         case 1: {
   23130         328 :                         break; }
   23131             : 
   23132        2716 :                         default: {
   23133             :                                 {
   23134        2716 :                                         libndr_flags _flags_save_string_array = ndr->flags;
   23135        2716 :                                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   23136        2716 :                                         NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->string_array));
   23137        2716 :                                         ndr->flags = _flags_save_string_array;
   23138             :                                 }
   23139        2716 :                         break; }
   23140             : 
   23141             :                 }
   23142             :         }
   23143        3384 :         return NDR_ERR_SUCCESS;
   23144             : }
   23145             : 
   23146        3388 : static enum ndr_err_code ndr_pull_spoolss_KeyNames(struct ndr_pull *ndr, ndr_flags_type ndr_flags, union spoolss_KeyNames *r)
   23147             : {
   23148           4 :         uint32_t level;
   23149        3388 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   23150        3388 :         if (ndr_flags & NDR_SCALARS) {
   23151             :                 /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
   23152        3388 :                 NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
   23153        3388 :                 NDR_CHECK(ndr_pull_union_align(ndr, 4));
   23154        3388 :                 switch (level) {
   23155         340 :                         case 0: {
   23156         340 :                         break; }
   23157             : 
   23158         328 :                         case 1: {
   23159         328 :                         break; }
   23160             : 
   23161        2716 :                         default: {
   23162             :                                 {
   23163        2716 :                                         libndr_flags _flags_save_string_array = ndr->flags;
   23164        2716 :                                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   23165        2716 :                                         NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->string_array));
   23166        2716 :                                         ndr->flags = _flags_save_string_array;
   23167             :                                 }
   23168        2716 :                         break; }
   23169             : 
   23170             :                 }
   23171             :         }
   23172        3384 :         return NDR_ERR_SUCCESS;
   23173             : }
   23174             : 
   23175           4 : _PUBLIC_ void ndr_print_spoolss_KeyNames(struct ndr_print *ndr, const char *name, const union spoolss_KeyNames *r)
   23176             : {
   23177           4 :         uint32_t level;
   23178           4 :         level = ndr_print_steal_switch_value(ndr, r);
   23179           4 :         ndr_print_union(ndr, name, level, "spoolss_KeyNames");
   23180           4 :         switch (level) {
   23181           0 :                 case 0:
   23182           0 :                 break;
   23183             : 
   23184           0 :                 case 1:
   23185           0 :                 break;
   23186             : 
   23187           0 :                 default:
   23188             :                         {
   23189           0 :                                 libndr_flags _flags_save_string_array = ndr->flags;
   23190           0 :                                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   23191           0 :                                 ndr_print_string_array(ndr, "string_array", r->string_array);
   23192           0 :                                 ndr->flags = _flags_save_string_array;
   23193             :                         }
   23194           0 :                 break;
   23195             : 
   23196             :         }
   23197           4 : }
   23198             : 
   23199           0 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DeleteDriverFlags(struct ndr_push *ndr, ndr_flags_type ndr_flags, uint32_t r)
   23200             : {
   23201           0 :         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
   23202           0 :         return NDR_ERR_SUCCESS;
   23203             : }
   23204             : 
   23205           0 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DeleteDriverFlags(struct ndr_pull *ndr, ndr_flags_type ndr_flags, uint32_t *r)
   23206             : {
   23207           0 :         uint32_t v;
   23208           0 :         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
   23209           0 :         *r = v;
   23210           0 :         return NDR_ERR_SUCCESS;
   23211             : }
   23212             : 
   23213           0 : _PUBLIC_ void ndr_print_spoolss_DeleteDriverFlags(struct ndr_print *ndr, const char *name, uint32_t r)
   23214             : {
   23215           0 :         ndr_print_uint32(ndr, name, r);
   23216           0 :         ndr->depth++;
   23217           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_UNUSED_FILES", DPD_DELETE_UNUSED_FILES, r);
   23218           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_SPECIFIC_VERSION", DPD_DELETE_SPECIFIC_VERSION, r);
   23219           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_ALL_FILES", DPD_DELETE_ALL_FILES, r);
   23220           0 :         ndr->depth--;
   23221           0 : }
   23222             : 
   23223           0 : static enum ndr_err_code ndr_push_spoolss_PortProtocol(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum spoolss_PortProtocol r)
   23224             : {
   23225           0 :         NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
   23226           0 :         return NDR_ERR_SUCCESS;
   23227             : }
   23228             : 
   23229           0 : static enum ndr_err_code ndr_pull_spoolss_PortProtocol(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum spoolss_PortProtocol *r)
   23230             : {
   23231           0 :         uint32_t v;
   23232           0 :         NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
   23233           0 :         *r = v;
   23234           0 :         return NDR_ERR_SUCCESS;
   23235             : }
   23236             : 
   23237           0 : _PUBLIC_ void ndr_print_spoolss_PortProtocol(struct ndr_print *ndr, const char *name, enum spoolss_PortProtocol r)
   23238             : {
   23239           0 :         const char *val = NULL;
   23240             : 
   23241           0 :         switch (r) {
   23242           0 :                 case PROTOCOL_RAWTCP_TYPE: val = "PROTOCOL_RAWTCP_TYPE"; break;
   23243           0 :                 case PROTOCOL_LPR_TYPE: val = "PROTOCOL_LPR_TYPE"; break;
   23244             :         }
   23245           0 :         ndr_print_enum(ndr, name, "ENUM", val, r);
   23246           0 : }
   23247             : 
   23248           0 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortData1(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_PortData1 *r)
   23249             : {
   23250           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   23251           0 :         if (ndr_flags & NDR_SCALARS) {
   23252           0 :                 NDR_CHECK(ndr_push_align(ndr, 4));
   23253           0 :                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, 64, sizeof(uint16_t), CH_UTF16));
   23254           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0x00000001));
   23255           0 :                 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr, NDR_SCALARS, r->protocol));
   23256           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_PortData1(r, ndr->flags)));
   23257           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
   23258           0 :                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hostaddress, 49, sizeof(uint16_t), CH_UTF16));
   23259           0 :                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
   23260           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dblspool));
   23261           0 :                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->queue, 33, sizeof(uint16_t), CH_UTF16));
   23262           0 :                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->ip_address, 16, sizeof(uint16_t), CH_UTF16));
   23263           0 :                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_address, 13, sizeof(uint16_t), CH_UTF16));
   23264           0 :                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->device_type, 257, sizeof(uint16_t), CH_UTF16));
   23265           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_number));
   23266           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_enabled));
   23267           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_dev_index));
   23268           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
   23269             :         }
   23270           0 :         if (ndr_flags & NDR_BUFFERS) {
   23271           0 :         }
   23272           0 :         return NDR_ERR_SUCCESS;
   23273             : }
   23274             : 
   23275           0 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortData1(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_PortData1 *r)
   23276             : {
   23277           0 :         uint32_t size_portname_0 = 0;
   23278           0 :         uint32_t size_hostaddress_0 = 0;
   23279           0 :         uint32_t size_snmpcommunity_0 = 0;
   23280           0 :         uint32_t size_queue_0 = 0;
   23281           0 :         uint32_t size_ip_address_0 = 0;
   23282           0 :         uint32_t size_hardware_address_0 = 0;
   23283           0 :         uint32_t size_device_type_0 = 0;
   23284           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   23285           0 :         if (ndr_flags & NDR_SCALARS) {
   23286           0 :                 NDR_CHECK(ndr_pull_align(ndr, 4));
   23287           0 :                 size_portname_0 = 64;
   23288           0 :                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, size_portname_0, sizeof(uint16_t), CH_UTF16));
   23289           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
   23290           0 :                 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr, NDR_SCALARS, &r->protocol));
   23291           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
   23292           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
   23293           0 :                 size_hostaddress_0 = 49;
   23294           0 :                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hostaddress, size_hostaddress_0, sizeof(uint16_t), CH_UTF16));
   23295           0 :                 size_snmpcommunity_0 = 33;
   23296           0 :                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->snmpcommunity, size_snmpcommunity_0, sizeof(uint16_t), CH_UTF16));
   23297           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dblspool));
   23298           0 :                 size_queue_0 = 33;
   23299           0 :                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->queue, size_queue_0, sizeof(uint16_t), CH_UTF16));
   23300           0 :                 size_ip_address_0 = 16;
   23301           0 :                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->ip_address, size_ip_address_0, sizeof(uint16_t), CH_UTF16));
   23302           0 :                 size_hardware_address_0 = 13;
   23303           0 :                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_address, size_hardware_address_0, sizeof(uint16_t), CH_UTF16));
   23304           0 :                 size_device_type_0 = 257;
   23305           0 :                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->device_type, size_device_type_0, sizeof(uint16_t), CH_UTF16));
   23306           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_number));
   23307           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_enabled));
   23308           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_dev_index));
   23309           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
   23310             :         }
   23311           0 :         if (ndr_flags & NDR_BUFFERS) {
   23312           0 :         }
   23313           0 :         return NDR_ERR_SUCCESS;
   23314             : }
   23315             : 
   23316           0 : static void ndr_print_flags_spoolss_PortData1(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_PortData1 *r)
   23317             : {
   23318           0 :         ndr_print_spoolss_PortData1(ndr, name, r);
   23319           0 : }
   23320             : 
   23321           0 : _PUBLIC_ void ndr_print_spoolss_PortData1(struct ndr_print *ndr, const char *name, const struct spoolss_PortData1 *r)
   23322             : {
   23323           0 :         ndr_print_struct(ndr, name, "spoolss_PortData1");
   23324           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   23325           0 :         ndr->depth++;
   23326           0 :         ndr_print_string(ndr, "portname", r->portname);
   23327           0 :         ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0x00000001:r->version);
   23328           0 :         ndr_print_spoolss_PortProtocol(ndr, "protocol", r->protocol);
   23329           0 :         ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_spoolss_PortData1(r, ndr->flags):r->size);
   23330           0 :         ndr_print_uint32(ndr, "reserved", r->reserved);
   23331           0 :         ndr_print_string(ndr, "hostaddress", r->hostaddress);
   23332           0 :         ndr_print_string(ndr, "snmpcommunity", r->snmpcommunity);
   23333           0 :         ndr_print_uint32(ndr, "dblspool", r->dblspool);
   23334           0 :         ndr_print_string(ndr, "queue", r->queue);
   23335           0 :         ndr_print_string(ndr, "ip_address", r->ip_address);
   23336           0 :         ndr_print_string(ndr, "hardware_address", r->hardware_address);
   23337           0 :         ndr_print_string(ndr, "device_type", r->device_type);
   23338           0 :         ndr_print_uint32(ndr, "port_number", r->port_number);
   23339           0 :         ndr_print_uint32(ndr, "snmp_enabled", r->snmp_enabled);
   23340           0 :         ndr_print_uint32(ndr, "snmp_dev_index", r->snmp_dev_index);
   23341           0 :         ndr->depth--;
   23342             : }
   23343             : 
   23344           0 : _PUBLIC_ size_t ndr_size_spoolss_PortData1(const struct spoolss_PortData1 *r, libndr_flags flags)
   23345             : {
   23346           0 :         return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortData1);
   23347             : }
   23348             : 
   23349           0 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortData2(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_PortData2 *r)
   23350             : {
   23351           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   23352           0 :         if (ndr_flags & NDR_SCALARS) {
   23353           0 :                 NDR_CHECK(ndr_push_align(ndr, 4));
   23354           0 :                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, 64, sizeof(uint16_t), CH_UTF16));
   23355           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0x00000002));
   23356           0 :                 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr, NDR_SCALARS, r->protocol));
   23357           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_PortData2(r, ndr->flags)));
   23358           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
   23359           0 :                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hostaddress, 128, sizeof(uint16_t), CH_UTF16));
   23360           0 :                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
   23361           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dblspool));
   23362           0 :                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->queue, 33, sizeof(uint16_t), CH_UTF16));
   23363           0 :                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->device_type, 257, sizeof(uint16_t), CH_UTF16));
   23364           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_number));
   23365           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_enabled));
   23366           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_dev_index));
   23367           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_monitor_mib_index));
   23368           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
   23369             :         }
   23370           0 :         if (ndr_flags & NDR_BUFFERS) {
   23371           0 :         }
   23372           0 :         return NDR_ERR_SUCCESS;
   23373             : }
   23374             : 
   23375           0 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortData2(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_PortData2 *r)
   23376             : {
   23377           0 :         uint32_t size_portname_0 = 0;
   23378           0 :         uint32_t size_hostaddress_0 = 0;
   23379           0 :         uint32_t size_snmpcommunity_0 = 0;
   23380           0 :         uint32_t size_queue_0 = 0;
   23381           0 :         uint32_t size_device_type_0 = 0;
   23382           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   23383           0 :         if (ndr_flags & NDR_SCALARS) {
   23384           0 :                 NDR_CHECK(ndr_pull_align(ndr, 4));
   23385           0 :                 size_portname_0 = 64;
   23386           0 :                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, size_portname_0, sizeof(uint16_t), CH_UTF16));
   23387           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
   23388           0 :                 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr, NDR_SCALARS, &r->protocol));
   23389           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
   23390           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
   23391           0 :                 size_hostaddress_0 = 128;
   23392           0 :                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hostaddress, size_hostaddress_0, sizeof(uint16_t), CH_UTF16));
   23393           0 :                 size_snmpcommunity_0 = 33;
   23394           0 :                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->snmpcommunity, size_snmpcommunity_0, sizeof(uint16_t), CH_UTF16));
   23395           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dblspool));
   23396           0 :                 size_queue_0 = 33;
   23397           0 :                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->queue, size_queue_0, sizeof(uint16_t), CH_UTF16));
   23398           0 :                 size_device_type_0 = 257;
   23399           0 :                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->device_type, size_device_type_0, sizeof(uint16_t), CH_UTF16));
   23400           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_number));
   23401           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_enabled));
   23402           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_dev_index));
   23403           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_monitor_mib_index));
   23404           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
   23405             :         }
   23406           0 :         if (ndr_flags & NDR_BUFFERS) {
   23407           0 :         }
   23408           0 :         return NDR_ERR_SUCCESS;
   23409             : }
   23410             : 
   23411           0 : static void ndr_print_flags_spoolss_PortData2(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_PortData2 *r)
   23412             : {
   23413           0 :         ndr_print_spoolss_PortData2(ndr, name, r);
   23414           0 : }
   23415             : 
   23416           0 : _PUBLIC_ void ndr_print_spoolss_PortData2(struct ndr_print *ndr, const char *name, const struct spoolss_PortData2 *r)
   23417             : {
   23418           0 :         ndr_print_struct(ndr, name, "spoolss_PortData2");
   23419           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   23420           0 :         ndr->depth++;
   23421           0 :         ndr_print_string(ndr, "portname", r->portname);
   23422           0 :         ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0x00000002:r->version);
   23423           0 :         ndr_print_spoolss_PortProtocol(ndr, "protocol", r->protocol);
   23424           0 :         ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_spoolss_PortData2(r, ndr->flags):r->size);
   23425           0 :         ndr_print_uint32(ndr, "reserved", r->reserved);
   23426           0 :         ndr_print_string(ndr, "hostaddress", r->hostaddress);
   23427           0 :         ndr_print_string(ndr, "snmpcommunity", r->snmpcommunity);
   23428           0 :         ndr_print_uint32(ndr, "dblspool", r->dblspool);
   23429           0 :         ndr_print_string(ndr, "queue", r->queue);
   23430           0 :         ndr_print_string(ndr, "device_type", r->device_type);
   23431           0 :         ndr_print_uint32(ndr, "port_number", r->port_number);
   23432           0 :         ndr_print_uint32(ndr, "snmp_enabled", r->snmp_enabled);
   23433           0 :         ndr_print_uint32(ndr, "snmp_dev_index", r->snmp_dev_index);
   23434           0 :         ndr_print_uint32(ndr, "port_monitor_mib_index", r->port_monitor_mib_index);
   23435           0 :         ndr->depth--;
   23436             : }
   23437             : 
   23438           0 : _PUBLIC_ size_t ndr_size_spoolss_PortData2(const struct spoolss_PortData2 *r, libndr_flags flags)
   23439             : {
   23440           0 :         return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortData2);
   23441             : }
   23442             : 
   23443           0 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorUi(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_MonitorUi *r)
   23444             : {
   23445           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   23446           0 :         if (ndr_flags & NDR_SCALARS) {
   23447           0 :                 NDR_CHECK(ndr_push_align(ndr, 4));
   23448             :                 {
   23449           0 :                         libndr_flags _flags_save_string = ndr->flags;
   23450           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   23451           0 :                         NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->dll_name));
   23452           0 :                         ndr->flags = _flags_save_string;
   23453             :                 }
   23454           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
   23455             :         }
   23456           0 :         if (ndr_flags & NDR_BUFFERS) {
   23457           0 :         }
   23458           0 :         return NDR_ERR_SUCCESS;
   23459             : }
   23460             : 
   23461           0 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorUi(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_MonitorUi *r)
   23462             : {
   23463           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   23464           0 :         if (ndr_flags & NDR_SCALARS) {
   23465           0 :                 NDR_CHECK(ndr_pull_align(ndr, 4));
   23466             :                 {
   23467           0 :                         libndr_flags _flags_save_string = ndr->flags;
   23468           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   23469           0 :                         NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->dll_name));
   23470           0 :                         ndr->flags = _flags_save_string;
   23471             :                 }
   23472           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
   23473             :         }
   23474           0 :         if (ndr_flags & NDR_BUFFERS) {
   23475           0 :         }
   23476           0 :         return NDR_ERR_SUCCESS;
   23477             : }
   23478             : 
   23479           0 : static void ndr_print_flags_spoolss_MonitorUi(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_MonitorUi *r)
   23480             : {
   23481           0 :         ndr_print_spoolss_MonitorUi(ndr, name, r);
   23482           0 : }
   23483             : 
   23484           0 : _PUBLIC_ void ndr_print_spoolss_MonitorUi(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorUi *r)
   23485             : {
   23486           0 :         ndr_print_struct(ndr, name, "spoolss_MonitorUi");
   23487           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   23488           0 :         ndr->depth++;
   23489             :         {
   23490           0 :                 libndr_flags _flags_save_string = ndr->flags;
   23491           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
   23492           0 :                 ndr_print_string(ndr, "dll_name", r->dll_name);
   23493           0 :                 ndr->flags = _flags_save_string;
   23494             :         }
   23495           0 :         ndr->depth--;
   23496             : }
   23497             : 
   23498           0 : static enum ndr_err_code ndr_push_spoolss_AddPrinterDriverExFlags(struct ndr_push *ndr, ndr_flags_type ndr_flags, uint32_t r)
   23499             : {
   23500           0 :         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
   23501           0 :         return NDR_ERR_SUCCESS;
   23502             : }
   23503             : 
   23504           2 : static enum ndr_err_code ndr_pull_spoolss_AddPrinterDriverExFlags(struct ndr_pull *ndr, ndr_flags_type ndr_flags, uint32_t *r)
   23505             : {
   23506           2 :         uint32_t v;
   23507           2 :         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
   23508           2 :         *r = v;
   23509           2 :         return NDR_ERR_SUCCESS;
   23510             : }
   23511             : 
   23512           2 : _PUBLIC_ void ndr_print_spoolss_AddPrinterDriverExFlags(struct ndr_print *ndr, const char *name, uint32_t r)
   23513             : {
   23514           2 :         ndr_print_uint32(ndr, name, r);
   23515           2 :         ndr->depth++;
   23516           2 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_STRICT_UPGRADE", APD_STRICT_UPGRADE, r);
   23517           2 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_STRICT_DOWNGRADE", APD_STRICT_DOWNGRADE, r);
   23518           2 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_ALL_FILES", APD_COPY_ALL_FILES, r);
   23519           2 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_NEW_FILES", APD_COPY_NEW_FILES, r);
   23520           2 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_FROM_DIRECTORY", APD_COPY_FROM_DIRECTORY, r);
   23521           2 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_DONT_COPY_FILES_TO_CLUSTER", APD_DONT_COPY_FILES_TO_CLUSTER, r);
   23522           2 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_TO_ALL_SPOOLERS", APD_COPY_TO_ALL_SPOOLERS, r);
   23523           2 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_RETURN_BLOCKING_STATUS_CODE", APD_RETURN_BLOCKING_STATUS_CODE, r);
   23524           2 :         ndr->depth--;
   23525           2 : }
   23526             : 
   23527           0 : static enum ndr_err_code ndr_push_RPC_BINARY_CONTAINER(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct RPC_BINARY_CONTAINER *r)
   23528             : {
   23529           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   23530           0 :         if (ndr_flags & NDR_SCALARS) {
   23531           0 :                 NDR_CHECK(ndr_push_align(ndr, 5));
   23532           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cbBuf));
   23533           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pszString));
   23534           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
   23535             :         }
   23536           0 :         if (ndr_flags & NDR_BUFFERS) {
   23537           0 :                 if (r->pszString) {
   23538           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->cbBuf));
   23539           0 :                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->pszString, r->cbBuf));
   23540             :                 }
   23541             :         }
   23542           0 :         return NDR_ERR_SUCCESS;
   23543             : }
   23544             : 
   23545           0 : static enum ndr_err_code ndr_pull_RPC_BINARY_CONTAINER(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct RPC_BINARY_CONTAINER *r)
   23546             : {
   23547           0 :         uint32_t _ptr_pszString;
   23548           0 :         uint32_t size_pszString_1 = 0;
   23549           0 :         TALLOC_CTX *_mem_save_pszString_0 = NULL;
   23550           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   23551           0 :         if (ndr_flags & NDR_SCALARS) {
   23552           0 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
   23553           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cbBuf));
   23554           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pszString));
   23555           0 :                 if (_ptr_pszString) {
   23556           0 :                         NDR_PULL_ALLOC(ndr, r->pszString);
   23557             :                 } else {
   23558           0 :                         r->pszString = NULL;
   23559             :                 }
   23560           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
   23561             :         }
   23562           0 :         if (ndr_flags & NDR_BUFFERS) {
   23563           0 :                 if (r->pszString) {
   23564           0 :                         _mem_save_pszString_0 = NDR_PULL_GET_MEM_CTX(ndr);
   23565           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pszString, 0);
   23566           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pszString));
   23567           0 :                         NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->pszString, &size_pszString_1));
   23568           0 :                         NDR_PULL_ALLOC_N(ndr, r->pszString, size_pszString_1);
   23569           0 :                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->pszString, size_pszString_1));
   23570           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pszString_0, 0);
   23571             :                 }
   23572           0 :                 if (r->pszString) {
   23573           0 :                         NDR_CHECK(ndr_check_steal_array_size(ndr, (void*)&r->pszString, r->cbBuf));
   23574             :                 }
   23575             :         }
   23576           0 :         return NDR_ERR_SUCCESS;
   23577             : }
   23578             : 
   23579           0 : _PUBLIC_ void ndr_print_RPC_BINARY_CONTAINER(struct ndr_print *ndr, const char *name, const struct RPC_BINARY_CONTAINER *r)
   23580             : {
   23581           0 :         ndr_print_struct(ndr, name, "RPC_BINARY_CONTAINER");
   23582           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   23583           0 :         ndr->depth++;
   23584           0 :         ndr_print_uint32(ndr, "cbBuf", r->cbBuf);
   23585           0 :         ndr_print_ptr(ndr, "pszString", r->pszString);
   23586           0 :         ndr->depth++;
   23587           0 :         if (r->pszString) {
   23588           0 :                 ndr_print_array_uint8(ndr, "pszString", r->pszString, r->cbBuf);
   23589             :         }
   23590           0 :         ndr->depth--;
   23591           0 :         ndr->depth--;
   23592             : }
   23593             : 
   23594           0 : static enum ndr_err_code ndr_push_RPC_BIDI_DATA_u(struct ndr_push *ndr, ndr_flags_type ndr_flags, const union RPC_BIDI_DATA_u *r)
   23595             : {
   23596           0 :         uint32_t level;
   23597           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   23598           0 :         if (ndr_flags & NDR_SCALARS) {
   23599             :                 /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
   23600           0 :                 NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
   23601           0 :                 NDR_CHECK(ndr_push_union_align(ndr, 5));
   23602           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
   23603             :                 /* ms_union is always aligned to the largest union arm*/
   23604           0 :                 NDR_CHECK(ndr_push_align(ndr, 5));
   23605           0 :                 switch (level) {
   23606           0 :                         case BIDI_NULL: {
   23607           0 :                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bData));
   23608           0 :                         break; }
   23609             : 
   23610           0 :                         case BIDI_BOOL: {
   23611           0 :                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bData));
   23612           0 :                         break; }
   23613             : 
   23614           0 :                         case BIDI_INT: {
   23615           0 :                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->iData));
   23616           0 :                         break; }
   23617             : 
   23618           0 :                         case BIDI_STRING: {
   23619           0 :                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sData));
   23620           0 :                         break; }
   23621             : 
   23622           0 :                         case BIDI_TEXT: {
   23623           0 :                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sData));
   23624           0 :                         break; }
   23625             : 
   23626           0 :                         case BIDI_ENUM: {
   23627           0 :                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sData));
   23628           0 :                         break; }
   23629             : 
   23630           0 :                         case BIDI_BLOB: {
   23631           0 :                                 NDR_CHECK(ndr_push_RPC_BINARY_CONTAINER(ndr, NDR_SCALARS, &r->biData));
   23632           0 :                         break; }
   23633             : 
   23634           0 :                         default:
   23635           0 :                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32, level);
   23636             :                 }
   23637             :         }
   23638           0 :         if (ndr_flags & NDR_BUFFERS) {
   23639           0 :                 if (!(ndr_flags & NDR_SCALARS)) {
   23640             :                         /* We didn't get it above, and the token is not needed after this. */
   23641           0 :                         NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
   23642             :                 }
   23643           0 :                 switch (level) {
   23644           0 :                         case BIDI_NULL:
   23645           0 :                         break;
   23646             : 
   23647           0 :                         case BIDI_BOOL:
   23648           0 :                         break;
   23649             : 
   23650           0 :                         case BIDI_INT:
   23651           0 :                         break;
   23652             : 
   23653           0 :                         case BIDI_STRING:
   23654           0 :                                 if (r->sData) {
   23655           0 :                                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->sData, CH_UTF16)));
   23656           0 :                                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   23657           0 :                                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->sData, CH_UTF16)));
   23658           0 :                                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->sData, ndr_charset_length(r->sData, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   23659             :                                 }
   23660           0 :                         break;
   23661             : 
   23662           0 :                         case BIDI_TEXT:
   23663           0 :                                 if (r->sData) {
   23664           0 :                                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->sData, CH_UTF16)));
   23665           0 :                                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   23666           0 :                                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->sData, CH_UTF16)));
   23667           0 :                                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->sData, ndr_charset_length(r->sData, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   23668             :                                 }
   23669           0 :                         break;
   23670             : 
   23671           0 :                         case BIDI_ENUM:
   23672           0 :                                 if (r->sData) {
   23673           0 :                                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->sData, CH_UTF16)));
   23674           0 :                                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   23675           0 :                                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->sData, CH_UTF16)));
   23676           0 :                                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->sData, ndr_charset_length(r->sData, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   23677             :                                 }
   23678           0 :                         break;
   23679             : 
   23680           0 :                         case BIDI_BLOB:
   23681           0 :                                 NDR_CHECK(ndr_push_RPC_BINARY_CONTAINER(ndr, NDR_BUFFERS, &r->biData));
   23682           0 :                         break;
   23683             : 
   23684           0 :                         default:
   23685           0 :                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32, level);
   23686             :                 }
   23687             :         }
   23688           0 :         return NDR_ERR_SUCCESS;
   23689             : }
   23690             : 
   23691           0 : static enum ndr_err_code ndr_pull_RPC_BIDI_DATA_u(struct ndr_pull *ndr, ndr_flags_type ndr_flags, union RPC_BIDI_DATA_u *r)
   23692             : {
   23693           0 :         uint32_t level;
   23694           0 :         uint32_t _level;
   23695           0 :         TALLOC_CTX *_mem_save_sData_0 = NULL;
   23696           0 :         uint32_t _ptr_sData;
   23697           0 :         uint32_t size_sData_1 = 0;
   23698           0 :         uint32_t length_sData_1 = 0;
   23699           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   23700           0 :         if (ndr_flags & NDR_SCALARS) {
   23701             :                 /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
   23702           0 :                 NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
   23703           0 :                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
   23704           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
   23705           0 :                 if (_level != level) {
   23706           0 :                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32" for r at %s", (uint32_t)_level, __location__);
   23707             :                 }
   23708             :                 /* ms_union is always aligned to the largest union arm*/
   23709           0 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
   23710           0 :                 switch (level) {
   23711           0 :                         case BIDI_NULL: {
   23712           0 :                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bData));
   23713           0 :                         break; }
   23714             : 
   23715           0 :                         case BIDI_BOOL: {
   23716           0 :                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bData));
   23717           0 :                         break; }
   23718             : 
   23719           0 :                         case BIDI_INT: {
   23720           0 :                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->iData));
   23721           0 :                         break; }
   23722             : 
   23723           0 :                         case BIDI_STRING: {
   23724           0 :                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sData));
   23725           0 :                                 if (_ptr_sData) {
   23726           0 :                                         NDR_PULL_ALLOC(ndr, r->sData);
   23727             :                                 } else {
   23728           0 :                                         r->sData = NULL;
   23729             :                                 }
   23730           0 :                         break; }
   23731             : 
   23732           0 :                         case BIDI_TEXT: {
   23733           0 :                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sData));
   23734           0 :                                 if (_ptr_sData) {
   23735           0 :                                         NDR_PULL_ALLOC(ndr, r->sData);
   23736             :                                 } else {
   23737           0 :                                         r->sData = NULL;
   23738             :                                 }
   23739           0 :                         break; }
   23740             : 
   23741           0 :                         case BIDI_ENUM: {
   23742           0 :                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sData));
   23743           0 :                                 if (_ptr_sData) {
   23744           0 :                                         NDR_PULL_ALLOC(ndr, r->sData);
   23745             :                                 } else {
   23746           0 :                                         r->sData = NULL;
   23747             :                                 }
   23748           0 :                         break; }
   23749             : 
   23750           0 :                         case BIDI_BLOB: {
   23751           0 :                                 NDR_CHECK(ndr_pull_RPC_BINARY_CONTAINER(ndr, NDR_SCALARS, &r->biData));
   23752           0 :                         break; }
   23753             : 
   23754           0 :                         default:
   23755           0 :                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32" at %s", level, __location__);
   23756             :                 }
   23757             :         }
   23758           0 :         if (ndr_flags & NDR_BUFFERS) {
   23759           0 :                 if (!(ndr_flags & NDR_SCALARS)) {
   23760             :                         /* We didn't get it above, and the token is not needed after this. */
   23761           0 :                         NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
   23762             :                 }
   23763           0 :                 switch (level) {
   23764           0 :                         case BIDI_NULL:
   23765           0 :                         break;
   23766             : 
   23767           0 :                         case BIDI_BOOL:
   23768           0 :                         break;
   23769             : 
   23770           0 :                         case BIDI_INT:
   23771           0 :                         break;
   23772             : 
   23773           0 :                         case BIDI_STRING:
   23774           0 :                                 if (r->sData) {
   23775           0 :                                         _mem_save_sData_0 = NDR_PULL_GET_MEM_CTX(ndr);
   23776           0 :                                         NDR_PULL_SET_MEM_CTX(ndr, r->sData, 0);
   23777           0 :                                         NDR_CHECK(ndr_pull_array_size(ndr, &r->sData));
   23778           0 :                                         NDR_CHECK(ndr_pull_array_length(ndr, &r->sData));
   23779           0 :                                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->sData, &size_sData_1));
   23780           0 :                                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->sData, &length_sData_1));
   23781           0 :                                         if (length_sData_1 > size_sData_1) {
   23782           0 :                                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_sData_1, length_sData_1);
   23783             :                                         }
   23784           0 :                                         NDR_CHECK(ndr_check_string_terminator(ndr, length_sData_1, sizeof(uint16_t)));
   23785           0 :                                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->sData, length_sData_1, sizeof(uint16_t), CH_UTF16));
   23786           0 :                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sData_0, 0);
   23787             :                                 }
   23788           0 :                         break;
   23789             : 
   23790           0 :                         case BIDI_TEXT:
   23791           0 :                                 if (r->sData) {
   23792           0 :                                         _mem_save_sData_0 = NDR_PULL_GET_MEM_CTX(ndr);
   23793           0 :                                         NDR_PULL_SET_MEM_CTX(ndr, r->sData, 0);
   23794           0 :                                         NDR_CHECK(ndr_pull_array_size(ndr, &r->sData));
   23795           0 :                                         NDR_CHECK(ndr_pull_array_length(ndr, &r->sData));
   23796           0 :                                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->sData, &size_sData_1));
   23797           0 :                                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->sData, &length_sData_1));
   23798           0 :                                         if (length_sData_1 > size_sData_1) {
   23799           0 :                                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_sData_1, length_sData_1);
   23800             :                                         }
   23801           0 :                                         NDR_CHECK(ndr_check_string_terminator(ndr, length_sData_1, sizeof(uint16_t)));
   23802           0 :                                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->sData, length_sData_1, sizeof(uint16_t), CH_UTF16));
   23803           0 :                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sData_0, 0);
   23804             :                                 }
   23805           0 :                         break;
   23806             : 
   23807           0 :                         case BIDI_ENUM:
   23808           0 :                                 if (r->sData) {
   23809           0 :                                         _mem_save_sData_0 = NDR_PULL_GET_MEM_CTX(ndr);
   23810           0 :                                         NDR_PULL_SET_MEM_CTX(ndr, r->sData, 0);
   23811           0 :                                         NDR_CHECK(ndr_pull_array_size(ndr, &r->sData));
   23812           0 :                                         NDR_CHECK(ndr_pull_array_length(ndr, &r->sData));
   23813           0 :                                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->sData, &size_sData_1));
   23814           0 :                                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->sData, &length_sData_1));
   23815           0 :                                         if (length_sData_1 > size_sData_1) {
   23816           0 :                                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_sData_1, length_sData_1);
   23817             :                                         }
   23818           0 :                                         NDR_CHECK(ndr_check_string_terminator(ndr, length_sData_1, sizeof(uint16_t)));
   23819           0 :                                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->sData, length_sData_1, sizeof(uint16_t), CH_UTF16));
   23820           0 :                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sData_0, 0);
   23821             :                                 }
   23822           0 :                         break;
   23823             : 
   23824           0 :                         case BIDI_BLOB:
   23825           0 :                                 NDR_CHECK(ndr_pull_RPC_BINARY_CONTAINER(ndr, NDR_BUFFERS, &r->biData));
   23826           0 :                         break;
   23827             : 
   23828           0 :                         default:
   23829           0 :                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32" at %s", level, __location__);
   23830             :                 }
   23831             :         }
   23832           0 :         return NDR_ERR_SUCCESS;
   23833             : }
   23834             : 
   23835           0 : _PUBLIC_ void ndr_print_RPC_BIDI_DATA_u(struct ndr_print *ndr, const char *name, const union RPC_BIDI_DATA_u *r)
   23836             : {
   23837           0 :         uint32_t level;
   23838           0 :         level = ndr_print_steal_switch_value(ndr, r);
   23839           0 :         ndr_print_union(ndr, name, level, "RPC_BIDI_DATA_u");
   23840           0 :         switch (level) {
   23841           0 :                 case BIDI_NULL:
   23842           0 :                         ndr_print_uint32(ndr, "bData", r->bData);
   23843           0 :                 break;
   23844             : 
   23845           0 :                 case BIDI_BOOL:
   23846           0 :                         ndr_print_uint32(ndr, "bData", r->bData);
   23847           0 :                 break;
   23848             : 
   23849           0 :                 case BIDI_INT:
   23850           0 :                         ndr_print_uint32(ndr, "iData", r->iData);
   23851           0 :                 break;
   23852             : 
   23853           0 :                 case BIDI_STRING:
   23854           0 :                         ndr_print_ptr(ndr, "sData", r->sData);
   23855           0 :                         ndr->depth++;
   23856           0 :                         if (r->sData) {
   23857           0 :                                 ndr_print_string(ndr, "sData", r->sData);
   23858             :                         }
   23859           0 :                         ndr->depth--;
   23860           0 :                 break;
   23861             : 
   23862           0 :                 case BIDI_TEXT:
   23863           0 :                         ndr_print_ptr(ndr, "sData", r->sData);
   23864           0 :                         ndr->depth++;
   23865           0 :                         if (r->sData) {
   23866           0 :                                 ndr_print_string(ndr, "sData", r->sData);
   23867             :                         }
   23868           0 :                         ndr->depth--;
   23869           0 :                 break;
   23870             : 
   23871           0 :                 case BIDI_ENUM:
   23872           0 :                         ndr_print_ptr(ndr, "sData", r->sData);
   23873           0 :                         ndr->depth++;
   23874           0 :                         if (r->sData) {
   23875           0 :                                 ndr_print_string(ndr, "sData", r->sData);
   23876             :                         }
   23877           0 :                         ndr->depth--;
   23878           0 :                 break;
   23879             : 
   23880           0 :                 case BIDI_BLOB:
   23881           0 :                         ndr_print_RPC_BINARY_CONTAINER(ndr, "biData", &r->biData);
   23882           0 :                 break;
   23883             : 
   23884           0 :                 default:
   23885           0 :                         ndr_print_bad_level(ndr, name, level);
   23886             :         }
   23887           0 : }
   23888             : 
   23889           0 : static enum ndr_err_code ndr_push_RPC_BIDI_DATA(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct RPC_BIDI_DATA *r)
   23890             : {
   23891           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   23892           0 :         if (ndr_flags & NDR_SCALARS) {
   23893           0 :                 NDR_CHECK(ndr_push_align(ndr, 5));
   23894           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwBidiType));
   23895           0 :                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->u, r->dwBidiType));
   23896           0 :                 NDR_CHECK(ndr_push_RPC_BIDI_DATA_u(ndr, NDR_SCALARS, &r->u));
   23897           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
   23898             :         }
   23899           0 :         if (ndr_flags & NDR_BUFFERS) {
   23900           0 :                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->u, r->dwBidiType));
   23901           0 :                 NDR_CHECK(ndr_push_RPC_BIDI_DATA_u(ndr, NDR_BUFFERS, &r->u));
   23902             :         }
   23903           0 :         return NDR_ERR_SUCCESS;
   23904             : }
   23905             : 
   23906           0 : static enum ndr_err_code ndr_pull_RPC_BIDI_DATA(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct RPC_BIDI_DATA *r)
   23907             : {
   23908           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   23909           0 :         if (ndr_flags & NDR_SCALARS) {
   23910           0 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
   23911           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwBidiType));
   23912           0 :                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->u, r->dwBidiType));
   23913           0 :                 NDR_CHECK(ndr_pull_RPC_BIDI_DATA_u(ndr, NDR_SCALARS, &r->u));
   23914           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
   23915             :         }
   23916           0 :         if (ndr_flags & NDR_BUFFERS) {
   23917           0 :                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->u, r->dwBidiType));
   23918           0 :                 NDR_CHECK(ndr_pull_RPC_BIDI_DATA_u(ndr, NDR_BUFFERS, &r->u));
   23919             :         }
   23920           0 :         return NDR_ERR_SUCCESS;
   23921             : }
   23922             : 
   23923           0 : _PUBLIC_ void ndr_print_RPC_BIDI_DATA(struct ndr_print *ndr, const char *name, const struct RPC_BIDI_DATA *r)
   23924             : {
   23925           0 :         ndr_print_struct(ndr, name, "RPC_BIDI_DATA");
   23926           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   23927           0 :         ndr->depth++;
   23928           0 :         ndr_print_uint32(ndr, "dwBidiType", r->dwBidiType);
   23929           0 :         ndr_print_set_switch_value(ndr, &r->u, r->dwBidiType);
   23930           0 :         ndr_print_RPC_BIDI_DATA_u(ndr, "u", &r->u);
   23931           0 :         ndr->depth--;
   23932             : }
   23933             : 
   23934           0 : static enum ndr_err_code ndr_push_RPC_BIDI_REQUEST_DATA(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct RPC_BIDI_REQUEST_DATA *r)
   23935             : {
   23936           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   23937           0 :         if (ndr_flags & NDR_SCALARS) {
   23938           0 :                 NDR_CHECK(ndr_push_align(ndr, 5));
   23939           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwReqNumber));
   23940           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pSchema));
   23941           0 :                 NDR_CHECK(ndr_push_RPC_BIDI_DATA(ndr, NDR_SCALARS, &r->data));
   23942           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
   23943             :         }
   23944           0 :         if (ndr_flags & NDR_BUFFERS) {
   23945           0 :                 if (r->pSchema) {
   23946           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pSchema, CH_UTF16)));
   23947           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   23948           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pSchema, CH_UTF16)));
   23949           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pSchema, ndr_charset_length(r->pSchema, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   23950             :                 }
   23951           0 :                 NDR_CHECK(ndr_push_RPC_BIDI_DATA(ndr, NDR_BUFFERS, &r->data));
   23952             :         }
   23953           0 :         return NDR_ERR_SUCCESS;
   23954             : }
   23955             : 
   23956           0 : static enum ndr_err_code ndr_pull_RPC_BIDI_REQUEST_DATA(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct RPC_BIDI_REQUEST_DATA *r)
   23957             : {
   23958           0 :         uint32_t _ptr_pSchema;
   23959           0 :         uint32_t size_pSchema_1 = 0;
   23960           0 :         uint32_t length_pSchema_1 = 0;
   23961           0 :         TALLOC_CTX *_mem_save_pSchema_0 = NULL;
   23962           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   23963           0 :         if (ndr_flags & NDR_SCALARS) {
   23964           0 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
   23965           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwReqNumber));
   23966           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pSchema));
   23967           0 :                 if (_ptr_pSchema) {
   23968           0 :                         NDR_PULL_ALLOC(ndr, r->pSchema);
   23969             :                 } else {
   23970           0 :                         r->pSchema = NULL;
   23971             :                 }
   23972           0 :                 NDR_CHECK(ndr_pull_RPC_BIDI_DATA(ndr, NDR_SCALARS, &r->data));
   23973           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
   23974             :         }
   23975           0 :         if (ndr_flags & NDR_BUFFERS) {
   23976           0 :                 if (r->pSchema) {
   23977           0 :                         _mem_save_pSchema_0 = NDR_PULL_GET_MEM_CTX(ndr);
   23978           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pSchema, 0);
   23979           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pSchema));
   23980           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->pSchema));
   23981           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pSchema, &size_pSchema_1));
   23982           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pSchema, &length_pSchema_1));
   23983           0 :                         if (length_pSchema_1 > size_pSchema_1) {
   23984           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_pSchema_1, length_pSchema_1);
   23985             :                         }
   23986           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pSchema_1, sizeof(uint16_t)));
   23987           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pSchema, length_pSchema_1, sizeof(uint16_t), CH_UTF16));
   23988           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pSchema_0, 0);
   23989             :                 }
   23990           0 :                 NDR_CHECK(ndr_pull_RPC_BIDI_DATA(ndr, NDR_BUFFERS, &r->data));
   23991             :         }
   23992           0 :         return NDR_ERR_SUCCESS;
   23993             : }
   23994             : 
   23995           0 : _PUBLIC_ void ndr_print_RPC_BIDI_REQUEST_DATA(struct ndr_print *ndr, const char *name, const struct RPC_BIDI_REQUEST_DATA *r)
   23996             : {
   23997           0 :         ndr_print_struct(ndr, name, "RPC_BIDI_REQUEST_DATA");
   23998           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   23999           0 :         ndr->depth++;
   24000           0 :         ndr_print_uint32(ndr, "dwReqNumber", r->dwReqNumber);
   24001           0 :         ndr_print_ptr(ndr, "pSchema", r->pSchema);
   24002           0 :         ndr->depth++;
   24003           0 :         if (r->pSchema) {
   24004           0 :                 ndr_print_string(ndr, "pSchema", r->pSchema);
   24005             :         }
   24006           0 :         ndr->depth--;
   24007           0 :         ndr_print_RPC_BIDI_DATA(ndr, "data", &r->data);
   24008           0 :         ndr->depth--;
   24009             : }
   24010             : 
   24011           0 : _PUBLIC_ enum ndr_err_code ndr_push_RPC_BIDI_REQUEST_CONTAINER(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct RPC_BIDI_REQUEST_CONTAINER *r)
   24012             : {
   24013           0 :         uint32_t cntr_aData_0;
   24014           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   24015           0 :         if (ndr_flags & NDR_SCALARS) {
   24016           0 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->Count));
   24017           0 :                 NDR_CHECK(ndr_push_align(ndr, 5));
   24018           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 1));
   24019           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->Flags));
   24020           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->Count));
   24021           0 :                 for (cntr_aData_0 = 0; cntr_aData_0 < (r->Count); cntr_aData_0++) {
   24022           0 :                         NDR_CHECK(ndr_push_unique_ptr(ndr, r->aData[cntr_aData_0]));
   24023             :                 }
   24024           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
   24025             :         }
   24026           0 :         if (ndr_flags & NDR_BUFFERS) {
   24027           0 :                 for (cntr_aData_0 = 0; cntr_aData_0 < (r->Count); cntr_aData_0++) {
   24028           0 :                         if (r->aData[cntr_aData_0]) {
   24029           0 :                                 NDR_CHECK(ndr_push_RPC_BIDI_REQUEST_DATA(ndr, NDR_SCALARS|NDR_BUFFERS, r->aData[cntr_aData_0]));
   24030             :                         }
   24031             :                 }
   24032             :         }
   24033           0 :         return NDR_ERR_SUCCESS;
   24034             : }
   24035             : 
   24036           0 : _PUBLIC_ enum ndr_err_code ndr_pull_RPC_BIDI_REQUEST_CONTAINER(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct RPC_BIDI_REQUEST_CONTAINER *r)
   24037             : {
   24038           0 :         uint32_t _ptr_aData;
   24039           0 :         uint32_t size_aData_0 = 0;
   24040           0 :         uint32_t cntr_aData_0;
   24041           0 :         TALLOC_CTX *_mem_save_aData_0 = NULL;
   24042           0 :         TALLOC_CTX *_mem_save_aData_1 = NULL;
   24043           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   24044           0 :         if (ndr_flags & NDR_SCALARS) {
   24045           0 :                 NDR_CHECK(ndr_pull_array_size(ndr, &r->aData));
   24046           0 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
   24047           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->Version));
   24048           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->Flags));
   24049           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->Count));
   24050           0 :                 NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->aData, &size_aData_0));
   24051           0 :                 NDR_PULL_ALLOC_N(ndr, r->aData, size_aData_0);
   24052           0 :                 _mem_save_aData_0 = NDR_PULL_GET_MEM_CTX(ndr);
   24053           0 :                 NDR_PULL_SET_MEM_CTX(ndr, r->aData, 0);
   24054           0 :                 for (cntr_aData_0 = 0; cntr_aData_0 < (size_aData_0); cntr_aData_0++) {
   24055           0 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_aData));
   24056           0 :                         if (_ptr_aData) {
   24057           0 :                                 NDR_PULL_ALLOC(ndr, r->aData[cntr_aData_0]);
   24058             :                         } else {
   24059           0 :                                 r->aData[cntr_aData_0] = NULL;
   24060             :                         }
   24061             :                 }
   24062           0 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_aData_0, 0);
   24063           0 :                 if (r->aData) {
   24064           0 :                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->aData, r->Count));
   24065             :                 }
   24066           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
   24067             :         }
   24068           0 :         if (ndr_flags & NDR_BUFFERS) {
   24069           0 :                 NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->aData, &size_aData_0));
   24070           0 :                 _mem_save_aData_0 = NDR_PULL_GET_MEM_CTX(ndr);
   24071           0 :                 NDR_PULL_SET_MEM_CTX(ndr, r->aData, 0);
   24072           0 :                 for (cntr_aData_0 = 0; cntr_aData_0 < (size_aData_0); cntr_aData_0++) {
   24073           0 :                         if (r->aData[cntr_aData_0]) {
   24074           0 :                                 _mem_save_aData_1 = NDR_PULL_GET_MEM_CTX(ndr);
   24075           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->aData[cntr_aData_0], 0);
   24076           0 :                                 NDR_CHECK(ndr_pull_RPC_BIDI_REQUEST_DATA(ndr, NDR_SCALARS|NDR_BUFFERS, r->aData[cntr_aData_0]));
   24077           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_aData_1, 0);
   24078             :                         }
   24079             :                 }
   24080           0 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_aData_0, 0);
   24081           0 :                 for (cntr_aData_0 = 0; cntr_aData_0 < (size_aData_0); cntr_aData_0++) {
   24082             :                 }
   24083             :         }
   24084           0 :         return NDR_ERR_SUCCESS;
   24085             : }
   24086             : 
   24087           0 : static void ndr_print_flags_RPC_BIDI_REQUEST_CONTAINER(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct RPC_BIDI_REQUEST_CONTAINER *r)
   24088             : {
   24089           0 :         ndr_print_RPC_BIDI_REQUEST_CONTAINER(ndr, name, r);
   24090           0 : }
   24091             : 
   24092           0 : _PUBLIC_ void ndr_print_RPC_BIDI_REQUEST_CONTAINER(struct ndr_print *ndr, const char *name, const struct RPC_BIDI_REQUEST_CONTAINER *r)
   24093             : {
   24094           0 :         uint32_t cntr_aData_0;
   24095           0 :         ndr_print_struct(ndr, name, "RPC_BIDI_REQUEST_CONTAINER");
   24096           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   24097           0 :         ndr->depth++;
   24098           0 :         ndr_print_uint32(ndr, "Version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?1:r->Version);
   24099           0 :         ndr_print_uint32(ndr, "Flags", r->Flags);
   24100           0 :         ndr_print_uint32(ndr, "Count", r->Count);
   24101           0 :         ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "aData", (uint32_t)(r->Count));
   24102           0 :         ndr->depth++;
   24103           0 :         for (cntr_aData_0 = 0; cntr_aData_0 < (r->Count); cntr_aData_0++) {
   24104           0 :                 ndr_print_ptr(ndr, "aData", r->aData[cntr_aData_0]);
   24105           0 :                 ndr->depth++;
   24106           0 :                 if (r->aData[cntr_aData_0]) {
   24107           0 :                         ndr_print_RPC_BIDI_REQUEST_DATA(ndr, "aData", r->aData[cntr_aData_0]);
   24108             :                 }
   24109           0 :                 ndr->depth--;
   24110             :         }
   24111           0 :         ndr->depth--;
   24112           0 :         ndr->depth--;
   24113             : }
   24114             : 
   24115           0 : static enum ndr_err_code ndr_push_RPC_BIDI_RESPONSE_DATA(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct RPC_BIDI_RESPONSE_DATA *r)
   24116             : {
   24117           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   24118           0 :         if (ndr_flags & NDR_SCALARS) {
   24119           0 :                 NDR_CHECK(ndr_push_align(ndr, 5));
   24120           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwResult));
   24121           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwReqNumber));
   24122           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pSchema));
   24123           0 :                 NDR_CHECK(ndr_push_RPC_BIDI_DATA(ndr, NDR_SCALARS, &r->data));
   24124           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
   24125             :         }
   24126           0 :         if (ndr_flags & NDR_BUFFERS) {
   24127           0 :                 if (r->pSchema) {
   24128           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pSchema, CH_UTF16)));
   24129           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   24130           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pSchema, CH_UTF16)));
   24131           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pSchema, ndr_charset_length(r->pSchema, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   24132             :                 }
   24133           0 :                 NDR_CHECK(ndr_push_RPC_BIDI_DATA(ndr, NDR_BUFFERS, &r->data));
   24134             :         }
   24135           0 :         return NDR_ERR_SUCCESS;
   24136             : }
   24137             : 
   24138           0 : static enum ndr_err_code ndr_pull_RPC_BIDI_RESPONSE_DATA(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct RPC_BIDI_RESPONSE_DATA *r)
   24139             : {
   24140           0 :         uint32_t _ptr_pSchema;
   24141           0 :         uint32_t size_pSchema_1 = 0;
   24142           0 :         uint32_t length_pSchema_1 = 0;
   24143           0 :         TALLOC_CTX *_mem_save_pSchema_0 = NULL;
   24144           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   24145           0 :         if (ndr_flags & NDR_SCALARS) {
   24146           0 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
   24147           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwResult));
   24148           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwReqNumber));
   24149           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pSchema));
   24150           0 :                 if (_ptr_pSchema) {
   24151           0 :                         NDR_PULL_ALLOC(ndr, r->pSchema);
   24152             :                 } else {
   24153           0 :                         r->pSchema = NULL;
   24154             :                 }
   24155           0 :                 NDR_CHECK(ndr_pull_RPC_BIDI_DATA(ndr, NDR_SCALARS, &r->data));
   24156           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
   24157             :         }
   24158           0 :         if (ndr_flags & NDR_BUFFERS) {
   24159           0 :                 if (r->pSchema) {
   24160           0 :                         _mem_save_pSchema_0 = NDR_PULL_GET_MEM_CTX(ndr);
   24161           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pSchema, 0);
   24162           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pSchema));
   24163           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->pSchema));
   24164           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pSchema, &size_pSchema_1));
   24165           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pSchema, &length_pSchema_1));
   24166           0 :                         if (length_pSchema_1 > size_pSchema_1) {
   24167           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_pSchema_1, length_pSchema_1);
   24168             :                         }
   24169           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pSchema_1, sizeof(uint16_t)));
   24170           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pSchema, length_pSchema_1, sizeof(uint16_t), CH_UTF16));
   24171           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pSchema_0, 0);
   24172             :                 }
   24173           0 :                 NDR_CHECK(ndr_pull_RPC_BIDI_DATA(ndr, NDR_BUFFERS, &r->data));
   24174             :         }
   24175           0 :         return NDR_ERR_SUCCESS;
   24176             : }
   24177             : 
   24178           0 : _PUBLIC_ void ndr_print_RPC_BIDI_RESPONSE_DATA(struct ndr_print *ndr, const char *name, const struct RPC_BIDI_RESPONSE_DATA *r)
   24179             : {
   24180           0 :         ndr_print_struct(ndr, name, "RPC_BIDI_RESPONSE_DATA");
   24181           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   24182           0 :         ndr->depth++;
   24183           0 :         ndr_print_uint32(ndr, "dwResult", r->dwResult);
   24184           0 :         ndr_print_uint32(ndr, "dwReqNumber", r->dwReqNumber);
   24185           0 :         ndr_print_ptr(ndr, "pSchema", r->pSchema);
   24186           0 :         ndr->depth++;
   24187           0 :         if (r->pSchema) {
   24188           0 :                 ndr_print_string(ndr, "pSchema", r->pSchema);
   24189             :         }
   24190           0 :         ndr->depth--;
   24191           0 :         ndr_print_RPC_BIDI_DATA(ndr, "data", &r->data);
   24192           0 :         ndr->depth--;
   24193             : }
   24194             : 
   24195           0 : _PUBLIC_ enum ndr_err_code ndr_push_RPC_BIDI_RESPONSE_CONTAINER(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct RPC_BIDI_RESPONSE_CONTAINER *r)
   24196             : {
   24197           0 :         uint32_t cntr_aData_0;
   24198           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   24199           0 :         if (ndr_flags & NDR_SCALARS) {
   24200           0 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->Count));
   24201           0 :                 NDR_CHECK(ndr_push_align(ndr, 5));
   24202           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 1));
   24203           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->Flags));
   24204           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->Count));
   24205           0 :                 for (cntr_aData_0 = 0; cntr_aData_0 < (r->Count); cntr_aData_0++) {
   24206           0 :                         NDR_CHECK(ndr_push_unique_ptr(ndr, r->aData[cntr_aData_0]));
   24207             :                 }
   24208           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
   24209             :         }
   24210           0 :         if (ndr_flags & NDR_BUFFERS) {
   24211           0 :                 for (cntr_aData_0 = 0; cntr_aData_0 < (r->Count); cntr_aData_0++) {
   24212           0 :                         if (r->aData[cntr_aData_0]) {
   24213           0 :                                 NDR_CHECK(ndr_push_RPC_BIDI_RESPONSE_DATA(ndr, NDR_SCALARS|NDR_BUFFERS, r->aData[cntr_aData_0]));
   24214             :                         }
   24215             :                 }
   24216             :         }
   24217           0 :         return NDR_ERR_SUCCESS;
   24218             : }
   24219             : 
   24220           0 : _PUBLIC_ enum ndr_err_code ndr_pull_RPC_BIDI_RESPONSE_CONTAINER(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct RPC_BIDI_RESPONSE_CONTAINER *r)
   24221             : {
   24222           0 :         uint32_t _ptr_aData;
   24223           0 :         uint32_t size_aData_0 = 0;
   24224           0 :         uint32_t cntr_aData_0;
   24225           0 :         TALLOC_CTX *_mem_save_aData_0 = NULL;
   24226           0 :         TALLOC_CTX *_mem_save_aData_1 = NULL;
   24227           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   24228           0 :         if (ndr_flags & NDR_SCALARS) {
   24229           0 :                 NDR_CHECK(ndr_pull_array_size(ndr, &r->aData));
   24230           0 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
   24231           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->Version));
   24232           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->Flags));
   24233           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->Count));
   24234           0 :                 NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->aData, &size_aData_0));
   24235           0 :                 NDR_PULL_ALLOC_N(ndr, r->aData, size_aData_0);
   24236           0 :                 _mem_save_aData_0 = NDR_PULL_GET_MEM_CTX(ndr);
   24237           0 :                 NDR_PULL_SET_MEM_CTX(ndr, r->aData, 0);
   24238           0 :                 for (cntr_aData_0 = 0; cntr_aData_0 < (size_aData_0); cntr_aData_0++) {
   24239           0 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_aData));
   24240           0 :                         if (_ptr_aData) {
   24241           0 :                                 NDR_PULL_ALLOC(ndr, r->aData[cntr_aData_0]);
   24242             :                         } else {
   24243           0 :                                 r->aData[cntr_aData_0] = NULL;
   24244             :                         }
   24245             :                 }
   24246           0 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_aData_0, 0);
   24247           0 :                 if (r->aData) {
   24248           0 :                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->aData, r->Count));
   24249             :                 }
   24250           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
   24251             :         }
   24252           0 :         if (ndr_flags & NDR_BUFFERS) {
   24253           0 :                 NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->aData, &size_aData_0));
   24254           0 :                 _mem_save_aData_0 = NDR_PULL_GET_MEM_CTX(ndr);
   24255           0 :                 NDR_PULL_SET_MEM_CTX(ndr, r->aData, 0);
   24256           0 :                 for (cntr_aData_0 = 0; cntr_aData_0 < (size_aData_0); cntr_aData_0++) {
   24257           0 :                         if (r->aData[cntr_aData_0]) {
   24258           0 :                                 _mem_save_aData_1 = NDR_PULL_GET_MEM_CTX(ndr);
   24259           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->aData[cntr_aData_0], 0);
   24260           0 :                                 NDR_CHECK(ndr_pull_RPC_BIDI_RESPONSE_DATA(ndr, NDR_SCALARS|NDR_BUFFERS, r->aData[cntr_aData_0]));
   24261           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_aData_1, 0);
   24262             :                         }
   24263             :                 }
   24264           0 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_aData_0, 0);
   24265           0 :                 for (cntr_aData_0 = 0; cntr_aData_0 < (size_aData_0); cntr_aData_0++) {
   24266             :                 }
   24267             :         }
   24268           0 :         return NDR_ERR_SUCCESS;
   24269             : }
   24270             : 
   24271           0 : static void ndr_print_flags_RPC_BIDI_RESPONSE_CONTAINER(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct RPC_BIDI_RESPONSE_CONTAINER *r)
   24272             : {
   24273           0 :         ndr_print_RPC_BIDI_RESPONSE_CONTAINER(ndr, name, r);
   24274           0 : }
   24275             : 
   24276           0 : _PUBLIC_ void ndr_print_RPC_BIDI_RESPONSE_CONTAINER(struct ndr_print *ndr, const char *name, const struct RPC_BIDI_RESPONSE_CONTAINER *r)
   24277             : {
   24278           0 :         uint32_t cntr_aData_0;
   24279           0 :         ndr_print_struct(ndr, name, "RPC_BIDI_RESPONSE_CONTAINER");
   24280           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   24281           0 :         ndr->depth++;
   24282           0 :         ndr_print_uint32(ndr, "Version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?1:r->Version);
   24283           0 :         ndr_print_uint32(ndr, "Flags", r->Flags);
   24284           0 :         ndr_print_uint32(ndr, "Count", r->Count);
   24285           0 :         ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "aData", (uint32_t)(r->Count));
   24286           0 :         ndr->depth++;
   24287           0 :         for (cntr_aData_0 = 0; cntr_aData_0 < (r->Count); cntr_aData_0++) {
   24288           0 :                 ndr_print_ptr(ndr, "aData", r->aData[cntr_aData_0]);
   24289           0 :                 ndr->depth++;
   24290           0 :                 if (r->aData[cntr_aData_0]) {
   24291           0 :                         ndr_print_RPC_BIDI_RESPONSE_DATA(ndr, "aData", r->aData[cntr_aData_0]);
   24292             :                 }
   24293           0 :                 ndr->depth--;
   24294             :         }
   24295           0 :         ndr->depth--;
   24296           0 :         ndr->depth--;
   24297             : }
   24298             : 
   24299           0 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_CorePrinterDriver(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_CorePrinterDriver *r)
   24300             : {
   24301           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   24302           0 :         if (ndr_flags & NDR_SCALARS) {
   24303           0 :                 NDR_CHECK(ndr_push_align(ndr, 8));
   24304           0 :                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->core_driver_guid));
   24305           0 :                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
   24306           0 :                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
   24307           0 :                 NDR_CHECK(ndr_push_charset_to_null(ndr, NDR_SCALARS, r->szPackageID, 260, sizeof(uint16_t), CH_UTF16));
   24308           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
   24309             :         }
   24310           0 :         if (ndr_flags & NDR_BUFFERS) {
   24311           0 :         }
   24312           0 :         return NDR_ERR_SUCCESS;
   24313             : }
   24314             : 
   24315           8 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_CorePrinterDriver(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_CorePrinterDriver *r)
   24316             : {
   24317           8 :         uint32_t size_szPackageID_0 = 0;
   24318           8 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   24319           8 :         if (ndr_flags & NDR_SCALARS) {
   24320           8 :                 NDR_CHECK(ndr_pull_align(ndr, 8));
   24321           8 :                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->core_driver_guid));
   24322           8 :                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
   24323           8 :                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
   24324           8 :                 size_szPackageID_0 = 260;
   24325           8 :                 NDR_CHECK(ndr_pull_charset_to_null(ndr, NDR_SCALARS, &r->szPackageID, size_szPackageID_0, sizeof(uint16_t), CH_UTF16));
   24326           8 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
   24327             :         }
   24328           8 :         if (ndr_flags & NDR_BUFFERS) {
   24329           8 :         }
   24330           8 :         return NDR_ERR_SUCCESS;
   24331             : }
   24332             : 
   24333           0 : static void ndr_print_flags_spoolss_CorePrinterDriver(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_CorePrinterDriver *r)
   24334             : {
   24335           0 :         ndr_print_spoolss_CorePrinterDriver(ndr, name, r);
   24336           0 : }
   24337             : 
   24338           8 : _PUBLIC_ void ndr_print_spoolss_CorePrinterDriver(struct ndr_print *ndr, const char *name, const struct spoolss_CorePrinterDriver *r)
   24339             : {
   24340           8 :         ndr_print_struct(ndr, name, "spoolss_CorePrinterDriver");
   24341           8 :         if (r == NULL) { ndr_print_null(ndr); return; }
   24342           8 :         ndr->depth++;
   24343           8 :         ndr_print_GUID(ndr, "core_driver_guid", &r->core_driver_guid);
   24344           8 :         ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
   24345           8 :         ndr_print_hyper(ndr, "driver_version", r->driver_version);
   24346           8 :         ndr_print_string(ndr, "szPackageID", r->szPackageID);
   24347           8 :         ndr->depth--;
   24348             : }
   24349             : 
   24350           0 : static enum ndr_err_code ndr_push_spoolss_EPrintPropertyType(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum spoolss_EPrintPropertyType r)
   24351             : {
   24352           0 :         NDR_CHECK(ndr_push_enum_uint1632(ndr, NDR_SCALARS, r));
   24353           0 :         return NDR_ERR_SUCCESS;
   24354             : }
   24355             : 
   24356           4 : static enum ndr_err_code ndr_pull_spoolss_EPrintPropertyType(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum spoolss_EPrintPropertyType *r)
   24357             : {
   24358           4 :         uint16_t v;
   24359           4 :         NDR_CHECK(ndr_pull_enum_uint1632(ndr, NDR_SCALARS, &v));
   24360           4 :         *r = v;
   24361           4 :         return NDR_ERR_SUCCESS;
   24362             : }
   24363             : 
   24364           4 : _PUBLIC_ void ndr_print_spoolss_EPrintPropertyType(struct ndr_print *ndr, const char *name, enum spoolss_EPrintPropertyType r)
   24365             : {
   24366           4 :         const char *val = NULL;
   24367             : 
   24368           4 :         switch (r) {
   24369           4 :                 case kRpcPropertyTypeString: val = "kRpcPropertyTypeString"; break;
   24370           0 :                 case kRpcPropertyTypeInt32: val = "kRpcPropertyTypeInt32"; break;
   24371           0 :                 case kRpcPropertyTypeInt64: val = "kRpcPropertyTypeInt64"; break;
   24372           0 :                 case kRpcPropertyTypeByte: val = "kRpcPropertyTypeByte"; break;
   24373           0 :                 case kRpcPropertyTypeBuffer: val = "kRpcPropertyTypeBuffer"; break;
   24374             :         }
   24375           4 :         ndr_print_enum(ndr, name, "ENUM", val, r);
   24376           4 : }
   24377             : 
   24378           0 : static enum ndr_err_code ndr_push_propertyBlob(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct propertyBlob *r)
   24379             : {
   24380           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   24381           0 :         if (ndr_flags & NDR_SCALARS) {
   24382           0 :                 NDR_CHECK(ndr_push_align(ndr, 5));
   24383           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cbBuf));
   24384           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pBuf));
   24385           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
   24386             :         }
   24387           0 :         if (ndr_flags & NDR_BUFFERS) {
   24388           0 :                 if (r->pBuf) {
   24389           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->cbBuf));
   24390           0 :                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->pBuf, r->cbBuf));
   24391             :                 }
   24392             :         }
   24393           0 :         return NDR_ERR_SUCCESS;
   24394             : }
   24395             : 
   24396           0 : static enum ndr_err_code ndr_pull_propertyBlob(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct propertyBlob *r)
   24397             : {
   24398           0 :         uint32_t _ptr_pBuf;
   24399           0 :         uint32_t size_pBuf_1 = 0;
   24400           0 :         TALLOC_CTX *_mem_save_pBuf_0 = NULL;
   24401           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   24402           0 :         if (ndr_flags & NDR_SCALARS) {
   24403           0 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
   24404           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cbBuf));
   24405           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pBuf));
   24406           0 :                 if (_ptr_pBuf) {
   24407           0 :                         NDR_PULL_ALLOC(ndr, r->pBuf);
   24408             :                 } else {
   24409           0 :                         r->pBuf = NULL;
   24410             :                 }
   24411           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
   24412             :         }
   24413           0 :         if (ndr_flags & NDR_BUFFERS) {
   24414           0 :                 if (r->pBuf) {
   24415           0 :                         _mem_save_pBuf_0 = NDR_PULL_GET_MEM_CTX(ndr);
   24416           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pBuf, 0);
   24417           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pBuf));
   24418           0 :                         NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->pBuf, &size_pBuf_1));
   24419           0 :                         NDR_PULL_ALLOC_N(ndr, r->pBuf, size_pBuf_1);
   24420           0 :                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->pBuf, size_pBuf_1));
   24421           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pBuf_0, 0);
   24422             :                 }
   24423           0 :                 if (r->pBuf) {
   24424           0 :                         NDR_CHECK(ndr_check_steal_array_size(ndr, (void*)&r->pBuf, r->cbBuf));
   24425             :                 }
   24426             :         }
   24427           0 :         return NDR_ERR_SUCCESS;
   24428             : }
   24429             : 
   24430           0 : _PUBLIC_ void ndr_print_propertyBlob(struct ndr_print *ndr, const char *name, const struct propertyBlob *r)
   24431             : {
   24432           0 :         ndr_print_struct(ndr, name, "propertyBlob");
   24433           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   24434           0 :         ndr->depth++;
   24435           0 :         ndr_print_uint32(ndr, "cbBuf", r->cbBuf);
   24436           0 :         ndr_print_ptr(ndr, "pBuf", r->pBuf);
   24437           0 :         ndr->depth++;
   24438           0 :         if (r->pBuf) {
   24439           0 :                 ndr_print_array_uint8(ndr, "pBuf", r->pBuf, r->cbBuf);
   24440             :         }
   24441           0 :         ndr->depth--;
   24442           0 :         ndr->depth--;
   24443             : }
   24444             : 
   24445           0 : static enum ndr_err_code ndr_push_spoolss_PrintPropertyValueUnion(struct ndr_push *ndr, ndr_flags_type ndr_flags, const union spoolss_PrintPropertyValueUnion *r)
   24446             : {
   24447           0 :         uint32_t level;
   24448           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   24449           0 :         if (ndr_flags & NDR_SCALARS) {
   24450             :                 /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
   24451           0 :                 NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
   24452           0 :                 NDR_CHECK(ndr_push_union_align(ndr, 8));
   24453           0 :                 NDR_CHECK(ndr_push_spoolss_EPrintPropertyType(ndr, NDR_SCALARS, level));
   24454             :                 /* ms_union is always aligned to the largest union arm*/
   24455           0 :                 NDR_CHECK(ndr_push_align(ndr, 8));
   24456           0 :                 switch (level) {
   24457           0 :                         case kRpcPropertyTypeString: {
   24458           0 :                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->propertyString));
   24459           0 :                         break; }
   24460             : 
   24461           0 :                         case kRpcPropertyTypeInt32: {
   24462           0 :                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->propertyInt32));
   24463           0 :                         break; }
   24464             : 
   24465           0 :                         case kRpcPropertyTypeInt64: {
   24466           0 :                                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->propertyInt64));
   24467           0 :                         break; }
   24468             : 
   24469           0 :                         case kRpcPropertyTypeByte: {
   24470           0 :                                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->propertyByte));
   24471           0 :                         break; }
   24472             : 
   24473           0 :                         case kRpcPropertyTypeBuffer: {
   24474           0 :                                 NDR_CHECK(ndr_push_propertyBlob(ndr, NDR_SCALARS, &r->propertyBlob));
   24475           0 :                         break; }
   24476             : 
   24477           0 :                         default:
   24478           0 :                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32, level);
   24479             :                 }
   24480             :         }
   24481           0 :         if (ndr_flags & NDR_BUFFERS) {
   24482           0 :                 if (!(ndr_flags & NDR_SCALARS)) {
   24483             :                         /* We didn't get it above, and the token is not needed after this. */
   24484           0 :                         NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
   24485             :                 }
   24486           0 :                 switch (level) {
   24487           0 :                         case kRpcPropertyTypeString:
   24488           0 :                                 if (r->propertyString) {
   24489           0 :                                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->propertyString, CH_UTF16)));
   24490           0 :                                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   24491           0 :                                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->propertyString, CH_UTF16)));
   24492           0 :                                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->propertyString, ndr_charset_length(r->propertyString, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   24493             :                                 }
   24494           0 :                         break;
   24495             : 
   24496           0 :                         case kRpcPropertyTypeInt32:
   24497           0 :                         break;
   24498             : 
   24499           0 :                         case kRpcPropertyTypeInt64:
   24500           0 :                         break;
   24501             : 
   24502           0 :                         case kRpcPropertyTypeByte:
   24503           0 :                         break;
   24504             : 
   24505           0 :                         case kRpcPropertyTypeBuffer:
   24506           0 :                                 NDR_CHECK(ndr_push_propertyBlob(ndr, NDR_BUFFERS, &r->propertyBlob));
   24507           0 :                         break;
   24508             : 
   24509           0 :                         default:
   24510           0 :                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32, level);
   24511             :                 }
   24512             :         }
   24513           0 :         return NDR_ERR_SUCCESS;
   24514             : }
   24515             : 
   24516           8 : static enum ndr_err_code ndr_pull_spoolss_PrintPropertyValueUnion(struct ndr_pull *ndr, ndr_flags_type ndr_flags, union spoolss_PrintPropertyValueUnion *r)
   24517             : {
   24518           8 :         uint32_t level;
   24519           8 :         uint16_t _level;
   24520           8 :         TALLOC_CTX *_mem_save_propertyString_0 = NULL;
   24521           8 :         uint32_t _ptr_propertyString;
   24522           8 :         uint32_t size_propertyString_1 = 0;
   24523           8 :         uint32_t length_propertyString_1 = 0;
   24524           8 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   24525           8 :         if (ndr_flags & NDR_SCALARS) {
   24526             :                 /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
   24527           4 :                 NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
   24528           4 :                 NDR_CHECK(ndr_pull_union_align(ndr, 8));
   24529           4 :                 NDR_CHECK(ndr_pull_uint1632(ndr, NDR_SCALARS, &_level));
   24530           4 :                 if (_level != level) {
   24531           0 :                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu16" for r at %s", (uint16_t)_level, __location__);
   24532             :                 }
   24533             :                 /* ms_union is always aligned to the largest union arm*/
   24534           4 :                 NDR_CHECK(ndr_pull_align(ndr, 8));
   24535           4 :                 switch (level) {
   24536           4 :                         case kRpcPropertyTypeString: {
   24537           4 :                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_propertyString));
   24538           4 :                                 if (_ptr_propertyString) {
   24539           4 :                                         NDR_PULL_ALLOC(ndr, r->propertyString);
   24540             :                                 } else {
   24541           0 :                                         r->propertyString = NULL;
   24542             :                                 }
   24543           0 :                         break; }
   24544             : 
   24545           0 :                         case kRpcPropertyTypeInt32: {
   24546           0 :                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->propertyInt32));
   24547           0 :                         break; }
   24548             : 
   24549           0 :                         case kRpcPropertyTypeInt64: {
   24550           0 :                                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->propertyInt64));
   24551           0 :                         break; }
   24552             : 
   24553           0 :                         case kRpcPropertyTypeByte: {
   24554           0 :                                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->propertyByte));
   24555           0 :                         break; }
   24556             : 
   24557           0 :                         case kRpcPropertyTypeBuffer: {
   24558           0 :                                 NDR_CHECK(ndr_pull_propertyBlob(ndr, NDR_SCALARS, &r->propertyBlob));
   24559           0 :                         break; }
   24560             : 
   24561           0 :                         default:
   24562           0 :                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32" at %s", level, __location__);
   24563             :                 }
   24564             :         }
   24565           8 :         if (ndr_flags & NDR_BUFFERS) {
   24566           4 :                 if (!(ndr_flags & NDR_SCALARS)) {
   24567             :                         /* We didn't get it above, and the token is not needed after this. */
   24568           4 :                         NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
   24569             :                 }
   24570           4 :                 switch (level) {
   24571           4 :                         case kRpcPropertyTypeString:
   24572           4 :                                 if (r->propertyString) {
   24573           4 :                                         _mem_save_propertyString_0 = NDR_PULL_GET_MEM_CTX(ndr);
   24574           4 :                                         NDR_PULL_SET_MEM_CTX(ndr, r->propertyString, 0);
   24575           4 :                                         NDR_CHECK(ndr_pull_array_size(ndr, &r->propertyString));
   24576           4 :                                         NDR_CHECK(ndr_pull_array_length(ndr, &r->propertyString));
   24577           4 :                                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->propertyString, &size_propertyString_1));
   24578           4 :                                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->propertyString, &length_propertyString_1));
   24579           4 :                                         if (length_propertyString_1 > size_propertyString_1) {
   24580           0 :                                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_propertyString_1, length_propertyString_1);
   24581             :                                         }
   24582           4 :                                         NDR_CHECK(ndr_check_string_terminator(ndr, length_propertyString_1, sizeof(uint16_t)));
   24583           4 :                                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->propertyString, length_propertyString_1, sizeof(uint16_t), CH_UTF16));
   24584           4 :                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_propertyString_0, 0);
   24585             :                                 }
   24586           0 :                         break;
   24587             : 
   24588           0 :                         case kRpcPropertyTypeInt32:
   24589           0 :                         break;
   24590             : 
   24591           0 :                         case kRpcPropertyTypeInt64:
   24592           0 :                         break;
   24593             : 
   24594           0 :                         case kRpcPropertyTypeByte:
   24595           0 :                         break;
   24596             : 
   24597           0 :                         case kRpcPropertyTypeBuffer:
   24598           0 :                                 NDR_CHECK(ndr_pull_propertyBlob(ndr, NDR_BUFFERS, &r->propertyBlob));
   24599           0 :                         break;
   24600             : 
   24601           0 :                         default:
   24602           0 :                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32" at %s", level, __location__);
   24603             :                 }
   24604             :         }
   24605           0 :         return NDR_ERR_SUCCESS;
   24606             : }
   24607             : 
   24608           4 : _PUBLIC_ void ndr_print_spoolss_PrintPropertyValueUnion(struct ndr_print *ndr, const char *name, const union spoolss_PrintPropertyValueUnion *r)
   24609             : {
   24610           4 :         uint32_t level;
   24611           4 :         level = ndr_print_steal_switch_value(ndr, r);
   24612           4 :         ndr_print_union(ndr, name, level, "spoolss_PrintPropertyValueUnion");
   24613           4 :         switch (level) {
   24614           4 :                 case kRpcPropertyTypeString:
   24615           4 :                         ndr_print_ptr(ndr, "propertyString", r->propertyString);
   24616           4 :                         ndr->depth++;
   24617           4 :                         if (r->propertyString) {
   24618           4 :                                 ndr_print_string(ndr, "propertyString", r->propertyString);
   24619             :                         }
   24620           4 :                         ndr->depth--;
   24621           4 :                 break;
   24622             : 
   24623           0 :                 case kRpcPropertyTypeInt32:
   24624           0 :                         ndr_print_uint32(ndr, "propertyInt32", r->propertyInt32);
   24625           0 :                 break;
   24626             : 
   24627           0 :                 case kRpcPropertyTypeInt64:
   24628           0 :                         ndr_print_hyper(ndr, "propertyInt64", r->propertyInt64);
   24629           0 :                 break;
   24630             : 
   24631           0 :                 case kRpcPropertyTypeByte:
   24632           0 :                         ndr_print_uint8(ndr, "propertyByte", r->propertyByte);
   24633           0 :                 break;
   24634             : 
   24635           0 :                 case kRpcPropertyTypeBuffer:
   24636           0 :                         ndr_print_propertyBlob(ndr, "propertyBlob", &r->propertyBlob);
   24637           0 :                 break;
   24638             : 
   24639           0 :                 default:
   24640           0 :                         ndr_print_bad_level(ndr, name, level);
   24641             :         }
   24642           4 : }
   24643             : 
   24644           0 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintPropertyValue(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_PrintPropertyValue *r)
   24645             : {
   24646           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   24647           0 :         if (ndr_flags & NDR_SCALARS) {
   24648           0 :                 NDR_CHECK(ndr_push_align(ndr, 8));
   24649           0 :                 NDR_CHECK(ndr_push_spoolss_EPrintPropertyType(ndr, NDR_SCALARS, r->ePropertyType));
   24650           0 :                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->value, r->ePropertyType));
   24651           0 :                 NDR_CHECK(ndr_push_spoolss_PrintPropertyValueUnion(ndr, NDR_SCALARS, &r->value));
   24652           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
   24653             :         }
   24654           0 :         if (ndr_flags & NDR_BUFFERS) {
   24655           0 :                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->value, r->ePropertyType));
   24656           0 :                 NDR_CHECK(ndr_push_spoolss_PrintPropertyValueUnion(ndr, NDR_BUFFERS, &r->value));
   24657             :         }
   24658           0 :         return NDR_ERR_SUCCESS;
   24659             : }
   24660             : 
   24661           8 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintPropertyValue(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_PrintPropertyValue *r)
   24662             : {
   24663           8 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   24664           8 :         if (ndr_flags & NDR_SCALARS) {
   24665           4 :                 NDR_CHECK(ndr_pull_align(ndr, 8));
   24666           8 :                 NDR_CHECK(ndr_pull_spoolss_EPrintPropertyType(ndr, NDR_SCALARS, &r->ePropertyType));
   24667           4 :                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->value, r->ePropertyType));
   24668           4 :                 NDR_CHECK(ndr_pull_spoolss_PrintPropertyValueUnion(ndr, NDR_SCALARS, &r->value));
   24669           4 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
   24670             :         }
   24671           8 :         if (ndr_flags & NDR_BUFFERS) {
   24672           4 :                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->value, r->ePropertyType));
   24673           4 :                 NDR_CHECK(ndr_pull_spoolss_PrintPropertyValueUnion(ndr, NDR_BUFFERS, &r->value));
   24674             :         }
   24675           0 :         return NDR_ERR_SUCCESS;
   24676             : }
   24677             : 
   24678           0 : static void ndr_print_flags_spoolss_PrintPropertyValue(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_PrintPropertyValue *r)
   24679             : {
   24680           0 :         ndr_print_spoolss_PrintPropertyValue(ndr, name, r);
   24681           0 : }
   24682             : 
   24683           4 : _PUBLIC_ void ndr_print_spoolss_PrintPropertyValue(struct ndr_print *ndr, const char *name, const struct spoolss_PrintPropertyValue *r)
   24684             : {
   24685           4 :         ndr_print_struct(ndr, name, "spoolss_PrintPropertyValue");
   24686           4 :         if (r == NULL) { ndr_print_null(ndr); return; }
   24687           4 :         ndr->depth++;
   24688           4 :         ndr_print_spoolss_EPrintPropertyType(ndr, "ePropertyType", r->ePropertyType);
   24689           4 :         ndr_print_set_switch_value(ndr, &r->value, r->ePropertyType);
   24690           4 :         ndr_print_spoolss_PrintPropertyValueUnion(ndr, "value", &r->value);
   24691           4 :         ndr->depth--;
   24692             : }
   24693             : 
   24694           0 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintNamedProperty(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_PrintNamedProperty *r)
   24695             : {
   24696           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   24697           0 :         if (ndr_flags & NDR_SCALARS) {
   24698           0 :                 NDR_CHECK(ndr_push_align(ndr, 8));
   24699           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->propertyName));
   24700           0 :                 NDR_CHECK(ndr_push_spoolss_PrintPropertyValue(ndr, NDR_SCALARS, &r->propertyValue));
   24701           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
   24702             :         }
   24703           0 :         if (ndr_flags & NDR_BUFFERS) {
   24704           0 :                 if (r->propertyName) {
   24705           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->propertyName, CH_UTF16)));
   24706           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   24707           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->propertyName, CH_UTF16)));
   24708           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->propertyName, ndr_charset_length(r->propertyName, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   24709             :                 }
   24710           0 :                 NDR_CHECK(ndr_push_spoolss_PrintPropertyValue(ndr, NDR_BUFFERS, &r->propertyValue));
   24711             :         }
   24712           0 :         return NDR_ERR_SUCCESS;
   24713             : }
   24714             : 
   24715           4 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintNamedProperty(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_PrintNamedProperty *r)
   24716             : {
   24717           4 :         uint32_t _ptr_propertyName;
   24718           4 :         uint32_t size_propertyName_1 = 0;
   24719           4 :         uint32_t length_propertyName_1 = 0;
   24720           4 :         TALLOC_CTX *_mem_save_propertyName_0 = NULL;
   24721           4 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   24722           4 :         if (ndr_flags & NDR_SCALARS) {
   24723           4 :                 NDR_CHECK(ndr_pull_align(ndr, 8));
   24724           4 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_propertyName));
   24725           4 :                 if (_ptr_propertyName) {
   24726           4 :                         NDR_PULL_ALLOC(ndr, r->propertyName);
   24727             :                 } else {
   24728           0 :                         r->propertyName = NULL;
   24729             :                 }
   24730           4 :                 NDR_CHECK(ndr_pull_spoolss_PrintPropertyValue(ndr, NDR_SCALARS, &r->propertyValue));
   24731           4 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
   24732             :         }
   24733           4 :         if (ndr_flags & NDR_BUFFERS) {
   24734           4 :                 if (r->propertyName) {
   24735           4 :                         _mem_save_propertyName_0 = NDR_PULL_GET_MEM_CTX(ndr);
   24736           4 :                         NDR_PULL_SET_MEM_CTX(ndr, r->propertyName, 0);
   24737           4 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->propertyName));
   24738           4 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->propertyName));
   24739           4 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->propertyName, &size_propertyName_1));
   24740           4 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->propertyName, &length_propertyName_1));
   24741           4 :                         if (length_propertyName_1 > size_propertyName_1) {
   24742           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_propertyName_1, length_propertyName_1);
   24743             :                         }
   24744           4 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_propertyName_1, sizeof(uint16_t)));
   24745           4 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->propertyName, length_propertyName_1, sizeof(uint16_t), CH_UTF16));
   24746           4 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_propertyName_0, 0);
   24747             :                 }
   24748           4 :                 NDR_CHECK(ndr_pull_spoolss_PrintPropertyValue(ndr, NDR_BUFFERS, &r->propertyValue));
   24749             :         }
   24750           0 :         return NDR_ERR_SUCCESS;
   24751             : }
   24752             : 
   24753           0 : static void ndr_print_flags_spoolss_PrintNamedProperty(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_PrintNamedProperty *r)
   24754             : {
   24755           0 :         ndr_print_spoolss_PrintNamedProperty(ndr, name, r);
   24756           0 : }
   24757             : 
   24758           4 : _PUBLIC_ void ndr_print_spoolss_PrintNamedProperty(struct ndr_print *ndr, const char *name, const struct spoolss_PrintNamedProperty *r)
   24759             : {
   24760           4 :         ndr_print_struct(ndr, name, "spoolss_PrintNamedProperty");
   24761           4 :         if (r == NULL) { ndr_print_null(ndr); return; }
   24762           4 :         ndr->depth++;
   24763           4 :         ndr_print_ptr(ndr, "propertyName", r->propertyName);
   24764           4 :         ndr->depth++;
   24765           4 :         if (r->propertyName) {
   24766           4 :                 ndr_print_string(ndr, "propertyName", r->propertyName);
   24767             :         }
   24768           4 :         ndr->depth--;
   24769           4 :         ndr_print_spoolss_PrintPropertyValue(ndr, "propertyValue", &r->propertyValue);
   24770           4 :         ndr->depth--;
   24771             : }
   24772             : 
   24773           0 : static enum ndr_err_code ndr_push_EBranchOfficeJobEventType(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum EBranchOfficeJobEventType r)
   24774             : {
   24775           0 :         NDR_CHECK(ndr_push_enum_uint1632(ndr, NDR_SCALARS, r));
   24776           0 :         return NDR_ERR_SUCCESS;
   24777             : }
   24778             : 
   24779           0 : static enum ndr_err_code ndr_pull_EBranchOfficeJobEventType(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum EBranchOfficeJobEventType *r)
   24780             : {
   24781           0 :         uint16_t v;
   24782           0 :         NDR_CHECK(ndr_pull_enum_uint1632(ndr, NDR_SCALARS, &v));
   24783           0 :         *r = v;
   24784           0 :         return NDR_ERR_SUCCESS;
   24785             : }
   24786             : 
   24787           0 : _PUBLIC_ void ndr_print_EBranchOfficeJobEventType(struct ndr_print *ndr, const char *name, enum EBranchOfficeJobEventType r)
   24788             : {
   24789           0 :         const char *val = NULL;
   24790             : 
   24791           0 :         switch (r) {
   24792           0 :                 case kInvalidJobState: val = "kInvalidJobState"; break;
   24793           0 :                 case kLogJobPrinted: val = "kLogJobPrinted"; break;
   24794           0 :                 case kLogJobRendered: val = "kLogJobRendered"; break;
   24795           0 :                 case kLogJobError: val = "kLogJobError"; break;
   24796           0 :                 case kLogJobPipelineError: val = "kLogJobPipelineError"; break;
   24797           0 :                 case kLogOfflineFileFull: val = "kLogOfflineFileFull"; break;
   24798             :         }
   24799           0 :         ndr_print_enum(ndr, name, "ENUM", val, r);
   24800           0 : }
   24801             : 
   24802           0 : static enum ndr_err_code ndr_push_spoolss_BranchOfficeJobDataPrinted(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_BranchOfficeJobDataPrinted *r)
   24803             : {
   24804           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   24805           0 :         if (ndr_flags & NDR_SCALARS) {
   24806           0 :                 NDR_CHECK(ndr_push_align(ndr, 8));
   24807           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->Status));
   24808           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pDocumentName));
   24809           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pUserName));
   24810           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pMachineName));
   24811           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pPrinterName));
   24812           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pPortName));
   24813           0 :                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->Size));
   24814           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->TotalPages));
   24815           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
   24816             :         }
   24817           0 :         if (ndr_flags & NDR_BUFFERS) {
   24818           0 :                 if (r->pDocumentName) {
   24819           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pDocumentName, CH_UTF16)));
   24820           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   24821           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pDocumentName, CH_UTF16)));
   24822           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pDocumentName, ndr_charset_length(r->pDocumentName, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   24823             :                 }
   24824           0 :                 if (r->pUserName) {
   24825           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pUserName, CH_UTF16)));
   24826           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   24827           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pUserName, CH_UTF16)));
   24828           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pUserName, ndr_charset_length(r->pUserName, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   24829             :                 }
   24830           0 :                 if (r->pMachineName) {
   24831           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pMachineName, CH_UTF16)));
   24832           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   24833           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pMachineName, CH_UTF16)));
   24834           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pMachineName, ndr_charset_length(r->pMachineName, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   24835             :                 }
   24836           0 :                 if (r->pPrinterName) {
   24837           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pPrinterName, CH_UTF16)));
   24838           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   24839           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pPrinterName, CH_UTF16)));
   24840           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pPrinterName, ndr_charset_length(r->pPrinterName, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   24841             :                 }
   24842           0 :                 if (r->pPortName) {
   24843           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pPortName, CH_UTF16)));
   24844           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   24845           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pPortName, CH_UTF16)));
   24846           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pPortName, ndr_charset_length(r->pPortName, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   24847             :                 }
   24848             :         }
   24849           0 :         return NDR_ERR_SUCCESS;
   24850             : }
   24851             : 
   24852           0 : static enum ndr_err_code ndr_pull_spoolss_BranchOfficeJobDataPrinted(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_BranchOfficeJobDataPrinted *r)
   24853             : {
   24854           0 :         uint32_t _ptr_pDocumentName;
   24855           0 :         uint32_t size_pDocumentName_1 = 0;
   24856           0 :         uint32_t length_pDocumentName_1 = 0;
   24857           0 :         TALLOC_CTX *_mem_save_pDocumentName_0 = NULL;
   24858           0 :         uint32_t _ptr_pUserName;
   24859           0 :         uint32_t size_pUserName_1 = 0;
   24860           0 :         uint32_t length_pUserName_1 = 0;
   24861           0 :         TALLOC_CTX *_mem_save_pUserName_0 = NULL;
   24862           0 :         uint32_t _ptr_pMachineName;
   24863           0 :         uint32_t size_pMachineName_1 = 0;
   24864           0 :         uint32_t length_pMachineName_1 = 0;
   24865           0 :         TALLOC_CTX *_mem_save_pMachineName_0 = NULL;
   24866           0 :         uint32_t _ptr_pPrinterName;
   24867           0 :         uint32_t size_pPrinterName_1 = 0;
   24868           0 :         uint32_t length_pPrinterName_1 = 0;
   24869           0 :         TALLOC_CTX *_mem_save_pPrinterName_0 = NULL;
   24870           0 :         uint32_t _ptr_pPortName;
   24871           0 :         uint32_t size_pPortName_1 = 0;
   24872           0 :         uint32_t length_pPortName_1 = 0;
   24873           0 :         TALLOC_CTX *_mem_save_pPortName_0 = NULL;
   24874           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   24875           0 :         if (ndr_flags & NDR_SCALARS) {
   24876           0 :                 NDR_CHECK(ndr_pull_align(ndr, 8));
   24877           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->Status));
   24878           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pDocumentName));
   24879           0 :                 if (_ptr_pDocumentName) {
   24880           0 :                         NDR_PULL_ALLOC(ndr, r->pDocumentName);
   24881             :                 } else {
   24882           0 :                         r->pDocumentName = NULL;
   24883             :                 }
   24884           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pUserName));
   24885           0 :                 if (_ptr_pUserName) {
   24886           0 :                         NDR_PULL_ALLOC(ndr, r->pUserName);
   24887             :                 } else {
   24888           0 :                         r->pUserName = NULL;
   24889             :                 }
   24890           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pMachineName));
   24891           0 :                 if (_ptr_pMachineName) {
   24892           0 :                         NDR_PULL_ALLOC(ndr, r->pMachineName);
   24893             :                 } else {
   24894           0 :                         r->pMachineName = NULL;
   24895             :                 }
   24896           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pPrinterName));
   24897           0 :                 if (_ptr_pPrinterName) {
   24898           0 :                         NDR_PULL_ALLOC(ndr, r->pPrinterName);
   24899             :                 } else {
   24900           0 :                         r->pPrinterName = NULL;
   24901             :                 }
   24902           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pPortName));
   24903           0 :                 if (_ptr_pPortName) {
   24904           0 :                         NDR_PULL_ALLOC(ndr, r->pPortName);
   24905             :                 } else {
   24906           0 :                         r->pPortName = NULL;
   24907             :                 }
   24908           0 :                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->Size));
   24909           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->TotalPages));
   24910           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
   24911             :         }
   24912           0 :         if (ndr_flags & NDR_BUFFERS) {
   24913           0 :                 if (r->pDocumentName) {
   24914           0 :                         _mem_save_pDocumentName_0 = NDR_PULL_GET_MEM_CTX(ndr);
   24915           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pDocumentName, 0);
   24916           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pDocumentName));
   24917           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->pDocumentName));
   24918           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pDocumentName, &size_pDocumentName_1));
   24919           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pDocumentName, &length_pDocumentName_1));
   24920           0 :                         if (length_pDocumentName_1 > size_pDocumentName_1) {
   24921           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_pDocumentName_1, length_pDocumentName_1);
   24922             :                         }
   24923           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pDocumentName_1, sizeof(uint16_t)));
   24924           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pDocumentName, length_pDocumentName_1, sizeof(uint16_t), CH_UTF16));
   24925           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pDocumentName_0, 0);
   24926             :                 }
   24927           0 :                 if (r->pUserName) {
   24928           0 :                         _mem_save_pUserName_0 = NDR_PULL_GET_MEM_CTX(ndr);
   24929           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pUserName, 0);
   24930           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pUserName));
   24931           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->pUserName));
   24932           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pUserName, &size_pUserName_1));
   24933           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pUserName, &length_pUserName_1));
   24934           0 :                         if (length_pUserName_1 > size_pUserName_1) {
   24935           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_pUserName_1, length_pUserName_1);
   24936             :                         }
   24937           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pUserName_1, sizeof(uint16_t)));
   24938           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pUserName, length_pUserName_1, sizeof(uint16_t), CH_UTF16));
   24939           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pUserName_0, 0);
   24940             :                 }
   24941           0 :                 if (r->pMachineName) {
   24942           0 :                         _mem_save_pMachineName_0 = NDR_PULL_GET_MEM_CTX(ndr);
   24943           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pMachineName, 0);
   24944           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pMachineName));
   24945           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->pMachineName));
   24946           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pMachineName, &size_pMachineName_1));
   24947           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pMachineName, &length_pMachineName_1));
   24948           0 :                         if (length_pMachineName_1 > size_pMachineName_1) {
   24949           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_pMachineName_1, length_pMachineName_1);
   24950             :                         }
   24951           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pMachineName_1, sizeof(uint16_t)));
   24952           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pMachineName, length_pMachineName_1, sizeof(uint16_t), CH_UTF16));
   24953           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pMachineName_0, 0);
   24954             :                 }
   24955           0 :                 if (r->pPrinterName) {
   24956           0 :                         _mem_save_pPrinterName_0 = NDR_PULL_GET_MEM_CTX(ndr);
   24957           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pPrinterName, 0);
   24958           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pPrinterName));
   24959           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->pPrinterName));
   24960           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pPrinterName, &size_pPrinterName_1));
   24961           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pPrinterName, &length_pPrinterName_1));
   24962           0 :                         if (length_pPrinterName_1 > size_pPrinterName_1) {
   24963           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_pPrinterName_1, length_pPrinterName_1);
   24964             :                         }
   24965           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pPrinterName_1, sizeof(uint16_t)));
   24966           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pPrinterName, length_pPrinterName_1, sizeof(uint16_t), CH_UTF16));
   24967           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pPrinterName_0, 0);
   24968             :                 }
   24969           0 :                 if (r->pPortName) {
   24970           0 :                         _mem_save_pPortName_0 = NDR_PULL_GET_MEM_CTX(ndr);
   24971           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pPortName, 0);
   24972           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pPortName));
   24973           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->pPortName));
   24974           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pPortName, &size_pPortName_1));
   24975           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pPortName, &length_pPortName_1));
   24976           0 :                         if (length_pPortName_1 > size_pPortName_1) {
   24977           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_pPortName_1, length_pPortName_1);
   24978             :                         }
   24979           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pPortName_1, sizeof(uint16_t)));
   24980           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pPortName, length_pPortName_1, sizeof(uint16_t), CH_UTF16));
   24981           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pPortName_0, 0);
   24982             :                 }
   24983             :         }
   24984           0 :         return NDR_ERR_SUCCESS;
   24985             : }
   24986             : 
   24987           0 : _PUBLIC_ void ndr_print_spoolss_BranchOfficeJobDataPrinted(struct ndr_print *ndr, const char *name, const struct spoolss_BranchOfficeJobDataPrinted *r)
   24988             : {
   24989           0 :         ndr_print_struct(ndr, name, "spoolss_BranchOfficeJobDataPrinted");
   24990           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   24991           0 :         ndr->depth++;
   24992           0 :         ndr_print_uint32(ndr, "Status", r->Status);
   24993           0 :         ndr_print_ptr(ndr, "pDocumentName", r->pDocumentName);
   24994           0 :         ndr->depth++;
   24995           0 :         if (r->pDocumentName) {
   24996           0 :                 ndr_print_string(ndr, "pDocumentName", r->pDocumentName);
   24997             :         }
   24998           0 :         ndr->depth--;
   24999           0 :         ndr_print_ptr(ndr, "pUserName", r->pUserName);
   25000           0 :         ndr->depth++;
   25001           0 :         if (r->pUserName) {
   25002           0 :                 ndr_print_string(ndr, "pUserName", r->pUserName);
   25003             :         }
   25004           0 :         ndr->depth--;
   25005           0 :         ndr_print_ptr(ndr, "pMachineName", r->pMachineName);
   25006           0 :         ndr->depth++;
   25007           0 :         if (r->pMachineName) {
   25008           0 :                 ndr_print_string(ndr, "pMachineName", r->pMachineName);
   25009             :         }
   25010           0 :         ndr->depth--;
   25011           0 :         ndr_print_ptr(ndr, "pPrinterName", r->pPrinterName);
   25012           0 :         ndr->depth++;
   25013           0 :         if (r->pPrinterName) {
   25014           0 :                 ndr_print_string(ndr, "pPrinterName", r->pPrinterName);
   25015             :         }
   25016           0 :         ndr->depth--;
   25017           0 :         ndr_print_ptr(ndr, "pPortName", r->pPortName);
   25018           0 :         ndr->depth++;
   25019           0 :         if (r->pPortName) {
   25020           0 :                 ndr_print_string(ndr, "pPortName", r->pPortName);
   25021             :         }
   25022           0 :         ndr->depth--;
   25023           0 :         ndr_print_hyper(ndr, "Size", r->Size);
   25024           0 :         ndr_print_uint32(ndr, "TotalPages", r->TotalPages);
   25025           0 :         ndr->depth--;
   25026             : }
   25027             : 
   25028           0 : static enum ndr_err_code ndr_push_spoolss_BranchOfficeJobDataRendered(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_BranchOfficeJobDataRendered *r)
   25029             : {
   25030           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   25031           0 :         if (ndr_flags & NDR_SCALARS) {
   25032           0 :                 NDR_CHECK(ndr_push_align(ndr, 8));
   25033           0 :                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->Size));
   25034           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ICMMethod));
   25035           0 :                 NDR_CHECK(ndr_push_int16(ndr, NDR_SCALARS, r->Color));
   25036           0 :                 NDR_CHECK(ndr_push_int16(ndr, NDR_SCALARS, r->PrintQuality));
   25037           0 :                 NDR_CHECK(ndr_push_int16(ndr, NDR_SCALARS, r->YResolution));
   25038           0 :                 NDR_CHECK(ndr_push_int16(ndr, NDR_SCALARS, r->Copies));
   25039           0 :                 NDR_CHECK(ndr_push_int16(ndr, NDR_SCALARS, r->TTOption));
   25040           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
   25041             :         }
   25042           0 :         if (ndr_flags & NDR_BUFFERS) {
   25043           0 :         }
   25044           0 :         return NDR_ERR_SUCCESS;
   25045             : }
   25046             : 
   25047           0 : static enum ndr_err_code ndr_pull_spoolss_BranchOfficeJobDataRendered(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_BranchOfficeJobDataRendered *r)
   25048             : {
   25049           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   25050           0 :         if (ndr_flags & NDR_SCALARS) {
   25051           0 :                 NDR_CHECK(ndr_pull_align(ndr, 8));
   25052           0 :                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->Size));
   25053           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ICMMethod));
   25054           0 :                 NDR_CHECK(ndr_pull_int16(ndr, NDR_SCALARS, &r->Color));
   25055           0 :                 NDR_CHECK(ndr_pull_int16(ndr, NDR_SCALARS, &r->PrintQuality));
   25056           0 :                 NDR_CHECK(ndr_pull_int16(ndr, NDR_SCALARS, &r->YResolution));
   25057           0 :                 NDR_CHECK(ndr_pull_int16(ndr, NDR_SCALARS, &r->Copies));
   25058           0 :                 NDR_CHECK(ndr_pull_int16(ndr, NDR_SCALARS, &r->TTOption));
   25059           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
   25060             :         }
   25061           0 :         if (ndr_flags & NDR_BUFFERS) {
   25062           0 :         }
   25063           0 :         return NDR_ERR_SUCCESS;
   25064             : }
   25065             : 
   25066           0 : _PUBLIC_ void ndr_print_spoolss_BranchOfficeJobDataRendered(struct ndr_print *ndr, const char *name, const struct spoolss_BranchOfficeJobDataRendered *r)
   25067             : {
   25068           0 :         ndr_print_struct(ndr, name, "spoolss_BranchOfficeJobDataRendered");
   25069           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   25070           0 :         ndr->depth++;
   25071           0 :         ndr_print_hyper(ndr, "Size", r->Size);
   25072           0 :         ndr_print_uint32(ndr, "ICMMethod", r->ICMMethod);
   25073           0 :         ndr_print_int16(ndr, "Color", r->Color);
   25074           0 :         ndr_print_int16(ndr, "PrintQuality", r->PrintQuality);
   25075           0 :         ndr_print_int16(ndr, "YResolution", r->YResolution);
   25076           0 :         ndr_print_int16(ndr, "Copies", r->Copies);
   25077           0 :         ndr_print_int16(ndr, "TTOption", r->TTOption);
   25078           0 :         ndr->depth--;
   25079             : }
   25080             : 
   25081           0 : static enum ndr_err_code ndr_push_spoolss_BranchOfficeJobDataError(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_BranchOfficeJobDataError *r)
   25082             : {
   25083           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   25084           0 :         if (ndr_flags & NDR_SCALARS) {
   25085           0 :                 NDR_CHECK(ndr_push_align(ndr, 8));
   25086           0 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->LastError));
   25087           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pDocumentName));
   25088           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pUserName));
   25089           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pPrinterName));
   25090           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pDataType));
   25091           0 :                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->TotalSize));
   25092           0 :                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->PrintedSize));
   25093           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->TotalPages));
   25094           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->PrintedPages));
   25095           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pMachineName));
   25096           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pJobError));
   25097           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pErrorDescription));
   25098           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
   25099             :         }
   25100           0 :         if (ndr_flags & NDR_BUFFERS) {
   25101           0 :                 if (r->pDocumentName) {
   25102           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pDocumentName, CH_UTF16)));
   25103           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   25104           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pDocumentName, CH_UTF16)));
   25105           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pDocumentName, ndr_charset_length(r->pDocumentName, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   25106             :                 }
   25107           0 :                 if (r->pUserName) {
   25108           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pUserName, CH_UTF16)));
   25109           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   25110           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pUserName, CH_UTF16)));
   25111           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pUserName, ndr_charset_length(r->pUserName, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   25112             :                 }
   25113           0 :                 if (r->pPrinterName) {
   25114           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pPrinterName, CH_UTF16)));
   25115           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   25116           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pPrinterName, CH_UTF16)));
   25117           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pPrinterName, ndr_charset_length(r->pPrinterName, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   25118             :                 }
   25119           0 :                 if (r->pDataType) {
   25120           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pDataType, CH_UTF16)));
   25121           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   25122           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pDataType, CH_UTF16)));
   25123           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pDataType, ndr_charset_length(r->pDataType, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   25124             :                 }
   25125           0 :                 if (r->pMachineName) {
   25126           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pMachineName, CH_UTF16)));
   25127           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   25128           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pMachineName, CH_UTF16)));
   25129           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pMachineName, ndr_charset_length(r->pMachineName, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   25130             :                 }
   25131           0 :                 if (r->pJobError) {
   25132           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pJobError, CH_UTF16)));
   25133           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   25134           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pJobError, CH_UTF16)));
   25135           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pJobError, ndr_charset_length(r->pJobError, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   25136             :                 }
   25137           0 :                 if (r->pErrorDescription) {
   25138           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pErrorDescription, CH_UTF16)));
   25139           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   25140           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pErrorDescription, CH_UTF16)));
   25141           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pErrorDescription, ndr_charset_length(r->pErrorDescription, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   25142             :                 }
   25143             :         }
   25144           0 :         return NDR_ERR_SUCCESS;
   25145             : }
   25146             : 
   25147           0 : static enum ndr_err_code ndr_pull_spoolss_BranchOfficeJobDataError(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_BranchOfficeJobDataError *r)
   25148             : {
   25149           0 :         uint32_t _ptr_pDocumentName;
   25150           0 :         uint32_t size_pDocumentName_1 = 0;
   25151           0 :         uint32_t length_pDocumentName_1 = 0;
   25152           0 :         TALLOC_CTX *_mem_save_pDocumentName_0 = NULL;
   25153           0 :         uint32_t _ptr_pUserName;
   25154           0 :         uint32_t size_pUserName_1 = 0;
   25155           0 :         uint32_t length_pUserName_1 = 0;
   25156           0 :         TALLOC_CTX *_mem_save_pUserName_0 = NULL;
   25157           0 :         uint32_t _ptr_pPrinterName;
   25158           0 :         uint32_t size_pPrinterName_1 = 0;
   25159           0 :         uint32_t length_pPrinterName_1 = 0;
   25160           0 :         TALLOC_CTX *_mem_save_pPrinterName_0 = NULL;
   25161           0 :         uint32_t _ptr_pDataType;
   25162           0 :         uint32_t size_pDataType_1 = 0;
   25163           0 :         uint32_t length_pDataType_1 = 0;
   25164           0 :         TALLOC_CTX *_mem_save_pDataType_0 = NULL;
   25165           0 :         uint32_t _ptr_pMachineName;
   25166           0 :         uint32_t size_pMachineName_1 = 0;
   25167           0 :         uint32_t length_pMachineName_1 = 0;
   25168           0 :         TALLOC_CTX *_mem_save_pMachineName_0 = NULL;
   25169           0 :         uint32_t _ptr_pJobError;
   25170           0 :         uint32_t size_pJobError_1 = 0;
   25171           0 :         uint32_t length_pJobError_1 = 0;
   25172           0 :         TALLOC_CTX *_mem_save_pJobError_0 = NULL;
   25173           0 :         uint32_t _ptr_pErrorDescription;
   25174           0 :         uint32_t size_pErrorDescription_1 = 0;
   25175           0 :         uint32_t length_pErrorDescription_1 = 0;
   25176           0 :         TALLOC_CTX *_mem_save_pErrorDescription_0 = NULL;
   25177           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   25178           0 :         if (ndr_flags & NDR_SCALARS) {
   25179           0 :                 NDR_CHECK(ndr_pull_align(ndr, 8));
   25180           0 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->LastError));
   25181           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pDocumentName));
   25182           0 :                 if (_ptr_pDocumentName) {
   25183           0 :                         NDR_PULL_ALLOC(ndr, r->pDocumentName);
   25184             :                 } else {
   25185           0 :                         r->pDocumentName = NULL;
   25186             :                 }
   25187           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pUserName));
   25188           0 :                 if (_ptr_pUserName) {
   25189           0 :                         NDR_PULL_ALLOC(ndr, r->pUserName);
   25190             :                 } else {
   25191           0 :                         r->pUserName = NULL;
   25192             :                 }
   25193           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pPrinterName));
   25194           0 :                 if (_ptr_pPrinterName) {
   25195           0 :                         NDR_PULL_ALLOC(ndr, r->pPrinterName);
   25196             :                 } else {
   25197           0 :                         r->pPrinterName = NULL;
   25198             :                 }
   25199           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pDataType));
   25200           0 :                 if (_ptr_pDataType) {
   25201           0 :                         NDR_PULL_ALLOC(ndr, r->pDataType);
   25202             :                 } else {
   25203           0 :                         r->pDataType = NULL;
   25204             :                 }
   25205           0 :                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->TotalSize));
   25206           0 :                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->PrintedSize));
   25207           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->TotalPages));
   25208           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->PrintedPages));
   25209           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pMachineName));
   25210           0 :                 if (_ptr_pMachineName) {
   25211           0 :                         NDR_PULL_ALLOC(ndr, r->pMachineName);
   25212             :                 } else {
   25213           0 :                         r->pMachineName = NULL;
   25214             :                 }
   25215           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pJobError));
   25216           0 :                 if (_ptr_pJobError) {
   25217           0 :                         NDR_PULL_ALLOC(ndr, r->pJobError);
   25218             :                 } else {
   25219           0 :                         r->pJobError = NULL;
   25220             :                 }
   25221           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pErrorDescription));
   25222           0 :                 if (_ptr_pErrorDescription) {
   25223           0 :                         NDR_PULL_ALLOC(ndr, r->pErrorDescription);
   25224             :                 } else {
   25225           0 :                         r->pErrorDescription = NULL;
   25226             :                 }
   25227           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
   25228             :         }
   25229           0 :         if (ndr_flags & NDR_BUFFERS) {
   25230           0 :                 if (r->pDocumentName) {
   25231           0 :                         _mem_save_pDocumentName_0 = NDR_PULL_GET_MEM_CTX(ndr);
   25232           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pDocumentName, 0);
   25233           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pDocumentName));
   25234           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->pDocumentName));
   25235           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pDocumentName, &size_pDocumentName_1));
   25236           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pDocumentName, &length_pDocumentName_1));
   25237           0 :                         if (length_pDocumentName_1 > size_pDocumentName_1) {
   25238           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_pDocumentName_1, length_pDocumentName_1);
   25239             :                         }
   25240           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pDocumentName_1, sizeof(uint16_t)));
   25241           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pDocumentName, length_pDocumentName_1, sizeof(uint16_t), CH_UTF16));
   25242           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pDocumentName_0, 0);
   25243             :                 }
   25244           0 :                 if (r->pUserName) {
   25245           0 :                         _mem_save_pUserName_0 = NDR_PULL_GET_MEM_CTX(ndr);
   25246           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pUserName, 0);
   25247           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pUserName));
   25248           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->pUserName));
   25249           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pUserName, &size_pUserName_1));
   25250           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pUserName, &length_pUserName_1));
   25251           0 :                         if (length_pUserName_1 > size_pUserName_1) {
   25252           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_pUserName_1, length_pUserName_1);
   25253             :                         }
   25254           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pUserName_1, sizeof(uint16_t)));
   25255           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pUserName, length_pUserName_1, sizeof(uint16_t), CH_UTF16));
   25256           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pUserName_0, 0);
   25257             :                 }
   25258           0 :                 if (r->pPrinterName) {
   25259           0 :                         _mem_save_pPrinterName_0 = NDR_PULL_GET_MEM_CTX(ndr);
   25260           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pPrinterName, 0);
   25261           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pPrinterName));
   25262           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->pPrinterName));
   25263           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pPrinterName, &size_pPrinterName_1));
   25264           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pPrinterName, &length_pPrinterName_1));
   25265           0 :                         if (length_pPrinterName_1 > size_pPrinterName_1) {
   25266           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_pPrinterName_1, length_pPrinterName_1);
   25267             :                         }
   25268           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pPrinterName_1, sizeof(uint16_t)));
   25269           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pPrinterName, length_pPrinterName_1, sizeof(uint16_t), CH_UTF16));
   25270           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pPrinterName_0, 0);
   25271             :                 }
   25272           0 :                 if (r->pDataType) {
   25273           0 :                         _mem_save_pDataType_0 = NDR_PULL_GET_MEM_CTX(ndr);
   25274           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pDataType, 0);
   25275           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pDataType));
   25276           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->pDataType));
   25277           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pDataType, &size_pDataType_1));
   25278           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pDataType, &length_pDataType_1));
   25279           0 :                         if (length_pDataType_1 > size_pDataType_1) {
   25280           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_pDataType_1, length_pDataType_1);
   25281             :                         }
   25282           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pDataType_1, sizeof(uint16_t)));
   25283           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pDataType, length_pDataType_1, sizeof(uint16_t), CH_UTF16));
   25284           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pDataType_0, 0);
   25285             :                 }
   25286           0 :                 if (r->pMachineName) {
   25287           0 :                         _mem_save_pMachineName_0 = NDR_PULL_GET_MEM_CTX(ndr);
   25288           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pMachineName, 0);
   25289           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pMachineName));
   25290           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->pMachineName));
   25291           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pMachineName, &size_pMachineName_1));
   25292           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pMachineName, &length_pMachineName_1));
   25293           0 :                         if (length_pMachineName_1 > size_pMachineName_1) {
   25294           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_pMachineName_1, length_pMachineName_1);
   25295             :                         }
   25296           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pMachineName_1, sizeof(uint16_t)));
   25297           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pMachineName, length_pMachineName_1, sizeof(uint16_t), CH_UTF16));
   25298           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pMachineName_0, 0);
   25299             :                 }
   25300           0 :                 if (r->pJobError) {
   25301           0 :                         _mem_save_pJobError_0 = NDR_PULL_GET_MEM_CTX(ndr);
   25302           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pJobError, 0);
   25303           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pJobError));
   25304           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->pJobError));
   25305           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pJobError, &size_pJobError_1));
   25306           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pJobError, &length_pJobError_1));
   25307           0 :                         if (length_pJobError_1 > size_pJobError_1) {
   25308           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_pJobError_1, length_pJobError_1);
   25309             :                         }
   25310           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pJobError_1, sizeof(uint16_t)));
   25311           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pJobError, length_pJobError_1, sizeof(uint16_t), CH_UTF16));
   25312           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pJobError_0, 0);
   25313             :                 }
   25314           0 :                 if (r->pErrorDescription) {
   25315           0 :                         _mem_save_pErrorDescription_0 = NDR_PULL_GET_MEM_CTX(ndr);
   25316           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pErrorDescription, 0);
   25317           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pErrorDescription));
   25318           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->pErrorDescription));
   25319           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pErrorDescription, &size_pErrorDescription_1));
   25320           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pErrorDescription, &length_pErrorDescription_1));
   25321           0 :                         if (length_pErrorDescription_1 > size_pErrorDescription_1) {
   25322           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_pErrorDescription_1, length_pErrorDescription_1);
   25323             :                         }
   25324           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pErrorDescription_1, sizeof(uint16_t)));
   25325           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pErrorDescription, length_pErrorDescription_1, sizeof(uint16_t), CH_UTF16));
   25326           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pErrorDescription_0, 0);
   25327             :                 }
   25328             :         }
   25329           0 :         return NDR_ERR_SUCCESS;
   25330             : }
   25331             : 
   25332           0 : _PUBLIC_ void ndr_print_spoolss_BranchOfficeJobDataError(struct ndr_print *ndr, const char *name, const struct spoolss_BranchOfficeJobDataError *r)
   25333             : {
   25334           0 :         ndr_print_struct(ndr, name, "spoolss_BranchOfficeJobDataError");
   25335           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   25336           0 :         ndr->depth++;
   25337           0 :         ndr_print_WERROR(ndr, "LastError", r->LastError);
   25338           0 :         ndr_print_ptr(ndr, "pDocumentName", r->pDocumentName);
   25339           0 :         ndr->depth++;
   25340           0 :         if (r->pDocumentName) {
   25341           0 :                 ndr_print_string(ndr, "pDocumentName", r->pDocumentName);
   25342             :         }
   25343           0 :         ndr->depth--;
   25344           0 :         ndr_print_ptr(ndr, "pUserName", r->pUserName);
   25345           0 :         ndr->depth++;
   25346           0 :         if (r->pUserName) {
   25347           0 :                 ndr_print_string(ndr, "pUserName", r->pUserName);
   25348             :         }
   25349           0 :         ndr->depth--;
   25350           0 :         ndr_print_ptr(ndr, "pPrinterName", r->pPrinterName);
   25351           0 :         ndr->depth++;
   25352           0 :         if (r->pPrinterName) {
   25353           0 :                 ndr_print_string(ndr, "pPrinterName", r->pPrinterName);
   25354             :         }
   25355           0 :         ndr->depth--;
   25356           0 :         ndr_print_ptr(ndr, "pDataType", r->pDataType);
   25357           0 :         ndr->depth++;
   25358           0 :         if (r->pDataType) {
   25359           0 :                 ndr_print_string(ndr, "pDataType", r->pDataType);
   25360             :         }
   25361           0 :         ndr->depth--;
   25362           0 :         ndr_print_hyper(ndr, "TotalSize", r->TotalSize);
   25363           0 :         ndr_print_hyper(ndr, "PrintedSize", r->PrintedSize);
   25364           0 :         ndr_print_uint32(ndr, "TotalPages", r->TotalPages);
   25365           0 :         ndr_print_uint32(ndr, "PrintedPages", r->PrintedPages);
   25366           0 :         ndr_print_ptr(ndr, "pMachineName", r->pMachineName);
   25367           0 :         ndr->depth++;
   25368           0 :         if (r->pMachineName) {
   25369           0 :                 ndr_print_string(ndr, "pMachineName", r->pMachineName);
   25370             :         }
   25371           0 :         ndr->depth--;
   25372           0 :         ndr_print_ptr(ndr, "pJobError", r->pJobError);
   25373           0 :         ndr->depth++;
   25374           0 :         if (r->pJobError) {
   25375           0 :                 ndr_print_string(ndr, "pJobError", r->pJobError);
   25376             :         }
   25377           0 :         ndr->depth--;
   25378           0 :         ndr_print_ptr(ndr, "pErrorDescription", r->pErrorDescription);
   25379           0 :         ndr->depth++;
   25380           0 :         if (r->pErrorDescription) {
   25381           0 :                 ndr_print_string(ndr, "pErrorDescription", r->pErrorDescription);
   25382             :         }
   25383           0 :         ndr->depth--;
   25384           0 :         ndr->depth--;
   25385             : }
   25386             : 
   25387           0 : static enum ndr_err_code ndr_push_spoolss_BranchOfficeJobDataPipelineFailed(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_BranchOfficeJobDataPipelineFailed *r)
   25388             : {
   25389           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   25390           0 :         if (ndr_flags & NDR_SCALARS) {
   25391           0 :                 NDR_CHECK(ndr_push_align(ndr, 5));
   25392           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pDocumentName));
   25393           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pPrinterName));
   25394           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pExtraErrorInfo));
   25395           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
   25396             :         }
   25397           0 :         if (ndr_flags & NDR_BUFFERS) {
   25398           0 :                 if (r->pDocumentName) {
   25399           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pDocumentName, CH_UTF16)));
   25400           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   25401           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pDocumentName, CH_UTF16)));
   25402           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pDocumentName, ndr_charset_length(r->pDocumentName, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   25403             :                 }
   25404           0 :                 if (r->pPrinterName) {
   25405           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pPrinterName, CH_UTF16)));
   25406           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   25407           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pPrinterName, CH_UTF16)));
   25408           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pPrinterName, ndr_charset_length(r->pPrinterName, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   25409             :                 }
   25410           0 :                 if (r->pExtraErrorInfo) {
   25411           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pExtraErrorInfo, CH_UTF16)));
   25412           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   25413           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pExtraErrorInfo, CH_UTF16)));
   25414           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pExtraErrorInfo, ndr_charset_length(r->pExtraErrorInfo, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   25415             :                 }
   25416             :         }
   25417           0 :         return NDR_ERR_SUCCESS;
   25418             : }
   25419             : 
   25420           0 : static enum ndr_err_code ndr_pull_spoolss_BranchOfficeJobDataPipelineFailed(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_BranchOfficeJobDataPipelineFailed *r)
   25421             : {
   25422           0 :         uint32_t _ptr_pDocumentName;
   25423           0 :         uint32_t size_pDocumentName_1 = 0;
   25424           0 :         uint32_t length_pDocumentName_1 = 0;
   25425           0 :         TALLOC_CTX *_mem_save_pDocumentName_0 = NULL;
   25426           0 :         uint32_t _ptr_pPrinterName;
   25427           0 :         uint32_t size_pPrinterName_1 = 0;
   25428           0 :         uint32_t length_pPrinterName_1 = 0;
   25429           0 :         TALLOC_CTX *_mem_save_pPrinterName_0 = NULL;
   25430           0 :         uint32_t _ptr_pExtraErrorInfo;
   25431           0 :         uint32_t size_pExtraErrorInfo_1 = 0;
   25432           0 :         uint32_t length_pExtraErrorInfo_1 = 0;
   25433           0 :         TALLOC_CTX *_mem_save_pExtraErrorInfo_0 = NULL;
   25434           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   25435           0 :         if (ndr_flags & NDR_SCALARS) {
   25436           0 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
   25437           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pDocumentName));
   25438           0 :                 if (_ptr_pDocumentName) {
   25439           0 :                         NDR_PULL_ALLOC(ndr, r->pDocumentName);
   25440             :                 } else {
   25441           0 :                         r->pDocumentName = NULL;
   25442             :                 }
   25443           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pPrinterName));
   25444           0 :                 if (_ptr_pPrinterName) {
   25445           0 :                         NDR_PULL_ALLOC(ndr, r->pPrinterName);
   25446             :                 } else {
   25447           0 :                         r->pPrinterName = NULL;
   25448             :                 }
   25449           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pExtraErrorInfo));
   25450           0 :                 if (_ptr_pExtraErrorInfo) {
   25451           0 :                         NDR_PULL_ALLOC(ndr, r->pExtraErrorInfo);
   25452             :                 } else {
   25453           0 :                         r->pExtraErrorInfo = NULL;
   25454             :                 }
   25455           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
   25456             :         }
   25457           0 :         if (ndr_flags & NDR_BUFFERS) {
   25458           0 :                 if (r->pDocumentName) {
   25459           0 :                         _mem_save_pDocumentName_0 = NDR_PULL_GET_MEM_CTX(ndr);
   25460           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pDocumentName, 0);
   25461           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pDocumentName));
   25462           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->pDocumentName));
   25463           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pDocumentName, &size_pDocumentName_1));
   25464           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pDocumentName, &length_pDocumentName_1));
   25465           0 :                         if (length_pDocumentName_1 > size_pDocumentName_1) {
   25466           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_pDocumentName_1, length_pDocumentName_1);
   25467             :                         }
   25468           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pDocumentName_1, sizeof(uint16_t)));
   25469           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pDocumentName, length_pDocumentName_1, sizeof(uint16_t), CH_UTF16));
   25470           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pDocumentName_0, 0);
   25471             :                 }
   25472           0 :                 if (r->pPrinterName) {
   25473           0 :                         _mem_save_pPrinterName_0 = NDR_PULL_GET_MEM_CTX(ndr);
   25474           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pPrinterName, 0);
   25475           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pPrinterName));
   25476           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->pPrinterName));
   25477           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pPrinterName, &size_pPrinterName_1));
   25478           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pPrinterName, &length_pPrinterName_1));
   25479           0 :                         if (length_pPrinterName_1 > size_pPrinterName_1) {
   25480           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_pPrinterName_1, length_pPrinterName_1);
   25481             :                         }
   25482           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pPrinterName_1, sizeof(uint16_t)));
   25483           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pPrinterName, length_pPrinterName_1, sizeof(uint16_t), CH_UTF16));
   25484           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pPrinterName_0, 0);
   25485             :                 }
   25486           0 :                 if (r->pExtraErrorInfo) {
   25487           0 :                         _mem_save_pExtraErrorInfo_0 = NDR_PULL_GET_MEM_CTX(ndr);
   25488           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pExtraErrorInfo, 0);
   25489           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pExtraErrorInfo));
   25490           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->pExtraErrorInfo));
   25491           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pExtraErrorInfo, &size_pExtraErrorInfo_1));
   25492           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pExtraErrorInfo, &length_pExtraErrorInfo_1));
   25493           0 :                         if (length_pExtraErrorInfo_1 > size_pExtraErrorInfo_1) {
   25494           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_pExtraErrorInfo_1, length_pExtraErrorInfo_1);
   25495             :                         }
   25496           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pExtraErrorInfo_1, sizeof(uint16_t)));
   25497           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pExtraErrorInfo, length_pExtraErrorInfo_1, sizeof(uint16_t), CH_UTF16));
   25498           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pExtraErrorInfo_0, 0);
   25499             :                 }
   25500             :         }
   25501           0 :         return NDR_ERR_SUCCESS;
   25502             : }
   25503             : 
   25504           0 : _PUBLIC_ void ndr_print_spoolss_BranchOfficeJobDataPipelineFailed(struct ndr_print *ndr, const char *name, const struct spoolss_BranchOfficeJobDataPipelineFailed *r)
   25505             : {
   25506           0 :         ndr_print_struct(ndr, name, "spoolss_BranchOfficeJobDataPipelineFailed");
   25507           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   25508           0 :         ndr->depth++;
   25509           0 :         ndr_print_ptr(ndr, "pDocumentName", r->pDocumentName);
   25510           0 :         ndr->depth++;
   25511           0 :         if (r->pDocumentName) {
   25512           0 :                 ndr_print_string(ndr, "pDocumentName", r->pDocumentName);
   25513             :         }
   25514           0 :         ndr->depth--;
   25515           0 :         ndr_print_ptr(ndr, "pPrinterName", r->pPrinterName);
   25516           0 :         ndr->depth++;
   25517           0 :         if (r->pPrinterName) {
   25518           0 :                 ndr_print_string(ndr, "pPrinterName", r->pPrinterName);
   25519             :         }
   25520           0 :         ndr->depth--;
   25521           0 :         ndr_print_ptr(ndr, "pExtraErrorInfo", r->pExtraErrorInfo);
   25522           0 :         ndr->depth++;
   25523           0 :         if (r->pExtraErrorInfo) {
   25524           0 :                 ndr_print_string(ndr, "pExtraErrorInfo", r->pExtraErrorInfo);
   25525             :         }
   25526           0 :         ndr->depth--;
   25527           0 :         ndr->depth--;
   25528             : }
   25529             : 
   25530           0 : static enum ndr_err_code ndr_push_spoolss_BranchOfficeLogOfflineFileFull(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_BranchOfficeLogOfflineFileFull *r)
   25531             : {
   25532           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   25533           0 :         if (ndr_flags & NDR_SCALARS) {
   25534           0 :                 NDR_CHECK(ndr_push_align(ndr, 5));
   25535           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pMachineName));
   25536           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
   25537             :         }
   25538           0 :         if (ndr_flags & NDR_BUFFERS) {
   25539           0 :                 if (r->pMachineName) {
   25540           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pMachineName, CH_UTF16)));
   25541           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   25542           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pMachineName, CH_UTF16)));
   25543           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pMachineName, ndr_charset_length(r->pMachineName, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   25544             :                 }
   25545             :         }
   25546           0 :         return NDR_ERR_SUCCESS;
   25547             : }
   25548             : 
   25549           0 : static enum ndr_err_code ndr_pull_spoolss_BranchOfficeLogOfflineFileFull(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_BranchOfficeLogOfflineFileFull *r)
   25550             : {
   25551           0 :         uint32_t _ptr_pMachineName;
   25552           0 :         uint32_t size_pMachineName_1 = 0;
   25553           0 :         uint32_t length_pMachineName_1 = 0;
   25554           0 :         TALLOC_CTX *_mem_save_pMachineName_0 = NULL;
   25555           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   25556           0 :         if (ndr_flags & NDR_SCALARS) {
   25557           0 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
   25558           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pMachineName));
   25559           0 :                 if (_ptr_pMachineName) {
   25560           0 :                         NDR_PULL_ALLOC(ndr, r->pMachineName);
   25561             :                 } else {
   25562           0 :                         r->pMachineName = NULL;
   25563             :                 }
   25564           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
   25565             :         }
   25566           0 :         if (ndr_flags & NDR_BUFFERS) {
   25567           0 :                 if (r->pMachineName) {
   25568           0 :                         _mem_save_pMachineName_0 = NDR_PULL_GET_MEM_CTX(ndr);
   25569           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pMachineName, 0);
   25570           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pMachineName));
   25571           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->pMachineName));
   25572           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pMachineName, &size_pMachineName_1));
   25573           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pMachineName, &length_pMachineName_1));
   25574           0 :                         if (length_pMachineName_1 > size_pMachineName_1) {
   25575           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_pMachineName_1, length_pMachineName_1);
   25576             :                         }
   25577           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pMachineName_1, sizeof(uint16_t)));
   25578           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pMachineName, length_pMachineName_1, sizeof(uint16_t), CH_UTF16));
   25579           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pMachineName_0, 0);
   25580             :                 }
   25581             :         }
   25582           0 :         return NDR_ERR_SUCCESS;
   25583             : }
   25584             : 
   25585           0 : _PUBLIC_ void ndr_print_spoolss_BranchOfficeLogOfflineFileFull(struct ndr_print *ndr, const char *name, const struct spoolss_BranchOfficeLogOfflineFileFull *r)
   25586             : {
   25587           0 :         ndr_print_struct(ndr, name, "spoolss_BranchOfficeLogOfflineFileFull");
   25588           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   25589           0 :         ndr->depth++;
   25590           0 :         ndr_print_ptr(ndr, "pMachineName", r->pMachineName);
   25591           0 :         ndr->depth++;
   25592           0 :         if (r->pMachineName) {
   25593           0 :                 ndr_print_string(ndr, "pMachineName", r->pMachineName);
   25594             :         }
   25595           0 :         ndr->depth--;
   25596           0 :         ndr->depth--;
   25597             : }
   25598             : 
   25599           0 : static enum ndr_err_code ndr_push_spoolss_BranchOfficeJobInfo(struct ndr_push *ndr, ndr_flags_type ndr_flags, const union spoolss_BranchOfficeJobInfo *r)
   25600             : {
   25601           0 :         uint32_t level;
   25602           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   25603           0 :         if (ndr_flags & NDR_SCALARS) {
   25604             :                 /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
   25605           0 :                 NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
   25606           0 :                 NDR_CHECK(ndr_push_union_align(ndr, 8));
   25607           0 :                 NDR_CHECK(ndr_push_EBranchOfficeJobEventType(ndr, NDR_SCALARS, level));
   25608             :                 /* ms_union is always aligned to the largest union arm*/
   25609           0 :                 NDR_CHECK(ndr_push_align(ndr, 8));
   25610           0 :                 switch (level) {
   25611           0 :                         case kLogJobPrinted: {
   25612           0 :                                 NDR_CHECK(ndr_push_spoolss_BranchOfficeJobDataPrinted(ndr, NDR_SCALARS, &r->LogJobPrinted));
   25613           0 :                         break; }
   25614             : 
   25615           0 :                         case kLogJobRendered: {
   25616           0 :                                 NDR_CHECK(ndr_push_spoolss_BranchOfficeJobDataRendered(ndr, NDR_SCALARS, &r->LogJobRendered));
   25617           0 :                         break; }
   25618             : 
   25619           0 :                         case kLogJobError: {
   25620           0 :                                 NDR_CHECK(ndr_push_spoolss_BranchOfficeJobDataError(ndr, NDR_SCALARS, &r->LogJobError));
   25621           0 :                         break; }
   25622             : 
   25623           0 :                         case kLogJobPipelineError: {
   25624           0 :                                 NDR_CHECK(ndr_push_spoolss_BranchOfficeJobDataPipelineFailed(ndr, NDR_SCALARS, &r->LogPipelineFailed));
   25625           0 :                         break; }
   25626             : 
   25627           0 :                         case kLogOfflineFileFull: {
   25628           0 :                                 NDR_CHECK(ndr_push_spoolss_BranchOfficeLogOfflineFileFull(ndr, NDR_SCALARS, &r->LogOfflineFileFull));
   25629           0 :                         break; }
   25630             : 
   25631           0 :                         default:
   25632           0 :                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32, level);
   25633             :                 }
   25634             :         }
   25635           0 :         if (ndr_flags & NDR_BUFFERS) {
   25636           0 :                 if (!(ndr_flags & NDR_SCALARS)) {
   25637             :                         /* We didn't get it above, and the token is not needed after this. */
   25638           0 :                         NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
   25639             :                 }
   25640           0 :                 switch (level) {
   25641           0 :                         case kLogJobPrinted:
   25642           0 :                                 NDR_CHECK(ndr_push_spoolss_BranchOfficeJobDataPrinted(ndr, NDR_BUFFERS, &r->LogJobPrinted));
   25643           0 :                         break;
   25644             : 
   25645           0 :                         case kLogJobRendered:
   25646           0 :                         break;
   25647             : 
   25648           0 :                         case kLogJobError:
   25649           0 :                                 NDR_CHECK(ndr_push_spoolss_BranchOfficeJobDataError(ndr, NDR_BUFFERS, &r->LogJobError));
   25650           0 :                         break;
   25651             : 
   25652           0 :                         case kLogJobPipelineError:
   25653           0 :                                 NDR_CHECK(ndr_push_spoolss_BranchOfficeJobDataPipelineFailed(ndr, NDR_BUFFERS, &r->LogPipelineFailed));
   25654           0 :                         break;
   25655             : 
   25656           0 :                         case kLogOfflineFileFull:
   25657           0 :                                 NDR_CHECK(ndr_push_spoolss_BranchOfficeLogOfflineFileFull(ndr, NDR_BUFFERS, &r->LogOfflineFileFull));
   25658           0 :                         break;
   25659             : 
   25660           0 :                         default:
   25661           0 :                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32, level);
   25662             :                 }
   25663             :         }
   25664           0 :         return NDR_ERR_SUCCESS;
   25665             : }
   25666             : 
   25667           0 : static enum ndr_err_code ndr_pull_spoolss_BranchOfficeJobInfo(struct ndr_pull *ndr, ndr_flags_type ndr_flags, union spoolss_BranchOfficeJobInfo *r)
   25668             : {
   25669           0 :         uint32_t level;
   25670           0 :         uint16_t _level;
   25671           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   25672           0 :         if (ndr_flags & NDR_SCALARS) {
   25673             :                 /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
   25674           0 :                 NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
   25675           0 :                 NDR_CHECK(ndr_pull_union_align(ndr, 8));
   25676           0 :                 NDR_CHECK(ndr_pull_uint1632(ndr, NDR_SCALARS, &_level));
   25677           0 :                 if (_level != level) {
   25678           0 :                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu16" for r at %s", (uint16_t)_level, __location__);
   25679             :                 }
   25680             :                 /* ms_union is always aligned to the largest union arm*/
   25681           0 :                 NDR_CHECK(ndr_pull_align(ndr, 8));
   25682           0 :                 switch (level) {
   25683           0 :                         case kLogJobPrinted: {
   25684           0 :                                 NDR_CHECK(ndr_pull_spoolss_BranchOfficeJobDataPrinted(ndr, NDR_SCALARS, &r->LogJobPrinted));
   25685           0 :                         break; }
   25686             : 
   25687           0 :                         case kLogJobRendered: {
   25688           0 :                                 NDR_CHECK(ndr_pull_spoolss_BranchOfficeJobDataRendered(ndr, NDR_SCALARS, &r->LogJobRendered));
   25689           0 :                         break; }
   25690             : 
   25691           0 :                         case kLogJobError: {
   25692           0 :                                 NDR_CHECK(ndr_pull_spoolss_BranchOfficeJobDataError(ndr, NDR_SCALARS, &r->LogJobError));
   25693           0 :                         break; }
   25694             : 
   25695           0 :                         case kLogJobPipelineError: {
   25696           0 :                                 NDR_CHECK(ndr_pull_spoolss_BranchOfficeJobDataPipelineFailed(ndr, NDR_SCALARS, &r->LogPipelineFailed));
   25697           0 :                         break; }
   25698             : 
   25699           0 :                         case kLogOfflineFileFull: {
   25700           0 :                                 NDR_CHECK(ndr_pull_spoolss_BranchOfficeLogOfflineFileFull(ndr, NDR_SCALARS, &r->LogOfflineFileFull));
   25701           0 :                         break; }
   25702             : 
   25703           0 :                         default:
   25704           0 :                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32" at %s", level, __location__);
   25705             :                 }
   25706             :         }
   25707           0 :         if (ndr_flags & NDR_BUFFERS) {
   25708           0 :                 if (!(ndr_flags & NDR_SCALARS)) {
   25709             :                         /* We didn't get it above, and the token is not needed after this. */
   25710           0 :                         NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
   25711             :                 }
   25712           0 :                 switch (level) {
   25713           0 :                         case kLogJobPrinted:
   25714           0 :                                 NDR_CHECK(ndr_pull_spoolss_BranchOfficeJobDataPrinted(ndr, NDR_BUFFERS, &r->LogJobPrinted));
   25715           0 :                         break;
   25716             : 
   25717           0 :                         case kLogJobRendered:
   25718           0 :                         break;
   25719             : 
   25720           0 :                         case kLogJobError:
   25721           0 :                                 NDR_CHECK(ndr_pull_spoolss_BranchOfficeJobDataError(ndr, NDR_BUFFERS, &r->LogJobError));
   25722           0 :                         break;
   25723             : 
   25724           0 :                         case kLogJobPipelineError:
   25725           0 :                                 NDR_CHECK(ndr_pull_spoolss_BranchOfficeJobDataPipelineFailed(ndr, NDR_BUFFERS, &r->LogPipelineFailed));
   25726           0 :                         break;
   25727             : 
   25728           0 :                         case kLogOfflineFileFull:
   25729           0 :                                 NDR_CHECK(ndr_pull_spoolss_BranchOfficeLogOfflineFileFull(ndr, NDR_BUFFERS, &r->LogOfflineFileFull));
   25730           0 :                         break;
   25731             : 
   25732           0 :                         default:
   25733           0 :                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32" at %s", level, __location__);
   25734             :                 }
   25735             :         }
   25736           0 :         return NDR_ERR_SUCCESS;
   25737             : }
   25738             : 
   25739           0 : _PUBLIC_ void ndr_print_spoolss_BranchOfficeJobInfo(struct ndr_print *ndr, const char *name, const union spoolss_BranchOfficeJobInfo *r)
   25740             : {
   25741           0 :         uint32_t level;
   25742           0 :         level = ndr_print_steal_switch_value(ndr, r);
   25743           0 :         ndr_print_union(ndr, name, level, "spoolss_BranchOfficeJobInfo");
   25744           0 :         switch (level) {
   25745           0 :                 case kLogJobPrinted:
   25746           0 :                         ndr_print_spoolss_BranchOfficeJobDataPrinted(ndr, "LogJobPrinted", &r->LogJobPrinted);
   25747           0 :                 break;
   25748             : 
   25749           0 :                 case kLogJobRendered:
   25750           0 :                         ndr_print_spoolss_BranchOfficeJobDataRendered(ndr, "LogJobRendered", &r->LogJobRendered);
   25751           0 :                 break;
   25752             : 
   25753           0 :                 case kLogJobError:
   25754           0 :                         ndr_print_spoolss_BranchOfficeJobDataError(ndr, "LogJobError", &r->LogJobError);
   25755           0 :                 break;
   25756             : 
   25757           0 :                 case kLogJobPipelineError:
   25758           0 :                         ndr_print_spoolss_BranchOfficeJobDataPipelineFailed(ndr, "LogPipelineFailed", &r->LogPipelineFailed);
   25759           0 :                 break;
   25760             : 
   25761           0 :                 case kLogOfflineFileFull:
   25762           0 :                         ndr_print_spoolss_BranchOfficeLogOfflineFileFull(ndr, "LogOfflineFileFull", &r->LogOfflineFileFull);
   25763           0 :                 break;
   25764             : 
   25765           0 :                 default:
   25766           0 :                         ndr_print_bad_level(ndr, name, level);
   25767             :         }
   25768           0 : }
   25769             : 
   25770           0 : static enum ndr_err_code ndr_push_spoolss_BranchOfficeJobData(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_BranchOfficeJobData *r)
   25771             : {
   25772           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   25773           0 :         if (ndr_flags & NDR_SCALARS) {
   25774           0 :                 NDR_CHECK(ndr_push_align(ndr, 8));
   25775           0 :                 NDR_CHECK(ndr_push_EBranchOfficeJobEventType(ndr, NDR_SCALARS, r->eEventType));
   25776           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->JobId));
   25777           0 :                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->JobInfo, r->eEventType));
   25778           0 :                 NDR_CHECK(ndr_push_spoolss_BranchOfficeJobInfo(ndr, NDR_SCALARS, &r->JobInfo));
   25779           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
   25780             :         }
   25781           0 :         if (ndr_flags & NDR_BUFFERS) {
   25782           0 :                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->JobInfo, r->eEventType));
   25783           0 :                 NDR_CHECK(ndr_push_spoolss_BranchOfficeJobInfo(ndr, NDR_BUFFERS, &r->JobInfo));
   25784             :         }
   25785           0 :         return NDR_ERR_SUCCESS;
   25786             : }
   25787             : 
   25788           0 : static enum ndr_err_code ndr_pull_spoolss_BranchOfficeJobData(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_BranchOfficeJobData *r)
   25789             : {
   25790           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   25791           0 :         if (ndr_flags & NDR_SCALARS) {
   25792           0 :                 NDR_CHECK(ndr_pull_align(ndr, 8));
   25793           0 :                 NDR_CHECK(ndr_pull_EBranchOfficeJobEventType(ndr, NDR_SCALARS, &r->eEventType));
   25794           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->JobId));
   25795           0 :                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->JobInfo, r->eEventType));
   25796           0 :                 NDR_CHECK(ndr_pull_spoolss_BranchOfficeJobInfo(ndr, NDR_SCALARS, &r->JobInfo));
   25797           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
   25798             :         }
   25799           0 :         if (ndr_flags & NDR_BUFFERS) {
   25800           0 :                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->JobInfo, r->eEventType));
   25801           0 :                 NDR_CHECK(ndr_pull_spoolss_BranchOfficeJobInfo(ndr, NDR_BUFFERS, &r->JobInfo));
   25802             :         }
   25803           0 :         return NDR_ERR_SUCCESS;
   25804             : }
   25805             : 
   25806           0 : _PUBLIC_ void ndr_print_spoolss_BranchOfficeJobData(struct ndr_print *ndr, const char *name, const struct spoolss_BranchOfficeJobData *r)
   25807             : {
   25808           0 :         ndr_print_struct(ndr, name, "spoolss_BranchOfficeJobData");
   25809           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   25810           0 :         ndr->depth++;
   25811           0 :         ndr_print_EBranchOfficeJobEventType(ndr, "eEventType", r->eEventType);
   25812           0 :         ndr_print_uint32(ndr, "JobId", r->JobId);
   25813           0 :         ndr_print_set_switch_value(ndr, &r->JobInfo, r->eEventType);
   25814           0 :         ndr_print_spoolss_BranchOfficeJobInfo(ndr, "JobInfo", &r->JobInfo);
   25815           0 :         ndr->depth--;
   25816             : }
   25817             : 
   25818           8 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_BranchOfficeJobDataContainer(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_BranchOfficeJobDataContainer *r)
   25819             : {
   25820           0 :         uint32_t cntr_JobData_0;
   25821           8 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
   25822           8 :         if (ndr_flags & NDR_SCALARS) {
   25823           8 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->cJobDataEntries));
   25824           8 :                 NDR_CHECK(ndr_push_align(ndr, 8));
   25825           8 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cJobDataEntries));
   25826           8 :                 for (cntr_JobData_0 = 0; cntr_JobData_0 < (r->cJobDataEntries); cntr_JobData_0++) {
   25827           0 :                         NDR_CHECK(ndr_push_spoolss_BranchOfficeJobData(ndr, NDR_SCALARS, &r->JobData[cntr_JobData_0]));
   25828             :                 }
   25829           8 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
   25830             :         }
   25831           8 :         if (ndr_flags & NDR_BUFFERS) {
   25832           8 :                 for (cntr_JobData_0 = 0; cntr_JobData_0 < (r->cJobDataEntries); cntr_JobData_0++) {
   25833           0 :                         NDR_CHECK(ndr_push_spoolss_BranchOfficeJobData(ndr, NDR_BUFFERS, &r->JobData[cntr_JobData_0]));
   25834             :                 }
   25835             :         }
   25836           8 :         return NDR_ERR_SUCCESS;
   25837             : }
   25838             : 
   25839           8 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_BranchOfficeJobDataContainer(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_BranchOfficeJobDataContainer *r)
   25840             : {
   25841           8 :         uint32_t size_JobData_0 = 0;
   25842           0 :         uint32_t cntr_JobData_0;
   25843           8 :         TALLOC_CTX *_mem_save_JobData_0 = NULL;
   25844           8 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
   25845           8 :         if (ndr_flags & NDR_SCALARS) {
   25846           8 :                 NDR_CHECK(ndr_pull_array_size(ndr, &r->JobData));
   25847           8 :                 NDR_CHECK(ndr_pull_align(ndr, 8));
   25848           8 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cJobDataEntries));
   25849           8 :                 NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->JobData, &size_JobData_0));
   25850           8 :                 NDR_PULL_ALLOC_N(ndr, r->JobData, size_JobData_0);
   25851           8 :                 _mem_save_JobData_0 = NDR_PULL_GET_MEM_CTX(ndr);
   25852           8 :                 NDR_PULL_SET_MEM_CTX(ndr, r->JobData, 0);
   25853           8 :                 for (cntr_JobData_0 = 0; cntr_JobData_0 < (size_JobData_0); cntr_JobData_0++) {
   25854           0 :                         NDR_CHECK(ndr_pull_spoolss_BranchOfficeJobData(ndr, NDR_SCALARS, &r->JobData[cntr_JobData_0]));
   25855             :                 }
   25856           8 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_JobData_0, 0);
   25857           8 :                 if (r->JobData) {
   25858           8 :                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->JobData, r->cJobDataEntries));
   25859             :                 }
   25860           8 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
   25861             :         }
   25862           8 :         if (ndr_flags & NDR_BUFFERS) {
   25863           8 :                 NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->JobData, &size_JobData_0));
   25864           8 :                 _mem_save_JobData_0 = NDR_PULL_GET_MEM_CTX(ndr);
   25865           8 :                 NDR_PULL_SET_MEM_CTX(ndr, r->JobData, 0);
   25866           8 :                 for (cntr_JobData_0 = 0; cntr_JobData_0 < (size_JobData_0); cntr_JobData_0++) {
   25867           0 :                         NDR_CHECK(ndr_pull_spoolss_BranchOfficeJobData(ndr, NDR_BUFFERS, &r->JobData[cntr_JobData_0]));
   25868             :                 }
   25869           8 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_JobData_0, 0);
   25870           8 :                 for (cntr_JobData_0 = 0; cntr_JobData_0 < (size_JobData_0); cntr_JobData_0++) {
   25871             :                 }
   25872             :         }
   25873           8 :         return NDR_ERR_SUCCESS;
   25874             : }
   25875             : 
   25876           0 : static void ndr_print_flags_spoolss_BranchOfficeJobDataContainer(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_BranchOfficeJobDataContainer *r)
   25877             : {
   25878           0 :         ndr_print_spoolss_BranchOfficeJobDataContainer(ndr, name, r);
   25879           0 : }
   25880             : 
   25881           0 : _PUBLIC_ void ndr_print_spoolss_BranchOfficeJobDataContainer(struct ndr_print *ndr, const char *name, const struct spoolss_BranchOfficeJobDataContainer *r)
   25882             : {
   25883           0 :         uint32_t cntr_JobData_0;
   25884           0 :         ndr_print_struct(ndr, name, "spoolss_BranchOfficeJobDataContainer");
   25885           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   25886           0 :         ndr->depth++;
   25887           0 :         ndr_print_uint32(ndr, "cJobDataEntries", r->cJobDataEntries);
   25888           0 :         ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "JobData", (uint32_t)(r->cJobDataEntries));
   25889           0 :         ndr->depth++;
   25890           0 :         for (cntr_JobData_0 = 0; cntr_JobData_0 < (r->cJobDataEntries); cntr_JobData_0++) {
   25891           0 :                 ndr_print_spoolss_BranchOfficeJobData(ndr, "JobData", &r->JobData[cntr_JobData_0]);
   25892             :         }
   25893           0 :         ndr->depth--;
   25894           0 :         ndr->depth--;
   25895             : }
   25896             : 
   25897         360 : _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinters(struct ndr_push *ndr, ndr_flags_type flags, const struct _spoolss_EnumPrinters *r)
   25898             : {
   25899         360 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   25900         360 :         if (flags & NDR_IN) {
   25901         180 :                 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, r->in.flags));
   25902         180 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
   25903         180 :                 if (r->in.server) {
   25904         120 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
   25905         120 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   25906         120 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
   25907         120 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   25908             :                 }
   25909         180 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
   25910         180 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
   25911         180 :                 if (r->in.buffer) {
   25912          92 :                         NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
   25913             :                 }
   25914         180 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
   25915             :         }
   25916         360 :         if (flags & NDR_OUT) {
   25917         180 :                 if (r->out.needed == NULL) {
   25918           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   25919             :                 }
   25920         180 :                 if (r->out.count == NULL) {
   25921           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   25922             :                 }
   25923         180 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
   25924         180 :                 if (r->out.info) {
   25925          92 :                         NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
   25926             :                 }
   25927         180 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
   25928         180 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
   25929         180 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   25930             :         }
   25931         360 :         return NDR_ERR_SUCCESS;
   25932             : }
   25933             : 
   25934         360 : _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinters(struct ndr_pull *ndr, ndr_flags_type flags, struct _spoolss_EnumPrinters *r)
   25935             : {
   25936           0 :         uint32_t _ptr_server;
   25937         360 :         uint32_t size_server_1 = 0;
   25938         360 :         uint32_t length_server_1 = 0;
   25939           0 :         uint32_t _ptr_buffer;
   25940           0 :         uint32_t _ptr_info;
   25941         360 :         TALLOC_CTX *_mem_save_server_0 = NULL;
   25942         360 :         TALLOC_CTX *_mem_save_buffer_0 = NULL;
   25943         360 :         TALLOC_CTX *_mem_save_info_0 = NULL;
   25944         360 :         TALLOC_CTX *_mem_save_needed_0 = NULL;
   25945         360 :         TALLOC_CTX *_mem_save_count_0 = NULL;
   25946         360 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   25947         360 :         if (flags & NDR_IN) {
   25948         180 :                 NDR_ZERO_STRUCT(r->out);
   25949             : 
   25950         180 :                 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, &r->in.flags));
   25951         180 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
   25952         180 :                 if (_ptr_server) {
   25953         120 :                         NDR_PULL_ALLOC(ndr, r->in.server);
   25954             :                 } else {
   25955          60 :                         r->in.server = NULL;
   25956             :                 }
   25957         180 :                 if (r->in.server) {
   25958         120 :                         _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
   25959         120 :                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
   25960         120 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
   25961         120 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
   25962         120 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.server, &size_server_1));
   25963         120 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.server, &length_server_1));
   25964         120 :                         if (length_server_1 > size_server_1) {
   25965           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_server_1, length_server_1);
   25966             :                         }
   25967         120 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_server_1, sizeof(uint16_t)));
   25968         120 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, length_server_1, sizeof(uint16_t), CH_UTF16));
   25969         120 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
   25970             :                 }
   25971         180 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
   25972         180 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
   25973         180 :                 if (_ptr_buffer) {
   25974          92 :                         NDR_PULL_ALLOC(ndr, r->in.buffer);
   25975             :                 } else {
   25976          88 :                         r->in.buffer = NULL;
   25977             :                 }
   25978         180 :                 if (r->in.buffer) {
   25979          92 :                         _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
   25980          92 :                         NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
   25981          92 :                         NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
   25982          92 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
   25983             :                 }
   25984         180 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
   25985         180 :                 NDR_PULL_ALLOC(ndr, r->out.needed);
   25986         180 :                 NDR_ZERO_STRUCTP(r->out.needed);
   25987         180 :                 NDR_PULL_ALLOC(ndr, r->out.count);
   25988         180 :                 NDR_ZERO_STRUCTP(r->out.count);
   25989             :         }
   25990         360 :         if (flags & NDR_OUT) {
   25991             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   25992             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   25993         180 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
   25994         180 :                 if (_ptr_info) {
   25995          92 :                         NDR_PULL_ALLOC(ndr, r->out.info);
   25996             :                 } else {
   25997          88 :                         r->out.info = NULL;
   25998             :                 }
   25999         180 :                 if (r->out.info) {
   26000          92 :                         _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
   26001          92 :                         NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
   26002          92 :                         NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
   26003          92 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
   26004             :                 }
   26005         180 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   26006           0 :                         NDR_PULL_ALLOC(ndr, r->out.needed);
   26007             :                 }
   26008         180 :                 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
   26009         180 :                 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
   26010         180 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
   26011         180 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
   26012         180 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   26013           0 :                         NDR_PULL_ALLOC(ndr, r->out.count);
   26014             :                 }
   26015         180 :                 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
   26016         180 :                 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
   26017         180 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
   26018         180 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
   26019         180 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   26020             :         }
   26021         360 :         return NDR_ERR_SUCCESS;
   26022             : }
   26023             : 
   26024         272 : _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinters(struct ndr_push *ndr, ndr_flags_type flags, const struct __spoolss_EnumPrinters *r)
   26025             : {
   26026           0 :         uint32_t cntr_info_0;
   26027         272 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   26028         272 :         if (flags & NDR_IN) {
   26029           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
   26030           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
   26031             :         }
   26032         272 :         if (flags & NDR_OUT) {
   26033        1712 :                 for (cntr_info_0 = 0; cntr_info_0 < (r->in.count); cntr_info_0++) {
   26034        1440 :                         NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
   26035        1440 :                         NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
   26036             :                 }
   26037        1712 :                 for (cntr_info_0 = 0; cntr_info_0 < (r->in.count); cntr_info_0++) {
   26038        1440 :                         NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
   26039        1440 :                         NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
   26040             :                 }
   26041             :         }
   26042         272 :         return NDR_ERR_SUCCESS;
   26043             : }
   26044             : 
   26045          84 : _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinters(struct ndr_pull *ndr, ndr_flags_type flags, struct __spoolss_EnumPrinters *r)
   26046             : {
   26047          84 :         uint32_t size_info_0 = 0;
   26048           0 :         uint32_t cntr_info_0;
   26049          84 :         TALLOC_CTX *_mem_save_info_0 = NULL;
   26050          84 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   26051          84 :         if (flags & NDR_IN) {
   26052           0 :                 NDR_ZERO_STRUCT(r->out);
   26053             : 
   26054           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
   26055           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
   26056             :         }
   26057          84 :         if (flags & NDR_OUT) {
   26058             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   26059             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   26060          84 :                 size_info_0 = r->in.count;
   26061          84 :                 NDR_PULL_ALLOC_N(ndr, r->out.info, size_info_0);
   26062          84 :                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
   26063          84 :                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
   26064         544 :                 for (cntr_info_0 = 0; cntr_info_0 < (size_info_0); cntr_info_0++) {
   26065         460 :                         NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
   26066         460 :                         NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
   26067             :                 }
   26068         544 :                 for (cntr_info_0 = 0; cntr_info_0 < (size_info_0); cntr_info_0++) {
   26069         460 :                         NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
   26070         460 :                         NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
   26071             :                 }
   26072          84 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
   26073         544 :                 for (cntr_info_0 = 0; cntr_info_0 < (size_info_0); cntr_info_0++) {
   26074             :                 }
   26075             :         }
   26076          84 :         return NDR_ERR_SUCCESS;
   26077             : }
   26078             : 
   26079           0 : _PUBLIC_ void ndr_print_spoolss_EnumPrinters(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_EnumPrinters *r)
   26080             : {
   26081           0 :         uint32_t cntr_info_2;
   26082           0 :         ndr_print_struct(ndr, name, "spoolss_EnumPrinters");
   26083           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   26084           0 :         ndr->depth++;
   26085           0 :         if (flags & NDR_SET_VALUES) {
   26086           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   26087             :         }
   26088           0 :         if (flags & NDR_IN) {
   26089           0 :                 ndr_print_struct(ndr, "in", "spoolss_EnumPrinters");
   26090           0 :                 ndr->depth++;
   26091           0 :                 ndr_print_spoolss_EnumPrinterFlags(ndr, "flags", r->in.flags);
   26092           0 :                 ndr_print_ptr(ndr, "server", r->in.server);
   26093           0 :                 ndr->depth++;
   26094           0 :                 if (r->in.server) {
   26095           0 :                         ndr_print_string(ndr, "server", r->in.server);
   26096             :                 }
   26097           0 :                 ndr->depth--;
   26098           0 :                 ndr_print_uint32(ndr, "level", r->in.level);
   26099           0 :                 ndr_print_ptr(ndr, "buffer", r->in.buffer);
   26100           0 :                 ndr->depth++;
   26101           0 :                 if (r->in.buffer) {
   26102           0 :                         ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
   26103             :                 }
   26104           0 :                 ndr->depth--;
   26105           0 :                 ndr_print_uint32(ndr, "offered", r->in.offered);
   26106           0 :                 ndr->depth--;
   26107             :         }
   26108           0 :         if (flags & NDR_OUT) {
   26109           0 :                 ndr_print_struct(ndr, "out", "spoolss_EnumPrinters");
   26110           0 :                 ndr->depth++;
   26111           0 :                 ndr_print_ptr(ndr, "count", r->out.count);
   26112           0 :                 ndr->depth++;
   26113           0 :                 ndr_print_uint32(ndr, "count", *r->out.count);
   26114           0 :                 ndr->depth--;
   26115           0 :                 ndr_print_ptr(ndr, "info", r->out.info);
   26116           0 :                 ndr->depth++;
   26117           0 :                 ndr_print_ptr(ndr, "info", *r->out.info);
   26118           0 :                 ndr->depth++;
   26119           0 :                 if (*r->out.info) {
   26120           0 :                         ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "info", (uint32_t)(*r->out.count));
   26121           0 :                         ndr->depth++;
   26122           0 :                         for (cntr_info_2 = 0; cntr_info_2 < (*r->out.count); cntr_info_2++) {
   26123           0 :                                 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
   26124           0 :                                 ndr_print_spoolss_PrinterInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
   26125             :                         }
   26126           0 :                         ndr->depth--;
   26127             :                 }
   26128           0 :                 ndr->depth--;
   26129           0 :                 ndr->depth--;
   26130           0 :                 ndr_print_ptr(ndr, "needed", r->out.needed);
   26131           0 :                 ndr->depth++;
   26132           0 :                 ndr_print_uint32(ndr, "needed", *r->out.needed);
   26133           0 :                 ndr->depth--;
   26134           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   26135           0 :                 ndr->depth--;
   26136             :         }
   26137           0 :         ndr->depth--;
   26138             : }
   26139             : 
   26140         388 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OpenPrinter(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_OpenPrinter *r)
   26141             : {
   26142         388 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   26143         388 :         if (flags & NDR_IN) {
   26144         194 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.printername));
   26145         194 :                 if (r->in.printername) {
   26146         194 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
   26147         194 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   26148         194 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
   26149         194 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.printername, ndr_charset_length(r->in.printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   26150             :                 }
   26151         194 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.datatype));
   26152         194 :                 if (r->in.datatype) {
   26153          28 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
   26154          28 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   26155          28 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
   26156          28 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.datatype, ndr_charset_length(r->in.datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   26157             :                 }
   26158         194 :                 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
   26159         194 :                 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr, NDR_SCALARS, r->in.access_mask));
   26160             :         }
   26161         388 :         if (flags & NDR_OUT) {
   26162         194 :                 if (r->out.handle == NULL) {
   26163           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   26164             :                 }
   26165         194 :                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
   26166         194 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   26167             :         }
   26168         388 :         return NDR_ERR_SUCCESS;
   26169             : }
   26170             : 
   26171         388 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OpenPrinter(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_OpenPrinter *r)
   26172             : {
   26173           0 :         uint32_t _ptr_printername;
   26174         388 :         uint32_t size_printername_1 = 0;
   26175         388 :         uint32_t length_printername_1 = 0;
   26176           0 :         uint32_t _ptr_datatype;
   26177         388 :         uint32_t size_datatype_1 = 0;
   26178         388 :         uint32_t length_datatype_1 = 0;
   26179         388 :         TALLOC_CTX *_mem_save_printername_0 = NULL;
   26180         388 :         TALLOC_CTX *_mem_save_datatype_0 = NULL;
   26181         388 :         TALLOC_CTX *_mem_save_handle_0 = NULL;
   26182         388 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   26183         388 :         if (flags & NDR_IN) {
   26184         194 :                 NDR_ZERO_STRUCT(r->out);
   26185             : 
   26186         194 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
   26187         194 :                 if (_ptr_printername) {
   26188         194 :                         NDR_PULL_ALLOC(ndr, r->in.printername);
   26189             :                 } else {
   26190           0 :                         r->in.printername = NULL;
   26191             :                 }
   26192         194 :                 if (r->in.printername) {
   26193         194 :                         _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
   26194         194 :                         NDR_PULL_SET_MEM_CTX(ndr, r->in.printername, 0);
   26195         194 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printername));
   26196         194 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printername));
   26197         194 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.printername, &size_printername_1));
   26198         194 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.printername, &length_printername_1));
   26199         194 :                         if (length_printername_1 > size_printername_1) {
   26200           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_printername_1, length_printername_1);
   26201             :                         }
   26202         194 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_printername_1, sizeof(uint16_t)));
   26203         194 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, length_printername_1, sizeof(uint16_t), CH_UTF16));
   26204         194 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
   26205             :                 }
   26206         194 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
   26207         194 :                 if (_ptr_datatype) {
   26208          28 :                         NDR_PULL_ALLOC(ndr, r->in.datatype);
   26209             :                 } else {
   26210         166 :                         r->in.datatype = NULL;
   26211             :                 }
   26212         194 :                 if (r->in.datatype) {
   26213          28 :                         _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
   26214          28 :                         NDR_PULL_SET_MEM_CTX(ndr, r->in.datatype, 0);
   26215          28 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.datatype));
   26216          28 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.datatype));
   26217          28 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.datatype, &size_datatype_1));
   26218          28 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.datatype, &length_datatype_1));
   26219          28 :                         if (length_datatype_1 > size_datatype_1) {
   26220           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_datatype_1, length_datatype_1);
   26221             :                         }
   26222          28 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_datatype_1, sizeof(uint16_t)));
   26223          28 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.datatype, length_datatype_1, sizeof(uint16_t), CH_UTF16));
   26224          28 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
   26225             :                 }
   26226         194 :                 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
   26227         194 :                 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr, NDR_SCALARS, &r->in.access_mask));
   26228         194 :                 NDR_PULL_ALLOC(ndr, r->out.handle);
   26229         194 :                 NDR_ZERO_STRUCTP(r->out.handle);
   26230             :         }
   26231         388 :         if (flags & NDR_OUT) {
   26232             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   26233             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   26234         194 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   26235          28 :                         NDR_PULL_ALLOC(ndr, r->out.handle);
   26236             :                 }
   26237         194 :                 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
   26238         194 :                 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
   26239         194 :                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
   26240         194 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
   26241         194 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   26242             :         }
   26243         388 :         return NDR_ERR_SUCCESS;
   26244             : }
   26245             : 
   26246           0 : _PUBLIC_ void ndr_print_spoolss_OpenPrinter(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_OpenPrinter *r)
   26247             : {
   26248           0 :         ndr_print_struct(ndr, name, "spoolss_OpenPrinter");
   26249           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   26250           0 :         ndr->depth++;
   26251           0 :         if (flags & NDR_SET_VALUES) {
   26252           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   26253             :         }
   26254           0 :         if (flags & NDR_IN) {
   26255           0 :                 ndr_print_struct(ndr, "in", "spoolss_OpenPrinter");
   26256           0 :                 ndr->depth++;
   26257           0 :                 ndr_print_ptr(ndr, "printername", r->in.printername);
   26258           0 :                 ndr->depth++;
   26259           0 :                 if (r->in.printername) {
   26260           0 :                         ndr_print_string(ndr, "printername", r->in.printername);
   26261             :                 }
   26262           0 :                 ndr->depth--;
   26263           0 :                 ndr_print_ptr(ndr, "datatype", r->in.datatype);
   26264           0 :                 ndr->depth++;
   26265           0 :                 if (r->in.datatype) {
   26266           0 :                         ndr_print_string(ndr, "datatype", r->in.datatype);
   26267             :                 }
   26268           0 :                 ndr->depth--;
   26269           0 :                 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", &r->in.devmode_ctr);
   26270           0 :                 ndr_print_spoolss_AccessRights(ndr, "access_mask", r->in.access_mask);
   26271           0 :                 ndr->depth--;
   26272             :         }
   26273           0 :         if (flags & NDR_OUT) {
   26274           0 :                 ndr_print_struct(ndr, "out", "spoolss_OpenPrinter");
   26275           0 :                 ndr->depth++;
   26276           0 :                 ndr_print_ptr(ndr, "handle", r->out.handle);
   26277           0 :                 ndr->depth++;
   26278           0 :                 ndr_print_policy_handle(ndr, "handle", r->out.handle);
   26279           0 :                 ndr->depth--;
   26280           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   26281           0 :                 ndr->depth--;
   26282             :         }
   26283           0 :         ndr->depth--;
   26284             : }
   26285             : 
   26286        1280 : static enum ndr_err_code ndr_push_spoolss_SetJob(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_SetJob *r)
   26287             : {
   26288        1280 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   26289        1280 :         if (flags & NDR_IN) {
   26290         640 :                 if (r->in.handle == NULL) {
   26291           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   26292             :                 }
   26293         640 :                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
   26294         640 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.job_id));
   26295         640 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.ctr));
   26296         640 :                 if (r->in.ctr) {
   26297          32 :                         NDR_CHECK(ndr_push_spoolss_JobInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
   26298             :                 }
   26299         640 :                 NDR_CHECK(ndr_push_spoolss_JobControl(ndr, NDR_SCALARS, r->in.command));
   26300             :         }
   26301        1280 :         if (flags & NDR_OUT) {
   26302         640 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   26303             :         }
   26304        1280 :         return NDR_ERR_SUCCESS;
   26305             : }
   26306             : 
   26307        1280 : static enum ndr_err_code ndr_pull_spoolss_SetJob(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_SetJob *r)
   26308             : {
   26309           0 :         uint32_t _ptr_ctr;
   26310        1280 :         TALLOC_CTX *_mem_save_handle_0 = NULL;
   26311        1280 :         TALLOC_CTX *_mem_save_ctr_0 = NULL;
   26312        1280 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   26313        1280 :         if (flags & NDR_IN) {
   26314         640 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   26315         640 :                         NDR_PULL_ALLOC(ndr, r->in.handle);
   26316             :                 }
   26317         640 :                 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
   26318         640 :                 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
   26319         640 :                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
   26320         640 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
   26321         640 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.job_id));
   26322         640 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr));
   26323         640 :                 if (_ptr_ctr) {
   26324          32 :                         NDR_PULL_ALLOC(ndr, r->in.ctr);
   26325             :                 } else {
   26326         608 :                         r->in.ctr = NULL;
   26327             :                 }
   26328         640 :                 if (r->in.ctr) {
   26329          32 :                         _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
   26330          32 :                         NDR_PULL_SET_MEM_CTX(ndr, r->in.ctr, 0);
   26331          32 :                         NDR_CHECK(ndr_pull_spoolss_JobInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
   26332          32 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, 0);
   26333             :                 }
   26334         640 :                 NDR_CHECK(ndr_pull_spoolss_JobControl(ndr, NDR_SCALARS, &r->in.command));
   26335             :         }
   26336        1280 :         if (flags & NDR_OUT) {
   26337             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   26338             :                 if (r->in.handle == NULL) {
   26339             :                         NDR_PULL_ALLOC(ndr, r->in.handle);
   26340             :                         NDR_ZERO_STRUCTP(r->in.handle);
   26341             :                 }
   26342             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   26343         640 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   26344             :         }
   26345        1280 :         return NDR_ERR_SUCCESS;
   26346             : }
   26347             : 
   26348           0 : _PUBLIC_ void ndr_print_spoolss_SetJob(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_SetJob *r)
   26349             : {
   26350           0 :         ndr_print_struct(ndr, name, "spoolss_SetJob");
   26351           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   26352           0 :         ndr->depth++;
   26353           0 :         if (flags & NDR_SET_VALUES) {
   26354           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   26355             :         }
   26356           0 :         if (flags & NDR_IN) {
   26357           0 :                 ndr_print_struct(ndr, "in", "spoolss_SetJob");
   26358           0 :                 ndr->depth++;
   26359           0 :                 ndr_print_ptr(ndr, "handle", r->in.handle);
   26360           0 :                 ndr->depth++;
   26361           0 :                 ndr_print_policy_handle(ndr, "handle", r->in.handle);
   26362           0 :                 ndr->depth--;
   26363           0 :                 ndr_print_uint32(ndr, "job_id", r->in.job_id);
   26364           0 :                 ndr_print_ptr(ndr, "ctr", r->in.ctr);
   26365           0 :                 ndr->depth++;
   26366           0 :                 if (r->in.ctr) {
   26367           0 :                         ndr_print_spoolss_JobInfoContainer(ndr, "ctr", r->in.ctr);
   26368             :                 }
   26369           0 :                 ndr->depth--;
   26370           0 :                 ndr_print_spoolss_JobControl(ndr, "command", r->in.command);
   26371           0 :                 ndr->depth--;
   26372             :         }
   26373           0 :         if (flags & NDR_OUT) {
   26374           0 :                 ndr_print_struct(ndr, "out", "spoolss_SetJob");
   26375           0 :                 ndr->depth++;
   26376           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   26377           0 :                 ndr->depth--;
   26378             :         }
   26379           0 :         ndr->depth--;
   26380             : }
   26381             : 
   26382        4096 : static enum ndr_err_code ndr_push_spoolss_GetJob(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_GetJob *r)
   26383             : {
   26384        4096 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   26385        4096 :         if (flags & NDR_IN) {
   26386        2048 :                 if (r->in.handle == NULL) {
   26387           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   26388             :                 }
   26389        2048 :                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
   26390        2048 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.job_id));
   26391        2048 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
   26392        2048 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
   26393        2048 :                 if (r->in.buffer) {
   26394          64 :                         NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
   26395             :                 }
   26396        2048 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
   26397             :         }
   26398        4096 :         if (flags & NDR_OUT) {
   26399        2048 :                 if (r->out.needed == NULL) {
   26400           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   26401             :                 }
   26402        2048 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
   26403        2048 :                 if (r->out.info) {
   26404             :                         {
   26405           0 :                                 struct ndr_push *_ndr_info;
   26406          64 :                                 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
   26407          64 :                                 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
   26408          64 :                                 NDR_CHECK(ndr_push_spoolss_JobInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
   26409          64 :                                 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
   26410             :                         }
   26411             :                 }
   26412        2048 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
   26413        2048 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   26414             :         }
   26415        4096 :         return NDR_ERR_SUCCESS;
   26416             : }
   26417             : 
   26418        4096 : static enum ndr_err_code ndr_pull_spoolss_GetJob(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_GetJob *r)
   26419             : {
   26420           0 :         uint32_t _ptr_buffer;
   26421           0 :         uint32_t _ptr_info;
   26422        4096 :         TALLOC_CTX *_mem_save_handle_0 = NULL;
   26423        4096 :         TALLOC_CTX *_mem_save_buffer_0 = NULL;
   26424        4096 :         TALLOC_CTX *_mem_save_info_0 = NULL;
   26425        4096 :         TALLOC_CTX *_mem_save_needed_0 = NULL;
   26426        4096 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   26427        4096 :         if (flags & NDR_IN) {
   26428        2048 :                 NDR_ZERO_STRUCT(r->out);
   26429             : 
   26430        2048 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   26431        2048 :                         NDR_PULL_ALLOC(ndr, r->in.handle);
   26432             :                 }
   26433        2048 :                 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
   26434        2048 :                 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
   26435        2048 :                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
   26436        2048 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
   26437        2048 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.job_id));
   26438        2048 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
   26439        2048 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
   26440        2048 :                 if (_ptr_buffer) {
   26441          64 :                         NDR_PULL_ALLOC(ndr, r->in.buffer);
   26442             :                 } else {
   26443        1984 :                         r->in.buffer = NULL;
   26444             :                 }
   26445        2048 :                 if (r->in.buffer) {
   26446          64 :                         _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
   26447          64 :                         NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
   26448          64 :                         NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
   26449          64 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
   26450             :                 }
   26451        2048 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
   26452        2048 :                 NDR_PULL_ALLOC(ndr, r->out.needed);
   26453        2048 :                 NDR_ZERO_STRUCTP(r->out.needed);
   26454             :         }
   26455        4096 :         if (flags & NDR_OUT) {
   26456             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   26457             :                 if (r->in.handle == NULL) {
   26458             :                         NDR_PULL_ALLOC(ndr, r->in.handle);
   26459             :                         NDR_ZERO_STRUCTP(r->in.handle);
   26460             :                 }
   26461             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   26462        2048 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
   26463        2048 :                 if (_ptr_info) {
   26464          64 :                         NDR_PULL_ALLOC(ndr, r->out.info);
   26465             :                 } else {
   26466        1984 :                         r->out.info = NULL;
   26467             :                 }
   26468        2048 :                 if (r->out.info) {
   26469          64 :                         _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
   26470          64 :                         NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
   26471             :                         {
   26472           0 :                                 struct ndr_pull *_ndr_info;
   26473          64 :                                 ssize_t sub_size = r->in.offered;
   26474          64 :                                 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, sub_size));
   26475          64 :                                 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
   26476          64 :                                 NDR_CHECK(ndr_pull_spoolss_JobInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
   26477          64 :                                 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, sub_size));
   26478             :                         }
   26479          64 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
   26480             :                 }
   26481        2048 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   26482           0 :                         NDR_PULL_ALLOC(ndr, r->out.needed);
   26483             :                 }
   26484        2048 :                 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
   26485        2048 :                 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
   26486        2048 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
   26487        2048 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
   26488        2048 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   26489             :         }
   26490        4096 :         return NDR_ERR_SUCCESS;
   26491             : }
   26492             : 
   26493           0 : _PUBLIC_ void ndr_print_spoolss_GetJob(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_GetJob *r)
   26494             : {
   26495           0 :         ndr_print_struct(ndr, name, "spoolss_GetJob");
   26496           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   26497           0 :         ndr->depth++;
   26498           0 :         if (flags & NDR_SET_VALUES) {
   26499           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   26500             :         }
   26501           0 :         if (flags & NDR_IN) {
   26502           0 :                 ndr_print_struct(ndr, "in", "spoolss_GetJob");
   26503           0 :                 ndr->depth++;
   26504           0 :                 ndr_print_ptr(ndr, "handle", r->in.handle);
   26505           0 :                 ndr->depth++;
   26506           0 :                 ndr_print_policy_handle(ndr, "handle", r->in.handle);
   26507           0 :                 ndr->depth--;
   26508           0 :                 ndr_print_uint32(ndr, "job_id", r->in.job_id);
   26509           0 :                 ndr_print_uint32(ndr, "level", r->in.level);
   26510           0 :                 ndr_print_ptr(ndr, "buffer", r->in.buffer);
   26511           0 :                 ndr->depth++;
   26512           0 :                 if (r->in.buffer) {
   26513           0 :                         ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
   26514             :                 }
   26515           0 :                 ndr->depth--;
   26516           0 :                 ndr_print_uint32(ndr, "offered", r->in.offered);
   26517           0 :                 ndr->depth--;
   26518             :         }
   26519           0 :         if (flags & NDR_OUT) {
   26520           0 :                 ndr_print_struct(ndr, "out", "spoolss_GetJob");
   26521           0 :                 ndr->depth++;
   26522           0 :                 ndr_print_ptr(ndr, "info", r->out.info);
   26523           0 :                 ndr->depth++;
   26524           0 :                 if (r->out.info) {
   26525           0 :                         ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
   26526           0 :                         ndr_print_spoolss_JobInfo(ndr, "info", r->out.info);
   26527             :                 }
   26528           0 :                 ndr->depth--;
   26529           0 :                 ndr_print_ptr(ndr, "needed", r->out.needed);
   26530           0 :                 ndr->depth++;
   26531           0 :                 ndr_print_uint32(ndr, "needed", *r->out.needed);
   26532           0 :                 ndr->depth--;
   26533           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   26534           0 :                 ndr->depth--;
   26535             :         }
   26536           0 :         ndr->depth--;
   26537             : }
   26538             : 
   26539         192 : _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumJobs(struct ndr_push *ndr, ndr_flags_type flags, const struct _spoolss_EnumJobs *r)
   26540             : {
   26541         192 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   26542         192 :         if (flags & NDR_IN) {
   26543          96 :                 if (r->in.handle == NULL) {
   26544           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   26545             :                 }
   26546          96 :                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
   26547          96 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.firstjob));
   26548          96 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.numjobs));
   26549          96 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
   26550          96 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
   26551          96 :                 if (r->in.buffer) {
   26552          22 :                         NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
   26553             :                 }
   26554          96 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
   26555             :         }
   26556         192 :         if (flags & NDR_OUT) {
   26557          96 :                 if (r->out.needed == NULL) {
   26558           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   26559             :                 }
   26560          96 :                 if (r->out.count == NULL) {
   26561           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   26562             :                 }
   26563          96 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
   26564          96 :                 if (r->out.info) {
   26565          22 :                         NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
   26566             :                 }
   26567          96 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
   26568          96 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
   26569          96 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   26570             :         }
   26571         192 :         return NDR_ERR_SUCCESS;
   26572             : }
   26573             : 
   26574         192 : _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumJobs(struct ndr_pull *ndr, ndr_flags_type flags, struct _spoolss_EnumJobs *r)
   26575             : {
   26576           0 :         uint32_t _ptr_buffer;
   26577           0 :         uint32_t _ptr_info;
   26578         192 :         TALLOC_CTX *_mem_save_handle_0 = NULL;
   26579         192 :         TALLOC_CTX *_mem_save_buffer_0 = NULL;
   26580         192 :         TALLOC_CTX *_mem_save_info_0 = NULL;
   26581         192 :         TALLOC_CTX *_mem_save_needed_0 = NULL;
   26582         192 :         TALLOC_CTX *_mem_save_count_0 = NULL;
   26583         192 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   26584         192 :         if (flags & NDR_IN) {
   26585          96 :                 NDR_ZERO_STRUCT(r->out);
   26586             : 
   26587          96 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   26588          96 :                         NDR_PULL_ALLOC(ndr, r->in.handle);
   26589             :                 }
   26590          96 :                 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
   26591          96 :                 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
   26592          96 :                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
   26593          96 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
   26594          96 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.firstjob));
   26595          96 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.numjobs));
   26596          96 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
   26597          96 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
   26598          96 :                 if (_ptr_buffer) {
   26599          22 :                         NDR_PULL_ALLOC(ndr, r->in.buffer);
   26600             :                 } else {
   26601          74 :                         r->in.buffer = NULL;
   26602             :                 }
   26603          96 :                 if (r->in.buffer) {
   26604          22 :                         _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
   26605          22 :                         NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
   26606          22 :                         NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
   26607          22 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
   26608             :                 }
   26609          96 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
   26610          96 :                 NDR_PULL_ALLOC(ndr, r->out.needed);
   26611          96 :                 NDR_ZERO_STRUCTP(r->out.needed);
   26612          96 :                 NDR_PULL_ALLOC(ndr, r->out.count);
   26613          96 :                 NDR_ZERO_STRUCTP(r->out.count);
   26614             :         }
   26615         192 :         if (flags & NDR_OUT) {
   26616             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   26617             :                 if (r->in.handle == NULL) {
   26618             :                         NDR_PULL_ALLOC(ndr, r->in.handle);
   26619             :                         NDR_ZERO_STRUCTP(r->in.handle);
   26620             :                 }
   26621             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   26622          96 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
   26623          96 :                 if (_ptr_info) {
   26624          22 :                         NDR_PULL_ALLOC(ndr, r->out.info);
   26625             :                 } else {
   26626          74 :                         r->out.info = NULL;
   26627             :                 }
   26628          96 :                 if (r->out.info) {
   26629          22 :                         _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
   26630          22 :                         NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
   26631          22 :                         NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
   26632          22 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
   26633             :                 }
   26634          96 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   26635           8 :                         NDR_PULL_ALLOC(ndr, r->out.needed);
   26636             :                 }
   26637          96 :                 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
   26638          96 :                 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
   26639          96 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
   26640          96 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
   26641          96 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   26642           8 :                         NDR_PULL_ALLOC(ndr, r->out.count);
   26643             :                 }
   26644          96 :                 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
   26645          96 :                 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
   26646          96 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
   26647          96 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
   26648          96 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   26649             :         }
   26650         192 :         return NDR_ERR_SUCCESS;
   26651             : }
   26652             : 
   26653          58 : _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumJobs(struct ndr_push *ndr, ndr_flags_type flags, const struct __spoolss_EnumJobs *r)
   26654             : {
   26655           0 :         uint32_t cntr_info_0;
   26656          58 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   26657          58 :         if (flags & NDR_IN) {
   26658           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
   26659           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
   26660             :         }
   26661          58 :         if (flags & NDR_OUT) {
   26662         448 :                 for (cntr_info_0 = 0; cntr_info_0 < (r->in.count); cntr_info_0++) {
   26663         390 :                         NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
   26664         390 :                         NDR_CHECK(ndr_push_spoolss_JobInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
   26665             :                 }
   26666         448 :                 for (cntr_info_0 = 0; cntr_info_0 < (r->in.count); cntr_info_0++) {
   26667         390 :                         NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
   26668         390 :                         NDR_CHECK(ndr_push_spoolss_JobInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
   26669             :                 }
   26670             :         }
   26671          58 :         return NDR_ERR_SUCCESS;
   26672             : }
   26673             : 
   26674          22 : _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumJobs(struct ndr_pull *ndr, ndr_flags_type flags, struct __spoolss_EnumJobs *r)
   26675             : {
   26676          22 :         uint32_t size_info_0 = 0;
   26677           0 :         uint32_t cntr_info_0;
   26678          22 :         TALLOC_CTX *_mem_save_info_0 = NULL;
   26679          22 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   26680          22 :         if (flags & NDR_IN) {
   26681           0 :                 NDR_ZERO_STRUCT(r->out);
   26682             : 
   26683           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
   26684           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
   26685             :         }
   26686          22 :         if (flags & NDR_OUT) {
   26687             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   26688             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   26689          22 :                 size_info_0 = r->in.count;
   26690          22 :                 NDR_PULL_ALLOC_N(ndr, r->out.info, size_info_0);
   26691          22 :                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
   26692          22 :                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
   26693         152 :                 for (cntr_info_0 = 0; cntr_info_0 < (size_info_0); cntr_info_0++) {
   26694         130 :                         NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
   26695         130 :                         NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
   26696             :                 }
   26697         152 :                 for (cntr_info_0 = 0; cntr_info_0 < (size_info_0); cntr_info_0++) {
   26698         130 :                         NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
   26699         130 :                         NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
   26700             :                 }
   26701          22 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
   26702         152 :                 for (cntr_info_0 = 0; cntr_info_0 < (size_info_0); cntr_info_0++) {
   26703             :                 }
   26704             :         }
   26705          22 :         return NDR_ERR_SUCCESS;
   26706             : }
   26707             : 
   26708           0 : _PUBLIC_ void ndr_print_spoolss_EnumJobs(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_EnumJobs *r)
   26709             : {
   26710           0 :         uint32_t cntr_info_2;
   26711           0 :         ndr_print_struct(ndr, name, "spoolss_EnumJobs");
   26712           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   26713           0 :         ndr->depth++;
   26714           0 :         if (flags & NDR_SET_VALUES) {
   26715           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   26716             :         }
   26717           0 :         if (flags & NDR_IN) {
   26718           0 :                 ndr_print_struct(ndr, "in", "spoolss_EnumJobs");
   26719           0 :                 ndr->depth++;
   26720           0 :                 ndr_print_ptr(ndr, "handle", r->in.handle);
   26721           0 :                 ndr->depth++;
   26722           0 :                 ndr_print_policy_handle(ndr, "handle", r->in.handle);
   26723           0 :                 ndr->depth--;
   26724           0 :                 ndr_print_uint32(ndr, "firstjob", r->in.firstjob);
   26725           0 :                 ndr_print_uint32(ndr, "numjobs", r->in.numjobs);
   26726           0 :                 ndr_print_uint32(ndr, "level", r->in.level);
   26727           0 :                 ndr_print_ptr(ndr, "buffer", r->in.buffer);
   26728           0 :                 ndr->depth++;
   26729           0 :                 if (r->in.buffer) {
   26730           0 :                         ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
   26731             :                 }
   26732           0 :                 ndr->depth--;
   26733           0 :                 ndr_print_uint32(ndr, "offered", r->in.offered);
   26734           0 :                 ndr->depth--;
   26735             :         }
   26736           0 :         if (flags & NDR_OUT) {
   26737           0 :                 ndr_print_struct(ndr, "out", "spoolss_EnumJobs");
   26738           0 :                 ndr->depth++;
   26739           0 :                 ndr_print_ptr(ndr, "count", r->out.count);
   26740           0 :                 ndr->depth++;
   26741           0 :                 ndr_print_uint32(ndr, "count", *r->out.count);
   26742           0 :                 ndr->depth--;
   26743           0 :                 ndr_print_ptr(ndr, "info", r->out.info);
   26744           0 :                 ndr->depth++;
   26745           0 :                 ndr_print_ptr(ndr, "info", *r->out.info);
   26746           0 :                 ndr->depth++;
   26747           0 :                 if (*r->out.info) {
   26748           0 :                         ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "info", (uint32_t)(*r->out.count));
   26749           0 :                         ndr->depth++;
   26750           0 :                         for (cntr_info_2 = 0; cntr_info_2 < (*r->out.count); cntr_info_2++) {
   26751           0 :                                 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
   26752           0 :                                 ndr_print_spoolss_JobInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
   26753             :                         }
   26754           0 :                         ndr->depth--;
   26755             :                 }
   26756           0 :                 ndr->depth--;
   26757           0 :                 ndr->depth--;
   26758           0 :                 ndr_print_ptr(ndr, "needed", r->out.needed);
   26759           0 :                 ndr->depth++;
   26760           0 :                 ndr_print_uint32(ndr, "needed", *r->out.needed);
   26761           0 :                 ndr->depth--;
   26762           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   26763           0 :                 ndr->depth--;
   26764             :         }
   26765           0 :         ndr->depth--;
   26766             : }
   26767             : 
   26768         144 : static enum ndr_err_code ndr_push_spoolss_AddPrinter(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_AddPrinter *r)
   26769             : {
   26770         144 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   26771         144 :         if (flags & NDR_IN) {
   26772          72 :                 if (r->in.info_ctr == NULL) {
   26773           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   26774             :                 }
   26775          72 :                 if (r->in.devmode_ctr == NULL) {
   26776           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   26777             :                 }
   26778          72 :                 if (r->in.secdesc_ctr == NULL) {
   26779           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   26780             :                 }
   26781          72 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
   26782          72 :                 if (r->in.server) {
   26783           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
   26784           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   26785           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
   26786           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   26787             :                 }
   26788          72 :                 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
   26789          72 :                 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
   26790          72 :                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
   26791             :         }
   26792         144 :         if (flags & NDR_OUT) {
   26793          72 :                 if (r->out.handle == NULL) {
   26794           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   26795             :                 }
   26796          72 :                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
   26797          72 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   26798             :         }
   26799         144 :         return NDR_ERR_SUCCESS;
   26800             : }
   26801             : 
   26802         144 : static enum ndr_err_code ndr_pull_spoolss_AddPrinter(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_AddPrinter *r)
   26803             : {
   26804           0 :         uint32_t _ptr_server;
   26805         144 :         uint32_t size_server_1 = 0;
   26806         144 :         uint32_t length_server_1 = 0;
   26807         144 :         TALLOC_CTX *_mem_save_server_0 = NULL;
   26808         144 :         TALLOC_CTX *_mem_save_info_ctr_0 = NULL;
   26809         144 :         TALLOC_CTX *_mem_save_devmode_ctr_0 = NULL;
   26810         144 :         TALLOC_CTX *_mem_save_secdesc_ctr_0 = NULL;
   26811         144 :         TALLOC_CTX *_mem_save_handle_0 = NULL;
   26812         144 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   26813         144 :         if (flags & NDR_IN) {
   26814          72 :                 NDR_ZERO_STRUCT(r->out);
   26815             : 
   26816          72 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
   26817          72 :                 if (_ptr_server) {
   26818           0 :                         NDR_PULL_ALLOC(ndr, r->in.server);
   26819             :                 } else {
   26820          72 :                         r->in.server = NULL;
   26821             :                 }
   26822          72 :                 if (r->in.server) {
   26823           0 :                         _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
   26824           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
   26825           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
   26826           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
   26827           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.server, &size_server_1));
   26828           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.server, &length_server_1));
   26829           0 :                         if (length_server_1 > size_server_1) {
   26830           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_server_1, length_server_1);
   26831             :                         }
   26832           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_server_1, sizeof(uint16_t)));
   26833           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, length_server_1, sizeof(uint16_t), CH_UTF16));
   26834           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
   26835             :                 }
   26836          72 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   26837          72 :                         NDR_PULL_ALLOC(ndr, r->in.info_ctr);
   26838             :                 }
   26839          72 :                 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
   26840          72 :                 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
   26841          72 :                 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
   26842          72 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
   26843          72 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   26844          72 :                         NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
   26845             :                 }
   26846          72 :                 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
   26847          72 :                 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
   26848          72 :                 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
   26849          72 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
   26850          72 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   26851          72 :                         NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
   26852             :                 }
   26853          72 :                 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
   26854          72 :                 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
   26855          72 :                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
   26856          72 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
   26857          72 :                 NDR_PULL_ALLOC(ndr, r->out.handle);
   26858          72 :                 NDR_ZERO_STRUCTP(r->out.handle);
   26859             :         }
   26860         144 :         if (flags & NDR_OUT) {
   26861             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   26862             :                 if (r->in.info_ctr == NULL) {
   26863             :                         NDR_PULL_ALLOC(ndr, r->in.info_ctr);
   26864             :                         NDR_ZERO_STRUCTP(r->in.info_ctr);
   26865             :                 }
   26866             :                 if (r->in.devmode_ctr == NULL) {
   26867             :                         NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
   26868             :                         NDR_ZERO_STRUCTP(r->in.devmode_ctr);
   26869             :                 }
   26870             :                 if (r->in.secdesc_ctr == NULL) {
   26871             :                         NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
   26872             :                         NDR_ZERO_STRUCTP(r->in.secdesc_ctr);
   26873             :                 }
   26874             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   26875          72 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   26876           0 :                         NDR_PULL_ALLOC(ndr, r->out.handle);
   26877             :                 }
   26878          72 :                 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
   26879          72 :                 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
   26880          72 :                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
   26881          72 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
   26882          72 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   26883             :         }
   26884         144 :         return NDR_ERR_SUCCESS;
   26885             : }
   26886             : 
   26887           0 : _PUBLIC_ void ndr_print_spoolss_AddPrinter(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_AddPrinter *r)
   26888             : {
   26889           0 :         ndr_print_struct(ndr, name, "spoolss_AddPrinter");
   26890           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   26891           0 :         ndr->depth++;
   26892           0 :         if (flags & NDR_SET_VALUES) {
   26893           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   26894             :         }
   26895           0 :         if (flags & NDR_IN) {
   26896           0 :                 ndr_print_struct(ndr, "in", "spoolss_AddPrinter");
   26897           0 :                 ndr->depth++;
   26898           0 :                 ndr_print_ptr(ndr, "server", r->in.server);
   26899           0 :                 ndr->depth++;
   26900           0 :                 if (r->in.server) {
   26901           0 :                         ndr_print_string(ndr, "server", r->in.server);
   26902             :                 }
   26903           0 :                 ndr->depth--;
   26904           0 :                 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
   26905           0 :                 ndr->depth++;
   26906           0 :                 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
   26907           0 :                 ndr->depth--;
   26908           0 :                 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
   26909           0 :                 ndr->depth++;
   26910           0 :                 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
   26911           0 :                 ndr->depth--;
   26912           0 :                 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
   26913           0 :                 ndr->depth++;
   26914           0 :                 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
   26915           0 :                 ndr->depth--;
   26916           0 :                 ndr->depth--;
   26917             :         }
   26918           0 :         if (flags & NDR_OUT) {
   26919           0 :                 ndr_print_struct(ndr, "out", "spoolss_AddPrinter");
   26920           0 :                 ndr->depth++;
   26921           0 :                 ndr_print_ptr(ndr, "handle", r->out.handle);
   26922           0 :                 ndr->depth++;
   26923           0 :                 ndr_print_policy_handle(ndr, "handle", r->out.handle);
   26924           0 :                 ndr->depth--;
   26925           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   26926           0 :                 ndr->depth--;
   26927             :         }
   26928           0 :         ndr->depth--;
   26929             : }
   26930             : 
   26931          32 : static enum ndr_err_code ndr_push_spoolss_DeletePrinter(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_DeletePrinter *r)
   26932             : {
   26933          32 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   26934          32 :         if (flags & NDR_IN) {
   26935          16 :                 if (r->in.handle == NULL) {
   26936           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   26937             :                 }
   26938          16 :                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
   26939             :         }
   26940          32 :         if (flags & NDR_OUT) {
   26941          16 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   26942             :         }
   26943          32 :         return NDR_ERR_SUCCESS;
   26944             : }
   26945             : 
   26946          32 : static enum ndr_err_code ndr_pull_spoolss_DeletePrinter(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_DeletePrinter *r)
   26947             : {
   26948          32 :         TALLOC_CTX *_mem_save_handle_0 = NULL;
   26949          32 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   26950          32 :         if (flags & NDR_IN) {
   26951          16 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   26952          16 :                         NDR_PULL_ALLOC(ndr, r->in.handle);
   26953             :                 }
   26954          16 :                 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
   26955          16 :                 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
   26956          16 :                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
   26957          16 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
   26958             :         }
   26959          32 :         if (flags & NDR_OUT) {
   26960             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   26961             :                 if (r->in.handle == NULL) {
   26962             :                         NDR_PULL_ALLOC(ndr, r->in.handle);
   26963             :                         NDR_ZERO_STRUCTP(r->in.handle);
   26964             :                 }
   26965             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   26966          16 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   26967             :         }
   26968          32 :         return NDR_ERR_SUCCESS;
   26969             : }
   26970             : 
   26971           0 : _PUBLIC_ void ndr_print_spoolss_DeletePrinter(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_DeletePrinter *r)
   26972             : {
   26973           0 :         ndr_print_struct(ndr, name, "spoolss_DeletePrinter");
   26974           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   26975           0 :         ndr->depth++;
   26976           0 :         if (flags & NDR_SET_VALUES) {
   26977           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   26978             :         }
   26979           0 :         if (flags & NDR_IN) {
   26980           0 :                 ndr_print_struct(ndr, "in", "spoolss_DeletePrinter");
   26981           0 :                 ndr->depth++;
   26982           0 :                 ndr_print_ptr(ndr, "handle", r->in.handle);
   26983           0 :                 ndr->depth++;
   26984           0 :                 ndr_print_policy_handle(ndr, "handle", r->in.handle);
   26985           0 :                 ndr->depth--;
   26986           0 :                 ndr->depth--;
   26987             :         }
   26988           0 :         if (flags & NDR_OUT) {
   26989           0 :                 ndr_print_struct(ndr, "out", "spoolss_DeletePrinter");
   26990           0 :                 ndr->depth++;
   26991           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   26992           0 :                 ndr->depth--;
   26993             :         }
   26994           0 :         ndr->depth--;
   26995             : }
   26996             : 
   26997        1168 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_SetPrinter(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_SetPrinter *r)
   26998             : {
   26999        1168 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   27000        1168 :         if (flags & NDR_IN) {
   27001         584 :                 if (r->in.handle == NULL) {
   27002           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   27003             :                 }
   27004         584 :                 if (r->in.info_ctr == NULL) {
   27005           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   27006             :                 }
   27007         584 :                 if (r->in.devmode_ctr == NULL) {
   27008           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   27009             :                 }
   27010         584 :                 if (r->in.secdesc_ctr == NULL) {
   27011           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   27012             :                 }
   27013         584 :                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
   27014         584 :                 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
   27015         584 :                 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
   27016         584 :                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
   27017         584 :                 NDR_CHECK(ndr_push_spoolss_PrinterControl(ndr, NDR_SCALARS, r->in.command));
   27018             :         }
   27019        1168 :         if (flags & NDR_OUT) {
   27020         584 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   27021             :         }
   27022        1168 :         return NDR_ERR_SUCCESS;
   27023             : }
   27024             : 
   27025        1172 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_SetPrinter(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_SetPrinter *r)
   27026             : {
   27027        1172 :         TALLOC_CTX *_mem_save_handle_0 = NULL;
   27028        1172 :         TALLOC_CTX *_mem_save_info_ctr_0 = NULL;
   27029        1172 :         TALLOC_CTX *_mem_save_devmode_ctr_0 = NULL;
   27030        1172 :         TALLOC_CTX *_mem_save_secdesc_ctr_0 = NULL;
   27031        1172 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   27032        1172 :         if (flags & NDR_IN) {
   27033         588 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   27034         588 :                         NDR_PULL_ALLOC(ndr, r->in.handle);
   27035             :                 }
   27036         588 :                 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
   27037         588 :                 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
   27038         588 :                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
   27039         588 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
   27040         588 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   27041         588 :                         NDR_PULL_ALLOC(ndr, r->in.info_ctr);
   27042             :                 }
   27043         588 :                 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
   27044         588 :                 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
   27045         588 :                 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
   27046         588 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
   27047         588 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   27048         588 :                         NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
   27049             :                 }
   27050         588 :                 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
   27051         588 :                 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
   27052         588 :                 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
   27053         588 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
   27054         588 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   27055         588 :                         NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
   27056             :                 }
   27057         588 :                 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
   27058         588 :                 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
   27059         588 :                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
   27060         588 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
   27061         592 :                 NDR_CHECK(ndr_pull_spoolss_PrinterControl(ndr, NDR_SCALARS, &r->in.command));
   27062             :         }
   27063        1172 :         if (flags & NDR_OUT) {
   27064             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   27065             :                 if (r->in.handle == NULL) {
   27066             :                         NDR_PULL_ALLOC(ndr, r->in.handle);
   27067             :                         NDR_ZERO_STRUCTP(r->in.handle);
   27068             :                 }
   27069             :                 if (r->in.info_ctr == NULL) {
   27070             :                         NDR_PULL_ALLOC(ndr, r->in.info_ctr);
   27071             :                         NDR_ZERO_STRUCTP(r->in.info_ctr);
   27072             :                 }
   27073             :                 if (r->in.devmode_ctr == NULL) {
   27074             :                         NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
   27075             :                         NDR_ZERO_STRUCTP(r->in.devmode_ctr);
   27076             :                 }
   27077             :                 if (r->in.secdesc_ctr == NULL) {
   27078             :                         NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
   27079             :                         NDR_ZERO_STRUCTP(r->in.secdesc_ctr);
   27080             :                 }
   27081             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   27082         584 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   27083             :         }
   27084        1168 :         return NDR_ERR_SUCCESS;
   27085             : }
   27086             : 
   27087           4 : _PUBLIC_ void ndr_print_spoolss_SetPrinter(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_SetPrinter *r)
   27088             : {
   27089           4 :         ndr_print_struct(ndr, name, "spoolss_SetPrinter");
   27090           4 :         if (r == NULL) { ndr_print_null(ndr); return; }
   27091           4 :         ndr->depth++;
   27092           4 :         if (flags & NDR_SET_VALUES) {
   27093           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   27094             :         }
   27095           4 :         if (flags & NDR_IN) {
   27096           4 :                 ndr_print_struct(ndr, "in", "spoolss_SetPrinter");
   27097           4 :                 ndr->depth++;
   27098           4 :                 ndr_print_ptr(ndr, "handle", r->in.handle);
   27099           4 :                 ndr->depth++;
   27100           4 :                 ndr_print_policy_handle(ndr, "handle", r->in.handle);
   27101           4 :                 ndr->depth--;
   27102           4 :                 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
   27103           4 :                 ndr->depth++;
   27104           4 :                 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
   27105           4 :                 ndr->depth--;
   27106           4 :                 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
   27107           4 :                 ndr->depth++;
   27108           4 :                 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
   27109           4 :                 ndr->depth--;
   27110           4 :                 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
   27111           4 :                 ndr->depth++;
   27112           4 :                 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
   27113           4 :                 ndr->depth--;
   27114           4 :                 ndr_print_spoolss_PrinterControl(ndr, "command", r->in.command);
   27115           4 :                 ndr->depth--;
   27116             :         }
   27117           4 :         if (flags & NDR_OUT) {
   27118           0 :                 ndr_print_struct(ndr, "out", "spoolss_SetPrinter");
   27119           0 :                 ndr->depth++;
   27120           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   27121           0 :                 ndr->depth--;
   27122             :         }
   27123           4 :         ndr->depth--;
   27124             : }
   27125             : 
   27126        7024 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetPrinter(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_GetPrinter *r)
   27127             : {
   27128        7024 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   27129        7024 :         if (flags & NDR_IN) {
   27130        3512 :                 if (r->in.handle == NULL) {
   27131           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   27132             :                 }
   27133        3512 :                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
   27134        3512 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
   27135        3512 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
   27136        3512 :                 if (r->in.buffer) {
   27137        1748 :                         NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
   27138             :                 }
   27139        3512 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
   27140             :         }
   27141        7024 :         if (flags & NDR_OUT) {
   27142        3512 :                 if (r->out.needed == NULL) {
   27143           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   27144             :                 }
   27145        3512 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
   27146        3512 :                 if (r->out.info) {
   27147             :                         {
   27148           0 :                                 struct ndr_push *_ndr_info;
   27149        1748 :                                 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
   27150        1748 :                                 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
   27151        1748 :                                 NDR_CHECK(ndr_push_spoolss_PrinterInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
   27152        1748 :                                 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
   27153             :                         }
   27154             :                 }
   27155        3512 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
   27156        3512 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   27157             :         }
   27158        7024 :         return NDR_ERR_SUCCESS;
   27159             : }
   27160             : 
   27161        7028 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetPrinter(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_GetPrinter *r)
   27162             : {
   27163           4 :         uint32_t _ptr_buffer;
   27164           4 :         uint32_t _ptr_info;
   27165        7028 :         TALLOC_CTX *_mem_save_handle_0 = NULL;
   27166        7028 :         TALLOC_CTX *_mem_save_buffer_0 = NULL;
   27167        7028 :         TALLOC_CTX *_mem_save_info_0 = NULL;
   27168        7028 :         TALLOC_CTX *_mem_save_needed_0 = NULL;
   27169        7028 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   27170        7028 :         if (flags & NDR_IN) {
   27171        3514 :                 NDR_ZERO_STRUCT(r->out);
   27172             : 
   27173        3514 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   27174        3514 :                         NDR_PULL_ALLOC(ndr, r->in.handle);
   27175             :                 }
   27176        3514 :                 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
   27177        3514 :                 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
   27178        3514 :                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
   27179        3514 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
   27180        3514 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
   27181        3514 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
   27182        3514 :                 if (_ptr_buffer) {
   27183        1748 :                         NDR_PULL_ALLOC(ndr, r->in.buffer);
   27184             :                 } else {
   27185        1766 :                         r->in.buffer = NULL;
   27186             :                 }
   27187        3514 :                 if (r->in.buffer) {
   27188        1748 :                         _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
   27189        1748 :                         NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
   27190        1748 :                         NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
   27191        1748 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
   27192             :                 }
   27193        3514 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
   27194        3514 :                 NDR_PULL_ALLOC(ndr, r->out.needed);
   27195        3514 :                 NDR_ZERO_STRUCTP(r->out.needed);
   27196             :         }
   27197        7028 :         if (flags & NDR_OUT) {
   27198             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   27199             :                 if (r->in.handle == NULL) {
   27200             :                         NDR_PULL_ALLOC(ndr, r->in.handle);
   27201             :                         NDR_ZERO_STRUCTP(r->in.handle);
   27202             :                 }
   27203             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   27204        3514 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
   27205        3514 :                 if (_ptr_info) {
   27206        1748 :                         NDR_PULL_ALLOC(ndr, r->out.info);
   27207             :                 } else {
   27208        1766 :                         r->out.info = NULL;
   27209             :                 }
   27210        3514 :                 if (r->out.info) {
   27211        1748 :                         _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
   27212        1748 :                         NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
   27213             :                         {
   27214           0 :                                 struct ndr_pull *_ndr_info;
   27215        1748 :                                 ssize_t sub_size = r->in.offered;
   27216        1748 :                                 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, sub_size));
   27217        1748 :                                 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
   27218        1748 :                                 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
   27219        1748 :                                 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, sub_size));
   27220             :                         }
   27221        1748 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
   27222             :                 }
   27223        3514 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   27224           2 :                         NDR_PULL_ALLOC(ndr, r->out.needed);
   27225             :                 }
   27226        3514 :                 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
   27227        3514 :                 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
   27228        3514 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
   27229        3514 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
   27230        3514 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   27231             :         }
   27232        7024 :         return NDR_ERR_SUCCESS;
   27233             : }
   27234             : 
   27235           4 : _PUBLIC_ void ndr_print_spoolss_GetPrinter(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_GetPrinter *r)
   27236             : {
   27237           4 :         ndr_print_struct(ndr, name, "spoolss_GetPrinter");
   27238           4 :         if (r == NULL) { ndr_print_null(ndr); return; }
   27239           4 :         ndr->depth++;
   27240           4 :         if (flags & NDR_SET_VALUES) {
   27241           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   27242             :         }
   27243           4 :         if (flags & NDR_IN) {
   27244           2 :                 ndr_print_struct(ndr, "in", "spoolss_GetPrinter");
   27245           2 :                 ndr->depth++;
   27246           2 :                 ndr_print_ptr(ndr, "handle", r->in.handle);
   27247           2 :                 ndr->depth++;
   27248           2 :                 ndr_print_policy_handle(ndr, "handle", r->in.handle);
   27249           2 :                 ndr->depth--;
   27250           2 :                 ndr_print_uint32(ndr, "level", r->in.level);
   27251           2 :                 ndr_print_ptr(ndr, "buffer", r->in.buffer);
   27252           2 :                 ndr->depth++;
   27253           2 :                 if (r->in.buffer) {
   27254           0 :                         ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
   27255             :                 }
   27256           2 :                 ndr->depth--;
   27257           2 :                 ndr_print_uint32(ndr, "offered", r->in.offered);
   27258           2 :                 ndr->depth--;
   27259             :         }
   27260           4 :         if (flags & NDR_OUT) {
   27261           2 :                 ndr_print_struct(ndr, "out", "spoolss_GetPrinter");
   27262           2 :                 ndr->depth++;
   27263           2 :                 ndr_print_ptr(ndr, "info", r->out.info);
   27264           2 :                 ndr->depth++;
   27265           2 :                 if (r->out.info) {
   27266           0 :                         ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
   27267           0 :                         ndr_print_spoolss_PrinterInfo(ndr, "info", r->out.info);
   27268             :                 }
   27269           2 :                 ndr->depth--;
   27270           2 :                 ndr_print_ptr(ndr, "needed", r->out.needed);
   27271           2 :                 ndr->depth++;
   27272           2 :                 ndr_print_uint32(ndr, "needed", *r->out.needed);
   27273           2 :                 ndr->depth--;
   27274           2 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   27275           2 :                 ndr->depth--;
   27276             :         }
   27277           4 :         ndr->depth--;
   27278             : }
   27279             : 
   27280           0 : static enum ndr_err_code ndr_push_spoolss_AddPrinterDriver(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_AddPrinterDriver *r)
   27281             : {
   27282           0 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   27283           0 :         if (flags & NDR_IN) {
   27284           0 :                 if (r->in.info_ctr == NULL) {
   27285           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   27286             :                 }
   27287           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
   27288           0 :                 if (r->in.servername) {
   27289           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
   27290           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   27291           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
   27292           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   27293             :                 }
   27294           0 :                 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
   27295             :         }
   27296           0 :         if (flags & NDR_OUT) {
   27297           0 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   27298             :         }
   27299           0 :         return NDR_ERR_SUCCESS;
   27300             : }
   27301             : 
   27302           0 : static enum ndr_err_code ndr_pull_spoolss_AddPrinterDriver(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_AddPrinterDriver *r)
   27303             : {
   27304           0 :         uint32_t _ptr_servername;
   27305           0 :         uint32_t size_servername_1 = 0;
   27306           0 :         uint32_t length_servername_1 = 0;
   27307           0 :         TALLOC_CTX *_mem_save_servername_0 = NULL;
   27308           0 :         TALLOC_CTX *_mem_save_info_ctr_0 = NULL;
   27309           0 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   27310           0 :         if (flags & NDR_IN) {
   27311           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
   27312           0 :                 if (_ptr_servername) {
   27313           0 :                         NDR_PULL_ALLOC(ndr, r->in.servername);
   27314             :                 } else {
   27315           0 :                         r->in.servername = NULL;
   27316             :                 }
   27317           0 :                 if (r->in.servername) {
   27318           0 :                         _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
   27319           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
   27320           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
   27321           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
   27322           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.servername, &size_servername_1));
   27323           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.servername, &length_servername_1));
   27324           0 :                         if (length_servername_1 > size_servername_1) {
   27325           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_servername_1, length_servername_1);
   27326             :                         }
   27327           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_servername_1, sizeof(uint16_t)));
   27328           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, length_servername_1, sizeof(uint16_t), CH_UTF16));
   27329           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
   27330             :                 }
   27331           0 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   27332           0 :                         NDR_PULL_ALLOC(ndr, r->in.info_ctr);
   27333             :                 }
   27334           0 :                 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
   27335           0 :                 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
   27336           0 :                 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
   27337           0 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
   27338             :         }
   27339           0 :         if (flags & NDR_OUT) {
   27340             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   27341             :                 if (r->in.info_ctr == NULL) {
   27342             :                         NDR_PULL_ALLOC(ndr, r->in.info_ctr);
   27343             :                         NDR_ZERO_STRUCTP(r->in.info_ctr);
   27344             :                 }
   27345             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   27346           0 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   27347             :         }
   27348           0 :         return NDR_ERR_SUCCESS;
   27349             : }
   27350             : 
   27351           0 : _PUBLIC_ void ndr_print_spoolss_AddPrinterDriver(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_AddPrinterDriver *r)
   27352             : {
   27353           0 :         ndr_print_struct(ndr, name, "spoolss_AddPrinterDriver");
   27354           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   27355           0 :         ndr->depth++;
   27356           0 :         if (flags & NDR_SET_VALUES) {
   27357           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   27358             :         }
   27359           0 :         if (flags & NDR_IN) {
   27360           0 :                 ndr_print_struct(ndr, "in", "spoolss_AddPrinterDriver");
   27361           0 :                 ndr->depth++;
   27362           0 :                 ndr_print_ptr(ndr, "servername", r->in.servername);
   27363           0 :                 ndr->depth++;
   27364           0 :                 if (r->in.servername) {
   27365           0 :                         ndr_print_string(ndr, "servername", r->in.servername);
   27366             :                 }
   27367           0 :                 ndr->depth--;
   27368           0 :                 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
   27369           0 :                 ndr->depth++;
   27370           0 :                 ndr_print_spoolss_AddDriverInfoCtr(ndr, "info_ctr", r->in.info_ctr);
   27371           0 :                 ndr->depth--;
   27372           0 :                 ndr->depth--;
   27373             :         }
   27374           0 :         if (flags & NDR_OUT) {
   27375           0 :                 ndr_print_struct(ndr, "out", "spoolss_AddPrinterDriver");
   27376           0 :                 ndr->depth++;
   27377           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   27378           0 :                 ndr->depth--;
   27379             :         }
   27380           0 :         ndr->depth--;
   27381             : }
   27382             : 
   27383         216 : _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinterDrivers(struct ndr_push *ndr, ndr_flags_type flags, const struct _spoolss_EnumPrinterDrivers *r)
   27384             : {
   27385         216 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   27386         216 :         if (flags & NDR_IN) {
   27387         108 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
   27388         108 :                 if (r->in.server) {
   27389         108 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
   27390         108 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   27391         108 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
   27392         108 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   27393             :                 }
   27394         108 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
   27395         108 :                 if (r->in.environment) {
   27396         108 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
   27397         108 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   27398         108 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
   27399         108 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   27400             :                 }
   27401         108 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
   27402         108 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
   27403         108 :                 if (r->in.buffer) {
   27404          24 :                         NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
   27405             :                 }
   27406         108 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
   27407             :         }
   27408         216 :         if (flags & NDR_OUT) {
   27409         108 :                 if (r->out.needed == NULL) {
   27410           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   27411             :                 }
   27412         108 :                 if (r->out.count == NULL) {
   27413           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   27414             :                 }
   27415         108 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
   27416         108 :                 if (r->out.info) {
   27417          24 :                         NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
   27418             :                 }
   27419         108 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
   27420         108 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
   27421         108 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   27422             :         }
   27423         216 :         return NDR_ERR_SUCCESS;
   27424             : }
   27425             : 
   27426         216 : _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinterDrivers(struct ndr_pull *ndr, ndr_flags_type flags, struct _spoolss_EnumPrinterDrivers *r)
   27427             : {
   27428           0 :         uint32_t _ptr_server;
   27429         216 :         uint32_t size_server_1 = 0;
   27430         216 :         uint32_t length_server_1 = 0;
   27431           0 :         uint32_t _ptr_environment;
   27432         216 :         uint32_t size_environment_1 = 0;
   27433         216 :         uint32_t length_environment_1 = 0;
   27434           0 :         uint32_t _ptr_buffer;
   27435           0 :         uint32_t _ptr_info;
   27436         216 :         TALLOC_CTX *_mem_save_server_0 = NULL;
   27437         216 :         TALLOC_CTX *_mem_save_environment_0 = NULL;
   27438         216 :         TALLOC_CTX *_mem_save_buffer_0 = NULL;
   27439         216 :         TALLOC_CTX *_mem_save_info_0 = NULL;
   27440         216 :         TALLOC_CTX *_mem_save_needed_0 = NULL;
   27441         216 :         TALLOC_CTX *_mem_save_count_0 = NULL;
   27442         216 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   27443         216 :         if (flags & NDR_IN) {
   27444         108 :                 NDR_ZERO_STRUCT(r->out);
   27445             : 
   27446         108 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
   27447         108 :                 if (_ptr_server) {
   27448         108 :                         NDR_PULL_ALLOC(ndr, r->in.server);
   27449             :                 } else {
   27450           0 :                         r->in.server = NULL;
   27451             :                 }
   27452         108 :                 if (r->in.server) {
   27453         108 :                         _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
   27454         108 :                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
   27455         108 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
   27456         108 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
   27457         108 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.server, &size_server_1));
   27458         108 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.server, &length_server_1));
   27459         108 :                         if (length_server_1 > size_server_1) {
   27460           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_server_1, length_server_1);
   27461             :                         }
   27462         108 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_server_1, sizeof(uint16_t)));
   27463         108 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, length_server_1, sizeof(uint16_t), CH_UTF16));
   27464         108 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
   27465             :                 }
   27466         108 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
   27467         108 :                 if (_ptr_environment) {
   27468         108 :                         NDR_PULL_ALLOC(ndr, r->in.environment);
   27469             :                 } else {
   27470           0 :                         r->in.environment = NULL;
   27471             :                 }
   27472         108 :                 if (r->in.environment) {
   27473         108 :                         _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
   27474         108 :                         NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
   27475         108 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
   27476         108 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
   27477         108 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.environment, &size_environment_1));
   27478         108 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.environment, &length_environment_1));
   27479         108 :                         if (length_environment_1 > size_environment_1) {
   27480           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_environment_1, length_environment_1);
   27481             :                         }
   27482         108 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_environment_1, sizeof(uint16_t)));
   27483         108 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, length_environment_1, sizeof(uint16_t), CH_UTF16));
   27484         108 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
   27485             :                 }
   27486         108 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
   27487         108 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
   27488         108 :                 if (_ptr_buffer) {
   27489          24 :                         NDR_PULL_ALLOC(ndr, r->in.buffer);
   27490             :                 } else {
   27491          84 :                         r->in.buffer = NULL;
   27492             :                 }
   27493         108 :                 if (r->in.buffer) {
   27494          24 :                         _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
   27495          24 :                         NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
   27496          24 :                         NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
   27497          24 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
   27498             :                 }
   27499         108 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
   27500         108 :                 NDR_PULL_ALLOC(ndr, r->out.needed);
   27501         108 :                 NDR_ZERO_STRUCTP(r->out.needed);
   27502         108 :                 NDR_PULL_ALLOC(ndr, r->out.count);
   27503         108 :                 NDR_ZERO_STRUCTP(r->out.count);
   27504             :         }
   27505         216 :         if (flags & NDR_OUT) {
   27506             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   27507             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   27508         108 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
   27509         108 :                 if (_ptr_info) {
   27510          24 :                         NDR_PULL_ALLOC(ndr, r->out.info);
   27511             :                 } else {
   27512          84 :                         r->out.info = NULL;
   27513             :                 }
   27514         108 :                 if (r->out.info) {
   27515          24 :                         _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
   27516          24 :                         NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
   27517          24 :                         NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
   27518          24 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
   27519             :                 }
   27520         108 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   27521           0 :                         NDR_PULL_ALLOC(ndr, r->out.needed);
   27522             :                 }
   27523         108 :                 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
   27524         108 :                 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
   27525         108 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
   27526         108 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
   27527         108 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   27528           0 :                         NDR_PULL_ALLOC(ndr, r->out.count);
   27529             :                 }
   27530         108 :                 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
   27531         108 :                 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
   27532         108 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
   27533         108 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
   27534         108 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   27535             :         }
   27536         216 :         return NDR_ERR_SUCCESS;
   27537             : }
   27538             : 
   27539          24 : _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinterDrivers(struct ndr_push *ndr, ndr_flags_type flags, const struct __spoolss_EnumPrinterDrivers *r)
   27540             : {
   27541           0 :         uint32_t cntr_info_0;
   27542          24 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   27543          24 :         if (flags & NDR_IN) {
   27544           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
   27545           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
   27546             :         }
   27547          24 :         if (flags & NDR_OUT) {
   27548          24 :                 for (cntr_info_0 = 0; cntr_info_0 < (r->in.count); cntr_info_0++) {
   27549           0 :                         NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
   27550           0 :                         NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
   27551             :                 }
   27552          24 :                 for (cntr_info_0 = 0; cntr_info_0 < (r->in.count); cntr_info_0++) {
   27553           0 :                         NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
   27554           0 :                         NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
   27555             :                 }
   27556             :         }
   27557          24 :         return NDR_ERR_SUCCESS;
   27558             : }
   27559             : 
   27560          24 : _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinterDrivers(struct ndr_pull *ndr, ndr_flags_type flags, struct __spoolss_EnumPrinterDrivers *r)
   27561             : {
   27562          24 :         uint32_t size_info_0 = 0;
   27563           0 :         uint32_t cntr_info_0;
   27564          24 :         TALLOC_CTX *_mem_save_info_0 = NULL;
   27565          24 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   27566          24 :         if (flags & NDR_IN) {
   27567           0 :                 NDR_ZERO_STRUCT(r->out);
   27568             : 
   27569           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
   27570           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
   27571             :         }
   27572          24 :         if (flags & NDR_OUT) {
   27573             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   27574             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   27575          24 :                 size_info_0 = r->in.count;
   27576          24 :                 NDR_PULL_ALLOC_N(ndr, r->out.info, size_info_0);
   27577          24 :                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
   27578          24 :                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
   27579          24 :                 for (cntr_info_0 = 0; cntr_info_0 < (size_info_0); cntr_info_0++) {
   27580           0 :                         NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
   27581           0 :                         NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
   27582             :                 }
   27583          24 :                 for (cntr_info_0 = 0; cntr_info_0 < (size_info_0); cntr_info_0++) {
   27584           0 :                         NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
   27585           0 :                         NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
   27586             :                 }
   27587          24 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
   27588          24 :                 for (cntr_info_0 = 0; cntr_info_0 < (size_info_0); cntr_info_0++) {
   27589             :                 }
   27590             :         }
   27591          24 :         return NDR_ERR_SUCCESS;
   27592             : }
   27593             : 
   27594           0 : _PUBLIC_ void ndr_print_spoolss_EnumPrinterDrivers(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_EnumPrinterDrivers *r)
   27595             : {
   27596           0 :         uint32_t cntr_info_2;
   27597           0 :         ndr_print_struct(ndr, name, "spoolss_EnumPrinterDrivers");
   27598           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   27599           0 :         ndr->depth++;
   27600           0 :         if (flags & NDR_SET_VALUES) {
   27601           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   27602             :         }
   27603           0 :         if (flags & NDR_IN) {
   27604           0 :                 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterDrivers");
   27605           0 :                 ndr->depth++;
   27606           0 :                 ndr_print_ptr(ndr, "server", r->in.server);
   27607           0 :                 ndr->depth++;
   27608           0 :                 if (r->in.server) {
   27609           0 :                         ndr_print_string(ndr, "server", r->in.server);
   27610             :                 }
   27611           0 :                 ndr->depth--;
   27612           0 :                 ndr_print_ptr(ndr, "environment", r->in.environment);
   27613           0 :                 ndr->depth++;
   27614           0 :                 if (r->in.environment) {
   27615           0 :                         ndr_print_string(ndr, "environment", r->in.environment);
   27616             :                 }
   27617           0 :                 ndr->depth--;
   27618           0 :                 ndr_print_uint32(ndr, "level", r->in.level);
   27619           0 :                 ndr_print_ptr(ndr, "buffer", r->in.buffer);
   27620           0 :                 ndr->depth++;
   27621           0 :                 if (r->in.buffer) {
   27622           0 :                         ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
   27623             :                 }
   27624           0 :                 ndr->depth--;
   27625           0 :                 ndr_print_uint32(ndr, "offered", r->in.offered);
   27626           0 :                 ndr->depth--;
   27627             :         }
   27628           0 :         if (flags & NDR_OUT) {
   27629           0 :                 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterDrivers");
   27630           0 :                 ndr->depth++;
   27631           0 :                 ndr_print_ptr(ndr, "count", r->out.count);
   27632           0 :                 ndr->depth++;
   27633           0 :                 ndr_print_uint32(ndr, "count", *r->out.count);
   27634           0 :                 ndr->depth--;
   27635           0 :                 ndr_print_ptr(ndr, "info", r->out.info);
   27636           0 :                 ndr->depth++;
   27637           0 :                 ndr_print_ptr(ndr, "info", *r->out.info);
   27638           0 :                 ndr->depth++;
   27639           0 :                 if (*r->out.info) {
   27640           0 :                         ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "info", (uint32_t)(*r->out.count));
   27641           0 :                         ndr->depth++;
   27642           0 :                         for (cntr_info_2 = 0; cntr_info_2 < (*r->out.count); cntr_info_2++) {
   27643           0 :                                 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
   27644           0 :                                 ndr_print_spoolss_DriverInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
   27645             :                         }
   27646           0 :                         ndr->depth--;
   27647             :                 }
   27648           0 :                 ndr->depth--;
   27649           0 :                 ndr->depth--;
   27650           0 :                 ndr_print_ptr(ndr, "needed", r->out.needed);
   27651           0 :                 ndr->depth++;
   27652           0 :                 ndr_print_uint32(ndr, "needed", *r->out.needed);
   27653           0 :                 ndr->depth--;
   27654           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   27655           0 :                 ndr->depth--;
   27656             :         }
   27657           0 :         ndr->depth--;
   27658             : }
   27659             : 
   27660           0 : static enum ndr_err_code ndr_push_spoolss_GetPrinterDriver(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_GetPrinterDriver *r)
   27661             : {
   27662           0 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   27663           0 :         if (flags & NDR_IN) {
   27664           0 :                 if (r->in.handle == NULL) {
   27665           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   27666             :                 }
   27667           0 :                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
   27668           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.architecture));
   27669           0 :                 if (r->in.architecture) {
   27670           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
   27671           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   27672           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
   27673           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   27674             :                 }
   27675           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
   27676           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
   27677           0 :                 if (r->in.buffer) {
   27678           0 :                         NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
   27679             :                 }
   27680           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
   27681             :         }
   27682           0 :         if (flags & NDR_OUT) {
   27683           0 :                 if (r->out.needed == NULL) {
   27684           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   27685             :                 }
   27686           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
   27687           0 :                 if (r->out.info) {
   27688             :                         {
   27689           0 :                                 struct ndr_push *_ndr_info;
   27690           0 :                                 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
   27691           0 :                                 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
   27692           0 :                                 NDR_CHECK(ndr_push_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
   27693           0 :                                 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
   27694             :                         }
   27695             :                 }
   27696           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
   27697           0 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   27698             :         }
   27699           0 :         return NDR_ERR_SUCCESS;
   27700             : }
   27701             : 
   27702           0 : static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriver(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_GetPrinterDriver *r)
   27703             : {
   27704           0 :         uint32_t _ptr_architecture;
   27705           0 :         uint32_t size_architecture_1 = 0;
   27706           0 :         uint32_t length_architecture_1 = 0;
   27707           0 :         uint32_t _ptr_buffer;
   27708           0 :         uint32_t _ptr_info;
   27709           0 :         TALLOC_CTX *_mem_save_handle_0 = NULL;
   27710           0 :         TALLOC_CTX *_mem_save_architecture_0 = NULL;
   27711           0 :         TALLOC_CTX *_mem_save_buffer_0 = NULL;
   27712           0 :         TALLOC_CTX *_mem_save_info_0 = NULL;
   27713           0 :         TALLOC_CTX *_mem_save_needed_0 = NULL;
   27714           0 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   27715           0 :         if (flags & NDR_IN) {
   27716           0 :                 NDR_ZERO_STRUCT(r->out);
   27717             : 
   27718           0 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   27719           0 :                         NDR_PULL_ALLOC(ndr, r->in.handle);
   27720             :                 }
   27721           0 :                 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
   27722           0 :                 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
   27723           0 :                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
   27724           0 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
   27725           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
   27726           0 :                 if (_ptr_architecture) {
   27727           0 :                         NDR_PULL_ALLOC(ndr, r->in.architecture);
   27728             :                 } else {
   27729           0 :                         r->in.architecture = NULL;
   27730             :                 }
   27731           0 :                 if (r->in.architecture) {
   27732           0 :                         _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
   27733           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->in.architecture, 0);
   27734           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
   27735           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
   27736           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.architecture, &size_architecture_1));
   27737           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.architecture, &length_architecture_1));
   27738           0 :                         if (length_architecture_1 > size_architecture_1) {
   27739           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_architecture_1, length_architecture_1);
   27740             :                         }
   27741           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_architecture_1, sizeof(uint16_t)));
   27742           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, length_architecture_1, sizeof(uint16_t), CH_UTF16));
   27743           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
   27744             :                 }
   27745           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
   27746           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
   27747           0 :                 if (_ptr_buffer) {
   27748           0 :                         NDR_PULL_ALLOC(ndr, r->in.buffer);
   27749             :                 } else {
   27750           0 :                         r->in.buffer = NULL;
   27751             :                 }
   27752           0 :                 if (r->in.buffer) {
   27753           0 :                         _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
   27754           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
   27755           0 :                         NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
   27756           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
   27757             :                 }
   27758           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
   27759           0 :                 NDR_PULL_ALLOC(ndr, r->out.needed);
   27760           0 :                 NDR_ZERO_STRUCTP(r->out.needed);
   27761             :         }
   27762           0 :         if (flags & NDR_OUT) {
   27763             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   27764             :                 if (r->in.handle == NULL) {
   27765             :                         NDR_PULL_ALLOC(ndr, r->in.handle);
   27766             :                         NDR_ZERO_STRUCTP(r->in.handle);
   27767             :                 }
   27768             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   27769           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
   27770           0 :                 if (_ptr_info) {
   27771           0 :                         NDR_PULL_ALLOC(ndr, r->out.info);
   27772             :                 } else {
   27773           0 :                         r->out.info = NULL;
   27774             :                 }
   27775           0 :                 if (r->out.info) {
   27776           0 :                         _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
   27777           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
   27778             :                         {
   27779           0 :                                 struct ndr_pull *_ndr_info;
   27780           0 :                                 ssize_t sub_size = r->in.offered;
   27781           0 :                                 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, sub_size));
   27782           0 :                                 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
   27783           0 :                                 NDR_CHECK(ndr_pull_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
   27784           0 :                                 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, sub_size));
   27785             :                         }
   27786           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
   27787             :                 }
   27788           0 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   27789           0 :                         NDR_PULL_ALLOC(ndr, r->out.needed);
   27790             :                 }
   27791           0 :                 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
   27792           0 :                 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
   27793           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
   27794           0 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
   27795           0 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   27796             :         }
   27797           0 :         return NDR_ERR_SUCCESS;
   27798             : }
   27799             : 
   27800           0 : _PUBLIC_ void ndr_print_spoolss_GetPrinterDriver(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_GetPrinterDriver *r)
   27801             : {
   27802           0 :         ndr_print_struct(ndr, name, "spoolss_GetPrinterDriver");
   27803           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   27804           0 :         ndr->depth++;
   27805           0 :         if (flags & NDR_SET_VALUES) {
   27806           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   27807             :         }
   27808           0 :         if (flags & NDR_IN) {
   27809           0 :                 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriver");
   27810           0 :                 ndr->depth++;
   27811           0 :                 ndr_print_ptr(ndr, "handle", r->in.handle);
   27812           0 :                 ndr->depth++;
   27813           0 :                 ndr_print_policy_handle(ndr, "handle", r->in.handle);
   27814           0 :                 ndr->depth--;
   27815           0 :                 ndr_print_ptr(ndr, "architecture", r->in.architecture);
   27816           0 :                 ndr->depth++;
   27817           0 :                 if (r->in.architecture) {
   27818           0 :                         ndr_print_string(ndr, "architecture", r->in.architecture);
   27819             :                 }
   27820           0 :                 ndr->depth--;
   27821           0 :                 ndr_print_uint32(ndr, "level", r->in.level);
   27822           0 :                 ndr_print_ptr(ndr, "buffer", r->in.buffer);
   27823           0 :                 ndr->depth++;
   27824           0 :                 if (r->in.buffer) {
   27825           0 :                         ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
   27826             :                 }
   27827           0 :                 ndr->depth--;
   27828           0 :                 ndr_print_uint32(ndr, "offered", r->in.offered);
   27829           0 :                 ndr->depth--;
   27830             :         }
   27831           0 :         if (flags & NDR_OUT) {
   27832           0 :                 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriver");
   27833           0 :                 ndr->depth++;
   27834           0 :                 ndr_print_ptr(ndr, "info", r->out.info);
   27835           0 :                 ndr->depth++;
   27836           0 :                 if (r->out.info) {
   27837           0 :                         ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
   27838           0 :                         ndr_print_spoolss_DriverInfo(ndr, "info", r->out.info);
   27839             :                 }
   27840           0 :                 ndr->depth--;
   27841           0 :                 ndr_print_ptr(ndr, "needed", r->out.needed);
   27842           0 :                 ndr->depth++;
   27843           0 :                 ndr_print_uint32(ndr, "needed", *r->out.needed);
   27844           0 :                 ndr->depth--;
   27845           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   27846           0 :                 ndr->depth--;
   27847             :         }
   27848           0 :         ndr->depth--;
   27849             : }
   27850             : 
   27851         336 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetPrinterDriverDirectory(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_GetPrinterDriverDirectory *r)
   27852             : {
   27853         336 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   27854         336 :         if (flags & NDR_IN) {
   27855         168 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
   27856         168 :                 if (r->in.server) {
   27857         160 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
   27858         160 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   27859         160 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
   27860         160 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   27861             :                 }
   27862         168 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
   27863         168 :                 if (r->in.environment) {
   27864         168 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
   27865         168 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   27866         168 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
   27867         168 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   27868             :                 }
   27869         168 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
   27870         168 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
   27871         168 :                 if (r->in.buffer) {
   27872          84 :                         NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
   27873             :                 }
   27874         168 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
   27875             :         }
   27876         336 :         if (flags & NDR_OUT) {
   27877         168 :                 if (r->out.needed == NULL) {
   27878           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   27879             :                 }
   27880         168 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
   27881         168 :                 if (r->out.info) {
   27882             :                         {
   27883           0 :                                 struct ndr_push *_ndr_info;
   27884          84 :                                 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
   27885          84 :                                 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
   27886          84 :                                 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
   27887          84 :                                 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
   27888             :                         }
   27889             :                 }
   27890         168 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
   27891         168 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   27892             :         }
   27893         336 :         return NDR_ERR_SUCCESS;
   27894             : }
   27895             : 
   27896         342 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetPrinterDriverDirectory(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_GetPrinterDriverDirectory *r)
   27897             : {
   27898           6 :         uint32_t _ptr_server;
   27899         342 :         uint32_t size_server_1 = 0;
   27900         342 :         uint32_t length_server_1 = 0;
   27901           6 :         uint32_t _ptr_environment;
   27902         342 :         uint32_t size_environment_1 = 0;
   27903         342 :         uint32_t length_environment_1 = 0;
   27904           6 :         uint32_t _ptr_buffer;
   27905           6 :         uint32_t _ptr_info;
   27906         342 :         TALLOC_CTX *_mem_save_server_0 = NULL;
   27907         342 :         TALLOC_CTX *_mem_save_environment_0 = NULL;
   27908         342 :         TALLOC_CTX *_mem_save_buffer_0 = NULL;
   27909         342 :         TALLOC_CTX *_mem_save_info_0 = NULL;
   27910         342 :         TALLOC_CTX *_mem_save_needed_0 = NULL;
   27911         342 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   27912         342 :         if (flags & NDR_IN) {
   27913         172 :                 NDR_ZERO_STRUCT(r->out);
   27914             : 
   27915         172 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
   27916         172 :                 if (_ptr_server) {
   27917         164 :                         NDR_PULL_ALLOC(ndr, r->in.server);
   27918             :                 } else {
   27919           8 :                         r->in.server = NULL;
   27920             :                 }
   27921         172 :                 if (r->in.server) {
   27922         164 :                         _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
   27923         164 :                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
   27924         164 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
   27925         164 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
   27926         164 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.server, &size_server_1));
   27927         164 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.server, &length_server_1));
   27928         164 :                         if (length_server_1 > size_server_1) {
   27929           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_server_1, length_server_1);
   27930             :                         }
   27931         164 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_server_1, sizeof(uint16_t)));
   27932         164 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, length_server_1, sizeof(uint16_t), CH_UTF16));
   27933         164 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
   27934             :                 }
   27935         172 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
   27936         172 :                 if (_ptr_environment) {
   27937         172 :                         NDR_PULL_ALLOC(ndr, r->in.environment);
   27938             :                 } else {
   27939           0 :                         r->in.environment = NULL;
   27940             :                 }
   27941         172 :                 if (r->in.environment) {
   27942         172 :                         _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
   27943         172 :                         NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
   27944         172 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
   27945         172 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
   27946         172 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.environment, &size_environment_1));
   27947         172 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.environment, &length_environment_1));
   27948         172 :                         if (length_environment_1 > size_environment_1) {
   27949           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_environment_1, length_environment_1);
   27950             :                         }
   27951         172 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_environment_1, sizeof(uint16_t)));
   27952         172 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, length_environment_1, sizeof(uint16_t), CH_UTF16));
   27953         172 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
   27954             :                 }
   27955         172 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
   27956         172 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
   27957         172 :                 if (_ptr_buffer) {
   27958          88 :                         NDR_PULL_ALLOC(ndr, r->in.buffer);
   27959             :                 } else {
   27960          84 :                         r->in.buffer = NULL;
   27961             :                 }
   27962         172 :                 if (r->in.buffer) {
   27963          88 :                         _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
   27964          88 :                         NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
   27965          88 :                         NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
   27966          88 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
   27967             :                 }
   27968         172 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
   27969         172 :                 NDR_PULL_ALLOC(ndr, r->out.needed);
   27970         172 :                 NDR_ZERO_STRUCTP(r->out.needed);
   27971             :         }
   27972         342 :         if (flags & NDR_OUT) {
   27973             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   27974             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   27975         170 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
   27976         170 :                 if (_ptr_info) {
   27977          86 :                         NDR_PULL_ALLOC(ndr, r->out.info);
   27978             :                 } else {
   27979          84 :                         r->out.info = NULL;
   27980             :                 }
   27981         170 :                 if (r->out.info) {
   27982          86 :                         _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
   27983          86 :                         NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
   27984             :                         {
   27985           2 :                                 struct ndr_pull *_ndr_info;
   27986          86 :                                 ssize_t sub_size = r->in.offered;
   27987          86 :                                 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, sub_size));
   27988          86 :                                 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
   27989          86 :                                 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
   27990          86 :                                 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, sub_size));
   27991             :                         }
   27992          86 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
   27993             :                 }
   27994         170 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   27995           2 :                         NDR_PULL_ALLOC(ndr, r->out.needed);
   27996             :                 }
   27997         170 :                 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
   27998         170 :                 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
   27999         170 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
   28000         170 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
   28001         170 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   28002             :         }
   28003         336 :         return NDR_ERR_SUCCESS;
   28004             : }
   28005             : 
   28006           6 : _PUBLIC_ void ndr_print_spoolss_GetPrinterDriverDirectory(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_GetPrinterDriverDirectory *r)
   28007             : {
   28008           6 :         ndr_print_struct(ndr, name, "spoolss_GetPrinterDriverDirectory");
   28009           6 :         if (r == NULL) { ndr_print_null(ndr); return; }
   28010           6 :         ndr->depth++;
   28011           6 :         if (flags & NDR_SET_VALUES) {
   28012           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   28013             :         }
   28014           6 :         if (flags & NDR_IN) {
   28015           4 :                 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriverDirectory");
   28016           4 :                 ndr->depth++;
   28017           4 :                 ndr_print_ptr(ndr, "server", r->in.server);
   28018           4 :                 ndr->depth++;
   28019           4 :                 if (r->in.server) {
   28020           4 :                         ndr_print_string(ndr, "server", r->in.server);
   28021             :                 }
   28022           4 :                 ndr->depth--;
   28023           4 :                 ndr_print_ptr(ndr, "environment", r->in.environment);
   28024           4 :                 ndr->depth++;
   28025           4 :                 if (r->in.environment) {
   28026           4 :                         ndr_print_string(ndr, "environment", r->in.environment);
   28027             :                 }
   28028           4 :                 ndr->depth--;
   28029           4 :                 ndr_print_uint32(ndr, "level", r->in.level);
   28030           4 :                 ndr_print_ptr(ndr, "buffer", r->in.buffer);
   28031           4 :                 ndr->depth++;
   28032           4 :                 if (r->in.buffer) {
   28033           4 :                         ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
   28034             :                 }
   28035           4 :                 ndr->depth--;
   28036           4 :                 ndr_print_uint32(ndr, "offered", r->in.offered);
   28037           4 :                 ndr->depth--;
   28038             :         }
   28039           6 :         if (flags & NDR_OUT) {
   28040           2 :                 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriverDirectory");
   28041           2 :                 ndr->depth++;
   28042           2 :                 ndr_print_ptr(ndr, "info", r->out.info);
   28043           2 :                 ndr->depth++;
   28044           2 :                 if (r->out.info) {
   28045           2 :                         ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
   28046           2 :                         ndr_print_spoolss_DriverDirectoryInfo(ndr, "info", r->out.info);
   28047             :                 }
   28048           2 :                 ndr->depth--;
   28049           2 :                 ndr_print_ptr(ndr, "needed", r->out.needed);
   28050           2 :                 ndr->depth++;
   28051           2 :                 ndr_print_uint32(ndr, "needed", *r->out.needed);
   28052           2 :                 ndr->depth--;
   28053           2 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   28054           2 :                 ndr->depth--;
   28055             :         }
   28056           6 :         ndr->depth--;
   28057             : }
   28058             : 
   28059           0 : static enum ndr_err_code ndr_push_spoolss_DeletePrinterDriver(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_DeletePrinterDriver *r)
   28060             : {
   28061           0 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   28062           0 :         if (flags & NDR_IN) {
   28063           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
   28064           0 :                 if (r->in.server) {
   28065           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
   28066           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   28067           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
   28068           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   28069             :                 }
   28070           0 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
   28071           0 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   28072           0 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
   28073           0 :                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   28074           0 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
   28075           0 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   28076           0 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
   28077           0 :                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver, ndr_charset_length(r->in.driver, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   28078             :         }
   28079           0 :         if (flags & NDR_OUT) {
   28080           0 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   28081             :         }
   28082           0 :         return NDR_ERR_SUCCESS;
   28083             : }
   28084             : 
   28085           0 : static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDriver(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_DeletePrinterDriver *r)
   28086             : {
   28087           0 :         uint32_t _ptr_server;
   28088           0 :         uint32_t size_server_1 = 0;
   28089           0 :         uint32_t length_server_1 = 0;
   28090           0 :         uint32_t size_architecture_0 = 0;
   28091           0 :         uint32_t length_architecture_0 = 0;
   28092           0 :         uint32_t size_driver_0 = 0;
   28093           0 :         uint32_t length_driver_0 = 0;
   28094           0 :         TALLOC_CTX *_mem_save_server_0 = NULL;
   28095           0 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   28096           0 :         if (flags & NDR_IN) {
   28097           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
   28098           0 :                 if (_ptr_server) {
   28099           0 :                         NDR_PULL_ALLOC(ndr, r->in.server);
   28100             :                 } else {
   28101           0 :                         r->in.server = NULL;
   28102             :                 }
   28103           0 :                 if (r->in.server) {
   28104           0 :                         _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
   28105           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
   28106           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
   28107           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
   28108           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.server, &size_server_1));
   28109           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.server, &length_server_1));
   28110           0 :                         if (length_server_1 > size_server_1) {
   28111           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_server_1, length_server_1);
   28112             :                         }
   28113           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_server_1, sizeof(uint16_t)));
   28114           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, length_server_1, sizeof(uint16_t), CH_UTF16));
   28115           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
   28116             :                 }
   28117           0 :                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
   28118           0 :                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
   28119           0 :                 NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.architecture, &size_architecture_0));
   28120           0 :                 NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.architecture, &length_architecture_0));
   28121           0 :                 if (length_architecture_0 > size_architecture_0) {
   28122           0 :                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_architecture_0, length_architecture_0);
   28123             :                 }
   28124           0 :                 NDR_CHECK(ndr_check_string_terminator(ndr, length_architecture_0, sizeof(uint16_t)));
   28125           0 :                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, length_architecture_0, sizeof(uint16_t), CH_UTF16));
   28126           0 :                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver));
   28127           0 :                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.driver));
   28128           0 :                 NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.driver, &size_driver_0));
   28129           0 :                 NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.driver, &length_driver_0));
   28130           0 :                 if (length_driver_0 > size_driver_0) {
   28131           0 :                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_driver_0, length_driver_0);
   28132             :                 }
   28133           0 :                 NDR_CHECK(ndr_check_string_terminator(ndr, length_driver_0, sizeof(uint16_t)));
   28134           0 :                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver, length_driver_0, sizeof(uint16_t), CH_UTF16));
   28135             :         }
   28136           0 :         if (flags & NDR_OUT) {
   28137             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   28138             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   28139           0 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   28140             :         }
   28141           0 :         return NDR_ERR_SUCCESS;
   28142             : }
   28143             : 
   28144           0 : _PUBLIC_ void ndr_print_spoolss_DeletePrinterDriver(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_DeletePrinterDriver *r)
   28145             : {
   28146           0 :         ndr_print_struct(ndr, name, "spoolss_DeletePrinterDriver");
   28147           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   28148           0 :         ndr->depth++;
   28149           0 :         if (flags & NDR_SET_VALUES) {
   28150           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   28151             :         }
   28152           0 :         if (flags & NDR_IN) {
   28153           0 :                 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDriver");
   28154           0 :                 ndr->depth++;
   28155           0 :                 ndr_print_ptr(ndr, "server", r->in.server);
   28156           0 :                 ndr->depth++;
   28157           0 :                 if (r->in.server) {
   28158           0 :                         ndr_print_string(ndr, "server", r->in.server);
   28159             :                 }
   28160           0 :                 ndr->depth--;
   28161           0 :                 ndr_print_string(ndr, "architecture", r->in.architecture);
   28162           0 :                 ndr_print_string(ndr, "driver", r->in.driver);
   28163           0 :                 ndr->depth--;
   28164             :         }
   28165           0 :         if (flags & NDR_OUT) {
   28166           0 :                 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDriver");
   28167           0 :                 ndr->depth++;
   28168           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   28169           0 :                 ndr->depth--;
   28170             :         }
   28171           0 :         ndr->depth--;
   28172             : }
   28173             : 
   28174           8 : static enum ndr_err_code ndr_push_spoolss_AddPrintProcessor(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_AddPrintProcessor *r)
   28175             : {
   28176           8 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   28177           8 :         if (flags & NDR_IN) {
   28178           4 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
   28179           4 :                 if (r->in.server) {
   28180           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
   28181           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   28182           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
   28183           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   28184             :                 }
   28185           4 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
   28186           4 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   28187           4 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
   28188           4 :                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   28189           4 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.path_name, CH_UTF16)));
   28190           4 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   28191           4 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.path_name, CH_UTF16)));
   28192           4 :                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.path_name, ndr_charset_length(r->in.path_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   28193           4 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
   28194           4 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   28195           4 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
   28196           4 :                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.print_processor_name, ndr_charset_length(r->in.print_processor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   28197             :         }
   28198           8 :         if (flags & NDR_OUT) {
   28199           4 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   28200             :         }
   28201           8 :         return NDR_ERR_SUCCESS;
   28202             : }
   28203             : 
   28204           8 : static enum ndr_err_code ndr_pull_spoolss_AddPrintProcessor(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_AddPrintProcessor *r)
   28205             : {
   28206           0 :         uint32_t _ptr_server;
   28207           8 :         uint32_t size_server_1 = 0;
   28208           8 :         uint32_t length_server_1 = 0;
   28209           8 :         uint32_t size_architecture_0 = 0;
   28210           8 :         uint32_t length_architecture_0 = 0;
   28211           8 :         uint32_t size_path_name_0 = 0;
   28212           8 :         uint32_t length_path_name_0 = 0;
   28213           8 :         uint32_t size_print_processor_name_0 = 0;
   28214           8 :         uint32_t length_print_processor_name_0 = 0;
   28215           8 :         TALLOC_CTX *_mem_save_server_0 = NULL;
   28216           8 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   28217           8 :         if (flags & NDR_IN) {
   28218           4 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
   28219           4 :                 if (_ptr_server) {
   28220           0 :                         NDR_PULL_ALLOC(ndr, r->in.server);
   28221             :                 } else {
   28222           4 :                         r->in.server = NULL;
   28223             :                 }
   28224           4 :                 if (r->in.server) {
   28225           0 :                         _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
   28226           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
   28227           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
   28228           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
   28229           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.server, &size_server_1));
   28230           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.server, &length_server_1));
   28231           0 :                         if (length_server_1 > size_server_1) {
   28232           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_server_1, length_server_1);
   28233             :                         }
   28234           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_server_1, sizeof(uint16_t)));
   28235           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, length_server_1, sizeof(uint16_t), CH_UTF16));
   28236           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
   28237             :                 }
   28238           4 :                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
   28239           4 :                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
   28240           4 :                 NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.architecture, &size_architecture_0));
   28241           4 :                 NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.architecture, &length_architecture_0));
   28242           4 :                 if (length_architecture_0 > size_architecture_0) {
   28243           0 :                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_architecture_0, length_architecture_0);
   28244             :                 }
   28245           4 :                 NDR_CHECK(ndr_check_string_terminator(ndr, length_architecture_0, sizeof(uint16_t)));
   28246           4 :                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, length_architecture_0, sizeof(uint16_t), CH_UTF16));
   28247           4 :                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.path_name));
   28248           4 :                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.path_name));
   28249           4 :                 NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.path_name, &size_path_name_0));
   28250           4 :                 NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.path_name, &length_path_name_0));
   28251           4 :                 if (length_path_name_0 > size_path_name_0) {
   28252           0 :                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_path_name_0, length_path_name_0);
   28253             :                 }
   28254           4 :                 NDR_CHECK(ndr_check_string_terminator(ndr, length_path_name_0, sizeof(uint16_t)));
   28255           4 :                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.path_name, length_path_name_0, sizeof(uint16_t), CH_UTF16));
   28256           4 :                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.print_processor_name));
   28257           4 :                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.print_processor_name));
   28258           4 :                 NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.print_processor_name, &size_print_processor_name_0));
   28259           4 :                 NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.print_processor_name, &length_print_processor_name_0));
   28260           4 :                 if (length_print_processor_name_0 > size_print_processor_name_0) {
   28261           0 :                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_print_processor_name_0, length_print_processor_name_0);
   28262             :                 }
   28263           4 :                 NDR_CHECK(ndr_check_string_terminator(ndr, length_print_processor_name_0, sizeof(uint16_t)));
   28264           4 :                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.print_processor_name, length_print_processor_name_0, sizeof(uint16_t), CH_UTF16));
   28265             :         }
   28266           8 :         if (flags & NDR_OUT) {
   28267             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   28268             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   28269           4 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   28270             :         }
   28271           8 :         return NDR_ERR_SUCCESS;
   28272             : }
   28273             : 
   28274           0 : _PUBLIC_ void ndr_print_spoolss_AddPrintProcessor(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_AddPrintProcessor *r)
   28275             : {
   28276           0 :         ndr_print_struct(ndr, name, "spoolss_AddPrintProcessor");
   28277           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   28278           0 :         ndr->depth++;
   28279           0 :         if (flags & NDR_SET_VALUES) {
   28280           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   28281             :         }
   28282           0 :         if (flags & NDR_IN) {
   28283           0 :                 ndr_print_struct(ndr, "in", "spoolss_AddPrintProcessor");
   28284           0 :                 ndr->depth++;
   28285           0 :                 ndr_print_ptr(ndr, "server", r->in.server);
   28286           0 :                 ndr->depth++;
   28287           0 :                 if (r->in.server) {
   28288           0 :                         ndr_print_string(ndr, "server", r->in.server);
   28289             :                 }
   28290           0 :                 ndr->depth--;
   28291           0 :                 ndr_print_string(ndr, "architecture", r->in.architecture);
   28292           0 :                 ndr_print_string(ndr, "path_name", r->in.path_name);
   28293           0 :                 ndr_print_string(ndr, "print_processor_name", r->in.print_processor_name);
   28294           0 :                 ndr->depth--;
   28295             :         }
   28296           0 :         if (flags & NDR_OUT) {
   28297           0 :                 ndr_print_struct(ndr, "out", "spoolss_AddPrintProcessor");
   28298           0 :                 ndr->depth++;
   28299           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   28300           0 :                 ndr->depth--;
   28301             :         }
   28302           0 :         ndr->depth--;
   28303             : }
   28304             : 
   28305          96 : _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrintProcessors(struct ndr_push *ndr, ndr_flags_type flags, const struct _spoolss_EnumPrintProcessors *r)
   28306             : {
   28307          96 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   28308          96 :         if (flags & NDR_IN) {
   28309          48 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
   28310          48 :                 if (r->in.servername) {
   28311          48 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
   28312          48 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   28313          48 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
   28314          48 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   28315             :                 }
   28316          48 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
   28317          48 :                 if (r->in.environment) {
   28318          48 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
   28319          48 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   28320          48 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
   28321          48 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   28322             :                 }
   28323          48 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
   28324          48 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
   28325          48 :                 if (r->in.buffer) {
   28326          12 :                         NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
   28327             :                 }
   28328          48 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
   28329             :         }
   28330          96 :         if (flags & NDR_OUT) {
   28331          48 :                 if (r->out.needed == NULL) {
   28332           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   28333             :                 }
   28334          48 :                 if (r->out.count == NULL) {
   28335           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   28336             :                 }
   28337          48 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
   28338          48 :                 if (r->out.info) {
   28339          12 :                         NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
   28340             :                 }
   28341          48 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
   28342          48 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
   28343          48 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   28344             :         }
   28345          96 :         return NDR_ERR_SUCCESS;
   28346             : }
   28347             : 
   28348          96 : _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrintProcessors(struct ndr_pull *ndr, ndr_flags_type flags, struct _spoolss_EnumPrintProcessors *r)
   28349             : {
   28350           0 :         uint32_t _ptr_servername;
   28351          96 :         uint32_t size_servername_1 = 0;
   28352          96 :         uint32_t length_servername_1 = 0;
   28353           0 :         uint32_t _ptr_environment;
   28354          96 :         uint32_t size_environment_1 = 0;
   28355          96 :         uint32_t length_environment_1 = 0;
   28356           0 :         uint32_t _ptr_buffer;
   28357           0 :         uint32_t _ptr_info;
   28358          96 :         TALLOC_CTX *_mem_save_servername_0 = NULL;
   28359          96 :         TALLOC_CTX *_mem_save_environment_0 = NULL;
   28360          96 :         TALLOC_CTX *_mem_save_buffer_0 = NULL;
   28361          96 :         TALLOC_CTX *_mem_save_info_0 = NULL;
   28362          96 :         TALLOC_CTX *_mem_save_needed_0 = NULL;
   28363          96 :         TALLOC_CTX *_mem_save_count_0 = NULL;
   28364          96 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   28365          96 :         if (flags & NDR_IN) {
   28366          48 :                 NDR_ZERO_STRUCT(r->out);
   28367             : 
   28368          48 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
   28369          48 :                 if (_ptr_servername) {
   28370          48 :                         NDR_PULL_ALLOC(ndr, r->in.servername);
   28371             :                 } else {
   28372           0 :                         r->in.servername = NULL;
   28373             :                 }
   28374          48 :                 if (r->in.servername) {
   28375          48 :                         _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
   28376          48 :                         NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
   28377          48 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
   28378          48 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
   28379          48 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.servername, &size_servername_1));
   28380          48 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.servername, &length_servername_1));
   28381          48 :                         if (length_servername_1 > size_servername_1) {
   28382           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_servername_1, length_servername_1);
   28383             :                         }
   28384          48 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_servername_1, sizeof(uint16_t)));
   28385          48 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, length_servername_1, sizeof(uint16_t), CH_UTF16));
   28386          48 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
   28387             :                 }
   28388          48 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
   28389          48 :                 if (_ptr_environment) {
   28390          48 :                         NDR_PULL_ALLOC(ndr, r->in.environment);
   28391             :                 } else {
   28392           0 :                         r->in.environment = NULL;
   28393             :                 }
   28394          48 :                 if (r->in.environment) {
   28395          48 :                         _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
   28396          48 :                         NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
   28397          48 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
   28398          48 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
   28399          48 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.environment, &size_environment_1));
   28400          48 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.environment, &length_environment_1));
   28401          48 :                         if (length_environment_1 > size_environment_1) {
   28402           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_environment_1, length_environment_1);
   28403             :                         }
   28404          48 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_environment_1, sizeof(uint16_t)));
   28405          48 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, length_environment_1, sizeof(uint16_t), CH_UTF16));
   28406          48 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
   28407             :                 }
   28408          48 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
   28409          48 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
   28410          48 :                 if (_ptr_buffer) {
   28411          12 :                         NDR_PULL_ALLOC(ndr, r->in.buffer);
   28412             :                 } else {
   28413          36 :                         r->in.buffer = NULL;
   28414             :                 }
   28415          48 :                 if (r->in.buffer) {
   28416          12 :                         _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
   28417          12 :                         NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
   28418          12 :                         NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
   28419          12 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
   28420             :                 }
   28421          48 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
   28422          48 :                 NDR_PULL_ALLOC(ndr, r->out.needed);
   28423          48 :                 NDR_ZERO_STRUCTP(r->out.needed);
   28424          48 :                 NDR_PULL_ALLOC(ndr, r->out.count);
   28425          48 :                 NDR_ZERO_STRUCTP(r->out.count);
   28426             :         }
   28427          96 :         if (flags & NDR_OUT) {
   28428             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   28429             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   28430          48 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
   28431          48 :                 if (_ptr_info) {
   28432          12 :                         NDR_PULL_ALLOC(ndr, r->out.info);
   28433             :                 } else {
   28434          36 :                         r->out.info = NULL;
   28435             :                 }
   28436          48 :                 if (r->out.info) {
   28437          12 :                         _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
   28438          12 :                         NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
   28439          12 :                         NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
   28440          12 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
   28441             :                 }
   28442          48 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   28443           0 :                         NDR_PULL_ALLOC(ndr, r->out.needed);
   28444             :                 }
   28445          48 :                 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
   28446          48 :                 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
   28447          48 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
   28448          48 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
   28449          48 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   28450           0 :                         NDR_PULL_ALLOC(ndr, r->out.count);
   28451             :                 }
   28452          48 :                 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
   28453          48 :                 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
   28454          48 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
   28455          48 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
   28456          48 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   28457             :         }
   28458          96 :         return NDR_ERR_SUCCESS;
   28459             : }
   28460             : 
   28461          36 : _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrintProcessors(struct ndr_push *ndr, ndr_flags_type flags, const struct __spoolss_EnumPrintProcessors *r)
   28462             : {
   28463           0 :         uint32_t cntr_info_0;
   28464          36 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   28465          36 :         if (flags & NDR_IN) {
   28466           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
   28467           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
   28468             :         }
   28469          36 :         if (flags & NDR_OUT) {
   28470          72 :                 for (cntr_info_0 = 0; cntr_info_0 < (r->in.count); cntr_info_0++) {
   28471          36 :                         NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
   28472          36 :                         NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
   28473             :                 }
   28474          72 :                 for (cntr_info_0 = 0; cntr_info_0 < (r->in.count); cntr_info_0++) {
   28475          36 :                         NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
   28476          36 :                         NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
   28477             :                 }
   28478             :         }
   28479          36 :         return NDR_ERR_SUCCESS;
   28480             : }
   28481             : 
   28482          12 : _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrintProcessors(struct ndr_pull *ndr, ndr_flags_type flags, struct __spoolss_EnumPrintProcessors *r)
   28483             : {
   28484          12 :         uint32_t size_info_0 = 0;
   28485           0 :         uint32_t cntr_info_0;
   28486          12 :         TALLOC_CTX *_mem_save_info_0 = NULL;
   28487          12 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   28488          12 :         if (flags & NDR_IN) {
   28489           0 :                 NDR_ZERO_STRUCT(r->out);
   28490             : 
   28491           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
   28492           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
   28493             :         }
   28494          12 :         if (flags & NDR_OUT) {
   28495             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   28496             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   28497          12 :                 size_info_0 = r->in.count;
   28498          12 :                 NDR_PULL_ALLOC_N(ndr, r->out.info, size_info_0);
   28499          12 :                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
   28500          12 :                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
   28501          24 :                 for (cntr_info_0 = 0; cntr_info_0 < (size_info_0); cntr_info_0++) {
   28502          12 :                         NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
   28503          12 :                         NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
   28504             :                 }
   28505          24 :                 for (cntr_info_0 = 0; cntr_info_0 < (size_info_0); cntr_info_0++) {
   28506          12 :                         NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
   28507          12 :                         NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
   28508             :                 }
   28509          12 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
   28510          24 :                 for (cntr_info_0 = 0; cntr_info_0 < (size_info_0); cntr_info_0++) {
   28511             :                 }
   28512             :         }
   28513          12 :         return NDR_ERR_SUCCESS;
   28514             : }
   28515             : 
   28516           0 : _PUBLIC_ void ndr_print_spoolss_EnumPrintProcessors(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_EnumPrintProcessors *r)
   28517             : {
   28518           0 :         uint32_t cntr_info_2;
   28519           0 :         ndr_print_struct(ndr, name, "spoolss_EnumPrintProcessors");
   28520           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   28521           0 :         ndr->depth++;
   28522           0 :         if (flags & NDR_SET_VALUES) {
   28523           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   28524             :         }
   28525           0 :         if (flags & NDR_IN) {
   28526           0 :                 ndr_print_struct(ndr, "in", "spoolss_EnumPrintProcessors");
   28527           0 :                 ndr->depth++;
   28528           0 :                 ndr_print_ptr(ndr, "servername", r->in.servername);
   28529           0 :                 ndr->depth++;
   28530           0 :                 if (r->in.servername) {
   28531           0 :                         ndr_print_string(ndr, "servername", r->in.servername);
   28532             :                 }
   28533           0 :                 ndr->depth--;
   28534           0 :                 ndr_print_ptr(ndr, "environment", r->in.environment);
   28535           0 :                 ndr->depth++;
   28536           0 :                 if (r->in.environment) {
   28537           0 :                         ndr_print_string(ndr, "environment", r->in.environment);
   28538             :                 }
   28539           0 :                 ndr->depth--;
   28540           0 :                 ndr_print_uint32(ndr, "level", r->in.level);
   28541           0 :                 ndr_print_ptr(ndr, "buffer", r->in.buffer);
   28542           0 :                 ndr->depth++;
   28543           0 :                 if (r->in.buffer) {
   28544           0 :                         ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
   28545             :                 }
   28546           0 :                 ndr->depth--;
   28547           0 :                 ndr_print_uint32(ndr, "offered", r->in.offered);
   28548           0 :                 ndr->depth--;
   28549             :         }
   28550           0 :         if (flags & NDR_OUT) {
   28551           0 :                 ndr_print_struct(ndr, "out", "spoolss_EnumPrintProcessors");
   28552           0 :                 ndr->depth++;
   28553           0 :                 ndr_print_ptr(ndr, "count", r->out.count);
   28554           0 :                 ndr->depth++;
   28555           0 :                 ndr_print_uint32(ndr, "count", *r->out.count);
   28556           0 :                 ndr->depth--;
   28557           0 :                 ndr_print_ptr(ndr, "info", r->out.info);
   28558           0 :                 ndr->depth++;
   28559           0 :                 ndr_print_ptr(ndr, "info", *r->out.info);
   28560           0 :                 ndr->depth++;
   28561           0 :                 if (*r->out.info) {
   28562           0 :                         ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "info", (uint32_t)(*r->out.count));
   28563           0 :                         ndr->depth++;
   28564           0 :                         for (cntr_info_2 = 0; cntr_info_2 < (*r->out.count); cntr_info_2++) {
   28565           0 :                                 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
   28566           0 :                                 ndr_print_spoolss_PrintProcessorInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
   28567             :                         }
   28568           0 :                         ndr->depth--;
   28569             :                 }
   28570           0 :                 ndr->depth--;
   28571           0 :                 ndr->depth--;
   28572           0 :                 ndr_print_ptr(ndr, "needed", r->out.needed);
   28573           0 :                 ndr->depth++;
   28574           0 :                 ndr_print_uint32(ndr, "needed", *r->out.needed);
   28575           0 :                 ndr->depth--;
   28576           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   28577           0 :                 ndr->depth--;
   28578             :         }
   28579           0 :         ndr->depth--;
   28580             : }
   28581             : 
   28582          80 : static enum ndr_err_code ndr_push_spoolss_GetPrintProcessorDirectory(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_GetPrintProcessorDirectory *r)
   28583             : {
   28584          80 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   28585          80 :         if (flags & NDR_IN) {
   28586          40 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
   28587          40 :                 if (r->in.server) {
   28588          32 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
   28589          32 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   28590          32 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
   28591          32 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   28592             :                 }
   28593          40 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
   28594          40 :                 if (r->in.environment) {
   28595          40 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
   28596          40 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   28597          40 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
   28598          40 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   28599             :                 }
   28600          40 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
   28601          40 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
   28602          40 :                 if (r->in.buffer) {
   28603          20 :                         NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
   28604             :                 }
   28605          40 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
   28606             :         }
   28607          80 :         if (flags & NDR_OUT) {
   28608          40 :                 if (r->out.needed == NULL) {
   28609           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   28610             :                 }
   28611          40 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
   28612          40 :                 if (r->out.info) {
   28613             :                         {
   28614           0 :                                 struct ndr_push *_ndr_info;
   28615          20 :                                 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
   28616          20 :                                 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
   28617          20 :                                 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
   28618          20 :                                 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
   28619             :                         }
   28620             :                 }
   28621          40 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
   28622          40 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   28623             :         }
   28624          80 :         return NDR_ERR_SUCCESS;
   28625             : }
   28626             : 
   28627          80 : static enum ndr_err_code ndr_pull_spoolss_GetPrintProcessorDirectory(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_GetPrintProcessorDirectory *r)
   28628             : {
   28629           0 :         uint32_t _ptr_server;
   28630          80 :         uint32_t size_server_1 = 0;
   28631          80 :         uint32_t length_server_1 = 0;
   28632           0 :         uint32_t _ptr_environment;
   28633          80 :         uint32_t size_environment_1 = 0;
   28634          80 :         uint32_t length_environment_1 = 0;
   28635           0 :         uint32_t _ptr_buffer;
   28636           0 :         uint32_t _ptr_info;
   28637          80 :         TALLOC_CTX *_mem_save_server_0 = NULL;
   28638          80 :         TALLOC_CTX *_mem_save_environment_0 = NULL;
   28639          80 :         TALLOC_CTX *_mem_save_buffer_0 = NULL;
   28640          80 :         TALLOC_CTX *_mem_save_info_0 = NULL;
   28641          80 :         TALLOC_CTX *_mem_save_needed_0 = NULL;
   28642          80 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   28643          80 :         if (flags & NDR_IN) {
   28644          40 :                 NDR_ZERO_STRUCT(r->out);
   28645             : 
   28646          40 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
   28647          40 :                 if (_ptr_server) {
   28648          32 :                         NDR_PULL_ALLOC(ndr, r->in.server);
   28649             :                 } else {
   28650           8 :                         r->in.server = NULL;
   28651             :                 }
   28652          40 :                 if (r->in.server) {
   28653          32 :                         _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
   28654          32 :                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
   28655          32 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
   28656          32 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
   28657          32 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.server, &size_server_1));
   28658          32 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.server, &length_server_1));
   28659          32 :                         if (length_server_1 > size_server_1) {
   28660           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_server_1, length_server_1);
   28661             :                         }
   28662          32 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_server_1, sizeof(uint16_t)));
   28663          32 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, length_server_1, sizeof(uint16_t), CH_UTF16));
   28664          32 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
   28665             :                 }
   28666          40 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
   28667          40 :                 if (_ptr_environment) {
   28668          40 :                         NDR_PULL_ALLOC(ndr, r->in.environment);
   28669             :                 } else {
   28670           0 :                         r->in.environment = NULL;
   28671             :                 }
   28672          40 :                 if (r->in.environment) {
   28673          40 :                         _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
   28674          40 :                         NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
   28675          40 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
   28676          40 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
   28677          40 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.environment, &size_environment_1));
   28678          40 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.environment, &length_environment_1));
   28679          40 :                         if (length_environment_1 > size_environment_1) {
   28680           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_environment_1, length_environment_1);
   28681             :                         }
   28682          40 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_environment_1, sizeof(uint16_t)));
   28683          40 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, length_environment_1, sizeof(uint16_t), CH_UTF16));
   28684          40 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
   28685             :                 }
   28686          40 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
   28687          40 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
   28688          40 :                 if (_ptr_buffer) {
   28689          20 :                         NDR_PULL_ALLOC(ndr, r->in.buffer);
   28690             :                 } else {
   28691          20 :                         r->in.buffer = NULL;
   28692             :                 }
   28693          40 :                 if (r->in.buffer) {
   28694          20 :                         _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
   28695          20 :                         NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
   28696          20 :                         NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
   28697          20 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
   28698             :                 }
   28699          40 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
   28700          40 :                 NDR_PULL_ALLOC(ndr, r->out.needed);
   28701          40 :                 NDR_ZERO_STRUCTP(r->out.needed);
   28702             :         }
   28703          80 :         if (flags & NDR_OUT) {
   28704             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   28705             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   28706          40 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
   28707          40 :                 if (_ptr_info) {
   28708          20 :                         NDR_PULL_ALLOC(ndr, r->out.info);
   28709             :                 } else {
   28710          20 :                         r->out.info = NULL;
   28711             :                 }
   28712          40 :                 if (r->out.info) {
   28713          20 :                         _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
   28714          20 :                         NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
   28715             :                         {
   28716           0 :                                 struct ndr_pull *_ndr_info;
   28717          20 :                                 ssize_t sub_size = r->in.offered;
   28718          20 :                                 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, sub_size));
   28719          20 :                                 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
   28720          20 :                                 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
   28721          20 :                                 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, sub_size));
   28722             :                         }
   28723          20 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
   28724             :                 }
   28725          40 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   28726           0 :                         NDR_PULL_ALLOC(ndr, r->out.needed);
   28727             :                 }
   28728          40 :                 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
   28729          40 :                 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
   28730          40 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
   28731          40 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
   28732          40 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   28733             :         }
   28734          80 :         return NDR_ERR_SUCCESS;
   28735             : }
   28736             : 
   28737           0 : _PUBLIC_ void ndr_print_spoolss_GetPrintProcessorDirectory(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_GetPrintProcessorDirectory *r)
   28738             : {
   28739           0 :         ndr_print_struct(ndr, name, "spoolss_GetPrintProcessorDirectory");
   28740           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   28741           0 :         ndr->depth++;
   28742           0 :         if (flags & NDR_SET_VALUES) {
   28743           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   28744             :         }
   28745           0 :         if (flags & NDR_IN) {
   28746           0 :                 ndr_print_struct(ndr, "in", "spoolss_GetPrintProcessorDirectory");
   28747           0 :                 ndr->depth++;
   28748           0 :                 ndr_print_ptr(ndr, "server", r->in.server);
   28749           0 :                 ndr->depth++;
   28750           0 :                 if (r->in.server) {
   28751           0 :                         ndr_print_string(ndr, "server", r->in.server);
   28752             :                 }
   28753           0 :                 ndr->depth--;
   28754           0 :                 ndr_print_ptr(ndr, "environment", r->in.environment);
   28755           0 :                 ndr->depth++;
   28756           0 :                 if (r->in.environment) {
   28757           0 :                         ndr_print_string(ndr, "environment", r->in.environment);
   28758             :                 }
   28759           0 :                 ndr->depth--;
   28760           0 :                 ndr_print_uint32(ndr, "level", r->in.level);
   28761           0 :                 ndr_print_ptr(ndr, "buffer", r->in.buffer);
   28762           0 :                 ndr->depth++;
   28763           0 :                 if (r->in.buffer) {
   28764           0 :                         ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
   28765             :                 }
   28766           0 :                 ndr->depth--;
   28767           0 :                 ndr_print_uint32(ndr, "offered", r->in.offered);
   28768           0 :                 ndr->depth--;
   28769             :         }
   28770           0 :         if (flags & NDR_OUT) {
   28771           0 :                 ndr_print_struct(ndr, "out", "spoolss_GetPrintProcessorDirectory");
   28772           0 :                 ndr->depth++;
   28773           0 :                 ndr_print_ptr(ndr, "info", r->out.info);
   28774           0 :                 ndr->depth++;
   28775           0 :                 if (r->out.info) {
   28776           0 :                         ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
   28777           0 :                         ndr_print_spoolss_PrintProcessorDirectoryInfo(ndr, "info", r->out.info);
   28778             :                 }
   28779           0 :                 ndr->depth--;
   28780           0 :                 ndr_print_ptr(ndr, "needed", r->out.needed);
   28781           0 :                 ndr->depth++;
   28782           0 :                 ndr_print_uint32(ndr, "needed", *r->out.needed);
   28783           0 :                 ndr->depth--;
   28784           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   28785           0 :                 ndr->depth--;
   28786             :         }
   28787           0 :         ndr->depth--;
   28788             : }
   28789             : 
   28790        1336 : static enum ndr_err_code ndr_push_spoolss_StartDocPrinter(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_StartDocPrinter *r)
   28791             : {
   28792        1336 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   28793        1336 :         if (flags & NDR_IN) {
   28794         668 :                 if (r->in.handle == NULL) {
   28795           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   28796             :                 }
   28797         668 :                 if (r->in.info_ctr == NULL) {
   28798           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   28799             :                 }
   28800         668 :                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
   28801         668 :                 NDR_CHECK(ndr_push_spoolss_DocumentInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
   28802             :         }
   28803        1336 :         if (flags & NDR_OUT) {
   28804         668 :                 if (r->out.job_id == NULL) {
   28805           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   28806             :                 }
   28807         668 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.job_id));
   28808         668 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   28809             :         }
   28810        1336 :         return NDR_ERR_SUCCESS;
   28811             : }
   28812             : 
   28813        1336 : static enum ndr_err_code ndr_pull_spoolss_StartDocPrinter(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_StartDocPrinter *r)
   28814             : {
   28815        1336 :         TALLOC_CTX *_mem_save_handle_0 = NULL;
   28816        1336 :         TALLOC_CTX *_mem_save_info_ctr_0 = NULL;
   28817        1336 :         TALLOC_CTX *_mem_save_job_id_0 = NULL;
   28818        1336 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   28819        1336 :         if (flags & NDR_IN) {
   28820         668 :                 NDR_ZERO_STRUCT(r->out);
   28821             : 
   28822         668 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   28823         668 :                         NDR_PULL_ALLOC(ndr, r->in.handle);
   28824             :                 }
   28825         668 :                 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
   28826         668 :                 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
   28827         668 :                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
   28828         668 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
   28829         668 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   28830         668 :                         NDR_PULL_ALLOC(ndr, r->in.info_ctr);
   28831             :                 }
   28832         668 :                 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
   28833         668 :                 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
   28834         668 :                 NDR_CHECK(ndr_pull_spoolss_DocumentInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
   28835         668 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
   28836         668 :                 NDR_PULL_ALLOC(ndr, r->out.job_id);
   28837         668 :                 NDR_ZERO_STRUCTP(r->out.job_id);
   28838             :         }
   28839        1336 :         if (flags & NDR_OUT) {
   28840             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   28841             :                 if (r->in.handle == NULL) {
   28842             :                         NDR_PULL_ALLOC(ndr, r->in.handle);
   28843             :                         NDR_ZERO_STRUCTP(r->in.handle);
   28844             :                 }
   28845             :                 if (r->in.info_ctr == NULL) {
   28846             :                         NDR_PULL_ALLOC(ndr, r->in.info_ctr);
   28847             :                         NDR_ZERO_STRUCTP(r->in.info_ctr);
   28848             :                 }
   28849             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   28850         668 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   28851          28 :                         NDR_PULL_ALLOC(ndr, r->out.job_id);
   28852             :                 }
   28853         668 :                 _mem_save_job_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
   28854         668 :                 NDR_PULL_SET_MEM_CTX(ndr, r->out.job_id, LIBNDR_FLAG_REF_ALLOC);
   28855         668 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.job_id));
   28856         668 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_job_id_0, LIBNDR_FLAG_REF_ALLOC);
   28857         668 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   28858             :         }
   28859        1336 :         return NDR_ERR_SUCCESS;
   28860             : }
   28861             : 
   28862           0 : _PUBLIC_ void ndr_print_spoolss_StartDocPrinter(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_StartDocPrinter *r)
   28863             : {
   28864           0 :         ndr_print_struct(ndr, name, "spoolss_StartDocPrinter");
   28865           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   28866           0 :         ndr->depth++;
   28867           0 :         if (flags & NDR_SET_VALUES) {
   28868           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   28869             :         }
   28870           0 :         if (flags & NDR_IN) {
   28871           0 :                 ndr_print_struct(ndr, "in", "spoolss_StartDocPrinter");
   28872           0 :                 ndr->depth++;
   28873           0 :                 ndr_print_ptr(ndr, "handle", r->in.handle);
   28874           0 :                 ndr->depth++;
   28875           0 :                 ndr_print_policy_handle(ndr, "handle", r->in.handle);
   28876           0 :                 ndr->depth--;
   28877           0 :                 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
   28878           0 :                 ndr->depth++;
   28879           0 :                 ndr_print_spoolss_DocumentInfoCtr(ndr, "info_ctr", r->in.info_ctr);
   28880           0 :                 ndr->depth--;
   28881           0 :                 ndr->depth--;
   28882             :         }
   28883           0 :         if (flags & NDR_OUT) {
   28884           0 :                 ndr_print_struct(ndr, "out", "spoolss_StartDocPrinter");
   28885           0 :                 ndr->depth++;
   28886           0 :                 ndr_print_ptr(ndr, "job_id", r->out.job_id);
   28887           0 :                 ndr->depth++;
   28888           0 :                 ndr_print_uint32(ndr, "job_id", *r->out.job_id);
   28889           0 :                 ndr->depth--;
   28890           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   28891           0 :                 ndr->depth--;
   28892             :         }
   28893           0 :         ndr->depth--;
   28894             : }
   28895             : 
   28896        3840 : static enum ndr_err_code ndr_push_spoolss_StartPagePrinter(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_StartPagePrinter *r)
   28897             : {
   28898        3840 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   28899        3840 :         if (flags & NDR_IN) {
   28900        1920 :                 if (r->in.handle == NULL) {
   28901           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   28902             :                 }
   28903        1920 :                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
   28904             :         }
   28905        3840 :         if (flags & NDR_OUT) {
   28906        1920 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   28907             :         }
   28908        3840 :         return NDR_ERR_SUCCESS;
   28909             : }
   28910             : 
   28911        3840 : static enum ndr_err_code ndr_pull_spoolss_StartPagePrinter(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_StartPagePrinter *r)
   28912             : {
   28913        3840 :         TALLOC_CTX *_mem_save_handle_0 = NULL;
   28914        3840 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   28915        3840 :         if (flags & NDR_IN) {
   28916        1920 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   28917        1920 :                         NDR_PULL_ALLOC(ndr, r->in.handle);
   28918             :                 }
   28919        1920 :                 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
   28920        1920 :                 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
   28921        1920 :                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
   28922        1920 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
   28923             :         }
   28924        3840 :         if (flags & NDR_OUT) {
   28925             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   28926             :                 if (r->in.handle == NULL) {
   28927             :                         NDR_PULL_ALLOC(ndr, r->in.handle);
   28928             :                         NDR_ZERO_STRUCTP(r->in.handle);
   28929             :                 }
   28930             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   28931        1920 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   28932             :         }
   28933        3840 :         return NDR_ERR_SUCCESS;
   28934             : }
   28935             : 
   28936           0 : _PUBLIC_ void ndr_print_spoolss_StartPagePrinter(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_StartPagePrinter *r)
   28937             : {
   28938           0 :         ndr_print_struct(ndr, name, "spoolss_StartPagePrinter");
   28939           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   28940           0 :         ndr->depth++;
   28941           0 :         if (flags & NDR_SET_VALUES) {
   28942           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   28943             :         }
   28944           0 :         if (flags & NDR_IN) {
   28945           0 :                 ndr_print_struct(ndr, "in", "spoolss_StartPagePrinter");
   28946           0 :                 ndr->depth++;
   28947           0 :                 ndr_print_ptr(ndr, "handle", r->in.handle);
   28948           0 :                 ndr->depth++;
   28949           0 :                 ndr_print_policy_handle(ndr, "handle", r->in.handle);
   28950           0 :                 ndr->depth--;
   28951           0 :                 ndr->depth--;
   28952             :         }
   28953           0 :         if (flags & NDR_OUT) {
   28954           0 :                 ndr_print_struct(ndr, "out", "spoolss_StartPagePrinter");
   28955           0 :                 ndr->depth++;
   28956           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   28957           0 :                 ndr->depth--;
   28958             :         }
   28959           0 :         ndr->depth--;
   28960             : }
   28961             : 
   28962        3840 : static enum ndr_err_code ndr_push_spoolss_WritePrinter(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_WritePrinter *r)
   28963             : {
   28964        3840 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   28965        3840 :         if (flags & NDR_IN) {
   28966        1920 :                 if (r->in.handle == NULL) {
   28967           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   28968             :                 }
   28969        1920 :                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
   28970        1920 :                 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.data));
   28971        1920 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data.length));
   28972             :         }
   28973        3840 :         if (flags & NDR_OUT) {
   28974        1920 :                 if (r->out.num_written == NULL) {
   28975           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   28976             :                 }
   28977        1920 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.num_written));
   28978        1920 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   28979             :         }
   28980        3840 :         return NDR_ERR_SUCCESS;
   28981             : }
   28982             : 
   28983        3840 : static enum ndr_err_code ndr_pull_spoolss_WritePrinter(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_WritePrinter *r)
   28984             : {
   28985        3840 :         TALLOC_CTX *_mem_save_handle_0 = NULL;
   28986        3840 :         TALLOC_CTX *_mem_save_num_written_0 = NULL;
   28987        3840 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   28988        3840 :         if (flags & NDR_IN) {
   28989        1920 :                 NDR_ZERO_STRUCT(r->out);
   28990             : 
   28991        1920 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   28992        1920 :                         NDR_PULL_ALLOC(ndr, r->in.handle);
   28993             :                 }
   28994        1920 :                 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
   28995        1920 :                 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
   28996        1920 :                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
   28997        1920 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
   28998        1920 :                 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->in.data));
   28999        1920 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._data_size));
   29000        1920 :                 NDR_PULL_ALLOC(ndr, r->out.num_written);
   29001        1920 :                 NDR_ZERO_STRUCTP(r->out.num_written);
   29002             :         }
   29003        3840 :         if (flags & NDR_OUT) {
   29004             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   29005             :                 if (r->in.handle == NULL) {
   29006             :                         NDR_PULL_ALLOC(ndr, r->in.handle);
   29007             :                         NDR_ZERO_STRUCTP(r->in.handle);
   29008             :                 }
   29009             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   29010        1920 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   29011           0 :                         NDR_PULL_ALLOC(ndr, r->out.num_written);
   29012             :                 }
   29013        1920 :                 _mem_save_num_written_0 = NDR_PULL_GET_MEM_CTX(ndr);
   29014        1920 :                 NDR_PULL_SET_MEM_CTX(ndr, r->out.num_written, LIBNDR_FLAG_REF_ALLOC);
   29015        1920 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.num_written));
   29016        1920 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_num_written_0, LIBNDR_FLAG_REF_ALLOC);
   29017        1920 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   29018             :         }
   29019        3840 :         return NDR_ERR_SUCCESS;
   29020             : }
   29021             : 
   29022           0 : _PUBLIC_ void ndr_print_spoolss_WritePrinter(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_WritePrinter *r)
   29023             : {
   29024           0 :         ndr_print_struct(ndr, name, "spoolss_WritePrinter");
   29025           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   29026           0 :         ndr->depth++;
   29027           0 :         if (flags & NDR_SET_VALUES) {
   29028           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   29029             :         }
   29030           0 :         if (flags & NDR_IN) {
   29031           0 :                 ndr_print_struct(ndr, "in", "spoolss_WritePrinter");
   29032           0 :                 ndr->depth++;
   29033           0 :                 ndr_print_ptr(ndr, "handle", r->in.handle);
   29034           0 :                 ndr->depth++;
   29035           0 :                 ndr_print_policy_handle(ndr, "handle", r->in.handle);
   29036           0 :                 ndr->depth--;
   29037           0 :                 ndr_print_DATA_BLOB(ndr, "data", r->in.data);
   29038           0 :                 ndr_print_uint32(ndr, "_data_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->in.data.length:r->in._data_size);
   29039           0 :                 ndr->depth--;
   29040             :         }
   29041           0 :         if (flags & NDR_OUT) {
   29042           0 :                 ndr_print_struct(ndr, "out", "spoolss_WritePrinter");
   29043           0 :                 ndr->depth++;
   29044           0 :                 ndr_print_ptr(ndr, "num_written", r->out.num_written);
   29045           0 :                 ndr->depth++;
   29046           0 :                 ndr_print_uint32(ndr, "num_written", *r->out.num_written);
   29047           0 :                 ndr->depth--;
   29048           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   29049           0 :                 ndr->depth--;
   29050             :         }
   29051           0 :         ndr->depth--;
   29052             : }
   29053             : 
   29054        3840 : static enum ndr_err_code ndr_push_spoolss_EndPagePrinter(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_EndPagePrinter *r)
   29055             : {
   29056        3840 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   29057        3840 :         if (flags & NDR_IN) {
   29058        1920 :                 if (r->in.handle == NULL) {
   29059           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   29060             :                 }
   29061        1920 :                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
   29062             :         }
   29063        3840 :         if (flags & NDR_OUT) {
   29064        1920 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   29065             :         }
   29066        3840 :         return NDR_ERR_SUCCESS;
   29067             : }
   29068             : 
   29069        3840 : static enum ndr_err_code ndr_pull_spoolss_EndPagePrinter(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_EndPagePrinter *r)
   29070             : {
   29071        3840 :         TALLOC_CTX *_mem_save_handle_0 = NULL;
   29072        3840 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   29073        3840 :         if (flags & NDR_IN) {
   29074        1920 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   29075        1920 :                         NDR_PULL_ALLOC(ndr, r->in.handle);
   29076             :                 }
   29077        1920 :                 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
   29078        1920 :                 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
   29079        1920 :                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
   29080        1920 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
   29081             :         }
   29082        3840 :         if (flags & NDR_OUT) {
   29083             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   29084             :                 if (r->in.handle == NULL) {
   29085             :                         NDR_PULL_ALLOC(ndr, r->in.handle);
   29086             :                         NDR_ZERO_STRUCTP(r->in.handle);
   29087             :                 }
   29088             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   29089        1920 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   29090             :         }
   29091        3840 :         return NDR_ERR_SUCCESS;
   29092             : }
   29093             : 
   29094           0 : _PUBLIC_ void ndr_print_spoolss_EndPagePrinter(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_EndPagePrinter *r)
   29095             : {
   29096           0 :         ndr_print_struct(ndr, name, "spoolss_EndPagePrinter");
   29097           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   29098           0 :         ndr->depth++;
   29099           0 :         if (flags & NDR_SET_VALUES) {
   29100           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   29101             :         }
   29102           0 :         if (flags & NDR_IN) {
   29103           0 :                 ndr_print_struct(ndr, "in", "spoolss_EndPagePrinter");
   29104           0 :                 ndr->depth++;
   29105           0 :                 ndr_print_ptr(ndr, "handle", r->in.handle);
   29106           0 :                 ndr->depth++;
   29107           0 :                 ndr_print_policy_handle(ndr, "handle", r->in.handle);
   29108           0 :                 ndr->depth--;
   29109           0 :                 ndr->depth--;
   29110             :         }
   29111           0 :         if (flags & NDR_OUT) {
   29112           0 :                 ndr_print_struct(ndr, "out", "spoolss_EndPagePrinter");
   29113           0 :                 ndr->depth++;
   29114           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   29115           0 :                 ndr->depth--;
   29116             :         }
   29117           0 :         ndr->depth--;
   29118             : }
   29119             : 
   29120           0 : static enum ndr_err_code ndr_push_spoolss_AbortPrinter(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_AbortPrinter *r)
   29121             : {
   29122           0 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   29123           0 :         if (flags & NDR_IN) {
   29124           0 :                 if (r->in.handle == NULL) {
   29125           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   29126             :                 }
   29127           0 :                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
   29128             :         }
   29129           0 :         if (flags & NDR_OUT) {
   29130           0 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   29131             :         }
   29132           0 :         return NDR_ERR_SUCCESS;
   29133             : }
   29134             : 
   29135           0 : static enum ndr_err_code ndr_pull_spoolss_AbortPrinter(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_AbortPrinter *r)
   29136             : {
   29137           0 :         TALLOC_CTX *_mem_save_handle_0 = NULL;
   29138           0 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   29139           0 :         if (flags & NDR_IN) {
   29140           0 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   29141           0 :                         NDR_PULL_ALLOC(ndr, r->in.handle);
   29142             :                 }
   29143           0 :                 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
   29144           0 :                 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
   29145           0 :                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
   29146           0 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
   29147             :         }
   29148           0 :         if (flags & NDR_OUT) {
   29149             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   29150             :                 if (r->in.handle == NULL) {
   29151             :                         NDR_PULL_ALLOC(ndr, r->in.handle);
   29152             :                         NDR_ZERO_STRUCTP(r->in.handle);
   29153             :                 }
   29154             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   29155           0 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   29156             :         }
   29157           0 :         return NDR_ERR_SUCCESS;
   29158             : }
   29159             : 
   29160           0 : _PUBLIC_ void ndr_print_spoolss_AbortPrinter(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_AbortPrinter *r)
   29161             : {
   29162           0 :         ndr_print_struct(ndr, name, "spoolss_AbortPrinter");
   29163           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   29164           0 :         ndr->depth++;
   29165           0 :         if (flags & NDR_SET_VALUES) {
   29166           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   29167             :         }
   29168           0 :         if (flags & NDR_IN) {
   29169           0 :                 ndr_print_struct(ndr, "in", "spoolss_AbortPrinter");
   29170           0 :                 ndr->depth++;
   29171           0 :                 ndr_print_ptr(ndr, "handle", r->in.handle);
   29172           0 :                 ndr->depth++;
   29173           0 :                 ndr_print_policy_handle(ndr, "handle", r->in.handle);
   29174           0 :                 ndr->depth--;
   29175           0 :                 ndr->depth--;
   29176             :         }
   29177           0 :         if (flags & NDR_OUT) {
   29178           0 :                 ndr_print_struct(ndr, "out", "spoolss_AbortPrinter");
   29179           0 :                 ndr->depth++;
   29180           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   29181           0 :                 ndr->depth--;
   29182             :         }
   29183           0 :         ndr->depth--;
   29184             : }
   29185             : 
   29186           0 : static enum ndr_err_code ndr_push_spoolss_ReadPrinter(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_ReadPrinter *r)
   29187             : {
   29188           0 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   29189           0 :         if (flags & NDR_IN) {
   29190           0 :                 if (r->in.handle == NULL) {
   29191           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   29192             :                 }
   29193           0 :                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
   29194           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_size));
   29195             :         }
   29196           0 :         if (flags & NDR_OUT) {
   29197           0 :                 if (r->out.data == NULL) {
   29198           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   29199             :                 }
   29200           0 :                 if (r->out._data_size == NULL) {
   29201           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   29202             :                 }
   29203           0 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.data_size));
   29204           0 :                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, r->in.data_size));
   29205           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out._data_size));
   29206           0 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   29207             :         }
   29208           0 :         return NDR_ERR_SUCCESS;
   29209             : }
   29210             : 
   29211           0 : static enum ndr_err_code ndr_pull_spoolss_ReadPrinter(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_ReadPrinter *r)
   29212             : {
   29213           0 :         uint32_t size_data_1 = 0;
   29214           0 :         TALLOC_CTX *_mem_save_handle_0 = NULL;
   29215           0 :         TALLOC_CTX *_mem_save__data_size_0 = NULL;
   29216           0 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   29217           0 :         if (flags & NDR_IN) {
   29218           0 :                 NDR_ZERO_STRUCT(r->out);
   29219             : 
   29220           0 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   29221           0 :                         NDR_PULL_ALLOC(ndr, r->in.handle);
   29222             :                 }
   29223           0 :                 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
   29224           0 :                 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
   29225           0 :                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
   29226           0 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
   29227           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.data_size));
   29228           0 :                 NDR_PULL_ALLOC_N(ndr, r->out.data, r->in.data_size);
   29229           0 :                 memset(r->out.data, 0, (r->in.data_size) * sizeof(*r->out.data));
   29230           0 :                 NDR_PULL_ALLOC(ndr, r->out._data_size);
   29231           0 :                 NDR_ZERO_STRUCTP(r->out._data_size);
   29232             :         }
   29233           0 :         if (flags & NDR_OUT) {
   29234             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   29235             :                 if (r->in.handle == NULL) {
   29236             :                         NDR_PULL_ALLOC(ndr, r->in.handle);
   29237             :                         NDR_ZERO_STRUCTP(r->in.handle);
   29238             :                 }
   29239             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   29240           0 :                 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
   29241           0 :                 NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->out.data, &size_data_1));
   29242           0 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   29243           0 :                         NDR_PULL_ALLOC_N(ndr, r->out.data, size_data_1);
   29244             :                 }
   29245           0 :                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, size_data_1));
   29246           0 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   29247           0 :                         NDR_PULL_ALLOC(ndr, r->out._data_size);
   29248             :                 }
   29249           0 :                 _mem_save__data_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
   29250           0 :                 NDR_PULL_SET_MEM_CTX(ndr, r->out._data_size, LIBNDR_FLAG_REF_ALLOC);
   29251           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out._data_size));
   29252           0 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save__data_size_0, LIBNDR_FLAG_REF_ALLOC);
   29253           0 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   29254           0 :                 if (r->out.data) {
   29255           0 :                         NDR_CHECK(ndr_check_steal_array_size(ndr, (void*)&r->out.data, r->in.data_size));
   29256             :                 }
   29257             :         }
   29258           0 :         return NDR_ERR_SUCCESS;
   29259             : }
   29260             : 
   29261           0 : _PUBLIC_ void ndr_print_spoolss_ReadPrinter(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_ReadPrinter *r)
   29262             : {
   29263           0 :         ndr_print_struct(ndr, name, "spoolss_ReadPrinter");
   29264           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   29265           0 :         ndr->depth++;
   29266           0 :         if (flags & NDR_SET_VALUES) {
   29267           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   29268             :         }
   29269           0 :         if (flags & NDR_IN) {
   29270           0 :                 ndr_print_struct(ndr, "in", "spoolss_ReadPrinter");
   29271           0 :                 ndr->depth++;
   29272           0 :                 ndr_print_ptr(ndr, "handle", r->in.handle);
   29273           0 :                 ndr->depth++;
   29274           0 :                 ndr_print_policy_handle(ndr, "handle", r->in.handle);
   29275           0 :                 ndr->depth--;
   29276           0 :                 ndr_print_uint32(ndr, "data_size", r->in.data_size);
   29277           0 :                 ndr->depth--;
   29278             :         }
   29279           0 :         if (flags & NDR_OUT) {
   29280           0 :                 ndr_print_struct(ndr, "out", "spoolss_ReadPrinter");
   29281           0 :                 ndr->depth++;
   29282           0 :                 ndr_print_ptr(ndr, "data", r->out.data);
   29283           0 :                 ndr->depth++;
   29284           0 :                 ndr_print_array_uint8(ndr, "data", r->out.data, r->in.data_size);
   29285           0 :                 ndr->depth--;
   29286           0 :                 ndr_print_ptr(ndr, "_data_size", r->out._data_size);
   29287           0 :                 ndr->depth++;
   29288           0 :                 ndr_print_uint32(ndr, "_data_size", *r->out._data_size);
   29289           0 :                 ndr->depth--;
   29290           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   29291           0 :                 ndr->depth--;
   29292             :         }
   29293           0 :         ndr->depth--;
   29294             : }
   29295             : 
   29296        1280 : static enum ndr_err_code ndr_push_spoolss_EndDocPrinter(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_EndDocPrinter *r)
   29297             : {
   29298        1280 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   29299        1280 :         if (flags & NDR_IN) {
   29300         640 :                 if (r->in.handle == NULL) {
   29301           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   29302             :                 }
   29303         640 :                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
   29304             :         }
   29305        1280 :         if (flags & NDR_OUT) {
   29306         640 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   29307             :         }
   29308        1280 :         return NDR_ERR_SUCCESS;
   29309             : }
   29310             : 
   29311        1280 : static enum ndr_err_code ndr_pull_spoolss_EndDocPrinter(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_EndDocPrinter *r)
   29312             : {
   29313        1280 :         TALLOC_CTX *_mem_save_handle_0 = NULL;
   29314        1280 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   29315        1280 :         if (flags & NDR_IN) {
   29316         640 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   29317         640 :                         NDR_PULL_ALLOC(ndr, r->in.handle);
   29318             :                 }
   29319         640 :                 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
   29320         640 :                 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
   29321         640 :                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
   29322         640 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
   29323             :         }
   29324        1280 :         if (flags & NDR_OUT) {
   29325             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   29326             :                 if (r->in.handle == NULL) {
   29327             :                         NDR_PULL_ALLOC(ndr, r->in.handle);
   29328             :                         NDR_ZERO_STRUCTP(r->in.handle);
   29329             :                 }
   29330             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   29331         640 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   29332             :         }
   29333        1280 :         return NDR_ERR_SUCCESS;
   29334             : }
   29335             : 
   29336           0 : _PUBLIC_ void ndr_print_spoolss_EndDocPrinter(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_EndDocPrinter *r)
   29337             : {
   29338           0 :         ndr_print_struct(ndr, name, "spoolss_EndDocPrinter");
   29339           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   29340           0 :         ndr->depth++;
   29341           0 :         if (flags & NDR_SET_VALUES) {
   29342           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   29343             :         }
   29344           0 :         if (flags & NDR_IN) {
   29345           0 :                 ndr_print_struct(ndr, "in", "spoolss_EndDocPrinter");
   29346           0 :                 ndr->depth++;
   29347           0 :                 ndr_print_ptr(ndr, "handle", r->in.handle);
   29348           0 :                 ndr->depth++;
   29349           0 :                 ndr_print_policy_handle(ndr, "handle", r->in.handle);
   29350           0 :                 ndr->depth--;
   29351           0 :                 ndr->depth--;
   29352             :         }
   29353           0 :         if (flags & NDR_OUT) {
   29354           0 :                 ndr_print_struct(ndr, "out", "spoolss_EndDocPrinter");
   29355           0 :                 ndr->depth++;
   29356           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   29357           0 :                 ndr->depth--;
   29358             :         }
   29359           0 :         ndr->depth--;
   29360             : }
   29361             : 
   29362          32 : static enum ndr_err_code ndr_push_spoolss_AddJob(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_AddJob *r)
   29363             : {
   29364          32 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   29365          32 :         if (flags & NDR_IN) {
   29366          16 :                 if (r->in.handle == NULL) {
   29367           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   29368             :                 }
   29369          16 :                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
   29370          16 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
   29371          16 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
   29372          16 :                 if (r->in.buffer) {
   29373           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.offered));
   29374           0 :                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.offered));
   29375             :                 }
   29376          16 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
   29377             :         }
   29378          32 :         if (flags & NDR_OUT) {
   29379          16 :                 if (r->out.needed == NULL) {
   29380           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   29381             :                 }
   29382          16 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.buffer));
   29383          16 :                 if (r->out.buffer) {
   29384           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.offered));
   29385           0 :                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.offered));
   29386             :                 }
   29387          16 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
   29388          16 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   29389             :         }
   29390          32 :         return NDR_ERR_SUCCESS;
   29391             : }
   29392             : 
   29393          32 : static enum ndr_err_code ndr_pull_spoolss_AddJob(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_AddJob *r)
   29394             : {
   29395           0 :         uint32_t _ptr_buffer;
   29396          32 :         uint32_t size_buffer_1 = 0;
   29397          32 :         TALLOC_CTX *_mem_save_handle_0 = NULL;
   29398          32 :         TALLOC_CTX *_mem_save_buffer_0 = NULL;
   29399          32 :         TALLOC_CTX *_mem_save_needed_0 = NULL;
   29400          32 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   29401          32 :         if (flags & NDR_IN) {
   29402          16 :                 NDR_ZERO_STRUCT(r->out);
   29403             : 
   29404          16 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   29405          16 :                         NDR_PULL_ALLOC(ndr, r->in.handle);
   29406             :                 }
   29407          16 :                 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
   29408          16 :                 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
   29409          16 :                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
   29410          16 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
   29411          16 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
   29412          16 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
   29413          16 :                 if (_ptr_buffer) {
   29414           0 :                         NDR_PULL_ALLOC(ndr, r->in.buffer);
   29415             :                 } else {
   29416          16 :                         r->in.buffer = NULL;
   29417             :                 }
   29418          16 :                 if (r->in.buffer) {
   29419           0 :                         _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
   29420           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
   29421           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
   29422           0 :                         NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->in.buffer, &size_buffer_1));
   29423           0 :                         NDR_PULL_ALLOC_N(ndr, r->in.buffer, size_buffer_1);
   29424           0 :                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, size_buffer_1));
   29425           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
   29426             :                 }
   29427          16 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
   29428          16 :                 NDR_PULL_ALLOC(ndr, r->out.needed);
   29429          16 :                 NDR_ZERO_STRUCTP(r->out.needed);
   29430          16 :                 if (r->in.buffer) {
   29431           0 :                         NDR_CHECK(ndr_check_steal_array_size(ndr, (void*)&r->in.buffer, r->in.offered));
   29432             :                 }
   29433             :         }
   29434          32 :         if (flags & NDR_OUT) {
   29435             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   29436             :                 if (r->in.handle == NULL) {
   29437             :                         NDR_PULL_ALLOC(ndr, r->in.handle);
   29438             :                         NDR_ZERO_STRUCTP(r->in.handle);
   29439             :                 }
   29440             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   29441          16 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
   29442          16 :                 if (_ptr_buffer) {
   29443           0 :                         NDR_PULL_ALLOC(ndr, r->out.buffer);
   29444             :                 } else {
   29445          16 :                         r->out.buffer = NULL;
   29446             :                 }
   29447          16 :                 if (r->out.buffer) {
   29448           0 :                         _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
   29449           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, 0);
   29450           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
   29451           0 :                         NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->out.buffer, &size_buffer_1));
   29452           0 :                         NDR_PULL_ALLOC_N(ndr, r->out.buffer, size_buffer_1);
   29453           0 :                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, size_buffer_1));
   29454           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
   29455             :                 }
   29456          16 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   29457           0 :                         NDR_PULL_ALLOC(ndr, r->out.needed);
   29458             :                 }
   29459          16 :                 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
   29460          16 :                 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
   29461          16 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
   29462          16 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
   29463          16 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   29464          16 :                 if (r->out.buffer) {
   29465           0 :                         NDR_CHECK(ndr_check_steal_array_size(ndr, (void*)&r->out.buffer, r->in.offered));
   29466             :                 }
   29467             :         }
   29468          32 :         return NDR_ERR_SUCCESS;
   29469             : }
   29470             : 
   29471           0 : _PUBLIC_ void ndr_print_spoolss_AddJob(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_AddJob *r)
   29472             : {
   29473           0 :         ndr_print_struct(ndr, name, "spoolss_AddJob");
   29474           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   29475           0 :         ndr->depth++;
   29476           0 :         if (flags & NDR_SET_VALUES) {
   29477           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   29478             :         }
   29479           0 :         if (flags & NDR_IN) {
   29480           0 :                 ndr_print_struct(ndr, "in", "spoolss_AddJob");
   29481           0 :                 ndr->depth++;
   29482           0 :                 ndr_print_ptr(ndr, "handle", r->in.handle);
   29483           0 :                 ndr->depth++;
   29484           0 :                 ndr_print_policy_handle(ndr, "handle", r->in.handle);
   29485           0 :                 ndr->depth--;
   29486           0 :                 ndr_print_uint32(ndr, "level", r->in.level);
   29487           0 :                 ndr_print_ptr(ndr, "buffer", r->in.buffer);
   29488           0 :                 ndr->depth++;
   29489           0 :                 if (r->in.buffer) {
   29490           0 :                         ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.offered);
   29491             :                 }
   29492           0 :                 ndr->depth--;
   29493           0 :                 ndr_print_uint32(ndr, "offered", r->in.offered);
   29494           0 :                 ndr->depth--;
   29495             :         }
   29496           0 :         if (flags & NDR_OUT) {
   29497           0 :                 ndr_print_struct(ndr, "out", "spoolss_AddJob");
   29498           0 :                 ndr->depth++;
   29499           0 :                 ndr_print_ptr(ndr, "buffer", r->out.buffer);
   29500           0 :                 ndr->depth++;
   29501           0 :                 if (r->out.buffer) {
   29502           0 :                         ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.offered);
   29503             :                 }
   29504           0 :                 ndr->depth--;
   29505           0 :                 ndr_print_ptr(ndr, "needed", r->out.needed);
   29506           0 :                 ndr->depth++;
   29507           0 :                 ndr_print_uint32(ndr, "needed", *r->out.needed);
   29508           0 :                 ndr->depth--;
   29509           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   29510           0 :                 ndr->depth--;
   29511             :         }
   29512           0 :         ndr->depth--;
   29513             : }
   29514             : 
   29515           0 : static enum ndr_err_code ndr_push_spoolss_ScheduleJob(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_ScheduleJob *r)
   29516             : {
   29517           0 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   29518           0 :         if (flags & NDR_IN) {
   29519           0 :                 if (r->in.handle == NULL) {
   29520           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   29521             :                 }
   29522           0 :                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
   29523           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.jobid));
   29524             :         }
   29525           0 :         if (flags & NDR_OUT) {
   29526           0 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   29527             :         }
   29528           0 :         return NDR_ERR_SUCCESS;
   29529             : }
   29530             : 
   29531           0 : static enum ndr_err_code ndr_pull_spoolss_ScheduleJob(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_ScheduleJob *r)
   29532             : {
   29533           0 :         TALLOC_CTX *_mem_save_handle_0 = NULL;
   29534           0 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   29535           0 :         if (flags & NDR_IN) {
   29536           0 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   29537           0 :                         NDR_PULL_ALLOC(ndr, r->in.handle);
   29538             :                 }
   29539           0 :                 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
   29540           0 :                 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
   29541           0 :                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
   29542           0 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
   29543           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.jobid));
   29544             :         }
   29545           0 :         if (flags & NDR_OUT) {
   29546             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   29547             :                 if (r->in.handle == NULL) {
   29548             :                         NDR_PULL_ALLOC(ndr, r->in.handle);
   29549             :                         NDR_ZERO_STRUCTP(r->in.handle);
   29550             :                 }
   29551             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   29552           0 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   29553             :         }
   29554           0 :         return NDR_ERR_SUCCESS;
   29555             : }
   29556             : 
   29557           0 : _PUBLIC_ void ndr_print_spoolss_ScheduleJob(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_ScheduleJob *r)
   29558             : {
   29559           0 :         ndr_print_struct(ndr, name, "spoolss_ScheduleJob");
   29560           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   29561           0 :         ndr->depth++;
   29562           0 :         if (flags & NDR_SET_VALUES) {
   29563           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   29564             :         }
   29565           0 :         if (flags & NDR_IN) {
   29566           0 :                 ndr_print_struct(ndr, "in", "spoolss_ScheduleJob");
   29567           0 :                 ndr->depth++;
   29568           0 :                 ndr_print_ptr(ndr, "handle", r->in.handle);
   29569           0 :                 ndr->depth++;
   29570           0 :                 ndr_print_policy_handle(ndr, "handle", r->in.handle);
   29571           0 :                 ndr->depth--;
   29572           0 :                 ndr_print_uint32(ndr, "jobid", r->in.jobid);
   29573           0 :                 ndr->depth--;
   29574             :         }
   29575           0 :         if (flags & NDR_OUT) {
   29576           0 :                 ndr_print_struct(ndr, "out", "spoolss_ScheduleJob");
   29577           0 :                 ndr->depth++;
   29578           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   29579           0 :                 ndr->depth--;
   29580             :         }
   29581           0 :         ndr->depth--;
   29582             : }
   29583             : 
   29584         960 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetPrinterData(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_GetPrinterData *r)
   29585             : {
   29586         960 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   29587         960 :         if (flags & NDR_IN) {
   29588         480 :                 if (r->in.handle == NULL) {
   29589           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   29590             :                 }
   29591         480 :                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
   29592         480 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
   29593         480 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   29594         480 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
   29595         480 :                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.value_name, ndr_charset_length(r->in.value_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   29596         480 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
   29597             :         }
   29598         960 :         if (flags & NDR_OUT) {
   29599         480 :                 if (r->out.type == NULL) {
   29600           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   29601             :                 }
   29602         480 :                 if (r->out.data == NULL) {
   29603           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   29604             :                 }
   29605         480 :                 if (r->out.needed == NULL) {
   29606           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   29607             :                 }
   29608         480 :                 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
   29609         480 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.offered));
   29610         480 :                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, r->in.offered));
   29611         480 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
   29612         480 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   29613             :         }
   29614         960 :         return NDR_ERR_SUCCESS;
   29615             : }
   29616             : 
   29617         966 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetPrinterData(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_GetPrinterData *r)
   29618             : {
   29619         966 :         uint32_t size_value_name_0 = 0;
   29620         966 :         uint32_t length_value_name_0 = 0;
   29621         966 :         uint32_t size_data_1 = 0;
   29622         966 :         TALLOC_CTX *_mem_save_handle_0 = NULL;
   29623         966 :         TALLOC_CTX *_mem_save_type_0 = NULL;
   29624         966 :         TALLOC_CTX *_mem_save_needed_0 = NULL;
   29625         966 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   29626         966 :         if (flags & NDR_IN) {
   29627         484 :                 NDR_ZERO_STRUCT(r->out);
   29628             : 
   29629         484 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   29630         484 :                         NDR_PULL_ALLOC(ndr, r->in.handle);
   29631             :                 }
   29632         484 :                 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
   29633         484 :                 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
   29634         484 :                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
   29635         484 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
   29636         484 :                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
   29637         484 :                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
   29638         484 :                 NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.value_name, &size_value_name_0));
   29639         484 :                 NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.value_name, &length_value_name_0));
   29640         484 :                 if (length_value_name_0 > size_value_name_0) {
   29641           0 :                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_value_name_0, length_value_name_0);
   29642             :                 }
   29643         484 :                 NDR_CHECK(ndr_check_string_terminator(ndr, length_value_name_0, sizeof(uint16_t)));
   29644         484 :                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.value_name, length_value_name_0, sizeof(uint16_t), CH_UTF16));
   29645         484 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
   29646         484 :                 NDR_PULL_ALLOC(ndr, r->out.type);
   29647         484 :                 NDR_ZERO_STRUCTP(r->out.type);
   29648         484 :                 NDR_PULL_ALLOC_N(ndr, r->out.data, r->in.offered);
   29649         484 :                 memset(r->out.data, 0, (r->in.offered) * sizeof(*r->out.data));
   29650         484 :                 NDR_PULL_ALLOC(ndr, r->out.needed);
   29651         484 :                 NDR_ZERO_STRUCTP(r->out.needed);
   29652             :         }
   29653         966 :         if (flags & NDR_OUT) {
   29654             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   29655             :                 if (r->in.handle == NULL) {
   29656             :                         NDR_PULL_ALLOC(ndr, r->in.handle);
   29657             :                         NDR_ZERO_STRUCTP(r->in.handle);
   29658             :                 }
   29659             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   29660         482 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   29661           2 :                         NDR_PULL_ALLOC(ndr, r->out.type);
   29662             :                 }
   29663         482 :                 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
   29664         482 :                 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
   29665         482 :                 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
   29666         482 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
   29667         482 :                 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
   29668         482 :                 NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->out.data, &size_data_1));
   29669         482 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   29670           2 :                         NDR_PULL_ALLOC_N(ndr, r->out.data, size_data_1);
   29671             :                 }
   29672         482 :                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, size_data_1));
   29673         482 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   29674           2 :                         NDR_PULL_ALLOC(ndr, r->out.needed);
   29675             :                 }
   29676         482 :                 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
   29677         482 :                 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
   29678         482 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
   29679         482 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
   29680         482 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   29681         482 :                 if (r->out.data) {
   29682         482 :                         NDR_CHECK(ndr_check_steal_array_size(ndr, (void*)&r->out.data, r->in.offered));
   29683             :                 }
   29684             :         }
   29685         960 :         return NDR_ERR_SUCCESS;
   29686             : }
   29687             : 
   29688           6 : _PUBLIC_ void ndr_print_spoolss_GetPrinterData(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_GetPrinterData *r)
   29689             : {
   29690           6 :         ndr_print_struct(ndr, name, "spoolss_GetPrinterData");
   29691           6 :         if (r == NULL) { ndr_print_null(ndr); return; }
   29692           6 :         ndr->depth++;
   29693           6 :         if (flags & NDR_SET_VALUES) {
   29694           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   29695             :         }
   29696           6 :         if (flags & NDR_IN) {
   29697           4 :                 ndr_print_struct(ndr, "in", "spoolss_GetPrinterData");
   29698           4 :                 ndr->depth++;
   29699           4 :                 ndr_print_ptr(ndr, "handle", r->in.handle);
   29700           4 :                 ndr->depth++;
   29701           4 :                 ndr_print_policy_handle(ndr, "handle", r->in.handle);
   29702           4 :                 ndr->depth--;
   29703           4 :                 ndr_print_string(ndr, "value_name", r->in.value_name);
   29704           4 :                 ndr_print_uint32(ndr, "offered", r->in.offered);
   29705           4 :                 ndr->depth--;
   29706             :         }
   29707           6 :         if (flags & NDR_OUT) {
   29708           2 :                 ndr_print_struct(ndr, "out", "spoolss_GetPrinterData");
   29709           2 :                 ndr->depth++;
   29710           2 :                 ndr_print_ptr(ndr, "type", r->out.type);
   29711           2 :                 ndr->depth++;
   29712           2 :                 ndr_print_winreg_Type(ndr, "type", *r->out.type);
   29713           2 :                 ndr->depth--;
   29714           2 :                 ndr_print_ptr(ndr, "data", r->out.data);
   29715           2 :                 ndr->depth++;
   29716           2 :                 ndr_print_array_uint8(ndr, "data", r->out.data, r->in.offered);
   29717           2 :                 ndr->depth--;
   29718           2 :                 ndr_print_ptr(ndr, "needed", r->out.needed);
   29719           2 :                 ndr->depth++;
   29720           2 :                 ndr_print_uint32(ndr, "needed", *r->out.needed);
   29721           2 :                 ndr->depth--;
   29722           2 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   29723           2 :                 ndr->depth--;
   29724             :         }
   29725           6 :         ndr->depth--;
   29726             : }
   29727             : 
   29728         336 : static enum ndr_err_code ndr_push_spoolss_SetPrinterData(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_SetPrinterData *r)
   29729             : {
   29730         336 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   29731         336 :         if (flags & NDR_IN) {
   29732         168 :                 if (r->in.handle == NULL) {
   29733           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   29734             :                 }
   29735         168 :                 if (r->in.data == NULL) {
   29736           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   29737             :                 }
   29738         168 :                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
   29739         168 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
   29740         168 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   29741         168 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
   29742         168 :                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.value_name, ndr_charset_length(r->in.value_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   29743         168 :                 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
   29744         168 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.offered));
   29745         168 :                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.data, r->in.offered));
   29746         168 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
   29747             :         }
   29748         336 :         if (flags & NDR_OUT) {
   29749         168 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   29750             :         }
   29751         336 :         return NDR_ERR_SUCCESS;
   29752             : }
   29753             : 
   29754         336 : static enum ndr_err_code ndr_pull_spoolss_SetPrinterData(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_SetPrinterData *r)
   29755             : {
   29756         336 :         uint32_t size_value_name_0 = 0;
   29757         336 :         uint32_t length_value_name_0 = 0;
   29758         336 :         uint32_t size_data_1 = 0;
   29759         336 :         TALLOC_CTX *_mem_save_handle_0 = NULL;
   29760         336 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   29761         336 :         if (flags & NDR_IN) {
   29762         168 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   29763         168 :                         NDR_PULL_ALLOC(ndr, r->in.handle);
   29764             :                 }
   29765         168 :                 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
   29766         168 :                 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
   29767         168 :                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
   29768         168 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
   29769         168 :                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
   29770         168 :                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
   29771         168 :                 NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.value_name, &size_value_name_0));
   29772         168 :                 NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.value_name, &length_value_name_0));
   29773         168 :                 if (length_value_name_0 > size_value_name_0) {
   29774           0 :                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_value_name_0, length_value_name_0);
   29775             :                 }
   29776         168 :                 NDR_CHECK(ndr_check_string_terminator(ndr, length_value_name_0, sizeof(uint16_t)));
   29777         168 :                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.value_name, length_value_name_0, sizeof(uint16_t), CH_UTF16));
   29778         168 :                 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
   29779         168 :                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.data));
   29780         168 :                 NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->in.data, &size_data_1));
   29781         168 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   29782         168 :                         NDR_PULL_ALLOC_N(ndr, r->in.data, size_data_1);
   29783             :                 }
   29784         168 :                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.data, size_data_1));
   29785         168 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
   29786         168 :                 if (r->in.data) {
   29787         168 :                         NDR_CHECK(ndr_check_steal_array_size(ndr, (void*)&r->in.data, r->in.offered));
   29788             :                 }
   29789             :         }
   29790         336 :         if (flags & NDR_OUT) {
   29791             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   29792             :                 if (r->in.handle == NULL) {
   29793             :                         NDR_PULL_ALLOC(ndr, r->in.handle);
   29794             :                         NDR_ZERO_STRUCTP(r->in.handle);
   29795             :                 }
   29796             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   29797         168 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   29798             :         }
   29799         336 :         return NDR_ERR_SUCCESS;
   29800             : }
   29801             : 
   29802           0 : _PUBLIC_ void ndr_print_spoolss_SetPrinterData(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_SetPrinterData *r)
   29803             : {
   29804           0 :         ndr_print_struct(ndr, name, "spoolss_SetPrinterData");
   29805           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   29806           0 :         ndr->depth++;
   29807           0 :         if (flags & NDR_SET_VALUES) {
   29808           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   29809             :         }
   29810           0 :         if (flags & NDR_IN) {
   29811           0 :                 ndr_print_struct(ndr, "in", "spoolss_SetPrinterData");
   29812           0 :                 ndr->depth++;
   29813           0 :                 ndr_print_ptr(ndr, "handle", r->in.handle);
   29814           0 :                 ndr->depth++;
   29815           0 :                 ndr_print_policy_handle(ndr, "handle", r->in.handle);
   29816           0 :                 ndr->depth--;
   29817           0 :                 ndr_print_string(ndr, "value_name", r->in.value_name);
   29818           0 :                 ndr_print_winreg_Type(ndr, "type", r->in.type);
   29819           0 :                 ndr_print_ptr(ndr, "data", r->in.data);
   29820           0 :                 ndr->depth++;
   29821           0 :                 ndr_print_array_uint8(ndr, "data", r->in.data, r->in.offered);
   29822           0 :                 ndr->depth--;
   29823           0 :                 ndr_print_uint32(ndr, "offered", r->in.offered);
   29824           0 :                 ndr->depth--;
   29825             :         }
   29826           0 :         if (flags & NDR_OUT) {
   29827           0 :                 ndr_print_struct(ndr, "out", "spoolss_SetPrinterData");
   29828           0 :                 ndr->depth++;
   29829           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   29830           0 :                 ndr->depth--;
   29831             :         }
   29832           0 :         ndr->depth--;
   29833             : }
   29834             : 
   29835           0 : static enum ndr_err_code ndr_push_spoolss_WaitForPrinterChange(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_WaitForPrinterChange *r)
   29836             : {
   29837           0 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   29838           0 :         if (flags & NDR_IN) {
   29839           0 :         }
   29840           0 :         if (flags & NDR_OUT) {
   29841           0 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   29842             :         }
   29843           0 :         return NDR_ERR_SUCCESS;
   29844             : }
   29845             : 
   29846           0 : static enum ndr_err_code ndr_pull_spoolss_WaitForPrinterChange(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_WaitForPrinterChange *r)
   29847             : {
   29848           0 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   29849           0 :         if (flags & NDR_IN) {
   29850           0 :         }
   29851           0 :         if (flags & NDR_OUT) {
   29852             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   29853             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   29854           0 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   29855             :         }
   29856           0 :         return NDR_ERR_SUCCESS;
   29857             : }
   29858             : 
   29859           0 : _PUBLIC_ void ndr_print_spoolss_WaitForPrinterChange(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_WaitForPrinterChange *r)
   29860             : {
   29861           0 :         ndr_print_struct(ndr, name, "spoolss_WaitForPrinterChange");
   29862           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   29863           0 :         ndr->depth++;
   29864           0 :         if (flags & NDR_SET_VALUES) {
   29865           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   29866             :         }
   29867           0 :         if (flags & NDR_IN) {
   29868           0 :                 ndr_print_struct(ndr, "in", "spoolss_WaitForPrinterChange");
   29869           0 :                 ndr->depth++;
   29870           0 :                 ndr->depth--;
   29871             :         }
   29872           0 :         if (flags & NDR_OUT) {
   29873           0 :                 ndr_print_struct(ndr, "out", "spoolss_WaitForPrinterChange");
   29874           0 :                 ndr->depth++;
   29875           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   29876           0 :                 ndr->depth--;
   29877             :         }
   29878           0 :         ndr->depth--;
   29879             : }
   29880             : 
   29881        1240 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ClosePrinter(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_ClosePrinter *r)
   29882             : {
   29883        1240 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   29884        1240 :         if (flags & NDR_IN) {
   29885         620 :                 if (r->in.handle == NULL) {
   29886           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   29887             :                 }
   29888         620 :                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
   29889             :         }
   29890        1240 :         if (flags & NDR_OUT) {
   29891         620 :                 if (r->out.handle == NULL) {
   29892           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   29893             :                 }
   29894         620 :                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
   29895         620 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   29896             :         }
   29897        1240 :         return NDR_ERR_SUCCESS;
   29898             : }
   29899             : 
   29900        1244 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ClosePrinter(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_ClosePrinter *r)
   29901             : {
   29902        1244 :         TALLOC_CTX *_mem_save_handle_0 = NULL;
   29903        1244 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   29904        1244 :         if (flags & NDR_IN) {
   29905         622 :                 NDR_ZERO_STRUCT(r->out);
   29906             : 
   29907         622 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   29908         622 :                         NDR_PULL_ALLOC(ndr, r->in.handle);
   29909             :                 }
   29910         622 :                 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
   29911         622 :                 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
   29912         622 :                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
   29913         622 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
   29914         622 :                 NDR_PULL_ALLOC(ndr, r->out.handle);
   29915         622 :                 *r->out.handle = *r->in.handle;
   29916             :         }
   29917        1244 :         if (flags & NDR_OUT) {
   29918             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   29919             :                 if (r->in.handle == NULL) {
   29920             :                         NDR_PULL_ALLOC(ndr, r->in.handle);
   29921             :                         NDR_ZERO_STRUCTP(r->in.handle);
   29922             :                 }
   29923             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   29924         622 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   29925          36 :                         NDR_PULL_ALLOC(ndr, r->out.handle);
   29926             :                 }
   29927         622 :                 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
   29928         622 :                 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
   29929         622 :                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
   29930         622 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
   29931         622 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   29932             :         }
   29933        1240 :         return NDR_ERR_SUCCESS;
   29934             : }
   29935             : 
   29936           4 : _PUBLIC_ void ndr_print_spoolss_ClosePrinter(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_ClosePrinter *r)
   29937             : {
   29938           4 :         ndr_print_struct(ndr, name, "spoolss_ClosePrinter");
   29939           4 :         if (r == NULL) { ndr_print_null(ndr); return; }
   29940           4 :         ndr->depth++;
   29941           4 :         if (flags & NDR_SET_VALUES) {
   29942           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   29943             :         }
   29944           4 :         if (flags & NDR_IN) {
   29945           2 :                 ndr_print_struct(ndr, "in", "spoolss_ClosePrinter");
   29946           2 :                 ndr->depth++;
   29947           2 :                 ndr_print_ptr(ndr, "handle", r->in.handle);
   29948           2 :                 ndr->depth++;
   29949           2 :                 ndr_print_policy_handle(ndr, "handle", r->in.handle);
   29950           2 :                 ndr->depth--;
   29951           2 :                 ndr->depth--;
   29952             :         }
   29953           4 :         if (flags & NDR_OUT) {
   29954           2 :                 ndr_print_struct(ndr, "out", "spoolss_ClosePrinter");
   29955           2 :                 ndr->depth++;
   29956           2 :                 ndr_print_ptr(ndr, "handle", r->out.handle);
   29957           2 :                 ndr->depth++;
   29958           2 :                 ndr_print_policy_handle(ndr, "handle", r->out.handle);
   29959           2 :                 ndr->depth--;
   29960           2 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   29961           2 :                 ndr->depth--;
   29962             :         }
   29963           4 :         ndr->depth--;
   29964             : }
   29965             : 
   29966        1152 : static enum ndr_err_code ndr_push_spoolss_AddForm(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_AddForm *r)
   29967             : {
   29968        1152 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   29969        1152 :         if (flags & NDR_IN) {
   29970         576 :                 if (r->in.handle == NULL) {
   29971           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   29972             :                 }
   29973         576 :                 if (r->in.info_ctr == NULL) {
   29974           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   29975             :                 }
   29976         576 :                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
   29977         576 :                 NDR_CHECK(ndr_push_spoolss_AddFormInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
   29978             :         }
   29979        1152 :         if (flags & NDR_OUT) {
   29980         576 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   29981             :         }
   29982        1152 :         return NDR_ERR_SUCCESS;
   29983             : }
   29984             : 
   29985        1152 : static enum ndr_err_code ndr_pull_spoolss_AddForm(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_AddForm *r)
   29986             : {
   29987        1152 :         TALLOC_CTX *_mem_save_handle_0 = NULL;
   29988        1152 :         TALLOC_CTX *_mem_save_info_ctr_0 = NULL;
   29989        1152 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   29990        1152 :         if (flags & NDR_IN) {
   29991         576 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   29992         576 :                         NDR_PULL_ALLOC(ndr, r->in.handle);
   29993             :                 }
   29994         576 :                 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
   29995         576 :                 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
   29996         576 :                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
   29997         576 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
   29998         576 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   29999         576 :                         NDR_PULL_ALLOC(ndr, r->in.info_ctr);
   30000             :                 }
   30001         576 :                 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
   30002         576 :                 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
   30003         576 :                 NDR_CHECK(ndr_pull_spoolss_AddFormInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
   30004         576 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
   30005             :         }
   30006        1152 :         if (flags & NDR_OUT) {
   30007             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   30008             :                 if (r->in.handle == NULL) {
   30009             :                         NDR_PULL_ALLOC(ndr, r->in.handle);
   30010             :                         NDR_ZERO_STRUCTP(r->in.handle);
   30011             :                 }
   30012             :                 if (r->in.info_ctr == NULL) {
   30013             :                         NDR_PULL_ALLOC(ndr, r->in.info_ctr);
   30014             :                         NDR_ZERO_STRUCTP(r->in.info_ctr);
   30015             :                 }
   30016             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   30017         576 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   30018             :         }
   30019        1152 :         return NDR_ERR_SUCCESS;
   30020             : }
   30021             : 
   30022           0 : _PUBLIC_ void ndr_print_spoolss_AddForm(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_AddForm *r)
   30023             : {
   30024           0 :         ndr_print_struct(ndr, name, "spoolss_AddForm");
   30025           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   30026           0 :         ndr->depth++;
   30027           0 :         if (flags & NDR_SET_VALUES) {
   30028           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   30029             :         }
   30030           0 :         if (flags & NDR_IN) {
   30031           0 :                 ndr_print_struct(ndr, "in", "spoolss_AddForm");
   30032           0 :                 ndr->depth++;
   30033           0 :                 ndr_print_ptr(ndr, "handle", r->in.handle);
   30034           0 :                 ndr->depth++;
   30035           0 :                 ndr_print_policy_handle(ndr, "handle", r->in.handle);
   30036           0 :                 ndr->depth--;
   30037           0 :                 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
   30038           0 :                 ndr->depth++;
   30039           0 :                 ndr_print_spoolss_AddFormInfoCtr(ndr, "info_ctr", r->in.info_ctr);
   30040           0 :                 ndr->depth--;
   30041           0 :                 ndr->depth--;
   30042             :         }
   30043           0 :         if (flags & NDR_OUT) {
   30044           0 :                 ndr_print_struct(ndr, "out", "spoolss_AddForm");
   30045           0 :                 ndr->depth++;
   30046           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   30047           0 :                 ndr->depth--;
   30048             :         }
   30049           0 :         ndr->depth--;
   30050             : }
   30051             : 
   30052         768 : static enum ndr_err_code ndr_push_spoolss_DeleteForm(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_DeleteForm *r)
   30053             : {
   30054         768 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   30055         768 :         if (flags & NDR_IN) {
   30056         384 :                 if (r->in.handle == NULL) {
   30057           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   30058             :                 }
   30059         384 :                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
   30060         384 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
   30061         384 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   30062         384 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
   30063         384 :                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.form_name, ndr_charset_length(r->in.form_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   30064             :         }
   30065         768 :         if (flags & NDR_OUT) {
   30066         384 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   30067             :         }
   30068         768 :         return NDR_ERR_SUCCESS;
   30069             : }
   30070             : 
   30071         768 : static enum ndr_err_code ndr_pull_spoolss_DeleteForm(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_DeleteForm *r)
   30072             : {
   30073         768 :         uint32_t size_form_name_0 = 0;
   30074         768 :         uint32_t length_form_name_0 = 0;
   30075         768 :         TALLOC_CTX *_mem_save_handle_0 = NULL;
   30076         768 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   30077         768 :         if (flags & NDR_IN) {
   30078         384 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   30079         384 :                         NDR_PULL_ALLOC(ndr, r->in.handle);
   30080             :                 }
   30081         384 :                 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
   30082         384 :                 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
   30083         384 :                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
   30084         384 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
   30085         384 :                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
   30086         384 :                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
   30087         384 :                 NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.form_name, &size_form_name_0));
   30088         384 :                 NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.form_name, &length_form_name_0));
   30089         384 :                 if (length_form_name_0 > size_form_name_0) {
   30090           0 :                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_form_name_0, length_form_name_0);
   30091             :                 }
   30092         384 :                 NDR_CHECK(ndr_check_string_terminator(ndr, length_form_name_0, sizeof(uint16_t)));
   30093         384 :                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.form_name, length_form_name_0, sizeof(uint16_t), CH_UTF16));
   30094             :         }
   30095         768 :         if (flags & NDR_OUT) {
   30096             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   30097             :                 if (r->in.handle == NULL) {
   30098             :                         NDR_PULL_ALLOC(ndr, r->in.handle);
   30099             :                         NDR_ZERO_STRUCTP(r->in.handle);
   30100             :                 }
   30101             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   30102         384 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   30103             :         }
   30104         768 :         return NDR_ERR_SUCCESS;
   30105             : }
   30106             : 
   30107           0 : _PUBLIC_ void ndr_print_spoolss_DeleteForm(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_DeleteForm *r)
   30108             : {
   30109           0 :         ndr_print_struct(ndr, name, "spoolss_DeleteForm");
   30110           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   30111           0 :         ndr->depth++;
   30112           0 :         if (flags & NDR_SET_VALUES) {
   30113           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   30114             :         }
   30115           0 :         if (flags & NDR_IN) {
   30116           0 :                 ndr_print_struct(ndr, "in", "spoolss_DeleteForm");
   30117           0 :                 ndr->depth++;
   30118           0 :                 ndr_print_ptr(ndr, "handle", r->in.handle);
   30119           0 :                 ndr->depth++;
   30120           0 :                 ndr_print_policy_handle(ndr, "handle", r->in.handle);
   30121           0 :                 ndr->depth--;
   30122           0 :                 ndr_print_string(ndr, "form_name", r->in.form_name);
   30123           0 :                 ndr->depth--;
   30124             :         }
   30125           0 :         if (flags & NDR_OUT) {
   30126           0 :                 ndr_print_struct(ndr, "out", "spoolss_DeleteForm");
   30127           0 :                 ndr->depth++;
   30128           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   30129           0 :                 ndr->depth--;
   30130             :         }
   30131           0 :         ndr->depth--;
   30132             : }
   30133             : 
   30134       10080 : static enum ndr_err_code ndr_push_spoolss_GetForm(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_GetForm *r)
   30135             : {
   30136       10080 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   30137       10080 :         if (flags & NDR_IN) {
   30138        5040 :                 if (r->in.handle == NULL) {
   30139           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   30140             :                 }
   30141        5040 :                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
   30142        5040 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
   30143        5040 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   30144        5040 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
   30145        5040 :                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.form_name, ndr_charset_length(r->in.form_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   30146        5040 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
   30147        5040 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
   30148        5040 :                 if (r->in.buffer) {
   30149        2520 :                         NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
   30150             :                 }
   30151        5040 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
   30152             :         }
   30153       10080 :         if (flags & NDR_OUT) {
   30154        5040 :                 if (r->out.needed == NULL) {
   30155           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   30156             :                 }
   30157        5040 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
   30158        5040 :                 if (r->out.info) {
   30159             :                         {
   30160           0 :                                 struct ndr_push *_ndr_info;
   30161        2520 :                                 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
   30162        2520 :                                 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
   30163        2520 :                                 NDR_CHECK(ndr_push_spoolss_FormInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
   30164        2520 :                                 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
   30165             :                         }
   30166             :                 }
   30167        5040 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
   30168        5040 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   30169             :         }
   30170       10080 :         return NDR_ERR_SUCCESS;
   30171             : }
   30172             : 
   30173       10080 : static enum ndr_err_code ndr_pull_spoolss_GetForm(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_GetForm *r)
   30174             : {
   30175       10080 :         uint32_t size_form_name_0 = 0;
   30176       10080 :         uint32_t length_form_name_0 = 0;
   30177           0 :         uint32_t _ptr_buffer;
   30178           0 :         uint32_t _ptr_info;
   30179       10080 :         TALLOC_CTX *_mem_save_handle_0 = NULL;
   30180       10080 :         TALLOC_CTX *_mem_save_buffer_0 = NULL;
   30181       10080 :         TALLOC_CTX *_mem_save_info_0 = NULL;
   30182       10080 :         TALLOC_CTX *_mem_save_needed_0 = NULL;
   30183       10080 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   30184       10080 :         if (flags & NDR_IN) {
   30185        5040 :                 NDR_ZERO_STRUCT(r->out);
   30186             : 
   30187        5040 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   30188        5040 :                         NDR_PULL_ALLOC(ndr, r->in.handle);
   30189             :                 }
   30190        5040 :                 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
   30191        5040 :                 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
   30192        5040 :                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
   30193        5040 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
   30194        5040 :                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
   30195        5040 :                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
   30196        5040 :                 NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.form_name, &size_form_name_0));
   30197        5040 :                 NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.form_name, &length_form_name_0));
   30198        5040 :                 if (length_form_name_0 > size_form_name_0) {
   30199           0 :                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_form_name_0, length_form_name_0);
   30200             :                 }
   30201        5040 :                 NDR_CHECK(ndr_check_string_terminator(ndr, length_form_name_0, sizeof(uint16_t)));
   30202        5040 :                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.form_name, length_form_name_0, sizeof(uint16_t), CH_UTF16));
   30203        5040 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
   30204        5040 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
   30205        5040 :                 if (_ptr_buffer) {
   30206        2520 :                         NDR_PULL_ALLOC(ndr, r->in.buffer);
   30207             :                 } else {
   30208        2520 :                         r->in.buffer = NULL;
   30209             :                 }
   30210        5040 :                 if (r->in.buffer) {
   30211        2520 :                         _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
   30212        2520 :                         NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
   30213        2520 :                         NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
   30214        2520 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
   30215             :                 }
   30216        5040 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
   30217        5040 :                 NDR_PULL_ALLOC(ndr, r->out.needed);
   30218        5040 :                 NDR_ZERO_STRUCTP(r->out.needed);
   30219             :         }
   30220       10080 :         if (flags & NDR_OUT) {
   30221             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   30222             :                 if (r->in.handle == NULL) {
   30223             :                         NDR_PULL_ALLOC(ndr, r->in.handle);
   30224             :                         NDR_ZERO_STRUCTP(r->in.handle);
   30225             :                 }
   30226             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   30227        5040 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
   30228        5040 :                 if (_ptr_info) {
   30229        2520 :                         NDR_PULL_ALLOC(ndr, r->out.info);
   30230             :                 } else {
   30231        2520 :                         r->out.info = NULL;
   30232             :                 }
   30233        5040 :                 if (r->out.info) {
   30234        2520 :                         _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
   30235        2520 :                         NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
   30236             :                         {
   30237           0 :                                 struct ndr_pull *_ndr_info;
   30238        2520 :                                 ssize_t sub_size = r->in.offered;
   30239        2520 :                                 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, sub_size));
   30240        2520 :                                 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
   30241        2520 :                                 NDR_CHECK(ndr_pull_spoolss_FormInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
   30242        2520 :                                 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, sub_size));
   30243             :                         }
   30244        2520 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
   30245             :                 }
   30246        5040 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   30247           0 :                         NDR_PULL_ALLOC(ndr, r->out.needed);
   30248             :                 }
   30249        5040 :                 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
   30250        5040 :                 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
   30251        5040 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
   30252        5040 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
   30253        5040 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   30254             :         }
   30255       10080 :         return NDR_ERR_SUCCESS;
   30256             : }
   30257             : 
   30258           0 : _PUBLIC_ void ndr_print_spoolss_GetForm(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_GetForm *r)
   30259             : {
   30260           0 :         ndr_print_struct(ndr, name, "spoolss_GetForm");
   30261           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   30262           0 :         ndr->depth++;
   30263           0 :         if (flags & NDR_SET_VALUES) {
   30264           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   30265             :         }
   30266           0 :         if (flags & NDR_IN) {
   30267           0 :                 ndr_print_struct(ndr, "in", "spoolss_GetForm");
   30268           0 :                 ndr->depth++;
   30269           0 :                 ndr_print_ptr(ndr, "handle", r->in.handle);
   30270           0 :                 ndr->depth++;
   30271           0 :                 ndr_print_policy_handle(ndr, "handle", r->in.handle);
   30272           0 :                 ndr->depth--;
   30273           0 :                 ndr_print_string(ndr, "form_name", r->in.form_name);
   30274           0 :                 ndr_print_uint32(ndr, "level", r->in.level);
   30275           0 :                 ndr_print_ptr(ndr, "buffer", r->in.buffer);
   30276           0 :                 ndr->depth++;
   30277           0 :                 if (r->in.buffer) {
   30278           0 :                         ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
   30279             :                 }
   30280           0 :                 ndr->depth--;
   30281           0 :                 ndr_print_uint32(ndr, "offered", r->in.offered);
   30282           0 :                 ndr->depth--;
   30283             :         }
   30284           0 :         if (flags & NDR_OUT) {
   30285           0 :                 ndr_print_struct(ndr, "out", "spoolss_GetForm");
   30286           0 :                 ndr->depth++;
   30287           0 :                 ndr_print_ptr(ndr, "info", r->out.info);
   30288           0 :                 ndr->depth++;
   30289           0 :                 if (r->out.info) {
   30290           0 :                         ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
   30291           0 :                         ndr_print_spoolss_FormInfo(ndr, "info", r->out.info);
   30292             :                 }
   30293           0 :                 ndr->depth--;
   30294           0 :                 ndr_print_ptr(ndr, "needed", r->out.needed);
   30295           0 :                 ndr->depth++;
   30296           0 :                 ndr_print_uint32(ndr, "needed", *r->out.needed);
   30297           0 :                 ndr->depth--;
   30298           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   30299           0 :                 ndr->depth--;
   30300             :         }
   30301           0 :         ndr->depth--;
   30302             : }
   30303             : 
   30304         160 : static enum ndr_err_code ndr_push_spoolss_SetForm(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_SetForm *r)
   30305             : {
   30306         160 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   30307         160 :         if (flags & NDR_IN) {
   30308          80 :                 if (r->in.handle == NULL) {
   30309           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   30310             :                 }
   30311          80 :                 if (r->in.info_ctr == NULL) {
   30312           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   30313             :                 }
   30314          80 :                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
   30315          80 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
   30316          80 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   30317          80 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
   30318          80 :                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.form_name, ndr_charset_length(r->in.form_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   30319          80 :                 NDR_CHECK(ndr_push_spoolss_AddFormInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
   30320             :         }
   30321         160 :         if (flags & NDR_OUT) {
   30322          80 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   30323             :         }
   30324         160 :         return NDR_ERR_SUCCESS;
   30325             : }
   30326             : 
   30327         160 : static enum ndr_err_code ndr_pull_spoolss_SetForm(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_SetForm *r)
   30328             : {
   30329         160 :         uint32_t size_form_name_0 = 0;
   30330         160 :         uint32_t length_form_name_0 = 0;
   30331         160 :         TALLOC_CTX *_mem_save_handle_0 = NULL;
   30332         160 :         TALLOC_CTX *_mem_save_info_ctr_0 = NULL;
   30333         160 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   30334         160 :         if (flags & NDR_IN) {
   30335          80 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   30336          80 :                         NDR_PULL_ALLOC(ndr, r->in.handle);
   30337             :                 }
   30338          80 :                 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
   30339          80 :                 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
   30340          80 :                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
   30341          80 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
   30342          80 :                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
   30343          80 :                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
   30344          80 :                 NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.form_name, &size_form_name_0));
   30345          80 :                 NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.form_name, &length_form_name_0));
   30346          80 :                 if (length_form_name_0 > size_form_name_0) {
   30347           0 :                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_form_name_0, length_form_name_0);
   30348             :                 }
   30349          80 :                 NDR_CHECK(ndr_check_string_terminator(ndr, length_form_name_0, sizeof(uint16_t)));
   30350          80 :                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.form_name, length_form_name_0, sizeof(uint16_t), CH_UTF16));
   30351          80 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   30352          80 :                         NDR_PULL_ALLOC(ndr, r->in.info_ctr);
   30353             :                 }
   30354          80 :                 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
   30355          80 :                 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
   30356          80 :                 NDR_CHECK(ndr_pull_spoolss_AddFormInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
   30357          80 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
   30358             :         }
   30359         160 :         if (flags & NDR_OUT) {
   30360             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   30361             :                 if (r->in.handle == NULL) {
   30362             :                         NDR_PULL_ALLOC(ndr, r->in.handle);
   30363             :                         NDR_ZERO_STRUCTP(r->in.handle);
   30364             :                 }
   30365             :                 if (r->in.info_ctr == NULL) {
   30366             :                         NDR_PULL_ALLOC(ndr, r->in.info_ctr);
   30367             :                         NDR_ZERO_STRUCTP(r->in.info_ctr);
   30368             :                 }
   30369             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   30370          80 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   30371             :         }
   30372         160 :         return NDR_ERR_SUCCESS;
   30373             : }
   30374             : 
   30375           0 : _PUBLIC_ void ndr_print_spoolss_SetForm(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_SetForm *r)
   30376             : {
   30377           0 :         ndr_print_struct(ndr, name, "spoolss_SetForm");
   30378           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   30379           0 :         ndr->depth++;
   30380           0 :         if (flags & NDR_SET_VALUES) {
   30381           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   30382             :         }
   30383           0 :         if (flags & NDR_IN) {
   30384           0 :                 ndr_print_struct(ndr, "in", "spoolss_SetForm");
   30385           0 :                 ndr->depth++;
   30386           0 :                 ndr_print_ptr(ndr, "handle", r->in.handle);
   30387           0 :                 ndr->depth++;
   30388           0 :                 ndr_print_policy_handle(ndr, "handle", r->in.handle);
   30389           0 :                 ndr->depth--;
   30390           0 :                 ndr_print_string(ndr, "form_name", r->in.form_name);
   30391           0 :                 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
   30392           0 :                 ndr->depth++;
   30393           0 :                 ndr_print_spoolss_AddFormInfoCtr(ndr, "info_ctr", r->in.info_ctr);
   30394           0 :                 ndr->depth--;
   30395           0 :                 ndr->depth--;
   30396             :         }
   30397           0 :         if (flags & NDR_OUT) {
   30398           0 :                 ndr_print_struct(ndr, "out", "spoolss_SetForm");
   30399           0 :                 ndr->depth++;
   30400           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   30401           0 :                 ndr->depth--;
   30402             :         }
   30403           0 :         ndr->depth--;
   30404             : }
   30405             : 
   30406        1120 : _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumForms(struct ndr_push *ndr, ndr_flags_type flags, const struct _spoolss_EnumForms *r)
   30407             : {
   30408        1120 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   30409        1120 :         if (flags & NDR_IN) {
   30410         560 :                 if (r->in.handle == NULL) {
   30411           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   30412             :                 }
   30413         560 :                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
   30414         560 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
   30415         560 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
   30416         560 :                 if (r->in.buffer) {
   30417         268 :                         NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
   30418             :                 }
   30419         560 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
   30420             :         }
   30421        1120 :         if (flags & NDR_OUT) {
   30422         560 :                 if (r->out.needed == NULL) {
   30423           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   30424             :                 }
   30425         560 :                 if (r->out.count == NULL) {
   30426           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   30427             :                 }
   30428         560 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
   30429         560 :                 if (r->out.info) {
   30430         268 :                         NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
   30431             :                 }
   30432         560 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
   30433         560 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
   30434         560 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   30435             :         }
   30436        1120 :         return NDR_ERR_SUCCESS;
   30437             : }
   30438             : 
   30439        1125 : _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumForms(struct ndr_pull *ndr, ndr_flags_type flags, struct _spoolss_EnumForms *r)
   30440             : {
   30441           5 :         uint32_t _ptr_buffer;
   30442           5 :         uint32_t _ptr_info;
   30443        1125 :         TALLOC_CTX *_mem_save_handle_0 = NULL;
   30444        1125 :         TALLOC_CTX *_mem_save_buffer_0 = NULL;
   30445        1125 :         TALLOC_CTX *_mem_save_info_0 = NULL;
   30446        1125 :         TALLOC_CTX *_mem_save_needed_0 = NULL;
   30447        1125 :         TALLOC_CTX *_mem_save_count_0 = NULL;
   30448        1125 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   30449        1125 :         if (flags & NDR_IN) {
   30450         562 :                 NDR_ZERO_STRUCT(r->out);
   30451             : 
   30452         562 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   30453         562 :                         NDR_PULL_ALLOC(ndr, r->in.handle);
   30454             :                 }
   30455         562 :                 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
   30456         562 :                 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
   30457         562 :                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
   30458         562 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
   30459         562 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
   30460         562 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
   30461         562 :                 if (_ptr_buffer) {
   30462         268 :                         NDR_PULL_ALLOC(ndr, r->in.buffer);
   30463             :                 } else {
   30464         294 :                         r->in.buffer = NULL;
   30465             :                 }
   30466         562 :                 if (r->in.buffer) {
   30467         268 :                         _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
   30468         268 :                         NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
   30469         268 :                         NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
   30470         268 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
   30471             :                 }
   30472         562 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
   30473         562 :                 NDR_PULL_ALLOC(ndr, r->out.needed);
   30474         562 :                 NDR_ZERO_STRUCTP(r->out.needed);
   30475         562 :                 NDR_PULL_ALLOC(ndr, r->out.count);
   30476         562 :                 NDR_ZERO_STRUCTP(r->out.count);
   30477             :         }
   30478        1125 :         if (flags & NDR_OUT) {
   30479             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   30480             :                 if (r->in.handle == NULL) {
   30481             :                         NDR_PULL_ALLOC(ndr, r->in.handle);
   30482             :                         NDR_ZERO_STRUCTP(r->in.handle);
   30483             :                 }
   30484             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   30485         563 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
   30486         563 :                 if (_ptr_info) {
   30487         269 :                         NDR_PULL_ALLOC(ndr, r->out.info);
   30488             :                 } else {
   30489         294 :                         r->out.info = NULL;
   30490             :                 }
   30491         563 :                 if (r->out.info) {
   30492         269 :                         _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
   30493         269 :                         NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
   30494         269 :                         NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
   30495         269 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
   30496             :                 }
   30497         563 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   30498           3 :                         NDR_PULL_ALLOC(ndr, r->out.needed);
   30499             :                 }
   30500         563 :                 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
   30501         563 :                 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
   30502         563 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
   30503         563 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
   30504         563 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   30505           3 :                         NDR_PULL_ALLOC(ndr, r->out.count);
   30506             :                 }
   30507         563 :                 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
   30508         563 :                 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
   30509         563 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
   30510         563 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
   30511         563 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   30512             :         }
   30513        1120 :         return NDR_ERR_SUCCESS;
   30514             : }
   30515             : 
   30516         804 : _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumForms(struct ndr_push *ndr, ndr_flags_type flags, const struct __spoolss_EnumForms *r)
   30517             : {
   30518           0 :         uint32_t cntr_info_0;
   30519         804 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   30520         804 :         if (flags & NDR_IN) {
   30521           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
   30522           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
   30523             :         }
   30524         804 :         if (flags & NDR_OUT) {
   30525       95964 :                 for (cntr_info_0 = 0; cntr_info_0 < (r->in.count); cntr_info_0++) {
   30526       95160 :                         NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
   30527       95160 :                         NDR_CHECK(ndr_push_spoolss_FormInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
   30528             :                 }
   30529       95964 :                 for (cntr_info_0 = 0; cntr_info_0 < (r->in.count); cntr_info_0++) {
   30530       95160 :                         NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
   30531       95160 :                         NDR_CHECK(ndr_push_spoolss_FormInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
   30532             :                 }
   30533             :         }
   30534         804 :         return NDR_ERR_SUCCESS;
   30535             : }
   30536             : 
   30537         269 : _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumForms(struct ndr_pull *ndr, ndr_flags_type flags, struct __spoolss_EnumForms *r)
   30538             : {
   30539         269 :         uint32_t size_info_0 = 0;
   30540           1 :         uint32_t cntr_info_0;
   30541         269 :         TALLOC_CTX *_mem_save_info_0 = NULL;
   30542         269 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   30543         269 :         if (flags & NDR_IN) {
   30544           0 :                 NDR_ZERO_STRUCT(r->out);
   30545             : 
   30546           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
   30547           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
   30548             :         }
   30549         269 :         if (flags & NDR_OUT) {
   30550             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   30551             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   30552         269 :                 size_info_0 = r->in.count;
   30553         269 :                 NDR_PULL_ALLOC_N(ndr, r->out.info, size_info_0);
   30554         269 :                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
   30555         269 :                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
   30556       32245 :                 for (cntr_info_0 = 0; cntr_info_0 < (size_info_0); cntr_info_0++) {
   30557       31976 :                         NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
   30558       31976 :                         NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
   30559             :                 }
   30560       32245 :                 for (cntr_info_0 = 0; cntr_info_0 < (size_info_0); cntr_info_0++) {
   30561       31976 :                         NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
   30562       31976 :                         NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
   30563             :                 }
   30564         269 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
   30565       31989 :                 for (cntr_info_0 = 0; cntr_info_0 < (size_info_0); cntr_info_0++) {
   30566             :                 }
   30567             :         }
   30568         268 :         return NDR_ERR_SUCCESS;
   30569             : }
   30570             : 
   30571           5 : _PUBLIC_ void ndr_print_spoolss_EnumForms(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_EnumForms *r)
   30572             : {
   30573           5 :         uint32_t cntr_info_2;
   30574           5 :         ndr_print_struct(ndr, name, "spoolss_EnumForms");
   30575           5 :         if (r == NULL) { ndr_print_null(ndr); return; }
   30576           5 :         ndr->depth++;
   30577           5 :         if (flags & NDR_SET_VALUES) {
   30578           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   30579             :         }
   30580           5 :         if (flags & NDR_IN) {
   30581           2 :                 ndr_print_struct(ndr, "in", "spoolss_EnumForms");
   30582           2 :                 ndr->depth++;
   30583           2 :                 ndr_print_ptr(ndr, "handle", r->in.handle);
   30584           2 :                 ndr->depth++;
   30585           2 :                 ndr_print_policy_handle(ndr, "handle", r->in.handle);
   30586           2 :                 ndr->depth--;
   30587           2 :                 ndr_print_uint32(ndr, "level", r->in.level);
   30588           2 :                 ndr_print_ptr(ndr, "buffer", r->in.buffer);
   30589           2 :                 ndr->depth++;
   30590           2 :                 if (r->in.buffer) {
   30591           0 :                         ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
   30592             :                 }
   30593           2 :                 ndr->depth--;
   30594           2 :                 ndr_print_uint32(ndr, "offered", r->in.offered);
   30595           2 :                 ndr->depth--;
   30596             :         }
   30597           5 :         if (flags & NDR_OUT) {
   30598           3 :                 ndr_print_struct(ndr, "out", "spoolss_EnumForms");
   30599           3 :                 ndr->depth++;
   30600           3 :                 ndr_print_ptr(ndr, "count", r->out.count);
   30601           3 :                 ndr->depth++;
   30602           3 :                 ndr_print_uint32(ndr, "count", *r->out.count);
   30603           3 :                 ndr->depth--;
   30604           3 :                 ndr_print_ptr(ndr, "info", r->out.info);
   30605           3 :                 ndr->depth++;
   30606           3 :                 ndr_print_ptr(ndr, "info", *r->out.info);
   30607           3 :                 ndr->depth++;
   30608           3 :                 if (*r->out.info) {
   30609           1 :                         ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "info", (uint32_t)(*r->out.count));
   30610           1 :                         ndr->depth++;
   30611         257 :                         for (cntr_info_2 = 0; cntr_info_2 < (*r->out.count); cntr_info_2++) {
   30612         256 :                                 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
   30613         256 :                                 ndr_print_spoolss_FormInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
   30614             :                         }
   30615           1 :                         ndr->depth--;
   30616             :                 }
   30617           3 :                 ndr->depth--;
   30618           3 :                 ndr->depth--;
   30619           3 :                 ndr_print_ptr(ndr, "needed", r->out.needed);
   30620           3 :                 ndr->depth++;
   30621           3 :                 ndr_print_uint32(ndr, "needed", *r->out.needed);
   30622           3 :                 ndr->depth--;
   30623           3 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   30624           3 :                 ndr->depth--;
   30625             :         }
   30626           5 :         ndr->depth--;
   30627             : }
   30628             : 
   30629          48 : _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPorts(struct ndr_push *ndr, ndr_flags_type flags, const struct _spoolss_EnumPorts *r)
   30630             : {
   30631          48 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   30632          48 :         if (flags & NDR_IN) {
   30633          24 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
   30634          24 :                 if (r->in.servername) {
   30635          24 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
   30636          24 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   30637          24 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
   30638          24 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   30639             :                 }
   30640          24 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
   30641          24 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
   30642          24 :                 if (r->in.buffer) {
   30643          12 :                         NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
   30644             :                 }
   30645          24 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
   30646             :         }
   30647          48 :         if (flags & NDR_OUT) {
   30648          24 :                 if (r->out.needed == NULL) {
   30649           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   30650             :                 }
   30651          24 :                 if (r->out.count == NULL) {
   30652           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   30653             :                 }
   30654          24 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
   30655          24 :                 if (r->out.info) {
   30656          12 :                         NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
   30657             :                 }
   30658          24 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
   30659          24 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
   30660          24 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   30661             :         }
   30662          48 :         return NDR_ERR_SUCCESS;
   30663             : }
   30664             : 
   30665          48 : _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPorts(struct ndr_pull *ndr, ndr_flags_type flags, struct _spoolss_EnumPorts *r)
   30666             : {
   30667           0 :         uint32_t _ptr_servername;
   30668          48 :         uint32_t size_servername_1 = 0;
   30669          48 :         uint32_t length_servername_1 = 0;
   30670           0 :         uint32_t _ptr_buffer;
   30671           0 :         uint32_t _ptr_info;
   30672          48 :         TALLOC_CTX *_mem_save_servername_0 = NULL;
   30673          48 :         TALLOC_CTX *_mem_save_buffer_0 = NULL;
   30674          48 :         TALLOC_CTX *_mem_save_info_0 = NULL;
   30675          48 :         TALLOC_CTX *_mem_save_needed_0 = NULL;
   30676          48 :         TALLOC_CTX *_mem_save_count_0 = NULL;
   30677          48 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   30678          48 :         if (flags & NDR_IN) {
   30679          24 :                 NDR_ZERO_STRUCT(r->out);
   30680             : 
   30681          24 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
   30682          24 :                 if (_ptr_servername) {
   30683          24 :                         NDR_PULL_ALLOC(ndr, r->in.servername);
   30684             :                 } else {
   30685           0 :                         r->in.servername = NULL;
   30686             :                 }
   30687          24 :                 if (r->in.servername) {
   30688          24 :                         _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
   30689          24 :                         NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
   30690          24 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
   30691          24 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
   30692          24 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.servername, &size_servername_1));
   30693          24 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.servername, &length_servername_1));
   30694          24 :                         if (length_servername_1 > size_servername_1) {
   30695           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_servername_1, length_servername_1);
   30696             :                         }
   30697          24 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_servername_1, sizeof(uint16_t)));
   30698          24 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, length_servername_1, sizeof(uint16_t), CH_UTF16));
   30699          24 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
   30700             :                 }
   30701          24 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
   30702          24 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
   30703          24 :                 if (_ptr_buffer) {
   30704          12 :                         NDR_PULL_ALLOC(ndr, r->in.buffer);
   30705             :                 } else {
   30706          12 :                         r->in.buffer = NULL;
   30707             :                 }
   30708          24 :                 if (r->in.buffer) {
   30709          12 :                         _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
   30710          12 :                         NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
   30711          12 :                         NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
   30712          12 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
   30713             :                 }
   30714          24 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
   30715          24 :                 NDR_PULL_ALLOC(ndr, r->out.needed);
   30716          24 :                 NDR_ZERO_STRUCTP(r->out.needed);
   30717          24 :                 NDR_PULL_ALLOC(ndr, r->out.count);
   30718          24 :                 NDR_ZERO_STRUCTP(r->out.count);
   30719             :         }
   30720          48 :         if (flags & NDR_OUT) {
   30721             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   30722             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   30723          24 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
   30724          24 :                 if (_ptr_info) {
   30725          12 :                         NDR_PULL_ALLOC(ndr, r->out.info);
   30726             :                 } else {
   30727          12 :                         r->out.info = NULL;
   30728             :                 }
   30729          24 :                 if (r->out.info) {
   30730          12 :                         _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
   30731          12 :                         NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
   30732          12 :                         NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
   30733          12 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
   30734             :                 }
   30735          24 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   30736           0 :                         NDR_PULL_ALLOC(ndr, r->out.needed);
   30737             :                 }
   30738          24 :                 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
   30739          24 :                 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
   30740          24 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
   30741          24 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
   30742          24 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   30743           0 :                         NDR_PULL_ALLOC(ndr, r->out.count);
   30744             :                 }
   30745          24 :                 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
   30746          24 :                 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
   30747          24 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
   30748          24 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
   30749          24 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   30750             :         }
   30751          48 :         return NDR_ERR_SUCCESS;
   30752             : }
   30753             : 
   30754          36 : _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPorts(struct ndr_push *ndr, ndr_flags_type flags, const struct __spoolss_EnumPorts *r)
   30755             : {
   30756           0 :         uint32_t cntr_info_0;
   30757          36 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   30758          36 :         if (flags & NDR_IN) {
   30759           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
   30760           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
   30761             :         }
   30762          36 :         if (flags & NDR_OUT) {
   30763          72 :                 for (cntr_info_0 = 0; cntr_info_0 < (r->in.count); cntr_info_0++) {
   30764          36 :                         NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
   30765          36 :                         NDR_CHECK(ndr_push_spoolss_PortInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
   30766             :                 }
   30767          72 :                 for (cntr_info_0 = 0; cntr_info_0 < (r->in.count); cntr_info_0++) {
   30768          36 :                         NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
   30769          36 :                         NDR_CHECK(ndr_push_spoolss_PortInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
   30770             :                 }
   30771             :         }
   30772          36 :         return NDR_ERR_SUCCESS;
   30773             : }
   30774             : 
   30775          12 : _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPorts(struct ndr_pull *ndr, ndr_flags_type flags, struct __spoolss_EnumPorts *r)
   30776             : {
   30777          12 :         uint32_t size_info_0 = 0;
   30778           0 :         uint32_t cntr_info_0;
   30779          12 :         TALLOC_CTX *_mem_save_info_0 = NULL;
   30780          12 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   30781          12 :         if (flags & NDR_IN) {
   30782           0 :                 NDR_ZERO_STRUCT(r->out);
   30783             : 
   30784           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
   30785           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
   30786             :         }
   30787          12 :         if (flags & NDR_OUT) {
   30788             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   30789             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   30790          12 :                 size_info_0 = r->in.count;
   30791          12 :                 NDR_PULL_ALLOC_N(ndr, r->out.info, size_info_0);
   30792          12 :                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
   30793          12 :                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
   30794          24 :                 for (cntr_info_0 = 0; cntr_info_0 < (size_info_0); cntr_info_0++) {
   30795          12 :                         NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
   30796          12 :                         NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
   30797             :                 }
   30798          24 :                 for (cntr_info_0 = 0; cntr_info_0 < (size_info_0); cntr_info_0++) {
   30799          12 :                         NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
   30800          12 :                         NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
   30801             :                 }
   30802          12 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
   30803          24 :                 for (cntr_info_0 = 0; cntr_info_0 < (size_info_0); cntr_info_0++) {
   30804             :                 }
   30805             :         }
   30806          12 :         return NDR_ERR_SUCCESS;
   30807             : }
   30808             : 
   30809           0 : _PUBLIC_ void ndr_print_spoolss_EnumPorts(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_EnumPorts *r)
   30810             : {
   30811           0 :         uint32_t cntr_info_2;
   30812           0 :         ndr_print_struct(ndr, name, "spoolss_EnumPorts");
   30813           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   30814           0 :         ndr->depth++;
   30815           0 :         if (flags & NDR_SET_VALUES) {
   30816           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   30817             :         }
   30818           0 :         if (flags & NDR_IN) {
   30819           0 :                 ndr_print_struct(ndr, "in", "spoolss_EnumPorts");
   30820           0 :                 ndr->depth++;
   30821           0 :                 ndr_print_ptr(ndr, "servername", r->in.servername);
   30822           0 :                 ndr->depth++;
   30823           0 :                 if (r->in.servername) {
   30824           0 :                         ndr_print_string(ndr, "servername", r->in.servername);
   30825             :                 }
   30826           0 :                 ndr->depth--;
   30827           0 :                 ndr_print_uint32(ndr, "level", r->in.level);
   30828           0 :                 ndr_print_ptr(ndr, "buffer", r->in.buffer);
   30829           0 :                 ndr->depth++;
   30830           0 :                 if (r->in.buffer) {
   30831           0 :                         ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
   30832             :                 }
   30833           0 :                 ndr->depth--;
   30834           0 :                 ndr_print_uint32(ndr, "offered", r->in.offered);
   30835           0 :                 ndr->depth--;
   30836             :         }
   30837           0 :         if (flags & NDR_OUT) {
   30838           0 :                 ndr_print_struct(ndr, "out", "spoolss_EnumPorts");
   30839           0 :                 ndr->depth++;
   30840           0 :                 ndr_print_ptr(ndr, "count", r->out.count);
   30841           0 :                 ndr->depth++;
   30842           0 :                 ndr_print_uint32(ndr, "count", *r->out.count);
   30843           0 :                 ndr->depth--;
   30844           0 :                 ndr_print_ptr(ndr, "info", r->out.info);
   30845           0 :                 ndr->depth++;
   30846           0 :                 ndr_print_ptr(ndr, "info", *r->out.info);
   30847           0 :                 ndr->depth++;
   30848           0 :                 if (*r->out.info) {
   30849           0 :                         ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "info", (uint32_t)(*r->out.count));
   30850           0 :                         ndr->depth++;
   30851           0 :                         for (cntr_info_2 = 0; cntr_info_2 < (*r->out.count); cntr_info_2++) {
   30852           0 :                                 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
   30853           0 :                                 ndr_print_spoolss_PortInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
   30854             :                         }
   30855           0 :                         ndr->depth--;
   30856             :                 }
   30857           0 :                 ndr->depth--;
   30858           0 :                 ndr->depth--;
   30859           0 :                 ndr_print_ptr(ndr, "needed", r->out.needed);
   30860           0 :                 ndr->depth++;
   30861           0 :                 ndr_print_uint32(ndr, "needed", *r->out.needed);
   30862           0 :                 ndr->depth--;
   30863           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   30864           0 :                 ndr->depth--;
   30865             :         }
   30866           0 :         ndr->depth--;
   30867             : }
   30868             : 
   30869          32 : _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumMonitors(struct ndr_push *ndr, ndr_flags_type flags, const struct _spoolss_EnumMonitors *r)
   30870             : {
   30871          32 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   30872          32 :         if (flags & NDR_IN) {
   30873          16 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
   30874          16 :                 if (r->in.servername) {
   30875          16 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
   30876          16 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   30877          16 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
   30878          16 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   30879             :                 }
   30880          16 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
   30881          16 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
   30882          16 :                 if (r->in.buffer) {
   30883           8 :                         NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
   30884             :                 }
   30885          16 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
   30886             :         }
   30887          32 :         if (flags & NDR_OUT) {
   30888          16 :                 if (r->out.needed == NULL) {
   30889           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   30890             :                 }
   30891          16 :                 if (r->out.count == NULL) {
   30892           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   30893             :                 }
   30894          16 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
   30895          16 :                 if (r->out.info) {
   30896           8 :                         NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
   30897             :                 }
   30898          16 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
   30899          16 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
   30900          16 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   30901             :         }
   30902          32 :         return NDR_ERR_SUCCESS;
   30903             : }
   30904             : 
   30905          32 : _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumMonitors(struct ndr_pull *ndr, ndr_flags_type flags, struct _spoolss_EnumMonitors *r)
   30906             : {
   30907           0 :         uint32_t _ptr_servername;
   30908          32 :         uint32_t size_servername_1 = 0;
   30909          32 :         uint32_t length_servername_1 = 0;
   30910           0 :         uint32_t _ptr_buffer;
   30911           0 :         uint32_t _ptr_info;
   30912          32 :         TALLOC_CTX *_mem_save_servername_0 = NULL;
   30913          32 :         TALLOC_CTX *_mem_save_buffer_0 = NULL;
   30914          32 :         TALLOC_CTX *_mem_save_info_0 = NULL;
   30915          32 :         TALLOC_CTX *_mem_save_needed_0 = NULL;
   30916          32 :         TALLOC_CTX *_mem_save_count_0 = NULL;
   30917          32 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   30918          32 :         if (flags & NDR_IN) {
   30919          16 :                 NDR_ZERO_STRUCT(r->out);
   30920             : 
   30921          16 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
   30922          16 :                 if (_ptr_servername) {
   30923          16 :                         NDR_PULL_ALLOC(ndr, r->in.servername);
   30924             :                 } else {
   30925           0 :                         r->in.servername = NULL;
   30926             :                 }
   30927          16 :                 if (r->in.servername) {
   30928          16 :                         _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
   30929          16 :                         NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
   30930          16 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
   30931          16 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
   30932          16 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.servername, &size_servername_1));
   30933          16 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.servername, &length_servername_1));
   30934          16 :                         if (length_servername_1 > size_servername_1) {
   30935           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_servername_1, length_servername_1);
   30936             :                         }
   30937          16 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_servername_1, sizeof(uint16_t)));
   30938          16 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, length_servername_1, sizeof(uint16_t), CH_UTF16));
   30939          16 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
   30940             :                 }
   30941          16 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
   30942          16 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
   30943          16 :                 if (_ptr_buffer) {
   30944           8 :                         NDR_PULL_ALLOC(ndr, r->in.buffer);
   30945             :                 } else {
   30946           8 :                         r->in.buffer = NULL;
   30947             :                 }
   30948          16 :                 if (r->in.buffer) {
   30949           8 :                         _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
   30950           8 :                         NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
   30951           8 :                         NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
   30952           8 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
   30953             :                 }
   30954          16 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
   30955          16 :                 NDR_PULL_ALLOC(ndr, r->out.needed);
   30956          16 :                 NDR_ZERO_STRUCTP(r->out.needed);
   30957          16 :                 NDR_PULL_ALLOC(ndr, r->out.count);
   30958          16 :                 NDR_ZERO_STRUCTP(r->out.count);
   30959             :         }
   30960          32 :         if (flags & NDR_OUT) {
   30961             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   30962             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   30963          16 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
   30964          16 :                 if (_ptr_info) {
   30965           8 :                         NDR_PULL_ALLOC(ndr, r->out.info);
   30966             :                 } else {
   30967           8 :                         r->out.info = NULL;
   30968             :                 }
   30969          16 :                 if (r->out.info) {
   30970           8 :                         _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
   30971           8 :                         NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
   30972           8 :                         NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
   30973           8 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
   30974             :                 }
   30975          16 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   30976           0 :                         NDR_PULL_ALLOC(ndr, r->out.needed);
   30977             :                 }
   30978          16 :                 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
   30979          16 :                 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
   30980          16 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
   30981          16 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
   30982          16 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   30983           0 :                         NDR_PULL_ALLOC(ndr, r->out.count);
   30984             :                 }
   30985          16 :                 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
   30986          16 :                 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
   30987          16 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
   30988          16 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
   30989          16 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   30990             :         }
   30991          32 :         return NDR_ERR_SUCCESS;
   30992             : }
   30993             : 
   30994          24 : _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumMonitors(struct ndr_push *ndr, ndr_flags_type flags, const struct __spoolss_EnumMonitors *r)
   30995             : {
   30996           0 :         uint32_t cntr_info_0;
   30997          24 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   30998          24 :         if (flags & NDR_IN) {
   30999           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
   31000           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
   31001             :         }
   31002          24 :         if (flags & NDR_OUT) {
   31003          72 :                 for (cntr_info_0 = 0; cntr_info_0 < (r->in.count); cntr_info_0++) {
   31004          48 :                         NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
   31005          48 :                         NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
   31006             :                 }
   31007          72 :                 for (cntr_info_0 = 0; cntr_info_0 < (r->in.count); cntr_info_0++) {
   31008          48 :                         NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
   31009          48 :                         NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
   31010             :                 }
   31011             :         }
   31012          24 :         return NDR_ERR_SUCCESS;
   31013             : }
   31014             : 
   31015           8 : _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumMonitors(struct ndr_pull *ndr, ndr_flags_type flags, struct __spoolss_EnumMonitors *r)
   31016             : {
   31017           8 :         uint32_t size_info_0 = 0;
   31018           0 :         uint32_t cntr_info_0;
   31019           8 :         TALLOC_CTX *_mem_save_info_0 = NULL;
   31020           8 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   31021           8 :         if (flags & NDR_IN) {
   31022           0 :                 NDR_ZERO_STRUCT(r->out);
   31023             : 
   31024           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
   31025           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
   31026             :         }
   31027           8 :         if (flags & NDR_OUT) {
   31028             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   31029             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   31030           8 :                 size_info_0 = r->in.count;
   31031           8 :                 NDR_PULL_ALLOC_N(ndr, r->out.info, size_info_0);
   31032           8 :                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
   31033           8 :                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
   31034          24 :                 for (cntr_info_0 = 0; cntr_info_0 < (size_info_0); cntr_info_0++) {
   31035          16 :                         NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
   31036          16 :                         NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
   31037             :                 }
   31038          24 :                 for (cntr_info_0 = 0; cntr_info_0 < (size_info_0); cntr_info_0++) {
   31039          16 :                         NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
   31040          16 :                         NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
   31041             :                 }
   31042           8 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
   31043          24 :                 for (cntr_info_0 = 0; cntr_info_0 < (size_info_0); cntr_info_0++) {
   31044             :                 }
   31045             :         }
   31046           8 :         return NDR_ERR_SUCCESS;
   31047             : }
   31048             : 
   31049           0 : _PUBLIC_ void ndr_print_spoolss_EnumMonitors(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_EnumMonitors *r)
   31050             : {
   31051           0 :         uint32_t cntr_info_2;
   31052           0 :         ndr_print_struct(ndr, name, "spoolss_EnumMonitors");
   31053           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   31054           0 :         ndr->depth++;
   31055           0 :         if (flags & NDR_SET_VALUES) {
   31056           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   31057             :         }
   31058           0 :         if (flags & NDR_IN) {
   31059           0 :                 ndr_print_struct(ndr, "in", "spoolss_EnumMonitors");
   31060           0 :                 ndr->depth++;
   31061           0 :                 ndr_print_ptr(ndr, "servername", r->in.servername);
   31062           0 :                 ndr->depth++;
   31063           0 :                 if (r->in.servername) {
   31064           0 :                         ndr_print_string(ndr, "servername", r->in.servername);
   31065             :                 }
   31066           0 :                 ndr->depth--;
   31067           0 :                 ndr_print_uint32(ndr, "level", r->in.level);
   31068           0 :                 ndr_print_ptr(ndr, "buffer", r->in.buffer);
   31069           0 :                 ndr->depth++;
   31070           0 :                 if (r->in.buffer) {
   31071           0 :                         ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
   31072             :                 }
   31073           0 :                 ndr->depth--;
   31074           0 :                 ndr_print_uint32(ndr, "offered", r->in.offered);
   31075           0 :                 ndr->depth--;
   31076             :         }
   31077           0 :         if (flags & NDR_OUT) {
   31078           0 :                 ndr_print_struct(ndr, "out", "spoolss_EnumMonitors");
   31079           0 :                 ndr->depth++;
   31080           0 :                 ndr_print_ptr(ndr, "count", r->out.count);
   31081           0 :                 ndr->depth++;
   31082           0 :                 ndr_print_uint32(ndr, "count", *r->out.count);
   31083           0 :                 ndr->depth--;
   31084           0 :                 ndr_print_ptr(ndr, "info", r->out.info);
   31085           0 :                 ndr->depth++;
   31086           0 :                 ndr_print_ptr(ndr, "info", *r->out.info);
   31087           0 :                 ndr->depth++;
   31088           0 :                 if (*r->out.info) {
   31089           0 :                         ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "info", (uint32_t)(*r->out.count));
   31090           0 :                         ndr->depth++;
   31091           0 :                         for (cntr_info_2 = 0; cntr_info_2 < (*r->out.count); cntr_info_2++) {
   31092           0 :                                 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
   31093           0 :                                 ndr_print_spoolss_MonitorInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
   31094             :                         }
   31095           0 :                         ndr->depth--;
   31096             :                 }
   31097           0 :                 ndr->depth--;
   31098           0 :                 ndr->depth--;
   31099           0 :                 ndr_print_ptr(ndr, "needed", r->out.needed);
   31100           0 :                 ndr->depth++;
   31101           0 :                 ndr_print_uint32(ndr, "needed", *r->out.needed);
   31102           0 :                 ndr->depth--;
   31103           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   31104           0 :                 ndr->depth--;
   31105             :         }
   31106           0 :         ndr->depth--;
   31107             : }
   31108             : 
   31109           8 : static enum ndr_err_code ndr_push_spoolss_AddPort(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_AddPort *r)
   31110             : {
   31111           8 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   31112           8 :         if (flags & NDR_IN) {
   31113           4 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
   31114           4 :                 if (r->in.server_name) {
   31115           4 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
   31116           4 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   31117           4 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
   31118           4 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   31119             :                 }
   31120           4 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown));
   31121           4 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.monitor_name, CH_UTF16)));
   31122           4 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   31123           4 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.monitor_name, CH_UTF16)));
   31124           4 :                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.monitor_name, ndr_charset_length(r->in.monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   31125             :         }
   31126           8 :         if (flags & NDR_OUT) {
   31127           4 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   31128             :         }
   31129           8 :         return NDR_ERR_SUCCESS;
   31130             : }
   31131             : 
   31132           8 : static enum ndr_err_code ndr_pull_spoolss_AddPort(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_AddPort *r)
   31133             : {
   31134           0 :         uint32_t _ptr_server_name;
   31135           8 :         uint32_t size_server_name_1 = 0;
   31136           8 :         uint32_t length_server_name_1 = 0;
   31137           8 :         uint32_t size_monitor_name_0 = 0;
   31138           8 :         uint32_t length_monitor_name_0 = 0;
   31139           8 :         TALLOC_CTX *_mem_save_server_name_0 = NULL;
   31140           8 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   31141           8 :         if (flags & NDR_IN) {
   31142           4 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
   31143           4 :                 if (_ptr_server_name) {
   31144           4 :                         NDR_PULL_ALLOC(ndr, r->in.server_name);
   31145             :                 } else {
   31146           0 :                         r->in.server_name = NULL;
   31147             :                 }
   31148           4 :                 if (r->in.server_name) {
   31149           4 :                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
   31150           4 :                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
   31151           4 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
   31152           4 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
   31153           4 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.server_name, &size_server_name_1));
   31154           4 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.server_name, &length_server_name_1));
   31155           4 :                         if (length_server_name_1 > size_server_name_1) {
   31156           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_server_name_1, length_server_name_1);
   31157             :                         }
   31158           4 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_1, sizeof(uint16_t)));
   31159           4 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, length_server_name_1, sizeof(uint16_t), CH_UTF16));
   31160           4 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
   31161             :                 }
   31162           4 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown));
   31163           4 :                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.monitor_name));
   31164           4 :                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.monitor_name));
   31165           4 :                 NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.monitor_name, &size_monitor_name_0));
   31166           4 :                 NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.monitor_name, &length_monitor_name_0));
   31167           4 :                 if (length_monitor_name_0 > size_monitor_name_0) {
   31168           0 :                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_monitor_name_0, length_monitor_name_0);
   31169             :                 }
   31170           4 :                 NDR_CHECK(ndr_check_string_terminator(ndr, length_monitor_name_0, sizeof(uint16_t)));
   31171           4 :                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.monitor_name, length_monitor_name_0, sizeof(uint16_t), CH_UTF16));
   31172             :         }
   31173           8 :         if (flags & NDR_OUT) {
   31174             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   31175             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   31176           4 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   31177             :         }
   31178           8 :         return NDR_ERR_SUCCESS;
   31179             : }
   31180             : 
   31181           0 : _PUBLIC_ void ndr_print_spoolss_AddPort(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_AddPort *r)
   31182             : {
   31183           0 :         ndr_print_struct(ndr, name, "spoolss_AddPort");
   31184           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   31185           0 :         ndr->depth++;
   31186           0 :         if (flags & NDR_SET_VALUES) {
   31187           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   31188             :         }
   31189           0 :         if (flags & NDR_IN) {
   31190           0 :                 ndr_print_struct(ndr, "in", "spoolss_AddPort");
   31191           0 :                 ndr->depth++;
   31192           0 :                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
   31193           0 :                 ndr->depth++;
   31194           0 :                 if (r->in.server_name) {
   31195           0 :                         ndr_print_string(ndr, "server_name", r->in.server_name);
   31196             :                 }
   31197           0 :                 ndr->depth--;
   31198           0 :                 ndr_print_uint32(ndr, "unknown", r->in.unknown);
   31199           0 :                 ndr_print_string(ndr, "monitor_name", r->in.monitor_name);
   31200           0 :                 ndr->depth--;
   31201             :         }
   31202           0 :         if (flags & NDR_OUT) {
   31203           0 :                 ndr_print_struct(ndr, "out", "spoolss_AddPort");
   31204           0 :                 ndr->depth++;
   31205           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   31206           0 :                 ndr->depth--;
   31207             :         }
   31208           0 :         ndr->depth--;
   31209             : }
   31210             : 
   31211           0 : static enum ndr_err_code ndr_push_spoolss_ConfigurePort(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_ConfigurePort *r)
   31212             : {
   31213           0 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   31214           0 :         if (flags & NDR_IN) {
   31215           0 :         }
   31216           0 :         if (flags & NDR_OUT) {
   31217           0 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   31218             :         }
   31219           0 :         return NDR_ERR_SUCCESS;
   31220             : }
   31221             : 
   31222           0 : static enum ndr_err_code ndr_pull_spoolss_ConfigurePort(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_ConfigurePort *r)
   31223             : {
   31224           0 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   31225           0 :         if (flags & NDR_IN) {
   31226           0 :         }
   31227           0 :         if (flags & NDR_OUT) {
   31228             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   31229             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   31230           0 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   31231             :         }
   31232           0 :         return NDR_ERR_SUCCESS;
   31233             : }
   31234             : 
   31235           0 : _PUBLIC_ void ndr_print_spoolss_ConfigurePort(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_ConfigurePort *r)
   31236             : {
   31237           0 :         ndr_print_struct(ndr, name, "spoolss_ConfigurePort");
   31238           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   31239           0 :         ndr->depth++;
   31240           0 :         if (flags & NDR_SET_VALUES) {
   31241           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   31242             :         }
   31243           0 :         if (flags & NDR_IN) {
   31244           0 :                 ndr_print_struct(ndr, "in", "spoolss_ConfigurePort");
   31245           0 :                 ndr->depth++;
   31246           0 :                 ndr->depth--;
   31247             :         }
   31248           0 :         if (flags & NDR_OUT) {
   31249           0 :                 ndr_print_struct(ndr, "out", "spoolss_ConfigurePort");
   31250           0 :                 ndr->depth++;
   31251           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   31252           0 :                 ndr->depth--;
   31253             :         }
   31254           0 :         ndr->depth--;
   31255             : }
   31256             : 
   31257           0 : static enum ndr_err_code ndr_push_spoolss_DeletePort(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_DeletePort *r)
   31258             : {
   31259           0 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   31260           0 :         if (flags & NDR_IN) {
   31261           0 :                 if (r->in.port_name == NULL) {
   31262           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   31263             :                 }
   31264           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
   31265           0 :                 if (r->in.server_name) {
   31266           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
   31267           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   31268           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
   31269           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   31270             :                 }
   31271           0 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.ptr));
   31272           0 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.port_name, CH_UTF16)));
   31273           0 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   31274           0 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.port_name, CH_UTF16)));
   31275           0 :                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.port_name, ndr_charset_length(r->in.port_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   31276             :         }
   31277           0 :         if (flags & NDR_OUT) {
   31278           0 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   31279             :         }
   31280           0 :         return NDR_ERR_SUCCESS;
   31281             : }
   31282             : 
   31283           0 : static enum ndr_err_code ndr_pull_spoolss_DeletePort(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_DeletePort *r)
   31284             : {
   31285           0 :         uint32_t _ptr_server_name;
   31286           0 :         uint32_t size_server_name_1 = 0;
   31287           0 :         uint32_t length_server_name_1 = 0;
   31288           0 :         uint32_t size_port_name_1 = 0;
   31289           0 :         uint32_t length_port_name_1 = 0;
   31290           0 :         TALLOC_CTX *_mem_save_server_name_0 = NULL;
   31291           0 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   31292           0 :         if (flags & NDR_IN) {
   31293           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
   31294           0 :                 if (_ptr_server_name) {
   31295           0 :                         NDR_PULL_ALLOC(ndr, r->in.server_name);
   31296             :                 } else {
   31297           0 :                         r->in.server_name = NULL;
   31298             :                 }
   31299           0 :                 if (r->in.server_name) {
   31300           0 :                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
   31301           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
   31302           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
   31303           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
   31304           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.server_name, &size_server_name_1));
   31305           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.server_name, &length_server_name_1));
   31306           0 :                         if (length_server_name_1 > size_server_name_1) {
   31307           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_server_name_1, length_server_name_1);
   31308             :                         }
   31309           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_1, sizeof(uint16_t)));
   31310           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, length_server_name_1, sizeof(uint16_t), CH_UTF16));
   31311           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
   31312             :                 }
   31313           0 :                 NDR_CHECK(ndr_pull_uint3264(ndr, NDR_SCALARS, &r->in.ptr));
   31314           0 :                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.port_name));
   31315           0 :                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.port_name));
   31316           0 :                 NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.port_name, &size_port_name_1));
   31317           0 :                 NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.port_name, &length_port_name_1));
   31318           0 :                 if (length_port_name_1 > size_port_name_1) {
   31319           0 :                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_port_name_1, length_port_name_1);
   31320             :                 }
   31321           0 :                 NDR_CHECK(ndr_check_string_terminator(ndr, length_port_name_1, sizeof(uint16_t)));
   31322           0 :                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.port_name, length_port_name_1, sizeof(uint16_t), CH_UTF16));
   31323             :         }
   31324           0 :         if (flags & NDR_OUT) {
   31325             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   31326             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   31327           0 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   31328             :         }
   31329           0 :         return NDR_ERR_SUCCESS;
   31330             : }
   31331             : 
   31332           0 : _PUBLIC_ void ndr_print_spoolss_DeletePort(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_DeletePort *r)
   31333             : {
   31334           0 :         ndr_print_struct(ndr, name, "spoolss_DeletePort");
   31335           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   31336           0 :         ndr->depth++;
   31337           0 :         if (flags & NDR_SET_VALUES) {
   31338           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   31339             :         }
   31340           0 :         if (flags & NDR_IN) {
   31341           0 :                 ndr_print_struct(ndr, "in", "spoolss_DeletePort");
   31342           0 :                 ndr->depth++;
   31343           0 :                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
   31344           0 :                 ndr->depth++;
   31345           0 :                 if (r->in.server_name) {
   31346           0 :                         ndr_print_string(ndr, "server_name", r->in.server_name);
   31347             :                 }
   31348           0 :                 ndr->depth--;
   31349           0 :                 ndr_print_uint3264(ndr, "ptr", r->in.ptr);
   31350           0 :                 ndr_print_ptr(ndr, "port_name", r->in.port_name);
   31351           0 :                 ndr->depth++;
   31352           0 :                 ndr_print_string(ndr, "port_name", r->in.port_name);
   31353           0 :                 ndr->depth--;
   31354           0 :                 ndr->depth--;
   31355             :         }
   31356           0 :         if (flags & NDR_OUT) {
   31357           0 :                 ndr_print_struct(ndr, "out", "spoolss_DeletePort");
   31358           0 :                 ndr->depth++;
   31359           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   31360           0 :                 ndr->depth--;
   31361             :         }
   31362           0 :         ndr->depth--;
   31363             : }
   31364             : 
   31365           0 : static enum ndr_err_code ndr_push_spoolss_CreatePrinterIC(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_CreatePrinterIC *r)
   31366             : {
   31367           0 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   31368           0 :         if (flags & NDR_IN) {
   31369           0 :                 if (r->in.handle == NULL) {
   31370           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   31371             :                 }
   31372           0 :                 if (r->in.devmode_ctr == NULL) {
   31373           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   31374             :                 }
   31375           0 :                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
   31376           0 :                 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
   31377             :         }
   31378           0 :         if (flags & NDR_OUT) {
   31379           0 :                 if (r->out.gdi_handle == NULL) {
   31380           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   31381             :                 }
   31382           0 :                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.gdi_handle));
   31383           0 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   31384             :         }
   31385           0 :         return NDR_ERR_SUCCESS;
   31386             : }
   31387             : 
   31388           0 : static enum ndr_err_code ndr_pull_spoolss_CreatePrinterIC(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_CreatePrinterIC *r)
   31389             : {
   31390           0 :         TALLOC_CTX *_mem_save_handle_0 = NULL;
   31391           0 :         TALLOC_CTX *_mem_save_gdi_handle_0 = NULL;
   31392           0 :         TALLOC_CTX *_mem_save_devmode_ctr_0 = NULL;
   31393           0 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   31394           0 :         if (flags & NDR_IN) {
   31395           0 :                 NDR_ZERO_STRUCT(r->out);
   31396             : 
   31397           0 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   31398           0 :                         NDR_PULL_ALLOC(ndr, r->in.handle);
   31399             :                 }
   31400           0 :                 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
   31401           0 :                 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
   31402           0 :                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
   31403           0 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
   31404           0 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   31405           0 :                         NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
   31406             :                 }
   31407           0 :                 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
   31408           0 :                 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
   31409           0 :                 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
   31410           0 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
   31411           0 :                 NDR_PULL_ALLOC(ndr, r->out.gdi_handle);
   31412           0 :                 NDR_ZERO_STRUCTP(r->out.gdi_handle);
   31413             :         }
   31414           0 :         if (flags & NDR_OUT) {
   31415             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   31416             :                 if (r->in.handle == NULL) {
   31417             :                         NDR_PULL_ALLOC(ndr, r->in.handle);
   31418             :                         NDR_ZERO_STRUCTP(r->in.handle);
   31419             :                 }
   31420             :                 if (r->in.devmode_ctr == NULL) {
   31421             :                         NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
   31422             :                         NDR_ZERO_STRUCTP(r->in.devmode_ctr);
   31423             :                 }
   31424             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   31425           0 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   31426           0 :                         NDR_PULL_ALLOC(ndr, r->out.gdi_handle);
   31427             :                 }
   31428           0 :                 _mem_save_gdi_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
   31429           0 :                 NDR_PULL_SET_MEM_CTX(ndr, r->out.gdi_handle, LIBNDR_FLAG_REF_ALLOC);
   31430           0 :                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.gdi_handle));
   31431           0 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_gdi_handle_0, LIBNDR_FLAG_REF_ALLOC);
   31432           0 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   31433             :         }
   31434           0 :         return NDR_ERR_SUCCESS;
   31435             : }
   31436             : 
   31437           0 : _PUBLIC_ void ndr_print_spoolss_CreatePrinterIC(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_CreatePrinterIC *r)
   31438             : {
   31439           0 :         ndr_print_struct(ndr, name, "spoolss_CreatePrinterIC");
   31440           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   31441           0 :         ndr->depth++;
   31442           0 :         if (flags & NDR_SET_VALUES) {
   31443           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   31444             :         }
   31445           0 :         if (flags & NDR_IN) {
   31446           0 :                 ndr_print_struct(ndr, "in", "spoolss_CreatePrinterIC");
   31447           0 :                 ndr->depth++;
   31448           0 :                 ndr_print_ptr(ndr, "handle", r->in.handle);
   31449           0 :                 ndr->depth++;
   31450           0 :                 ndr_print_policy_handle(ndr, "handle", r->in.handle);
   31451           0 :                 ndr->depth--;
   31452           0 :                 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
   31453           0 :                 ndr->depth++;
   31454           0 :                 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
   31455           0 :                 ndr->depth--;
   31456           0 :                 ndr->depth--;
   31457             :         }
   31458           0 :         if (flags & NDR_OUT) {
   31459           0 :                 ndr_print_struct(ndr, "out", "spoolss_CreatePrinterIC");
   31460           0 :                 ndr->depth++;
   31461           0 :                 ndr_print_ptr(ndr, "gdi_handle", r->out.gdi_handle);
   31462           0 :                 ndr->depth++;
   31463           0 :                 ndr_print_policy_handle(ndr, "gdi_handle", r->out.gdi_handle);
   31464           0 :                 ndr->depth--;
   31465           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   31466           0 :                 ndr->depth--;
   31467             :         }
   31468           0 :         ndr->depth--;
   31469             : }
   31470             : 
   31471           0 : static enum ndr_err_code ndr_push_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_PlayGDIScriptOnPrinterIC *r)
   31472             : {
   31473           0 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   31474           0 :         if (flags & NDR_IN) {
   31475           0 :                 if (r->in.gdi_handle == NULL) {
   31476           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   31477             :                 }
   31478           0 :                 if (r->in.pIn == NULL) {
   31479           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   31480             :                 }
   31481           0 :                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.gdi_handle));
   31482           0 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.cIn));
   31483           0 :                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.pIn, r->in.cIn));
   31484           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.cIn));
   31485           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.cOut));
   31486           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.ul));
   31487             :         }
   31488           0 :         if (flags & NDR_OUT) {
   31489           0 :                 if (r->out.pOut == NULL) {
   31490           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   31491             :                 }
   31492           0 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.cOut));
   31493           0 :                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.pOut, r->in.cOut));
   31494           0 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   31495             :         }
   31496           0 :         return NDR_ERR_SUCCESS;
   31497             : }
   31498             : 
   31499           0 : static enum ndr_err_code ndr_pull_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_PlayGDIScriptOnPrinterIC *r)
   31500             : {
   31501           0 :         uint32_t size_pIn_1 = 0;
   31502           0 :         uint32_t size_pOut_1 = 0;
   31503           0 :         TALLOC_CTX *_mem_save_gdi_handle_0 = NULL;
   31504           0 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   31505           0 :         if (flags & NDR_IN) {
   31506           0 :                 NDR_ZERO_STRUCT(r->out);
   31507             : 
   31508           0 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   31509           0 :                         NDR_PULL_ALLOC(ndr, r->in.gdi_handle);
   31510             :                 }
   31511           0 :                 _mem_save_gdi_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
   31512           0 :                 NDR_PULL_SET_MEM_CTX(ndr, r->in.gdi_handle, LIBNDR_FLAG_REF_ALLOC);
   31513           0 :                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.gdi_handle));
   31514           0 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_gdi_handle_0, LIBNDR_FLAG_REF_ALLOC);
   31515           0 :                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.pIn));
   31516           0 :                 NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->in.pIn, &size_pIn_1));
   31517           0 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   31518           0 :                         NDR_PULL_ALLOC_N(ndr, r->in.pIn, size_pIn_1);
   31519             :                 }
   31520           0 :                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.pIn, size_pIn_1));
   31521           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.cIn));
   31522           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.cOut));
   31523           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.ul));
   31524           0 :                 NDR_PULL_ALLOC_N(ndr, r->out.pOut, r->in.cOut);
   31525           0 :                 memset(r->out.pOut, 0, (r->in.cOut) * sizeof(*r->out.pOut));
   31526           0 :                 if (r->in.pIn) {
   31527           0 :                         NDR_CHECK(ndr_check_steal_array_size(ndr, (void*)&r->in.pIn, r->in.cIn));
   31528             :                 }
   31529             :         }
   31530           0 :         if (flags & NDR_OUT) {
   31531             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   31532             :                 if (r->in.gdi_handle == NULL) {
   31533             :                         NDR_PULL_ALLOC(ndr, r->in.gdi_handle);
   31534             :                         NDR_ZERO_STRUCTP(r->in.gdi_handle);
   31535             :                 }
   31536             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   31537           0 :                 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.pOut));
   31538           0 :                 NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->out.pOut, &size_pOut_1));
   31539           0 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   31540           0 :                         NDR_PULL_ALLOC_N(ndr, r->out.pOut, size_pOut_1);
   31541             :                 }
   31542           0 :                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.pOut, size_pOut_1));
   31543           0 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   31544           0 :                 if (r->out.pOut) {
   31545           0 :                         NDR_CHECK(ndr_check_steal_array_size(ndr, (void*)&r->out.pOut, r->in.cOut));
   31546             :                 }
   31547             :         }
   31548           0 :         return NDR_ERR_SUCCESS;
   31549             : }
   31550             : 
   31551           0 : _PUBLIC_ void ndr_print_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_PlayGDIScriptOnPrinterIC *r)
   31552             : {
   31553           0 :         ndr_print_struct(ndr, name, "spoolss_PlayGDIScriptOnPrinterIC");
   31554           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   31555           0 :         ndr->depth++;
   31556           0 :         if (flags & NDR_SET_VALUES) {
   31557           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   31558             :         }
   31559           0 :         if (flags & NDR_IN) {
   31560           0 :                 ndr_print_struct(ndr, "in", "spoolss_PlayGDIScriptOnPrinterIC");
   31561           0 :                 ndr->depth++;
   31562           0 :                 ndr_print_ptr(ndr, "gdi_handle", r->in.gdi_handle);
   31563           0 :                 ndr->depth++;
   31564           0 :                 ndr_print_policy_handle(ndr, "gdi_handle", r->in.gdi_handle);
   31565           0 :                 ndr->depth--;
   31566           0 :                 ndr_print_ptr(ndr, "pIn", r->in.pIn);
   31567           0 :                 ndr->depth++;
   31568           0 :                 ndr_print_array_uint8(ndr, "pIn", r->in.pIn, r->in.cIn);
   31569           0 :                 ndr->depth--;
   31570           0 :                 ndr_print_uint32(ndr, "cIn", r->in.cIn);
   31571           0 :                 ndr_print_uint32(ndr, "cOut", r->in.cOut);
   31572           0 :                 ndr_print_uint32(ndr, "ul", r->in.ul);
   31573           0 :                 ndr->depth--;
   31574             :         }
   31575           0 :         if (flags & NDR_OUT) {
   31576           0 :                 ndr_print_struct(ndr, "out", "spoolss_PlayGDIScriptOnPrinterIC");
   31577           0 :                 ndr->depth++;
   31578           0 :                 ndr_print_ptr(ndr, "pOut", r->out.pOut);
   31579           0 :                 ndr->depth++;
   31580           0 :                 ndr_print_array_uint8(ndr, "pOut", r->out.pOut, r->in.cOut);
   31581           0 :                 ndr->depth--;
   31582           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   31583           0 :                 ndr->depth--;
   31584             :         }
   31585           0 :         ndr->depth--;
   31586             : }
   31587             : 
   31588           0 : static enum ndr_err_code ndr_push_spoolss_DeletePrinterIC(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_DeletePrinterIC *r)
   31589             : {
   31590           0 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   31591           0 :         if (flags & NDR_IN) {
   31592           0 :                 if (r->in.gdi_handle == NULL) {
   31593           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   31594             :                 }
   31595           0 :                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.gdi_handle));
   31596             :         }
   31597           0 :         if (flags & NDR_OUT) {
   31598           0 :                 if (r->out.gdi_handle == NULL) {
   31599           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   31600             :                 }
   31601           0 :                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.gdi_handle));
   31602           0 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   31603             :         }
   31604           0 :         return NDR_ERR_SUCCESS;
   31605             : }
   31606             : 
   31607           0 : static enum ndr_err_code ndr_pull_spoolss_DeletePrinterIC(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_DeletePrinterIC *r)
   31608             : {
   31609           0 :         TALLOC_CTX *_mem_save_gdi_handle_0 = NULL;
   31610           0 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   31611           0 :         if (flags & NDR_IN) {
   31612           0 :                 NDR_ZERO_STRUCT(r->out);
   31613             : 
   31614           0 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   31615           0 :                         NDR_PULL_ALLOC(ndr, r->in.gdi_handle);
   31616             :                 }
   31617           0 :                 _mem_save_gdi_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
   31618           0 :                 NDR_PULL_SET_MEM_CTX(ndr, r->in.gdi_handle, LIBNDR_FLAG_REF_ALLOC);
   31619           0 :                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.gdi_handle));
   31620           0 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_gdi_handle_0, LIBNDR_FLAG_REF_ALLOC);
   31621           0 :                 NDR_PULL_ALLOC(ndr, r->out.gdi_handle);
   31622           0 :                 *r->out.gdi_handle = *r->in.gdi_handle;
   31623             :         }
   31624           0 :         if (flags & NDR_OUT) {
   31625             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   31626             :                 if (r->in.gdi_handle == NULL) {
   31627             :                         NDR_PULL_ALLOC(ndr, r->in.gdi_handle);
   31628             :                         NDR_ZERO_STRUCTP(r->in.gdi_handle);
   31629             :                 }
   31630             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   31631           0 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   31632           0 :                         NDR_PULL_ALLOC(ndr, r->out.gdi_handle);
   31633             :                 }
   31634           0 :                 _mem_save_gdi_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
   31635           0 :                 NDR_PULL_SET_MEM_CTX(ndr, r->out.gdi_handle, LIBNDR_FLAG_REF_ALLOC);
   31636           0 :                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.gdi_handle));
   31637           0 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_gdi_handle_0, LIBNDR_FLAG_REF_ALLOC);
   31638           0 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   31639             :         }
   31640           0 :         return NDR_ERR_SUCCESS;
   31641             : }
   31642             : 
   31643           0 : _PUBLIC_ void ndr_print_spoolss_DeletePrinterIC(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_DeletePrinterIC *r)
   31644             : {
   31645           0 :         ndr_print_struct(ndr, name, "spoolss_DeletePrinterIC");
   31646           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   31647           0 :         ndr->depth++;
   31648           0 :         if (flags & NDR_SET_VALUES) {
   31649           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   31650             :         }
   31651           0 :         if (flags & NDR_IN) {
   31652           0 :                 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterIC");
   31653           0 :                 ndr->depth++;
   31654           0 :                 ndr_print_ptr(ndr, "gdi_handle", r->in.gdi_handle);
   31655           0 :                 ndr->depth++;
   31656           0 :                 ndr_print_policy_handle(ndr, "gdi_handle", r->in.gdi_handle);
   31657           0 :                 ndr->depth--;
   31658           0 :                 ndr->depth--;
   31659             :         }
   31660           0 :         if (flags & NDR_OUT) {
   31661           0 :                 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterIC");
   31662           0 :                 ndr->depth++;
   31663           0 :                 ndr_print_ptr(ndr, "gdi_handle", r->out.gdi_handle);
   31664           0 :                 ndr->depth++;
   31665           0 :                 ndr_print_policy_handle(ndr, "gdi_handle", r->out.gdi_handle);
   31666           0 :                 ndr->depth--;
   31667           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   31668           0 :                 ndr->depth--;
   31669             :         }
   31670           0 :         ndr->depth--;
   31671             : }
   31672             : 
   31673           0 : static enum ndr_err_code ndr_push_spoolss_AddPrinterConnection(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_AddPrinterConnection *r)
   31674             : {
   31675           0 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   31676           0 :         if (flags & NDR_IN) {
   31677           0 :         }
   31678           0 :         if (flags & NDR_OUT) {
   31679           0 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   31680             :         }
   31681           0 :         return NDR_ERR_SUCCESS;
   31682             : }
   31683             : 
   31684           0 : static enum ndr_err_code ndr_pull_spoolss_AddPrinterConnection(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_AddPrinterConnection *r)
   31685             : {
   31686           0 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   31687           0 :         if (flags & NDR_IN) {
   31688           0 :         }
   31689           0 :         if (flags & NDR_OUT) {
   31690             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   31691             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   31692           0 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   31693             :         }
   31694           0 :         return NDR_ERR_SUCCESS;
   31695             : }
   31696             : 
   31697           0 : _PUBLIC_ void ndr_print_spoolss_AddPrinterConnection(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_AddPrinterConnection *r)
   31698             : {
   31699           0 :         ndr_print_struct(ndr, name, "spoolss_AddPrinterConnection");
   31700           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   31701           0 :         ndr->depth++;
   31702           0 :         if (flags & NDR_SET_VALUES) {
   31703           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   31704             :         }
   31705           0 :         if (flags & NDR_IN) {
   31706           0 :                 ndr_print_struct(ndr, "in", "spoolss_AddPrinterConnection");
   31707           0 :                 ndr->depth++;
   31708           0 :                 ndr->depth--;
   31709             :         }
   31710           0 :         if (flags & NDR_OUT) {
   31711           0 :                 ndr_print_struct(ndr, "out", "spoolss_AddPrinterConnection");
   31712           0 :                 ndr->depth++;
   31713           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   31714           0 :                 ndr->depth--;
   31715             :         }
   31716           0 :         ndr->depth--;
   31717             : }
   31718             : 
   31719           0 : static enum ndr_err_code ndr_push_spoolss_DeletePrinterConnection(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_DeletePrinterConnection *r)
   31720             : {
   31721           0 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   31722           0 :         if (flags & NDR_IN) {
   31723           0 :         }
   31724           0 :         if (flags & NDR_OUT) {
   31725           0 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   31726             :         }
   31727           0 :         return NDR_ERR_SUCCESS;
   31728             : }
   31729             : 
   31730           0 : static enum ndr_err_code ndr_pull_spoolss_DeletePrinterConnection(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_DeletePrinterConnection *r)
   31731             : {
   31732           0 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   31733           0 :         if (flags & NDR_IN) {
   31734           0 :         }
   31735           0 :         if (flags & NDR_OUT) {
   31736             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   31737             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   31738           0 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   31739             :         }
   31740           0 :         return NDR_ERR_SUCCESS;
   31741             : }
   31742             : 
   31743           0 : _PUBLIC_ void ndr_print_spoolss_DeletePrinterConnection(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_DeletePrinterConnection *r)
   31744             : {
   31745           0 :         ndr_print_struct(ndr, name, "spoolss_DeletePrinterConnection");
   31746           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   31747           0 :         ndr->depth++;
   31748           0 :         if (flags & NDR_SET_VALUES) {
   31749           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   31750             :         }
   31751           0 :         if (flags & NDR_IN) {
   31752           0 :                 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterConnection");
   31753           0 :                 ndr->depth++;
   31754           0 :                 ndr->depth--;
   31755             :         }
   31756           0 :         if (flags & NDR_OUT) {
   31757           0 :                 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterConnection");
   31758           0 :                 ndr->depth++;
   31759           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   31760           0 :                 ndr->depth--;
   31761             :         }
   31762           0 :         ndr->depth--;
   31763             : }
   31764             : 
   31765           0 : static enum ndr_err_code ndr_push_spoolss_PrinterMessageBox(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_PrinterMessageBox *r)
   31766             : {
   31767           0 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   31768           0 :         if (flags & NDR_IN) {
   31769           0 :         }
   31770           0 :         if (flags & NDR_OUT) {
   31771           0 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   31772             :         }
   31773           0 :         return NDR_ERR_SUCCESS;
   31774             : }
   31775             : 
   31776           0 : static enum ndr_err_code ndr_pull_spoolss_PrinterMessageBox(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_PrinterMessageBox *r)
   31777             : {
   31778           0 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   31779           0 :         if (flags & NDR_IN) {
   31780           0 :         }
   31781           0 :         if (flags & NDR_OUT) {
   31782             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   31783             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   31784           0 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   31785             :         }
   31786           0 :         return NDR_ERR_SUCCESS;
   31787             : }
   31788             : 
   31789           0 : _PUBLIC_ void ndr_print_spoolss_PrinterMessageBox(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_PrinterMessageBox *r)
   31790             : {
   31791           0 :         ndr_print_struct(ndr, name, "spoolss_PrinterMessageBox");
   31792           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   31793           0 :         ndr->depth++;
   31794           0 :         if (flags & NDR_SET_VALUES) {
   31795           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   31796             :         }
   31797           0 :         if (flags & NDR_IN) {
   31798           0 :                 ndr_print_struct(ndr, "in", "spoolss_PrinterMessageBox");
   31799           0 :                 ndr->depth++;
   31800           0 :                 ndr->depth--;
   31801             :         }
   31802           0 :         if (flags & NDR_OUT) {
   31803           0 :                 ndr_print_struct(ndr, "out", "spoolss_PrinterMessageBox");
   31804           0 :                 ndr->depth++;
   31805           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   31806           0 :                 ndr->depth--;
   31807             :         }
   31808           0 :         ndr->depth--;
   31809             : }
   31810             : 
   31811           0 : static enum ndr_err_code ndr_push_spoolss_AddMonitor(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_AddMonitor *r)
   31812             : {
   31813           0 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   31814           0 :         if (flags & NDR_IN) {
   31815           0 :         }
   31816           0 :         if (flags & NDR_OUT) {
   31817           0 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   31818             :         }
   31819           0 :         return NDR_ERR_SUCCESS;
   31820             : }
   31821             : 
   31822           0 : static enum ndr_err_code ndr_pull_spoolss_AddMonitor(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_AddMonitor *r)
   31823             : {
   31824           0 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   31825           0 :         if (flags & NDR_IN) {
   31826           0 :         }
   31827           0 :         if (flags & NDR_OUT) {
   31828             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   31829             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   31830           0 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   31831             :         }
   31832           0 :         return NDR_ERR_SUCCESS;
   31833             : }
   31834             : 
   31835           0 : _PUBLIC_ void ndr_print_spoolss_AddMonitor(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_AddMonitor *r)
   31836             : {
   31837           0 :         ndr_print_struct(ndr, name, "spoolss_AddMonitor");
   31838           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   31839           0 :         ndr->depth++;
   31840           0 :         if (flags & NDR_SET_VALUES) {
   31841           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   31842             :         }
   31843           0 :         if (flags & NDR_IN) {
   31844           0 :                 ndr_print_struct(ndr, "in", "spoolss_AddMonitor");
   31845           0 :                 ndr->depth++;
   31846           0 :                 ndr->depth--;
   31847             :         }
   31848           0 :         if (flags & NDR_OUT) {
   31849           0 :                 ndr_print_struct(ndr, "out", "spoolss_AddMonitor");
   31850           0 :                 ndr->depth++;
   31851           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   31852           0 :                 ndr->depth--;
   31853             :         }
   31854           0 :         ndr->depth--;
   31855             : }
   31856             : 
   31857           0 : static enum ndr_err_code ndr_push_spoolss_DeleteMonitor(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_DeleteMonitor *r)
   31858             : {
   31859           0 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   31860           0 :         if (flags & NDR_IN) {
   31861           0 :         }
   31862           0 :         if (flags & NDR_OUT) {
   31863           0 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   31864             :         }
   31865           0 :         return NDR_ERR_SUCCESS;
   31866             : }
   31867             : 
   31868           0 : static enum ndr_err_code ndr_pull_spoolss_DeleteMonitor(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_DeleteMonitor *r)
   31869             : {
   31870           0 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   31871           0 :         if (flags & NDR_IN) {
   31872           0 :         }
   31873           0 :         if (flags & NDR_OUT) {
   31874             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   31875             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   31876           0 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   31877             :         }
   31878           0 :         return NDR_ERR_SUCCESS;
   31879             : }
   31880             : 
   31881           0 : _PUBLIC_ void ndr_print_spoolss_DeleteMonitor(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_DeleteMonitor *r)
   31882             : {
   31883           0 :         ndr_print_struct(ndr, name, "spoolss_DeleteMonitor");
   31884           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   31885           0 :         ndr->depth++;
   31886           0 :         if (flags & NDR_SET_VALUES) {
   31887           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   31888             :         }
   31889           0 :         if (flags & NDR_IN) {
   31890           0 :                 ndr_print_struct(ndr, "in", "spoolss_DeleteMonitor");
   31891           0 :                 ndr->depth++;
   31892           0 :                 ndr->depth--;
   31893             :         }
   31894           0 :         if (flags & NDR_OUT) {
   31895           0 :                 ndr_print_struct(ndr, "out", "spoolss_DeleteMonitor");
   31896           0 :                 ndr->depth++;
   31897           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   31898           0 :                 ndr->depth--;
   31899             :         }
   31900           0 :         ndr->depth--;
   31901             : }
   31902             : 
   31903           0 : static enum ndr_err_code ndr_push_spoolss_DeletePrintProcessor(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_DeletePrintProcessor *r)
   31904             : {
   31905           0 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   31906           0 :         if (flags & NDR_IN) {
   31907           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
   31908           0 :                 if (r->in.server) {
   31909           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
   31910           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   31911           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
   31912           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   31913             :                 }
   31914           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.architecture));
   31915           0 :                 if (r->in.architecture) {
   31916           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
   31917           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   31918           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
   31919           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   31920             :                 }
   31921           0 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
   31922           0 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   31923           0 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
   31924           0 :                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.print_processor_name, ndr_charset_length(r->in.print_processor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   31925             :         }
   31926           0 :         if (flags & NDR_OUT) {
   31927           0 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   31928             :         }
   31929           0 :         return NDR_ERR_SUCCESS;
   31930             : }
   31931             : 
   31932           0 : static enum ndr_err_code ndr_pull_spoolss_DeletePrintProcessor(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_DeletePrintProcessor *r)
   31933             : {
   31934           0 :         uint32_t _ptr_server;
   31935           0 :         uint32_t size_server_1 = 0;
   31936           0 :         uint32_t length_server_1 = 0;
   31937           0 :         uint32_t _ptr_architecture;
   31938           0 :         uint32_t size_architecture_1 = 0;
   31939           0 :         uint32_t length_architecture_1 = 0;
   31940           0 :         uint32_t size_print_processor_name_0 = 0;
   31941           0 :         uint32_t length_print_processor_name_0 = 0;
   31942           0 :         TALLOC_CTX *_mem_save_server_0 = NULL;
   31943           0 :         TALLOC_CTX *_mem_save_architecture_0 = NULL;
   31944           0 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   31945           0 :         if (flags & NDR_IN) {
   31946           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
   31947           0 :                 if (_ptr_server) {
   31948           0 :                         NDR_PULL_ALLOC(ndr, r->in.server);
   31949             :                 } else {
   31950           0 :                         r->in.server = NULL;
   31951             :                 }
   31952           0 :                 if (r->in.server) {
   31953           0 :                         _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
   31954           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
   31955           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
   31956           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
   31957           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.server, &size_server_1));
   31958           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.server, &length_server_1));
   31959           0 :                         if (length_server_1 > size_server_1) {
   31960           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_server_1, length_server_1);
   31961             :                         }
   31962           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_server_1, sizeof(uint16_t)));
   31963           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, length_server_1, sizeof(uint16_t), CH_UTF16));
   31964           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
   31965             :                 }
   31966           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
   31967           0 :                 if (_ptr_architecture) {
   31968           0 :                         NDR_PULL_ALLOC(ndr, r->in.architecture);
   31969             :                 } else {
   31970           0 :                         r->in.architecture = NULL;
   31971             :                 }
   31972           0 :                 if (r->in.architecture) {
   31973           0 :                         _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
   31974           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->in.architecture, 0);
   31975           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
   31976           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
   31977           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.architecture, &size_architecture_1));
   31978           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.architecture, &length_architecture_1));
   31979           0 :                         if (length_architecture_1 > size_architecture_1) {
   31980           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_architecture_1, length_architecture_1);
   31981             :                         }
   31982           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_architecture_1, sizeof(uint16_t)));
   31983           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, length_architecture_1, sizeof(uint16_t), CH_UTF16));
   31984           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
   31985             :                 }
   31986           0 :                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.print_processor_name));
   31987           0 :                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.print_processor_name));
   31988           0 :                 NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.print_processor_name, &size_print_processor_name_0));
   31989           0 :                 NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.print_processor_name, &length_print_processor_name_0));
   31990           0 :                 if (length_print_processor_name_0 > size_print_processor_name_0) {
   31991           0 :                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_print_processor_name_0, length_print_processor_name_0);
   31992             :                 }
   31993           0 :                 NDR_CHECK(ndr_check_string_terminator(ndr, length_print_processor_name_0, sizeof(uint16_t)));
   31994           0 :                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.print_processor_name, length_print_processor_name_0, sizeof(uint16_t), CH_UTF16));
   31995             :         }
   31996           0 :         if (flags & NDR_OUT) {
   31997             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   31998             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   31999           0 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   32000             :         }
   32001           0 :         return NDR_ERR_SUCCESS;
   32002             : }
   32003             : 
   32004           0 : _PUBLIC_ void ndr_print_spoolss_DeletePrintProcessor(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_DeletePrintProcessor *r)
   32005             : {
   32006           0 :         ndr_print_struct(ndr, name, "spoolss_DeletePrintProcessor");
   32007           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   32008           0 :         ndr->depth++;
   32009           0 :         if (flags & NDR_SET_VALUES) {
   32010           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   32011             :         }
   32012           0 :         if (flags & NDR_IN) {
   32013           0 :                 ndr_print_struct(ndr, "in", "spoolss_DeletePrintProcessor");
   32014           0 :                 ndr->depth++;
   32015           0 :                 ndr_print_ptr(ndr, "server", r->in.server);
   32016           0 :                 ndr->depth++;
   32017           0 :                 if (r->in.server) {
   32018           0 :                         ndr_print_string(ndr, "server", r->in.server);
   32019             :                 }
   32020           0 :                 ndr->depth--;
   32021           0 :                 ndr_print_ptr(ndr, "architecture", r->in.architecture);
   32022           0 :                 ndr->depth++;
   32023           0 :                 if (r->in.architecture) {
   32024           0 :                         ndr_print_string(ndr, "architecture", r->in.architecture);
   32025             :                 }
   32026           0 :                 ndr->depth--;
   32027           0 :                 ndr_print_string(ndr, "print_processor_name", r->in.print_processor_name);
   32028           0 :                 ndr->depth--;
   32029             :         }
   32030           0 :         if (flags & NDR_OUT) {
   32031           0 :                 ndr_print_struct(ndr, "out", "spoolss_DeletePrintProcessor");
   32032           0 :                 ndr->depth++;
   32033           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   32034           0 :                 ndr->depth--;
   32035             :         }
   32036           0 :         ndr->depth--;
   32037             : }
   32038             : 
   32039           0 : static enum ndr_err_code ndr_push_spoolss_AddPrintProvidor(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_AddPrintProvidor *r)
   32040             : {
   32041           0 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   32042           0 :         if (flags & NDR_IN) {
   32043           0 :         }
   32044           0 :         if (flags & NDR_OUT) {
   32045           0 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   32046             :         }
   32047           0 :         return NDR_ERR_SUCCESS;
   32048             : }
   32049             : 
   32050           0 : static enum ndr_err_code ndr_pull_spoolss_AddPrintProvidor(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_AddPrintProvidor *r)
   32051             : {
   32052           0 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   32053           0 :         if (flags & NDR_IN) {
   32054           0 :         }
   32055           0 :         if (flags & NDR_OUT) {
   32056             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   32057             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   32058           0 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   32059             :         }
   32060           0 :         return NDR_ERR_SUCCESS;
   32061             : }
   32062             : 
   32063           0 : _PUBLIC_ void ndr_print_spoolss_AddPrintProvidor(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_AddPrintProvidor *r)
   32064             : {
   32065           0 :         ndr_print_struct(ndr, name, "spoolss_AddPrintProvidor");
   32066           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   32067           0 :         ndr->depth++;
   32068           0 :         if (flags & NDR_SET_VALUES) {
   32069           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   32070             :         }
   32071           0 :         if (flags & NDR_IN) {
   32072           0 :                 ndr_print_struct(ndr, "in", "spoolss_AddPrintProvidor");
   32073           0 :                 ndr->depth++;
   32074           0 :                 ndr->depth--;
   32075             :         }
   32076           0 :         if (flags & NDR_OUT) {
   32077           0 :                 ndr_print_struct(ndr, "out", "spoolss_AddPrintProvidor");
   32078           0 :                 ndr->depth++;
   32079           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   32080           0 :                 ndr->depth--;
   32081             :         }
   32082           0 :         ndr->depth--;
   32083             : }
   32084             : 
   32085           0 : static enum ndr_err_code ndr_push_spoolss_DeletePrintProvidor(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_DeletePrintProvidor *r)
   32086             : {
   32087           0 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   32088           0 :         if (flags & NDR_IN) {
   32089           0 :         }
   32090           0 :         if (flags & NDR_OUT) {
   32091           0 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   32092             :         }
   32093           0 :         return NDR_ERR_SUCCESS;
   32094             : }
   32095             : 
   32096           0 : static enum ndr_err_code ndr_pull_spoolss_DeletePrintProvidor(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_DeletePrintProvidor *r)
   32097             : {
   32098           0 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   32099           0 :         if (flags & NDR_IN) {
   32100           0 :         }
   32101           0 :         if (flags & NDR_OUT) {
   32102             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   32103             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   32104           0 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   32105             :         }
   32106           0 :         return NDR_ERR_SUCCESS;
   32107             : }
   32108             : 
   32109           0 : _PUBLIC_ void ndr_print_spoolss_DeletePrintProvidor(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_DeletePrintProvidor *r)
   32110             : {
   32111           0 :         ndr_print_struct(ndr, name, "spoolss_DeletePrintProvidor");
   32112           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   32113           0 :         ndr->depth++;
   32114           0 :         if (flags & NDR_SET_VALUES) {
   32115           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   32116             :         }
   32117           0 :         if (flags & NDR_IN) {
   32118           0 :                 ndr_print_struct(ndr, "in", "spoolss_DeletePrintProvidor");
   32119           0 :                 ndr->depth++;
   32120           0 :                 ndr->depth--;
   32121             :         }
   32122           0 :         if (flags & NDR_OUT) {
   32123           0 :                 ndr_print_struct(ndr, "out", "spoolss_DeletePrintProvidor");
   32124           0 :                 ndr->depth++;
   32125           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   32126           0 :                 ndr->depth--;
   32127             :         }
   32128           0 :         ndr->depth--;
   32129             : }
   32130             : 
   32131          88 : _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrintProcessorDataTypes(struct ndr_push *ndr, ndr_flags_type flags, const struct _spoolss_EnumPrintProcessorDataTypes *r)
   32132             : {
   32133          88 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   32134          88 :         if (flags & NDR_IN) {
   32135          44 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
   32136          44 :                 if (r->in.servername) {
   32137          44 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
   32138          44 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   32139          44 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
   32140          44 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   32141             :                 }
   32142          44 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.print_processor_name));
   32143          44 :                 if (r->in.print_processor_name) {
   32144          40 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
   32145          40 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   32146          40 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
   32147          40 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.print_processor_name, ndr_charset_length(r->in.print_processor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   32148             :                 }
   32149          44 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
   32150          44 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
   32151          44 :                 if (r->in.buffer) {
   32152           8 :                         NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
   32153             :                 }
   32154          44 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
   32155             :         }
   32156          88 :         if (flags & NDR_OUT) {
   32157          44 :                 if (r->out.needed == NULL) {
   32158           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   32159             :                 }
   32160          44 :                 if (r->out.count == NULL) {
   32161           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   32162             :                 }
   32163          44 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
   32164          44 :                 if (r->out.info) {
   32165           8 :                         NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
   32166             :                 }
   32167          44 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
   32168          44 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
   32169          44 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   32170             :         }
   32171          88 :         return NDR_ERR_SUCCESS;
   32172             : }
   32173             : 
   32174          88 : _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrintProcessorDataTypes(struct ndr_pull *ndr, ndr_flags_type flags, struct _spoolss_EnumPrintProcessorDataTypes *r)
   32175             : {
   32176           0 :         uint32_t _ptr_servername;
   32177          88 :         uint32_t size_servername_1 = 0;
   32178          88 :         uint32_t length_servername_1 = 0;
   32179           0 :         uint32_t _ptr_print_processor_name;
   32180          88 :         uint32_t size_print_processor_name_1 = 0;
   32181          88 :         uint32_t length_print_processor_name_1 = 0;
   32182           0 :         uint32_t _ptr_buffer;
   32183           0 :         uint32_t _ptr_info;
   32184          88 :         TALLOC_CTX *_mem_save_servername_0 = NULL;
   32185          88 :         TALLOC_CTX *_mem_save_print_processor_name_0 = NULL;
   32186          88 :         TALLOC_CTX *_mem_save_buffer_0 = NULL;
   32187          88 :         TALLOC_CTX *_mem_save_info_0 = NULL;
   32188          88 :         TALLOC_CTX *_mem_save_needed_0 = NULL;
   32189          88 :         TALLOC_CTX *_mem_save_count_0 = NULL;
   32190          88 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   32191          88 :         if (flags & NDR_IN) {
   32192          44 :                 NDR_ZERO_STRUCT(r->out);
   32193             : 
   32194          44 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
   32195          44 :                 if (_ptr_servername) {
   32196          44 :                         NDR_PULL_ALLOC(ndr, r->in.servername);
   32197             :                 } else {
   32198           0 :                         r->in.servername = NULL;
   32199             :                 }
   32200          44 :                 if (r->in.servername) {
   32201          44 :                         _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
   32202          44 :                         NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
   32203          44 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
   32204          44 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
   32205          44 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.servername, &size_servername_1));
   32206          44 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.servername, &length_servername_1));
   32207          44 :                         if (length_servername_1 > size_servername_1) {
   32208           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_servername_1, length_servername_1);
   32209             :                         }
   32210          44 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_servername_1, sizeof(uint16_t)));
   32211          44 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, length_servername_1, sizeof(uint16_t), CH_UTF16));
   32212          44 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
   32213             :                 }
   32214          44 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor_name));
   32215          44 :                 if (_ptr_print_processor_name) {
   32216          40 :                         NDR_PULL_ALLOC(ndr, r->in.print_processor_name);
   32217             :                 } else {
   32218           4 :                         r->in.print_processor_name = NULL;
   32219             :                 }
   32220          44 :                 if (r->in.print_processor_name) {
   32221          40 :                         _mem_save_print_processor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
   32222          40 :                         NDR_PULL_SET_MEM_CTX(ndr, r->in.print_processor_name, 0);
   32223          40 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.print_processor_name));
   32224          40 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.print_processor_name));
   32225          40 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.print_processor_name, &size_print_processor_name_1));
   32226          40 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.print_processor_name, &length_print_processor_name_1));
   32227          40 :                         if (length_print_processor_name_1 > size_print_processor_name_1) {
   32228           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_print_processor_name_1, length_print_processor_name_1);
   32229             :                         }
   32230          40 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_print_processor_name_1, sizeof(uint16_t)));
   32231          40 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.print_processor_name, length_print_processor_name_1, sizeof(uint16_t), CH_UTF16));
   32232          40 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_name_0, 0);
   32233             :                 }
   32234          44 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
   32235          44 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
   32236          44 :                 if (_ptr_buffer) {
   32237           8 :                         NDR_PULL_ALLOC(ndr, r->in.buffer);
   32238             :                 } else {
   32239          36 :                         r->in.buffer = NULL;
   32240             :                 }
   32241          44 :                 if (r->in.buffer) {
   32242           8 :                         _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
   32243           8 :                         NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
   32244           8 :                         NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
   32245           8 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
   32246             :                 }
   32247          44 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
   32248          44 :                 NDR_PULL_ALLOC(ndr, r->out.needed);
   32249          44 :                 NDR_ZERO_STRUCTP(r->out.needed);
   32250          44 :                 NDR_PULL_ALLOC(ndr, r->out.count);
   32251          44 :                 NDR_ZERO_STRUCTP(r->out.count);
   32252             :         }
   32253          88 :         if (flags & NDR_OUT) {
   32254             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   32255             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   32256          44 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
   32257          44 :                 if (_ptr_info) {
   32258           8 :                         NDR_PULL_ALLOC(ndr, r->out.info);
   32259             :                 } else {
   32260          36 :                         r->out.info = NULL;
   32261             :                 }
   32262          44 :                 if (r->out.info) {
   32263           8 :                         _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
   32264           8 :                         NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
   32265           8 :                         NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
   32266           8 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
   32267             :                 }
   32268          44 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   32269           0 :                         NDR_PULL_ALLOC(ndr, r->out.needed);
   32270             :                 }
   32271          44 :                 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
   32272          44 :                 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
   32273          44 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
   32274          44 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
   32275          44 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   32276           0 :                         NDR_PULL_ALLOC(ndr, r->out.count);
   32277             :                 }
   32278          44 :                 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
   32279          44 :                 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
   32280          44 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
   32281          44 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
   32282          44 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   32283             :         }
   32284          88 :         return NDR_ERR_SUCCESS;
   32285             : }
   32286             : 
   32287          24 : _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrintProcessorDataTypes(struct ndr_push *ndr, ndr_flags_type flags, const struct __spoolss_EnumPrintProcessorDataTypes *r)
   32288             : {
   32289           0 :         uint32_t cntr_info_0;
   32290          24 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   32291          24 :         if (flags & NDR_IN) {
   32292           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
   32293           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
   32294             :         }
   32295          24 :         if (flags & NDR_OUT) {
   32296          48 :                 for (cntr_info_0 = 0; cntr_info_0 < (r->in.count); cntr_info_0++) {
   32297          24 :                         NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
   32298          24 :                         NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
   32299             :                 }
   32300          48 :                 for (cntr_info_0 = 0; cntr_info_0 < (r->in.count); cntr_info_0++) {
   32301          24 :                         NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
   32302          24 :                         NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
   32303             :                 }
   32304             :         }
   32305          24 :         return NDR_ERR_SUCCESS;
   32306             : }
   32307             : 
   32308           8 : _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrintProcessorDataTypes(struct ndr_pull *ndr, ndr_flags_type flags, struct __spoolss_EnumPrintProcessorDataTypes *r)
   32309             : {
   32310           8 :         uint32_t size_info_0 = 0;
   32311           0 :         uint32_t cntr_info_0;
   32312           8 :         TALLOC_CTX *_mem_save_info_0 = NULL;
   32313           8 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   32314           8 :         if (flags & NDR_IN) {
   32315           0 :                 NDR_ZERO_STRUCT(r->out);
   32316             : 
   32317           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
   32318           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
   32319             :         }
   32320           8 :         if (flags & NDR_OUT) {
   32321             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   32322             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   32323           8 :                 size_info_0 = r->in.count;
   32324           8 :                 NDR_PULL_ALLOC_N(ndr, r->out.info, size_info_0);
   32325           8 :                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
   32326           8 :                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
   32327          16 :                 for (cntr_info_0 = 0; cntr_info_0 < (size_info_0); cntr_info_0++) {
   32328           8 :                         NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
   32329           8 :                         NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
   32330             :                 }
   32331          16 :                 for (cntr_info_0 = 0; cntr_info_0 < (size_info_0); cntr_info_0++) {
   32332           8 :                         NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
   32333           8 :                         NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
   32334             :                 }
   32335           8 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
   32336          16 :                 for (cntr_info_0 = 0; cntr_info_0 < (size_info_0); cntr_info_0++) {
   32337             :                 }
   32338             :         }
   32339           8 :         return NDR_ERR_SUCCESS;
   32340             : }
   32341             : 
   32342           0 : _PUBLIC_ void ndr_print_spoolss_EnumPrintProcessorDataTypes(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_EnumPrintProcessorDataTypes *r)
   32343             : {
   32344           0 :         uint32_t cntr_info_2;
   32345           0 :         ndr_print_struct(ndr, name, "spoolss_EnumPrintProcessorDataTypes");
   32346           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   32347           0 :         ndr->depth++;
   32348           0 :         if (flags & NDR_SET_VALUES) {
   32349           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   32350             :         }
   32351           0 :         if (flags & NDR_IN) {
   32352           0 :                 ndr_print_struct(ndr, "in", "spoolss_EnumPrintProcessorDataTypes");
   32353           0 :                 ndr->depth++;
   32354           0 :                 ndr_print_ptr(ndr, "servername", r->in.servername);
   32355           0 :                 ndr->depth++;
   32356           0 :                 if (r->in.servername) {
   32357           0 :                         ndr_print_string(ndr, "servername", r->in.servername);
   32358             :                 }
   32359           0 :                 ndr->depth--;
   32360           0 :                 ndr_print_ptr(ndr, "print_processor_name", r->in.print_processor_name);
   32361           0 :                 ndr->depth++;
   32362           0 :                 if (r->in.print_processor_name) {
   32363           0 :                         ndr_print_string(ndr, "print_processor_name", r->in.print_processor_name);
   32364             :                 }
   32365           0 :                 ndr->depth--;
   32366           0 :                 ndr_print_uint32(ndr, "level", r->in.level);
   32367           0 :                 ndr_print_ptr(ndr, "buffer", r->in.buffer);
   32368           0 :                 ndr->depth++;
   32369           0 :                 if (r->in.buffer) {
   32370           0 :                         ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
   32371             :                 }
   32372           0 :                 ndr->depth--;
   32373           0 :                 ndr_print_uint32(ndr, "offered", r->in.offered);
   32374           0 :                 ndr->depth--;
   32375             :         }
   32376           0 :         if (flags & NDR_OUT) {
   32377           0 :                 ndr_print_struct(ndr, "out", "spoolss_EnumPrintProcessorDataTypes");
   32378           0 :                 ndr->depth++;
   32379           0 :                 ndr_print_ptr(ndr, "count", r->out.count);
   32380           0 :                 ndr->depth++;
   32381           0 :                 ndr_print_uint32(ndr, "count", *r->out.count);
   32382           0 :                 ndr->depth--;
   32383           0 :                 ndr_print_ptr(ndr, "info", r->out.info);
   32384           0 :                 ndr->depth++;
   32385           0 :                 ndr_print_ptr(ndr, "info", *r->out.info);
   32386           0 :                 ndr->depth++;
   32387           0 :                 if (*r->out.info) {
   32388           0 :                         ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "info", (uint32_t)(*r->out.count));
   32389           0 :                         ndr->depth++;
   32390           0 :                         for (cntr_info_2 = 0; cntr_info_2 < (*r->out.count); cntr_info_2++) {
   32391           0 :                                 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
   32392           0 :                                 ndr_print_spoolss_PrintProcDataTypesInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
   32393             :                         }
   32394           0 :                         ndr->depth--;
   32395             :                 }
   32396           0 :                 ndr->depth--;
   32397           0 :                 ndr->depth--;
   32398           0 :                 ndr_print_ptr(ndr, "needed", r->out.needed);
   32399           0 :                 ndr->depth++;
   32400           0 :                 ndr_print_uint32(ndr, "needed", *r->out.needed);
   32401           0 :                 ndr->depth--;
   32402           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   32403           0 :                 ndr->depth--;
   32404             :         }
   32405           0 :         ndr->depth--;
   32406             : }
   32407             : 
   32408           0 : static enum ndr_err_code ndr_push_spoolss_ResetPrinter(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_ResetPrinter *r)
   32409             : {
   32410           0 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   32411           0 :         if (flags & NDR_IN) {
   32412           0 :                 if (r->in.handle == NULL) {
   32413           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   32414             :                 }
   32415           0 :                 if (r->in.devmode_ctr == NULL) {
   32416           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   32417             :                 }
   32418           0 :                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
   32419           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.data_type));
   32420           0 :                 if (r->in.data_type) {
   32421           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.data_type, CH_UTF16)));
   32422           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   32423           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.data_type, CH_UTF16)));
   32424           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.data_type, ndr_charset_length(r->in.data_type, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   32425             :                 }
   32426           0 :                 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
   32427             :         }
   32428           0 :         if (flags & NDR_OUT) {
   32429           0 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   32430             :         }
   32431           0 :         return NDR_ERR_SUCCESS;
   32432             : }
   32433             : 
   32434           0 : static enum ndr_err_code ndr_pull_spoolss_ResetPrinter(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_ResetPrinter *r)
   32435             : {
   32436           0 :         uint32_t _ptr_data_type;
   32437           0 :         uint32_t size_data_type_1 = 0;
   32438           0 :         uint32_t length_data_type_1 = 0;
   32439           0 :         TALLOC_CTX *_mem_save_handle_0 = NULL;
   32440           0 :         TALLOC_CTX *_mem_save_data_type_0 = NULL;
   32441           0 :         TALLOC_CTX *_mem_save_devmode_ctr_0 = NULL;
   32442           0 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   32443           0 :         if (flags & NDR_IN) {
   32444           0 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   32445           0 :                         NDR_PULL_ALLOC(ndr, r->in.handle);
   32446             :                 }
   32447           0 :                 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
   32448           0 :                 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
   32449           0 :                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
   32450           0 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
   32451           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
   32452           0 :                 if (_ptr_data_type) {
   32453           0 :                         NDR_PULL_ALLOC(ndr, r->in.data_type);
   32454             :                 } else {
   32455           0 :                         r->in.data_type = NULL;
   32456             :                 }
   32457           0 :                 if (r->in.data_type) {
   32458           0 :                         _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
   32459           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->in.data_type, 0);
   32460           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.data_type));
   32461           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.data_type));
   32462           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.data_type, &size_data_type_1));
   32463           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.data_type, &length_data_type_1));
   32464           0 :                         if (length_data_type_1 > size_data_type_1) {
   32465           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_data_type_1, length_data_type_1);
   32466             :                         }
   32467           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_data_type_1, sizeof(uint16_t)));
   32468           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.data_type, length_data_type_1, sizeof(uint16_t), CH_UTF16));
   32469           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
   32470             :                 }
   32471           0 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   32472           0 :                         NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
   32473             :                 }
   32474           0 :                 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
   32475           0 :                 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
   32476           0 :                 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
   32477           0 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
   32478             :         }
   32479           0 :         if (flags & NDR_OUT) {
   32480             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   32481             :                 if (r->in.handle == NULL) {
   32482             :                         NDR_PULL_ALLOC(ndr, r->in.handle);
   32483             :                         NDR_ZERO_STRUCTP(r->in.handle);
   32484             :                 }
   32485             :                 if (r->in.devmode_ctr == NULL) {
   32486             :                         NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
   32487             :                         NDR_ZERO_STRUCTP(r->in.devmode_ctr);
   32488             :                 }
   32489             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   32490           0 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   32491             :         }
   32492           0 :         return NDR_ERR_SUCCESS;
   32493             : }
   32494             : 
   32495           0 : _PUBLIC_ void ndr_print_spoolss_ResetPrinter(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_ResetPrinter *r)
   32496             : {
   32497           0 :         ndr_print_struct(ndr, name, "spoolss_ResetPrinter");
   32498           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   32499           0 :         ndr->depth++;
   32500           0 :         if (flags & NDR_SET_VALUES) {
   32501           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   32502             :         }
   32503           0 :         if (flags & NDR_IN) {
   32504           0 :                 ndr_print_struct(ndr, "in", "spoolss_ResetPrinter");
   32505           0 :                 ndr->depth++;
   32506           0 :                 ndr_print_ptr(ndr, "handle", r->in.handle);
   32507           0 :                 ndr->depth++;
   32508           0 :                 ndr_print_policy_handle(ndr, "handle", r->in.handle);
   32509           0 :                 ndr->depth--;
   32510           0 :                 ndr_print_ptr(ndr, "data_type", r->in.data_type);
   32511           0 :                 ndr->depth++;
   32512           0 :                 if (r->in.data_type) {
   32513           0 :                         ndr_print_string(ndr, "data_type", r->in.data_type);
   32514             :                 }
   32515           0 :                 ndr->depth--;
   32516           0 :                 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
   32517           0 :                 ndr->depth++;
   32518           0 :                 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
   32519           0 :                 ndr->depth--;
   32520           0 :                 ndr->depth--;
   32521             :         }
   32522           0 :         if (flags & NDR_OUT) {
   32523           0 :                 ndr_print_struct(ndr, "out", "spoolss_ResetPrinter");
   32524           0 :                 ndr->depth++;
   32525           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   32526           0 :                 ndr->depth--;
   32527             :         }
   32528           0 :         ndr->depth--;
   32529             : }
   32530             : 
   32531           8 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetPrinterDriver2(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_GetPrinterDriver2 *r)
   32532             : {
   32533           8 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   32534           8 :         if (flags & NDR_IN) {
   32535           4 :                 if (r->in.handle == NULL) {
   32536           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   32537             :                 }
   32538           4 :                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
   32539           4 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.architecture));
   32540           4 :                 if (r->in.architecture) {
   32541           4 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
   32542           4 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   32543           4 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
   32544           4 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   32545             :                 }
   32546           4 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
   32547           4 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
   32548           4 :                 if (r->in.buffer) {
   32549           4 :                         NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
   32550             :                 }
   32551           4 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
   32552           4 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.client_major_version));
   32553           4 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.client_minor_version));
   32554             :         }
   32555           8 :         if (flags & NDR_OUT) {
   32556           4 :                 if (r->out.needed == NULL) {
   32557           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   32558             :                 }
   32559           4 :                 if (r->out.server_major_version == NULL) {
   32560           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   32561             :                 }
   32562           4 :                 if (r->out.server_minor_version == NULL) {
   32563           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   32564             :                 }
   32565           4 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
   32566           4 :                 if (r->out.info) {
   32567             :                         {
   32568           0 :                                 struct ndr_push *_ndr_info;
   32569           0 :                                 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
   32570           0 :                                 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
   32571           0 :                                 NDR_CHECK(ndr_push_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
   32572           0 :                                 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
   32573             :                         }
   32574             :                 }
   32575           4 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
   32576           4 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.server_major_version));
   32577           4 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.server_minor_version));
   32578           4 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   32579             :         }
   32580           8 :         return NDR_ERR_SUCCESS;
   32581             : }
   32582             : 
   32583          14 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetPrinterDriver2(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_GetPrinterDriver2 *r)
   32584             : {
   32585           6 :         uint32_t _ptr_architecture;
   32586          14 :         uint32_t size_architecture_1 = 0;
   32587          14 :         uint32_t length_architecture_1 = 0;
   32588           6 :         uint32_t _ptr_buffer;
   32589           6 :         uint32_t _ptr_info;
   32590          14 :         TALLOC_CTX *_mem_save_handle_0 = NULL;
   32591          14 :         TALLOC_CTX *_mem_save_architecture_0 = NULL;
   32592          14 :         TALLOC_CTX *_mem_save_buffer_0 = NULL;
   32593          14 :         TALLOC_CTX *_mem_save_info_0 = NULL;
   32594          14 :         TALLOC_CTX *_mem_save_needed_0 = NULL;
   32595          14 :         TALLOC_CTX *_mem_save_server_major_version_0 = NULL;
   32596          14 :         TALLOC_CTX *_mem_save_server_minor_version_0 = NULL;
   32597          14 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   32598          14 :         if (flags & NDR_IN) {
   32599           8 :                 NDR_ZERO_STRUCT(r->out);
   32600             : 
   32601           8 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   32602           8 :                         NDR_PULL_ALLOC(ndr, r->in.handle);
   32603             :                 }
   32604           8 :                 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
   32605           8 :                 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
   32606           8 :                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
   32607           8 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
   32608           8 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
   32609           8 :                 if (_ptr_architecture) {
   32610           8 :                         NDR_PULL_ALLOC(ndr, r->in.architecture);
   32611             :                 } else {
   32612           0 :                         r->in.architecture = NULL;
   32613             :                 }
   32614           8 :                 if (r->in.architecture) {
   32615           8 :                         _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
   32616           8 :                         NDR_PULL_SET_MEM_CTX(ndr, r->in.architecture, 0);
   32617           8 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
   32618           8 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
   32619           8 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.architecture, &size_architecture_1));
   32620           8 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.architecture, &length_architecture_1));
   32621           8 :                         if (length_architecture_1 > size_architecture_1) {
   32622           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_architecture_1, length_architecture_1);
   32623             :                         }
   32624           8 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_architecture_1, sizeof(uint16_t)));
   32625           8 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, length_architecture_1, sizeof(uint16_t), CH_UTF16));
   32626           8 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
   32627             :                 }
   32628           8 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
   32629           8 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
   32630           8 :                 if (_ptr_buffer) {
   32631           8 :                         NDR_PULL_ALLOC(ndr, r->in.buffer);
   32632             :                 } else {
   32633           0 :                         r->in.buffer = NULL;
   32634             :                 }
   32635           8 :                 if (r->in.buffer) {
   32636           8 :                         _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
   32637           8 :                         NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
   32638           8 :                         NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
   32639           8 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
   32640             :                 }
   32641           8 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
   32642           8 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.client_major_version));
   32643           8 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.client_minor_version));
   32644           8 :                 NDR_PULL_ALLOC(ndr, r->out.needed);
   32645           8 :                 NDR_ZERO_STRUCTP(r->out.needed);
   32646           8 :                 NDR_PULL_ALLOC(ndr, r->out.server_major_version);
   32647           8 :                 NDR_ZERO_STRUCTP(r->out.server_major_version);
   32648           8 :                 NDR_PULL_ALLOC(ndr, r->out.server_minor_version);
   32649           8 :                 NDR_ZERO_STRUCTP(r->out.server_minor_version);
   32650             :         }
   32651          14 :         if (flags & NDR_OUT) {
   32652             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   32653             :                 if (r->in.handle == NULL) {
   32654             :                         NDR_PULL_ALLOC(ndr, r->in.handle);
   32655             :                         NDR_ZERO_STRUCTP(r->in.handle);
   32656             :                 }
   32657             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   32658           6 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
   32659           6 :                 if (_ptr_info) {
   32660           2 :                         NDR_PULL_ALLOC(ndr, r->out.info);
   32661             :                 } else {
   32662           4 :                         r->out.info = NULL;
   32663             :                 }
   32664           6 :                 if (r->out.info) {
   32665           2 :                         _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
   32666           2 :                         NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
   32667             :                         {
   32668           2 :                                 struct ndr_pull *_ndr_info;
   32669           2 :                                 ssize_t sub_size = r->in.offered;
   32670           2 :                                 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, sub_size));
   32671           2 :                                 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
   32672           2 :                                 NDR_CHECK(ndr_pull_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
   32673           2 :                                 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, sub_size));
   32674             :                         }
   32675           2 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
   32676             :                 }
   32677           6 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   32678           2 :                         NDR_PULL_ALLOC(ndr, r->out.needed);
   32679             :                 }
   32680           6 :                 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
   32681           6 :                 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
   32682           6 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
   32683           6 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
   32684           6 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   32685           2 :                         NDR_PULL_ALLOC(ndr, r->out.server_major_version);
   32686             :                 }
   32687           6 :                 _mem_save_server_major_version_0 = NDR_PULL_GET_MEM_CTX(ndr);
   32688           6 :                 NDR_PULL_SET_MEM_CTX(ndr, r->out.server_major_version, LIBNDR_FLAG_REF_ALLOC);
   32689           6 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.server_major_version));
   32690           6 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_major_version_0, LIBNDR_FLAG_REF_ALLOC);
   32691           6 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   32692           2 :                         NDR_PULL_ALLOC(ndr, r->out.server_minor_version);
   32693             :                 }
   32694           6 :                 _mem_save_server_minor_version_0 = NDR_PULL_GET_MEM_CTX(ndr);
   32695           6 :                 NDR_PULL_SET_MEM_CTX(ndr, r->out.server_minor_version, LIBNDR_FLAG_REF_ALLOC);
   32696           6 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.server_minor_version));
   32697           6 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_minor_version_0, LIBNDR_FLAG_REF_ALLOC);
   32698           6 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   32699             :         }
   32700           8 :         return NDR_ERR_SUCCESS;
   32701             : }
   32702             : 
   32703           6 : _PUBLIC_ void ndr_print_spoolss_GetPrinterDriver2(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_GetPrinterDriver2 *r)
   32704             : {
   32705           6 :         ndr_print_struct(ndr, name, "spoolss_GetPrinterDriver2");
   32706           6 :         if (r == NULL) { ndr_print_null(ndr); return; }
   32707           6 :         ndr->depth++;
   32708           6 :         if (flags & NDR_SET_VALUES) {
   32709           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   32710             :         }
   32711           6 :         if (flags & NDR_IN) {
   32712           4 :                 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriver2");
   32713           4 :                 ndr->depth++;
   32714           4 :                 ndr_print_ptr(ndr, "handle", r->in.handle);
   32715           4 :                 ndr->depth++;
   32716           4 :                 ndr_print_policy_handle(ndr, "handle", r->in.handle);
   32717           4 :                 ndr->depth--;
   32718           4 :                 ndr_print_ptr(ndr, "architecture", r->in.architecture);
   32719           4 :                 ndr->depth++;
   32720           4 :                 if (r->in.architecture) {
   32721           4 :                         ndr_print_string(ndr, "architecture", r->in.architecture);
   32722             :                 }
   32723           4 :                 ndr->depth--;
   32724           4 :                 ndr_print_uint32(ndr, "level", r->in.level);
   32725           4 :                 ndr_print_ptr(ndr, "buffer", r->in.buffer);
   32726           4 :                 ndr->depth++;
   32727           4 :                 if (r->in.buffer) {
   32728           4 :                         ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
   32729             :                 }
   32730           4 :                 ndr->depth--;
   32731           4 :                 ndr_print_uint32(ndr, "offered", r->in.offered);
   32732           4 :                 ndr_print_uint32(ndr, "client_major_version", r->in.client_major_version);
   32733           4 :                 ndr_print_uint32(ndr, "client_minor_version", r->in.client_minor_version);
   32734           4 :                 ndr->depth--;
   32735             :         }
   32736           6 :         if (flags & NDR_OUT) {
   32737           2 :                 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriver2");
   32738           2 :                 ndr->depth++;
   32739           2 :                 ndr_print_ptr(ndr, "info", r->out.info);
   32740           2 :                 ndr->depth++;
   32741           2 :                 if (r->out.info) {
   32742           2 :                         ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
   32743           2 :                         ndr_print_spoolss_DriverInfo(ndr, "info", r->out.info);
   32744             :                 }
   32745           2 :                 ndr->depth--;
   32746           2 :                 ndr_print_ptr(ndr, "needed", r->out.needed);
   32747           2 :                 ndr->depth++;
   32748           2 :                 ndr_print_uint32(ndr, "needed", *r->out.needed);
   32749           2 :                 ndr->depth--;
   32750           2 :                 ndr_print_ptr(ndr, "server_major_version", r->out.server_major_version);
   32751           2 :                 ndr->depth++;
   32752           2 :                 ndr_print_uint32(ndr, "server_major_version", *r->out.server_major_version);
   32753           2 :                 ndr->depth--;
   32754           2 :                 ndr_print_ptr(ndr, "server_minor_version", r->out.server_minor_version);
   32755           2 :                 ndr->depth++;
   32756           2 :                 ndr_print_uint32(ndr, "server_minor_version", *r->out.server_minor_version);
   32757           2 :                 ndr->depth--;
   32758           2 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   32759           2 :                 ndr->depth--;
   32760             :         }
   32761           6 :         ndr->depth--;
   32762             : }
   32763             : 
   32764           0 : static enum ndr_err_code ndr_push_spoolss_FindFirstPrinterChangeNotification(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_FindFirstPrinterChangeNotification *r)
   32765             : {
   32766           0 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   32767           0 :         if (flags & NDR_IN) {
   32768           0 :         }
   32769           0 :         if (flags & NDR_OUT) {
   32770           0 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   32771             :         }
   32772           0 :         return NDR_ERR_SUCCESS;
   32773             : }
   32774             : 
   32775           0 : static enum ndr_err_code ndr_pull_spoolss_FindFirstPrinterChangeNotification(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_FindFirstPrinterChangeNotification *r)
   32776             : {
   32777           0 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   32778           0 :         if (flags & NDR_IN) {
   32779           0 :         }
   32780           0 :         if (flags & NDR_OUT) {
   32781             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   32782             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   32783           0 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   32784             :         }
   32785           0 :         return NDR_ERR_SUCCESS;
   32786             : }
   32787             : 
   32788           0 : _PUBLIC_ void ndr_print_spoolss_FindFirstPrinterChangeNotification(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_FindFirstPrinterChangeNotification *r)
   32789             : {
   32790           0 :         ndr_print_struct(ndr, name, "spoolss_FindFirstPrinterChangeNotification");
   32791           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   32792           0 :         ndr->depth++;
   32793           0 :         if (flags & NDR_SET_VALUES) {
   32794           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   32795             :         }
   32796           0 :         if (flags & NDR_IN) {
   32797           0 :                 ndr_print_struct(ndr, "in", "spoolss_FindFirstPrinterChangeNotification");
   32798           0 :                 ndr->depth++;
   32799           0 :                 ndr->depth--;
   32800             :         }
   32801           0 :         if (flags & NDR_OUT) {
   32802           0 :                 ndr_print_struct(ndr, "out", "spoolss_FindFirstPrinterChangeNotification");
   32803           0 :                 ndr->depth++;
   32804           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   32805           0 :                 ndr->depth--;
   32806             :         }
   32807           0 :         ndr->depth--;
   32808             : }
   32809             : 
   32810           0 : static enum ndr_err_code ndr_push_spoolss_FindNextPrinterChangeNotification(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_FindNextPrinterChangeNotification *r)
   32811             : {
   32812           0 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   32813           0 :         if (flags & NDR_IN) {
   32814           0 :         }
   32815           0 :         if (flags & NDR_OUT) {
   32816           0 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   32817             :         }
   32818           0 :         return NDR_ERR_SUCCESS;
   32819             : }
   32820             : 
   32821           0 : static enum ndr_err_code ndr_pull_spoolss_FindNextPrinterChangeNotification(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_FindNextPrinterChangeNotification *r)
   32822             : {
   32823           0 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   32824           0 :         if (flags & NDR_IN) {
   32825           0 :         }
   32826           0 :         if (flags & NDR_OUT) {
   32827             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   32828             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   32829           0 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   32830             :         }
   32831           0 :         return NDR_ERR_SUCCESS;
   32832             : }
   32833             : 
   32834           0 : _PUBLIC_ void ndr_print_spoolss_FindNextPrinterChangeNotification(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_FindNextPrinterChangeNotification *r)
   32835             : {
   32836           0 :         ndr_print_struct(ndr, name, "spoolss_FindNextPrinterChangeNotification");
   32837           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   32838           0 :         ndr->depth++;
   32839           0 :         if (flags & NDR_SET_VALUES) {
   32840           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   32841             :         }
   32842           0 :         if (flags & NDR_IN) {
   32843           0 :                 ndr_print_struct(ndr, "in", "spoolss_FindNextPrinterChangeNotification");
   32844           0 :                 ndr->depth++;
   32845           0 :                 ndr->depth--;
   32846             :         }
   32847           0 :         if (flags & NDR_OUT) {
   32848           0 :                 ndr_print_struct(ndr, "out", "spoolss_FindNextPrinterChangeNotification");
   32849           0 :                 ndr->depth++;
   32850           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   32851           0 :                 ndr->depth--;
   32852             :         }
   32853           0 :         ndr->depth--;
   32854             : }
   32855             : 
   32856           0 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FindClosePrinterNotify(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_FindClosePrinterNotify *r)
   32857             : {
   32858           0 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   32859           0 :         if (flags & NDR_IN) {
   32860           0 :                 if (r->in.handle == NULL) {
   32861           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   32862             :                 }
   32863           0 :                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
   32864             :         }
   32865           0 :         if (flags & NDR_OUT) {
   32866           0 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   32867             :         }
   32868           0 :         return NDR_ERR_SUCCESS;
   32869             : }
   32870             : 
   32871           4 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FindClosePrinterNotify(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_FindClosePrinterNotify *r)
   32872             : {
   32873           4 :         TALLOC_CTX *_mem_save_handle_0 = NULL;
   32874           4 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   32875           4 :         if (flags & NDR_IN) {
   32876           2 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   32877           2 :                         NDR_PULL_ALLOC(ndr, r->in.handle);
   32878             :                 }
   32879           2 :                 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
   32880           2 :                 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
   32881           2 :                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
   32882           2 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
   32883             :         }
   32884           4 :         if (flags & NDR_OUT) {
   32885             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   32886             :                 if (r->in.handle == NULL) {
   32887             :                         NDR_PULL_ALLOC(ndr, r->in.handle);
   32888             :                         NDR_ZERO_STRUCTP(r->in.handle);
   32889             :                 }
   32890             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   32891           2 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   32892             :         }
   32893           0 :         return NDR_ERR_SUCCESS;
   32894             : }
   32895             : 
   32896           4 : _PUBLIC_ void ndr_print_spoolss_FindClosePrinterNotify(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_FindClosePrinterNotify *r)
   32897             : {
   32898           4 :         ndr_print_struct(ndr, name, "spoolss_FindClosePrinterNotify");
   32899           4 :         if (r == NULL) { ndr_print_null(ndr); return; }
   32900           4 :         ndr->depth++;
   32901           4 :         if (flags & NDR_SET_VALUES) {
   32902           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   32903             :         }
   32904           4 :         if (flags & NDR_IN) {
   32905           2 :                 ndr_print_struct(ndr, "in", "spoolss_FindClosePrinterNotify");
   32906           2 :                 ndr->depth++;
   32907           2 :                 ndr_print_ptr(ndr, "handle", r->in.handle);
   32908           2 :                 ndr->depth++;
   32909           2 :                 ndr_print_policy_handle(ndr, "handle", r->in.handle);
   32910           2 :                 ndr->depth--;
   32911           2 :                 ndr->depth--;
   32912             :         }
   32913           4 :         if (flags & NDR_OUT) {
   32914           2 :                 ndr_print_struct(ndr, "out", "spoolss_FindClosePrinterNotify");
   32915           2 :                 ndr->depth++;
   32916           2 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   32917           2 :                 ndr->depth--;
   32918             :         }
   32919           4 :         ndr->depth--;
   32920             : }
   32921             : 
   32922           0 : static enum ndr_err_code ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
   32923             : {
   32924           0 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   32925           0 :         if (flags & NDR_IN) {
   32926           0 :         }
   32927           0 :         if (flags & NDR_OUT) {
   32928           0 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   32929             :         }
   32930           0 :         return NDR_ERR_SUCCESS;
   32931             : }
   32932             : 
   32933           0 : static enum ndr_err_code ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
   32934             : {
   32935           0 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   32936           0 :         if (flags & NDR_IN) {
   32937           0 :         }
   32938           0 :         if (flags & NDR_OUT) {
   32939             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   32940             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   32941           0 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   32942             :         }
   32943           0 :         return NDR_ERR_SUCCESS;
   32944             : }
   32945             : 
   32946           0 : _PUBLIC_ void ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
   32947             : {
   32948           0 :         ndr_print_struct(ndr, name, "spoolss_RouterFindFirstPrinterChangeNotificationOld");
   32949           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   32950           0 :         ndr->depth++;
   32951           0 :         if (flags & NDR_SET_VALUES) {
   32952           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   32953             :         }
   32954           0 :         if (flags & NDR_IN) {
   32955           0 :                 ndr_print_struct(ndr, "in", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
   32956           0 :                 ndr->depth++;
   32957           0 :                 ndr->depth--;
   32958             :         }
   32959           0 :         if (flags & NDR_OUT) {
   32960           0 :                 ndr_print_struct(ndr, "out", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
   32961           0 :                 ndr->depth++;
   32962           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   32963           0 :                 ndr->depth--;
   32964             :         }
   32965           0 :         ndr->depth--;
   32966             : }
   32967             : 
   32968           4 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ReplyOpenPrinter(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_ReplyOpenPrinter *r)
   32969             : {
   32970           4 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   32971           4 :         if (flags & NDR_IN) {
   32972           2 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
   32973           2 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   32974           2 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
   32975           2 :                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   32976           2 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.printer_local));
   32977           2 :                 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
   32978           2 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
   32979           2 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
   32980           2 :                 if (r->in.buffer) {
   32981           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.bufsize));
   32982           0 :                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.bufsize));
   32983             :                 }
   32984             :         }
   32985           4 :         if (flags & NDR_OUT) {
   32986           2 :                 if (r->out.handle == NULL) {
   32987           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   32988             :                 }
   32989           2 :                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
   32990           2 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   32991             :         }
   32992           4 :         return NDR_ERR_SUCCESS;
   32993             : }
   32994             : 
   32995           8 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ReplyOpenPrinter(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_ReplyOpenPrinter *r)
   32996             : {
   32997           8 :         uint32_t size_server_name_0 = 0;
   32998           8 :         uint32_t length_server_name_0 = 0;
   32999           4 :         uint32_t _ptr_buffer;
   33000           8 :         uint32_t size_buffer_1 = 0;
   33001           8 :         TALLOC_CTX *_mem_save_buffer_0 = NULL;
   33002           8 :         TALLOC_CTX *_mem_save_handle_0 = NULL;
   33003           8 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   33004           8 :         if (flags & NDR_IN) {
   33005           4 :                 NDR_ZERO_STRUCT(r->out);
   33006             : 
   33007           4 :                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
   33008           4 :                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
   33009           4 :                 NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.server_name, &size_server_name_0));
   33010           4 :                 NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.server_name, &length_server_name_0));
   33011           4 :                 if (length_server_name_0 > size_server_name_0) {
   33012           0 :                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_server_name_0, length_server_name_0);
   33013             :                 }
   33014           4 :                 NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_0, sizeof(uint16_t)));
   33015           4 :                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, length_server_name_0, sizeof(uint16_t), CH_UTF16));
   33016           4 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.printer_local));
   33017           4 :                 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
   33018           4 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.bufsize));
   33019           4 :                 if (r->in.bufsize > 512) {
   33020           0 :                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value (%"PRIu32") out of range (%"PRIu32" - %"PRIu32")", (uint32_t)(r->in.bufsize), (uint32_t)(0), (uint32_t)(512));
   33021             :                 }
   33022           4 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
   33023           4 :                 if (_ptr_buffer) {
   33024           0 :                         NDR_PULL_ALLOC(ndr, r->in.buffer);
   33025             :                 } else {
   33026           4 :                         r->in.buffer = NULL;
   33027             :                 }
   33028           4 :                 if (r->in.buffer) {
   33029           0 :                         _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
   33030           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
   33031           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
   33032           0 :                         NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->in.buffer, &size_buffer_1));
   33033           0 :                         NDR_PULL_ALLOC_N(ndr, r->in.buffer, size_buffer_1);
   33034           0 :                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, size_buffer_1));
   33035           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
   33036             :                 }
   33037           4 :                 NDR_PULL_ALLOC(ndr, r->out.handle);
   33038           4 :                 NDR_ZERO_STRUCTP(r->out.handle);
   33039           4 :                 if (r->in.buffer) {
   33040           0 :                         NDR_CHECK(ndr_check_steal_array_size(ndr, (void*)&r->in.buffer, r->in.bufsize));
   33041             :                 }
   33042             :         }
   33043           8 :         if (flags & NDR_OUT) {
   33044             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   33045             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   33046           4 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   33047           4 :                         NDR_PULL_ALLOC(ndr, r->out.handle);
   33048             :                 }
   33049           4 :                 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
   33050           4 :                 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
   33051           4 :                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
   33052           4 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
   33053           4 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   33054             :         }
   33055           4 :         return NDR_ERR_SUCCESS;
   33056             : }
   33057             : 
   33058           8 : _PUBLIC_ void ndr_print_spoolss_ReplyOpenPrinter(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_ReplyOpenPrinter *r)
   33059             : {
   33060           8 :         ndr_print_struct(ndr, name, "spoolss_ReplyOpenPrinter");
   33061           8 :         if (r == NULL) { ndr_print_null(ndr); return; }
   33062           8 :         ndr->depth++;
   33063           8 :         if (flags & NDR_SET_VALUES) {
   33064           2 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   33065             :         }
   33066           8 :         if (flags & NDR_IN) {
   33067           4 :                 ndr_print_struct(ndr, "in", "spoolss_ReplyOpenPrinter");
   33068           4 :                 ndr->depth++;
   33069           4 :                 ndr_print_string(ndr, "server_name", r->in.server_name);
   33070           4 :                 ndr_print_uint32(ndr, "printer_local", r->in.printer_local);
   33071           4 :                 ndr_print_winreg_Type(ndr, "type", r->in.type);
   33072           4 :                 ndr_print_uint32(ndr, "bufsize", r->in.bufsize);
   33073           4 :                 ndr_print_ptr(ndr, "buffer", r->in.buffer);
   33074           4 :                 ndr->depth++;
   33075           4 :                 if (r->in.buffer) {
   33076           0 :                         ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.bufsize);
   33077             :                 }
   33078           4 :                 ndr->depth--;
   33079           4 :                 ndr->depth--;
   33080             :         }
   33081           8 :         if (flags & NDR_OUT) {
   33082           4 :                 ndr_print_struct(ndr, "out", "spoolss_ReplyOpenPrinter");
   33083           4 :                 ndr->depth++;
   33084           4 :                 ndr_print_ptr(ndr, "handle", r->out.handle);
   33085           4 :                 ndr->depth++;
   33086           4 :                 ndr_print_policy_handle(ndr, "handle", r->out.handle);
   33087           4 :                 ndr->depth--;
   33088           4 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   33089           4 :                 ndr->depth--;
   33090             :         }
   33091           8 :         ndr->depth--;
   33092             : }
   33093             : 
   33094           0 : static enum ndr_err_code ndr_push_spoolss_RouterReplyPrinter(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_RouterReplyPrinter *r)
   33095             : {
   33096           0 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   33097           0 :         if (flags & NDR_IN) {
   33098           0 :                 if (r->in.handle == NULL) {
   33099           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   33100             :                 }
   33101           0 :                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
   33102           0 :                 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
   33103           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
   33104           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
   33105           0 :                 if (r->in.buffer) {
   33106           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.bufsize));
   33107           0 :                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.bufsize));
   33108             :                 }
   33109             :         }
   33110           0 :         if (flags & NDR_OUT) {
   33111           0 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   33112             :         }
   33113           0 :         return NDR_ERR_SUCCESS;
   33114             : }
   33115             : 
   33116           0 : static enum ndr_err_code ndr_pull_spoolss_RouterReplyPrinter(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_RouterReplyPrinter *r)
   33117             : {
   33118           0 :         uint32_t _ptr_buffer;
   33119           0 :         uint32_t size_buffer_1 = 0;
   33120           0 :         TALLOC_CTX *_mem_save_handle_0 = NULL;
   33121           0 :         TALLOC_CTX *_mem_save_buffer_0 = NULL;
   33122           0 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   33123           0 :         if (flags & NDR_IN) {
   33124           0 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   33125           0 :                         NDR_PULL_ALLOC(ndr, r->in.handle);
   33126             :                 }
   33127           0 :                 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
   33128           0 :                 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
   33129           0 :                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
   33130           0 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
   33131           0 :                 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
   33132           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.bufsize));
   33133           0 :                 if (r->in.bufsize > 512) {
   33134           0 :                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value (%"PRIu32") out of range (%"PRIu32" - %"PRIu32")", (uint32_t)(r->in.bufsize), (uint32_t)(0), (uint32_t)(512));
   33135             :                 }
   33136           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
   33137           0 :                 if (_ptr_buffer) {
   33138           0 :                         NDR_PULL_ALLOC(ndr, r->in.buffer);
   33139             :                 } else {
   33140           0 :                         r->in.buffer = NULL;
   33141             :                 }
   33142           0 :                 if (r->in.buffer) {
   33143           0 :                         _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
   33144           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
   33145           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
   33146           0 :                         NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->in.buffer, &size_buffer_1));
   33147           0 :                         NDR_PULL_ALLOC_N(ndr, r->in.buffer, size_buffer_1);
   33148           0 :                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, size_buffer_1));
   33149           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
   33150             :                 }
   33151           0 :                 if (r->in.buffer) {
   33152           0 :                         NDR_CHECK(ndr_check_steal_array_size(ndr, (void*)&r->in.buffer, r->in.bufsize));
   33153             :                 }
   33154             :         }
   33155           0 :         if (flags & NDR_OUT) {
   33156             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   33157             :                 if (r->in.handle == NULL) {
   33158             :                         NDR_PULL_ALLOC(ndr, r->in.handle);
   33159             :                         NDR_ZERO_STRUCTP(r->in.handle);
   33160             :                 }
   33161             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   33162           0 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   33163             :         }
   33164           0 :         return NDR_ERR_SUCCESS;
   33165             : }
   33166             : 
   33167           0 : _PUBLIC_ void ndr_print_spoolss_RouterReplyPrinter(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_RouterReplyPrinter *r)
   33168             : {
   33169           0 :         ndr_print_struct(ndr, name, "spoolss_RouterReplyPrinter");
   33170           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   33171           0 :         ndr->depth++;
   33172           0 :         if (flags & NDR_SET_VALUES) {
   33173           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   33174             :         }
   33175           0 :         if (flags & NDR_IN) {
   33176           0 :                 ndr_print_struct(ndr, "in", "spoolss_RouterReplyPrinter");
   33177           0 :                 ndr->depth++;
   33178           0 :                 ndr_print_ptr(ndr, "handle", r->in.handle);
   33179           0 :                 ndr->depth++;
   33180           0 :                 ndr_print_policy_handle(ndr, "handle", r->in.handle);
   33181           0 :                 ndr->depth--;
   33182           0 :                 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
   33183           0 :                 ndr_print_uint32(ndr, "bufsize", r->in.bufsize);
   33184           0 :                 ndr_print_ptr(ndr, "buffer", r->in.buffer);
   33185           0 :                 ndr->depth++;
   33186           0 :                 if (r->in.buffer) {
   33187           0 :                         ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.bufsize);
   33188             :                 }
   33189           0 :                 ndr->depth--;
   33190           0 :                 ndr->depth--;
   33191             :         }
   33192           0 :         if (flags & NDR_OUT) {
   33193           0 :                 ndr_print_struct(ndr, "out", "spoolss_RouterReplyPrinter");
   33194           0 :                 ndr->depth++;
   33195           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   33196           0 :                 ndr->depth--;
   33197             :         }
   33198           0 :         ndr->depth--;
   33199             : }
   33200             : 
   33201           4 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ReplyClosePrinter(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_ReplyClosePrinter *r)
   33202             : {
   33203           4 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   33204           4 :         if (flags & NDR_IN) {
   33205           2 :                 if (r->in.handle == NULL) {
   33206           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   33207             :                 }
   33208           2 :                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
   33209             :         }
   33210           4 :         if (flags & NDR_OUT) {
   33211           2 :                 if (r->out.handle == NULL) {
   33212           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   33213             :                 }
   33214           2 :                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
   33215           2 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   33216             :         }
   33217           4 :         return NDR_ERR_SUCCESS;
   33218             : }
   33219             : 
   33220           8 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ReplyClosePrinter(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_ReplyClosePrinter *r)
   33221             : {
   33222           8 :         TALLOC_CTX *_mem_save_handle_0 = NULL;
   33223           8 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   33224           8 :         if (flags & NDR_IN) {
   33225           4 :                 NDR_ZERO_STRUCT(r->out);
   33226             : 
   33227           4 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   33228           4 :                         NDR_PULL_ALLOC(ndr, r->in.handle);
   33229             :                 }
   33230           4 :                 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
   33231           4 :                 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
   33232           4 :                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
   33233           4 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
   33234           4 :                 NDR_PULL_ALLOC(ndr, r->out.handle);
   33235           4 :                 *r->out.handle = *r->in.handle;
   33236             :         }
   33237           8 :         if (flags & NDR_OUT) {
   33238             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   33239             :                 if (r->in.handle == NULL) {
   33240             :                         NDR_PULL_ALLOC(ndr, r->in.handle);
   33241             :                         NDR_ZERO_STRUCTP(r->in.handle);
   33242             :                 }
   33243             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   33244           4 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   33245           4 :                         NDR_PULL_ALLOC(ndr, r->out.handle);
   33246             :                 }
   33247           4 :                 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
   33248           4 :                 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
   33249           4 :                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
   33250           4 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
   33251           4 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   33252             :         }
   33253           4 :         return NDR_ERR_SUCCESS;
   33254             : }
   33255             : 
   33256           8 : _PUBLIC_ void ndr_print_spoolss_ReplyClosePrinter(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_ReplyClosePrinter *r)
   33257             : {
   33258           8 :         ndr_print_struct(ndr, name, "spoolss_ReplyClosePrinter");
   33259           8 :         if (r == NULL) { ndr_print_null(ndr); return; }
   33260           8 :         ndr->depth++;
   33261           8 :         if (flags & NDR_SET_VALUES) {
   33262           2 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   33263             :         }
   33264           8 :         if (flags & NDR_IN) {
   33265           4 :                 ndr_print_struct(ndr, "in", "spoolss_ReplyClosePrinter");
   33266           4 :                 ndr->depth++;
   33267           4 :                 ndr_print_ptr(ndr, "handle", r->in.handle);
   33268           4 :                 ndr->depth++;
   33269           4 :                 ndr_print_policy_handle(ndr, "handle", r->in.handle);
   33270           4 :                 ndr->depth--;
   33271           4 :                 ndr->depth--;
   33272             :         }
   33273           8 :         if (flags & NDR_OUT) {
   33274           4 :                 ndr_print_struct(ndr, "out", "spoolss_ReplyClosePrinter");
   33275           4 :                 ndr->depth++;
   33276           4 :                 ndr_print_ptr(ndr, "handle", r->out.handle);
   33277           4 :                 ndr->depth++;
   33278           4 :                 ndr_print_policy_handle(ndr, "handle", r->out.handle);
   33279           4 :                 ndr->depth--;
   33280           4 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   33281           4 :                 ndr->depth--;
   33282             :         }
   33283           8 :         ndr->depth--;
   33284             : }
   33285             : 
   33286           0 : static enum ndr_err_code ndr_push_spoolss_AddPortEx(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_AddPortEx *r)
   33287             : {
   33288           0 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   33289           0 :         if (flags & NDR_IN) {
   33290           0 :                 if (r->in.port_ctr == NULL) {
   33291           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   33292             :                 }
   33293           0 :                 if (r->in.port_var_ctr == NULL) {
   33294           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   33295             :                 }
   33296           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
   33297           0 :                 if (r->in.servername) {
   33298           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
   33299           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   33300           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
   33301           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   33302             :                 }
   33303           0 :                 NDR_CHECK(ndr_push_spoolss_SetPortInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.port_ctr));
   33304           0 :                 NDR_CHECK(ndr_push_spoolss_PortVarContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.port_var_ctr));
   33305           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.monitor_name));
   33306           0 :                 if (r->in.monitor_name) {
   33307           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.monitor_name, CH_UTF16)));
   33308           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   33309           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.monitor_name, CH_UTF16)));
   33310           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.monitor_name, ndr_charset_length(r->in.monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   33311             :                 }
   33312             :         }
   33313           0 :         if (flags & NDR_OUT) {
   33314           0 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   33315             :         }
   33316           0 :         return NDR_ERR_SUCCESS;
   33317             : }
   33318             : 
   33319           0 : static enum ndr_err_code ndr_pull_spoolss_AddPortEx(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_AddPortEx *r)
   33320             : {
   33321           0 :         uint32_t _ptr_servername;
   33322           0 :         uint32_t size_servername_1 = 0;
   33323           0 :         uint32_t length_servername_1 = 0;
   33324           0 :         uint32_t _ptr_monitor_name;
   33325           0 :         uint32_t size_monitor_name_1 = 0;
   33326           0 :         uint32_t length_monitor_name_1 = 0;
   33327           0 :         TALLOC_CTX *_mem_save_servername_0 = NULL;
   33328           0 :         TALLOC_CTX *_mem_save_port_ctr_0 = NULL;
   33329           0 :         TALLOC_CTX *_mem_save_port_var_ctr_0 = NULL;
   33330           0 :         TALLOC_CTX *_mem_save_monitor_name_0 = NULL;
   33331           0 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   33332           0 :         if (flags & NDR_IN) {
   33333           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
   33334           0 :                 if (_ptr_servername) {
   33335           0 :                         NDR_PULL_ALLOC(ndr, r->in.servername);
   33336             :                 } else {
   33337           0 :                         r->in.servername = NULL;
   33338             :                 }
   33339           0 :                 if (r->in.servername) {
   33340           0 :                         _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
   33341           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
   33342           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
   33343           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
   33344           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.servername, &size_servername_1));
   33345           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.servername, &length_servername_1));
   33346           0 :                         if (length_servername_1 > size_servername_1) {
   33347           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_servername_1, length_servername_1);
   33348             :                         }
   33349           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_servername_1, sizeof(uint16_t)));
   33350           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, length_servername_1, sizeof(uint16_t), CH_UTF16));
   33351           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
   33352             :                 }
   33353           0 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   33354           0 :                         NDR_PULL_ALLOC(ndr, r->in.port_ctr);
   33355             :                 }
   33356           0 :                 _mem_save_port_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
   33357           0 :                 NDR_PULL_SET_MEM_CTX(ndr, r->in.port_ctr, LIBNDR_FLAG_REF_ALLOC);
   33358           0 :                 NDR_CHECK(ndr_pull_spoolss_SetPortInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.port_ctr));
   33359           0 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_ctr_0, LIBNDR_FLAG_REF_ALLOC);
   33360           0 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   33361           0 :                         NDR_PULL_ALLOC(ndr, r->in.port_var_ctr);
   33362             :                 }
   33363           0 :                 _mem_save_port_var_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
   33364           0 :                 NDR_PULL_SET_MEM_CTX(ndr, r->in.port_var_ctr, LIBNDR_FLAG_REF_ALLOC);
   33365           0 :                 NDR_CHECK(ndr_pull_spoolss_PortVarContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.port_var_ctr));
   33366           0 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_var_ctr_0, LIBNDR_FLAG_REF_ALLOC);
   33367           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
   33368           0 :                 if (_ptr_monitor_name) {
   33369           0 :                         NDR_PULL_ALLOC(ndr, r->in.monitor_name);
   33370             :                 } else {
   33371           0 :                         r->in.monitor_name = NULL;
   33372             :                 }
   33373           0 :                 if (r->in.monitor_name) {
   33374           0 :                         _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
   33375           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->in.monitor_name, 0);
   33376           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.monitor_name));
   33377           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.monitor_name));
   33378           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.monitor_name, &size_monitor_name_1));
   33379           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.monitor_name, &length_monitor_name_1));
   33380           0 :                         if (length_monitor_name_1 > size_monitor_name_1) {
   33381           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_monitor_name_1, length_monitor_name_1);
   33382             :                         }
   33383           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_monitor_name_1, sizeof(uint16_t)));
   33384           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.monitor_name, length_monitor_name_1, sizeof(uint16_t), CH_UTF16));
   33385           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
   33386             :                 }
   33387             :         }
   33388           0 :         if (flags & NDR_OUT) {
   33389             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   33390             :                 if (r->in.port_ctr == NULL) {
   33391             :                         NDR_PULL_ALLOC(ndr, r->in.port_ctr);
   33392             :                         NDR_ZERO_STRUCTP(r->in.port_ctr);
   33393             :                 }
   33394             :                 if (r->in.port_var_ctr == NULL) {
   33395             :                         NDR_PULL_ALLOC(ndr, r->in.port_var_ctr);
   33396             :                         NDR_ZERO_STRUCTP(r->in.port_var_ctr);
   33397             :                 }
   33398             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   33399           0 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   33400             :         }
   33401           0 :         return NDR_ERR_SUCCESS;
   33402             : }
   33403             : 
   33404           0 : _PUBLIC_ void ndr_print_spoolss_AddPortEx(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_AddPortEx *r)
   33405             : {
   33406           0 :         ndr_print_struct(ndr, name, "spoolss_AddPortEx");
   33407           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   33408           0 :         ndr->depth++;
   33409           0 :         if (flags & NDR_SET_VALUES) {
   33410           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   33411             :         }
   33412           0 :         if (flags & NDR_IN) {
   33413           0 :                 ndr_print_struct(ndr, "in", "spoolss_AddPortEx");
   33414           0 :                 ndr->depth++;
   33415           0 :                 ndr_print_ptr(ndr, "servername", r->in.servername);
   33416           0 :                 ndr->depth++;
   33417           0 :                 if (r->in.servername) {
   33418           0 :                         ndr_print_string(ndr, "servername", r->in.servername);
   33419             :                 }
   33420           0 :                 ndr->depth--;
   33421           0 :                 ndr_print_ptr(ndr, "port_ctr", r->in.port_ctr);
   33422           0 :                 ndr->depth++;
   33423           0 :                 ndr_print_spoolss_SetPortInfoContainer(ndr, "port_ctr", r->in.port_ctr);
   33424           0 :                 ndr->depth--;
   33425           0 :                 ndr_print_ptr(ndr, "port_var_ctr", r->in.port_var_ctr);
   33426           0 :                 ndr->depth++;
   33427           0 :                 ndr_print_spoolss_PortVarContainer(ndr, "port_var_ctr", r->in.port_var_ctr);
   33428           0 :                 ndr->depth--;
   33429           0 :                 ndr_print_ptr(ndr, "monitor_name", r->in.monitor_name);
   33430           0 :                 ndr->depth++;
   33431           0 :                 if (r->in.monitor_name) {
   33432           0 :                         ndr_print_string(ndr, "monitor_name", r->in.monitor_name);
   33433             :                 }
   33434           0 :                 ndr->depth--;
   33435           0 :                 ndr->depth--;
   33436             :         }
   33437           0 :         if (flags & NDR_OUT) {
   33438           0 :                 ndr_print_struct(ndr, "out", "spoolss_AddPortEx");
   33439           0 :                 ndr->depth++;
   33440           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   33441           0 :                 ndr->depth--;
   33442             :         }
   33443           0 :         ndr->depth--;
   33444             : }
   33445             : 
   33446           0 : static enum ndr_err_code ndr_push_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_RouterFindFirstPrinterChangeNotification *r)
   33447             : {
   33448           0 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   33449           0 :         if (flags & NDR_IN) {
   33450           0 :         }
   33451           0 :         if (flags & NDR_OUT) {
   33452           0 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   33453             :         }
   33454           0 :         return NDR_ERR_SUCCESS;
   33455             : }
   33456             : 
   33457           0 : static enum ndr_err_code ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_RouterFindFirstPrinterChangeNotification *r)
   33458             : {
   33459           0 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   33460           0 :         if (flags & NDR_IN) {
   33461           0 :         }
   33462           0 :         if (flags & NDR_OUT) {
   33463             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   33464             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   33465           0 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   33466             :         }
   33467           0 :         return NDR_ERR_SUCCESS;
   33468             : }
   33469             : 
   33470           0 : _PUBLIC_ void ndr_print_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_RouterFindFirstPrinterChangeNotification *r)
   33471             : {
   33472           0 :         ndr_print_struct(ndr, name, "spoolss_RouterFindFirstPrinterChangeNotification");
   33473           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   33474           0 :         ndr->depth++;
   33475           0 :         if (flags & NDR_SET_VALUES) {
   33476           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   33477             :         }
   33478           0 :         if (flags & NDR_IN) {
   33479           0 :                 ndr_print_struct(ndr, "in", "spoolss_RouterFindFirstPrinterChangeNotification");
   33480           0 :                 ndr->depth++;
   33481           0 :                 ndr->depth--;
   33482             :         }
   33483           0 :         if (flags & NDR_OUT) {
   33484           0 :                 ndr_print_struct(ndr, "out", "spoolss_RouterFindFirstPrinterChangeNotification");
   33485           0 :                 ndr->depth++;
   33486           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   33487           0 :                 ndr->depth--;
   33488             :         }
   33489           0 :         ndr->depth--;
   33490             : }
   33491             : 
   33492           0 : static enum ndr_err_code ndr_push_spoolss_SpoolerInit(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_SpoolerInit *r)
   33493             : {
   33494           0 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   33495           0 :         if (flags & NDR_IN) {
   33496           0 :         }
   33497           0 :         if (flags & NDR_OUT) {
   33498           0 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   33499             :         }
   33500           0 :         return NDR_ERR_SUCCESS;
   33501             : }
   33502             : 
   33503           0 : static enum ndr_err_code ndr_pull_spoolss_SpoolerInit(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_SpoolerInit *r)
   33504             : {
   33505           0 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   33506           0 :         if (flags & NDR_IN) {
   33507           0 :         }
   33508           0 :         if (flags & NDR_OUT) {
   33509             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   33510             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   33511           0 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   33512             :         }
   33513           0 :         return NDR_ERR_SUCCESS;
   33514             : }
   33515             : 
   33516           0 : _PUBLIC_ void ndr_print_spoolss_SpoolerInit(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_SpoolerInit *r)
   33517             : {
   33518           0 :         ndr_print_struct(ndr, name, "spoolss_SpoolerInit");
   33519           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   33520           0 :         ndr->depth++;
   33521           0 :         if (flags & NDR_SET_VALUES) {
   33522           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   33523             :         }
   33524           0 :         if (flags & NDR_IN) {
   33525           0 :                 ndr_print_struct(ndr, "in", "spoolss_SpoolerInit");
   33526           0 :                 ndr->depth++;
   33527           0 :                 ndr->depth--;
   33528             :         }
   33529           0 :         if (flags & NDR_OUT) {
   33530           0 :                 ndr_print_struct(ndr, "out", "spoolss_SpoolerInit");
   33531           0 :                 ndr->depth++;
   33532           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   33533           0 :                 ndr->depth--;
   33534             :         }
   33535           0 :         ndr->depth--;
   33536             : }
   33537             : 
   33538           0 : static enum ndr_err_code ndr_push_spoolss_ResetPrinterEx(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_ResetPrinterEx *r)
   33539             : {
   33540           0 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   33541           0 :         if (flags & NDR_IN) {
   33542           0 :         }
   33543           0 :         if (flags & NDR_OUT) {
   33544           0 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   33545             :         }
   33546           0 :         return NDR_ERR_SUCCESS;
   33547             : }
   33548             : 
   33549           0 : static enum ndr_err_code ndr_pull_spoolss_ResetPrinterEx(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_ResetPrinterEx *r)
   33550             : {
   33551           0 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   33552           0 :         if (flags & NDR_IN) {
   33553           0 :         }
   33554           0 :         if (flags & NDR_OUT) {
   33555             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   33556             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   33557           0 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   33558             :         }
   33559           0 :         return NDR_ERR_SUCCESS;
   33560             : }
   33561             : 
   33562           0 : _PUBLIC_ void ndr_print_spoolss_ResetPrinterEx(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_ResetPrinterEx *r)
   33563             : {
   33564           0 :         ndr_print_struct(ndr, name, "spoolss_ResetPrinterEx");
   33565           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   33566           0 :         ndr->depth++;
   33567           0 :         if (flags & NDR_SET_VALUES) {
   33568           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   33569             :         }
   33570           0 :         if (flags & NDR_IN) {
   33571           0 :                 ndr_print_struct(ndr, "in", "spoolss_ResetPrinterEx");
   33572           0 :                 ndr->depth++;
   33573           0 :                 ndr->depth--;
   33574             :         }
   33575           0 :         if (flags & NDR_OUT) {
   33576           0 :                 ndr_print_struct(ndr, "out", "spoolss_ResetPrinterEx");
   33577           0 :                 ndr->depth++;
   33578           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   33579           0 :                 ndr->depth--;
   33580             :         }
   33581           0 :         ndr->depth--;
   33582             : }
   33583             : 
   33584           4 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
   33585             : {
   33586           4 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   33587           4 :         if (flags & NDR_IN) {
   33588           2 :                 if (r->in.handle == NULL) {
   33589           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   33590             :                 }
   33591           2 :                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
   33592           2 :                 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
   33593           2 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.options));
   33594           2 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.local_machine));
   33595           2 :                 if (r->in.local_machine) {
   33596           2 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.local_machine, CH_UTF16)));
   33597           2 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   33598           2 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.local_machine, CH_UTF16)));
   33599           2 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.local_machine, ndr_charset_length(r->in.local_machine, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   33600             :                 }
   33601           2 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.printer_local));
   33602           2 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.notify_options));
   33603           2 :                 if (r->in.notify_options) {
   33604           2 :                         NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.notify_options));
   33605             :                 }
   33606             :         }
   33607           4 :         if (flags & NDR_OUT) {
   33608           2 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   33609             :         }
   33610           4 :         return NDR_ERR_SUCCESS;
   33611             : }
   33612             : 
   33613           8 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
   33614             : {
   33615           4 :         uint32_t _ptr_local_machine;
   33616           8 :         uint32_t size_local_machine_1 = 0;
   33617           8 :         uint32_t length_local_machine_1 = 0;
   33618           4 :         uint32_t _ptr_notify_options;
   33619           8 :         TALLOC_CTX *_mem_save_handle_0 = NULL;
   33620           8 :         TALLOC_CTX *_mem_save_local_machine_0 = NULL;
   33621           8 :         TALLOC_CTX *_mem_save_notify_options_0 = NULL;
   33622           8 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   33623           8 :         if (flags & NDR_IN) {
   33624           4 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   33625           4 :                         NDR_PULL_ALLOC(ndr, r->in.handle);
   33626             :                 }
   33627           4 :                 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
   33628           4 :                 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
   33629           4 :                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
   33630           4 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
   33631           6 :                 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
   33632           4 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.options));
   33633           4 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_local_machine));
   33634           4 :                 if (_ptr_local_machine) {
   33635           4 :                         NDR_PULL_ALLOC(ndr, r->in.local_machine);
   33636             :                 } else {
   33637           0 :                         r->in.local_machine = NULL;
   33638             :                 }
   33639           4 :                 if (r->in.local_machine) {
   33640           4 :                         _mem_save_local_machine_0 = NDR_PULL_GET_MEM_CTX(ndr);
   33641           4 :                         NDR_PULL_SET_MEM_CTX(ndr, r->in.local_machine, 0);
   33642           4 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.local_machine));
   33643           4 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.local_machine));
   33644           4 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.local_machine, &size_local_machine_1));
   33645           4 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.local_machine, &length_local_machine_1));
   33646           4 :                         if (length_local_machine_1 > size_local_machine_1) {
   33647           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_local_machine_1, length_local_machine_1);
   33648             :                         }
   33649           4 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_local_machine_1, sizeof(uint16_t)));
   33650           4 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.local_machine, length_local_machine_1, sizeof(uint16_t), CH_UTF16));
   33651           4 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_local_machine_0, 0);
   33652             :                 }
   33653           4 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.printer_local));
   33654           4 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_options));
   33655           4 :                 if (_ptr_notify_options) {
   33656           4 :                         NDR_PULL_ALLOC(ndr, r->in.notify_options);
   33657             :                 } else {
   33658           0 :                         r->in.notify_options = NULL;
   33659             :                 }
   33660           4 :                 if (r->in.notify_options) {
   33661           4 :                         _mem_save_notify_options_0 = NDR_PULL_GET_MEM_CTX(ndr);
   33662           4 :                         NDR_PULL_SET_MEM_CTX(ndr, r->in.notify_options, 0);
   33663           4 :                         NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.notify_options));
   33664           4 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_options_0, 0);
   33665             :                 }
   33666             :         }
   33667           8 :         if (flags & NDR_OUT) {
   33668             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   33669             :                 if (r->in.handle == NULL) {
   33670             :                         NDR_PULL_ALLOC(ndr, r->in.handle);
   33671             :                         NDR_ZERO_STRUCTP(r->in.handle);
   33672             :                 }
   33673             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   33674           4 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   33675             :         }
   33676           4 :         return NDR_ERR_SUCCESS;
   33677             : }
   33678             : 
   33679           4 : _PUBLIC_ void ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
   33680             : {
   33681           4 :         ndr_print_struct(ndr, name, "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
   33682           4 :         if (r == NULL) { ndr_print_null(ndr); return; }
   33683           4 :         ndr->depth++;
   33684           4 :         if (flags & NDR_SET_VALUES) {
   33685           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   33686             :         }
   33687           4 :         if (flags & NDR_IN) {
   33688           2 :                 ndr_print_struct(ndr, "in", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
   33689           2 :                 ndr->depth++;
   33690           2 :                 ndr_print_ptr(ndr, "handle", r->in.handle);
   33691           2 :                 ndr->depth++;
   33692           2 :                 ndr_print_policy_handle(ndr, "handle", r->in.handle);
   33693           2 :                 ndr->depth--;
   33694           2 :                 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
   33695           2 :                 ndr_print_uint32(ndr, "options", r->in.options);
   33696           2 :                 ndr_print_ptr(ndr, "local_machine", r->in.local_machine);
   33697           2 :                 ndr->depth++;
   33698           2 :                 if (r->in.local_machine) {
   33699           2 :                         ndr_print_string(ndr, "local_machine", r->in.local_machine);
   33700             :                 }
   33701           2 :                 ndr->depth--;
   33702           2 :                 ndr_print_uint32(ndr, "printer_local", r->in.printer_local);
   33703           2 :                 ndr_print_ptr(ndr, "notify_options", r->in.notify_options);
   33704           2 :                 ndr->depth++;
   33705           2 :                 if (r->in.notify_options) {
   33706           2 :                         ndr_print_spoolss_NotifyOption(ndr, "notify_options", r->in.notify_options);
   33707             :                 }
   33708           2 :                 ndr->depth--;
   33709           2 :                 ndr->depth--;
   33710             :         }
   33711           4 :         if (flags & NDR_OUT) {
   33712           2 :                 ndr_print_struct(ndr, "out", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
   33713           2 :                 ndr->depth++;
   33714           2 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   33715           2 :                 ndr->depth--;
   33716             :         }
   33717           4 :         ndr->depth--;
   33718             : }
   33719             : 
   33720           0 : static enum ndr_err_code ndr_push_spoolss_RouterReplyPrinterEx(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_RouterReplyPrinterEx *r)
   33721             : {
   33722           0 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   33723           0 :         if (flags & NDR_IN) {
   33724           0 :                 if (r->in.handle == NULL) {
   33725           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   33726             :                 }
   33727           0 :                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
   33728           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.color));
   33729           0 :                 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
   33730           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.reply_type));
   33731           0 :                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.reply_type));
   33732           0 :                 NDR_CHECK(ndr_push_spoolss_ReplyPrinterInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
   33733             :         }
   33734           0 :         if (flags & NDR_OUT) {
   33735           0 :                 if (r->out.reply_result == NULL) {
   33736           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   33737             :                 }
   33738           0 :                 NDR_CHECK(ndr_push_spoolss_PrinterNotifyFlags(ndr, NDR_SCALARS, *r->out.reply_result));
   33739           0 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   33740             :         }
   33741           0 :         return NDR_ERR_SUCCESS;
   33742             : }
   33743             : 
   33744           0 : static enum ndr_err_code ndr_pull_spoolss_RouterReplyPrinterEx(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_RouterReplyPrinterEx *r)
   33745             : {
   33746           0 :         TALLOC_CTX *_mem_save_handle_0 = NULL;
   33747           0 :         TALLOC_CTX *_mem_save_reply_result_0 = NULL;
   33748           0 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   33749           0 :         if (flags & NDR_IN) {
   33750           0 :                 NDR_ZERO_STRUCT(r->out);
   33751             : 
   33752           0 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   33753           0 :                         NDR_PULL_ALLOC(ndr, r->in.handle);
   33754             :                 }
   33755           0 :                 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
   33756           0 :                 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
   33757           0 :                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
   33758           0 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
   33759           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.color));
   33760           0 :                 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
   33761           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.reply_type));
   33762           0 :                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.reply_type));
   33763           0 :                 NDR_CHECK(ndr_pull_spoolss_ReplyPrinterInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
   33764           0 :                 NDR_PULL_ALLOC(ndr, r->out.reply_result);
   33765           0 :                 NDR_ZERO_STRUCTP(r->out.reply_result);
   33766             :         }
   33767           0 :         if (flags & NDR_OUT) {
   33768             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   33769             :                 if (r->in.handle == NULL) {
   33770             :                         NDR_PULL_ALLOC(ndr, r->in.handle);
   33771             :                         NDR_ZERO_STRUCTP(r->in.handle);
   33772             :                 }
   33773             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   33774           0 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   33775           0 :                         NDR_PULL_ALLOC(ndr, r->out.reply_result);
   33776             :                 }
   33777           0 :                 _mem_save_reply_result_0 = NDR_PULL_GET_MEM_CTX(ndr);
   33778           0 :                 NDR_PULL_SET_MEM_CTX(ndr, r->out.reply_result, LIBNDR_FLAG_REF_ALLOC);
   33779           0 :                 NDR_CHECK(ndr_pull_spoolss_PrinterNotifyFlags(ndr, NDR_SCALARS, r->out.reply_result));
   33780           0 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_reply_result_0, LIBNDR_FLAG_REF_ALLOC);
   33781           0 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   33782             :         }
   33783           0 :         return NDR_ERR_SUCCESS;
   33784             : }
   33785             : 
   33786           0 : _PUBLIC_ void ndr_print_spoolss_RouterReplyPrinterEx(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_RouterReplyPrinterEx *r)
   33787             : {
   33788           0 :         ndr_print_struct(ndr, name, "spoolss_RouterReplyPrinterEx");
   33789           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   33790           0 :         ndr->depth++;
   33791           0 :         if (flags & NDR_SET_VALUES) {
   33792           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   33793             :         }
   33794           0 :         if (flags & NDR_IN) {
   33795           0 :                 ndr_print_struct(ndr, "in", "spoolss_RouterReplyPrinterEx");
   33796           0 :                 ndr->depth++;
   33797           0 :                 ndr_print_ptr(ndr, "handle", r->in.handle);
   33798           0 :                 ndr->depth++;
   33799           0 :                 ndr_print_policy_handle(ndr, "handle", r->in.handle);
   33800           0 :                 ndr->depth--;
   33801           0 :                 ndr_print_uint32(ndr, "color", r->in.color);
   33802           0 :                 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
   33803           0 :                 ndr_print_uint32(ndr, "reply_type", r->in.reply_type);
   33804           0 :                 ndr_print_set_switch_value(ndr, &r->in.info, r->in.reply_type);
   33805           0 :                 ndr_print_spoolss_ReplyPrinterInfo(ndr, "info", &r->in.info);
   33806           0 :                 ndr->depth--;
   33807             :         }
   33808           0 :         if (flags & NDR_OUT) {
   33809           0 :                 ndr_print_struct(ndr, "out", "spoolss_RouterReplyPrinterEx");
   33810           0 :                 ndr->depth++;
   33811           0 :                 ndr_print_ptr(ndr, "reply_result", r->out.reply_result);
   33812           0 :                 ndr->depth++;
   33813           0 :                 ndr_print_spoolss_PrinterNotifyFlags(ndr, "reply_result", *r->out.reply_result);
   33814           0 :                 ndr->depth--;
   33815           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   33816           0 :                 ndr->depth--;
   33817             :         }
   33818           0 :         ndr->depth--;
   33819             : }
   33820             : 
   33821           8 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_RouterRefreshPrinterChangeNotify *r)
   33822             : {
   33823           8 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   33824           8 :         if (flags & NDR_IN) {
   33825           4 :                 if (r->in.handle == NULL) {
   33826           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   33827             :                 }
   33828           4 :                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
   33829           4 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.change_low));
   33830           4 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.options));
   33831           4 :                 if (r->in.options) {
   33832           2 :                         NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.options));
   33833             :                 }
   33834             :         }
   33835           8 :         if (flags & NDR_OUT) {
   33836           4 :                 if (r->out.info == NULL) {
   33837           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   33838             :                 }
   33839           4 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
   33840           4 :                 if (*r->out.info) {
   33841           4 :                         NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
   33842             :                 }
   33843           4 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   33844             :         }
   33845           8 :         return NDR_ERR_SUCCESS;
   33846             : }
   33847             : 
   33848          12 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_RouterRefreshPrinterChangeNotify *r)
   33849             : {
   33850           4 :         uint32_t _ptr_options;
   33851           4 :         uint32_t _ptr_info;
   33852          12 :         TALLOC_CTX *_mem_save_handle_0 = NULL;
   33853          12 :         TALLOC_CTX *_mem_save_options_0 = NULL;
   33854          12 :         TALLOC_CTX *_mem_save_info_0 = NULL;
   33855          12 :         TALLOC_CTX *_mem_save_info_1 = NULL;
   33856          12 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   33857          12 :         if (flags & NDR_IN) {
   33858           6 :                 NDR_ZERO_STRUCT(r->out);
   33859             : 
   33860           6 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   33861           6 :                         NDR_PULL_ALLOC(ndr, r->in.handle);
   33862             :                 }
   33863           6 :                 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
   33864           6 :                 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
   33865           6 :                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
   33866           6 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
   33867           6 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.change_low));
   33868           6 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_options));
   33869           6 :                 if (_ptr_options) {
   33870           4 :                         NDR_PULL_ALLOC(ndr, r->in.options);
   33871             :                 } else {
   33872           2 :                         r->in.options = NULL;
   33873             :                 }
   33874           6 :                 if (r->in.options) {
   33875           4 :                         _mem_save_options_0 = NDR_PULL_GET_MEM_CTX(ndr);
   33876           4 :                         NDR_PULL_SET_MEM_CTX(ndr, r->in.options, 0);
   33877           4 :                         NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.options));
   33878           4 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_options_0, 0);
   33879             :                 }
   33880           6 :                 NDR_PULL_ALLOC(ndr, r->out.info);
   33881           6 :                 NDR_ZERO_STRUCTP(r->out.info);
   33882             :         }
   33883          12 :         if (flags & NDR_OUT) {
   33884             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   33885             :                 if (r->in.handle == NULL) {
   33886             :                         NDR_PULL_ALLOC(ndr, r->in.handle);
   33887             :                         NDR_ZERO_STRUCTP(r->in.handle);
   33888             :                 }
   33889             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   33890           6 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   33891           2 :                         NDR_PULL_ALLOC(ndr, r->out.info);
   33892             :                 }
   33893           6 :                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
   33894           6 :                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
   33895           6 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
   33896           6 :                 if (_ptr_info) {
   33897           6 :                         NDR_PULL_ALLOC(ndr, *r->out.info);
   33898             :                 } else {
   33899           0 :                         *r->out.info = NULL;
   33900             :                 }
   33901           6 :                 if (*r->out.info) {
   33902           6 :                         _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
   33903           6 :                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
   33904           6 :                         NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
   33905           6 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
   33906             :                 }
   33907           6 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
   33908           6 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   33909             :         }
   33910           8 :         return NDR_ERR_SUCCESS;
   33911             : }
   33912             : 
   33913           4 : _PUBLIC_ void ndr_print_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_RouterRefreshPrinterChangeNotify *r)
   33914             : {
   33915           4 :         ndr_print_struct(ndr, name, "spoolss_RouterRefreshPrinterChangeNotify");
   33916           4 :         if (r == NULL) { ndr_print_null(ndr); return; }
   33917           4 :         ndr->depth++;
   33918           4 :         if (flags & NDR_SET_VALUES) {
   33919           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   33920             :         }
   33921           4 :         if (flags & NDR_IN) {
   33922           2 :                 ndr_print_struct(ndr, "in", "spoolss_RouterRefreshPrinterChangeNotify");
   33923           2 :                 ndr->depth++;
   33924           2 :                 ndr_print_ptr(ndr, "handle", r->in.handle);
   33925           2 :                 ndr->depth++;
   33926           2 :                 ndr_print_policy_handle(ndr, "handle", r->in.handle);
   33927           2 :                 ndr->depth--;
   33928           2 :                 ndr_print_uint32(ndr, "change_low", r->in.change_low);
   33929           2 :                 ndr_print_ptr(ndr, "options", r->in.options);
   33930           2 :                 ndr->depth++;
   33931           2 :                 if (r->in.options) {
   33932           2 :                         ndr_print_spoolss_NotifyOption(ndr, "options", r->in.options);
   33933             :                 }
   33934           2 :                 ndr->depth--;
   33935           2 :                 ndr->depth--;
   33936             :         }
   33937           4 :         if (flags & NDR_OUT) {
   33938           2 :                 ndr_print_struct(ndr, "out", "spoolss_RouterRefreshPrinterChangeNotify");
   33939           2 :                 ndr->depth++;
   33940           2 :                 ndr_print_ptr(ndr, "info", r->out.info);
   33941           2 :                 ndr->depth++;
   33942           2 :                 ndr_print_ptr(ndr, "info", *r->out.info);
   33943           2 :                 ndr->depth++;
   33944           2 :                 if (*r->out.info) {
   33945           2 :                         ndr_print_spoolss_NotifyInfo(ndr, "info", *r->out.info);
   33946             :                 }
   33947           2 :                 ndr->depth--;
   33948           2 :                 ndr->depth--;
   33949           2 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   33950           2 :                 ndr->depth--;
   33951             :         }
   33952           4 :         ndr->depth--;
   33953             : }
   33954             : 
   33955           0 : static enum ndr_err_code ndr_push_spoolss_44(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_44 *r)
   33956             : {
   33957           0 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   33958           0 :         if (flags & NDR_IN) {
   33959           0 :         }
   33960           0 :         if (flags & NDR_OUT) {
   33961           0 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   33962             :         }
   33963           0 :         return NDR_ERR_SUCCESS;
   33964             : }
   33965             : 
   33966           0 : static enum ndr_err_code ndr_pull_spoolss_44(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_44 *r)
   33967             : {
   33968           0 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   33969           0 :         if (flags & NDR_IN) {
   33970           0 :         }
   33971           0 :         if (flags & NDR_OUT) {
   33972             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   33973             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   33974           0 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   33975             :         }
   33976           0 :         return NDR_ERR_SUCCESS;
   33977             : }
   33978             : 
   33979           0 : _PUBLIC_ void ndr_print_spoolss_44(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_44 *r)
   33980             : {
   33981           0 :         ndr_print_struct(ndr, name, "spoolss_44");
   33982           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   33983           0 :         ndr->depth++;
   33984           0 :         if (flags & NDR_SET_VALUES) {
   33985           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   33986             :         }
   33987           0 :         if (flags & NDR_IN) {
   33988           0 :                 ndr_print_struct(ndr, "in", "spoolss_44");
   33989           0 :                 ndr->depth++;
   33990           0 :                 ndr->depth--;
   33991             :         }
   33992           0 :         if (flags & NDR_OUT) {
   33993           0 :                 ndr_print_struct(ndr, "out", "spoolss_44");
   33994           0 :                 ndr->depth++;
   33995           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   33996           0 :                 ndr->depth--;
   33997             :         }
   33998           0 :         ndr->depth--;
   33999             : }
   34000             : 
   34001        1588 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OpenPrinterEx(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_OpenPrinterEx *r)
   34002             : {
   34003        1588 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   34004        1588 :         if (flags & NDR_IN) {
   34005         794 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.printername));
   34006         794 :                 if (r->in.printername) {
   34007         794 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
   34008         794 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   34009         794 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
   34010         794 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.printername, ndr_charset_length(r->in.printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   34011             :                 }
   34012         794 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.datatype));
   34013         794 :                 if (r->in.datatype) {
   34014           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
   34015           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   34016           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
   34017           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.datatype, ndr_charset_length(r->in.datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   34018             :                 }
   34019         794 :                 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
   34020         794 :                 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr, NDR_SCALARS, r->in.access_mask));
   34021         794 :                 NDR_CHECK(ndr_push_spoolss_UserLevelCtr(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.userlevel_ctr));
   34022             :         }
   34023        1588 :         if (flags & NDR_OUT) {
   34024         794 :                 if (r->out.handle == NULL) {
   34025           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   34026             :                 }
   34027         794 :                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
   34028         794 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   34029             :         }
   34030        1588 :         return NDR_ERR_SUCCESS;
   34031             : }
   34032             : 
   34033        1596 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OpenPrinterEx(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_OpenPrinterEx *r)
   34034             : {
   34035           8 :         uint32_t _ptr_printername;
   34036        1596 :         uint32_t size_printername_1 = 0;
   34037        1596 :         uint32_t length_printername_1 = 0;
   34038           8 :         uint32_t _ptr_datatype;
   34039        1596 :         uint32_t size_datatype_1 = 0;
   34040        1596 :         uint32_t length_datatype_1 = 0;
   34041        1596 :         TALLOC_CTX *_mem_save_printername_0 = NULL;
   34042        1596 :         TALLOC_CTX *_mem_save_datatype_0 = NULL;
   34043        1596 :         TALLOC_CTX *_mem_save_handle_0 = NULL;
   34044        1596 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   34045        1596 :         if (flags & NDR_IN) {
   34046         800 :                 NDR_ZERO_STRUCT(r->out);
   34047             : 
   34048         800 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
   34049         800 :                 if (_ptr_printername) {
   34050         800 :                         NDR_PULL_ALLOC(ndr, r->in.printername);
   34051             :                 } else {
   34052           0 :                         r->in.printername = NULL;
   34053             :                 }
   34054         800 :                 if (r->in.printername) {
   34055         800 :                         _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
   34056         800 :                         NDR_PULL_SET_MEM_CTX(ndr, r->in.printername, 0);
   34057         800 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printername));
   34058         800 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printername));
   34059         800 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.printername, &size_printername_1));
   34060         800 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.printername, &length_printername_1));
   34061         800 :                         if (length_printername_1 > size_printername_1) {
   34062           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_printername_1, length_printername_1);
   34063             :                         }
   34064         800 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_printername_1, sizeof(uint16_t)));
   34065         800 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, length_printername_1, sizeof(uint16_t), CH_UTF16));
   34066         800 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
   34067             :                 }
   34068         800 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
   34069         800 :                 if (_ptr_datatype) {
   34070           0 :                         NDR_PULL_ALLOC(ndr, r->in.datatype);
   34071             :                 } else {
   34072         800 :                         r->in.datatype = NULL;
   34073             :                 }
   34074         800 :                 if (r->in.datatype) {
   34075           0 :                         _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
   34076           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->in.datatype, 0);
   34077           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.datatype));
   34078           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.datatype));
   34079           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.datatype, &size_datatype_1));
   34080           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.datatype, &length_datatype_1));
   34081           0 :                         if (length_datatype_1 > size_datatype_1) {
   34082           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_datatype_1, length_datatype_1);
   34083             :                         }
   34084           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_datatype_1, sizeof(uint16_t)));
   34085           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.datatype, length_datatype_1, sizeof(uint16_t), CH_UTF16));
   34086           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
   34087             :                 }
   34088         800 :                 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
   34089         806 :                 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr, NDR_SCALARS, &r->in.access_mask));
   34090         800 :                 NDR_CHECK(ndr_pull_spoolss_UserLevelCtr(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.userlevel_ctr));
   34091         800 :                 NDR_PULL_ALLOC(ndr, r->out.handle);
   34092         800 :                 NDR_ZERO_STRUCTP(r->out.handle);
   34093             :         }
   34094        1596 :         if (flags & NDR_OUT) {
   34095             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   34096             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   34097         796 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   34098           8 :                         NDR_PULL_ALLOC(ndr, r->out.handle);
   34099             :                 }
   34100         796 :                 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
   34101         796 :                 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
   34102         796 :                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
   34103         796 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
   34104         796 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   34105             :         }
   34106        1588 :         return NDR_ERR_SUCCESS;
   34107             : }
   34108             : 
   34109           8 : _PUBLIC_ void ndr_print_spoolss_OpenPrinterEx(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_OpenPrinterEx *r)
   34110             : {
   34111           8 :         ndr_print_struct(ndr, name, "spoolss_OpenPrinterEx");
   34112           8 :         if (r == NULL) { ndr_print_null(ndr); return; }
   34113           8 :         ndr->depth++;
   34114           8 :         if (flags & NDR_SET_VALUES) {
   34115           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   34116             :         }
   34117           8 :         if (flags & NDR_IN) {
   34118           6 :                 ndr_print_struct(ndr, "in", "spoolss_OpenPrinterEx");
   34119           6 :                 ndr->depth++;
   34120           6 :                 ndr_print_ptr(ndr, "printername", r->in.printername);
   34121           6 :                 ndr->depth++;
   34122           6 :                 if (r->in.printername) {
   34123           6 :                         ndr_print_string(ndr, "printername", r->in.printername);
   34124             :                 }
   34125           6 :                 ndr->depth--;
   34126           6 :                 ndr_print_ptr(ndr, "datatype", r->in.datatype);
   34127           6 :                 ndr->depth++;
   34128           6 :                 if (r->in.datatype) {
   34129           0 :                         ndr_print_string(ndr, "datatype", r->in.datatype);
   34130             :                 }
   34131           6 :                 ndr->depth--;
   34132           6 :                 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", &r->in.devmode_ctr);
   34133           6 :                 ndr_print_spoolss_AccessRights(ndr, "access_mask", r->in.access_mask);
   34134           6 :                 ndr_print_spoolss_UserLevelCtr(ndr, "userlevel_ctr", &r->in.userlevel_ctr);
   34135           6 :                 ndr->depth--;
   34136             :         }
   34137           8 :         if (flags & NDR_OUT) {
   34138           2 :                 ndr_print_struct(ndr, "out", "spoolss_OpenPrinterEx");
   34139           2 :                 ndr->depth++;
   34140           2 :                 ndr_print_ptr(ndr, "handle", r->out.handle);
   34141           2 :                 ndr->depth++;
   34142           2 :                 ndr_print_policy_handle(ndr, "handle", r->out.handle);
   34143           2 :                 ndr->depth--;
   34144           2 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   34145           2 :                 ndr->depth--;
   34146             :         }
   34147           8 :         ndr->depth--;
   34148             : }
   34149             : 
   34150          48 : static enum ndr_err_code ndr_push_spoolss_AddPrinterEx(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_AddPrinterEx *r)
   34151             : {
   34152          48 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   34153          48 :         if (flags & NDR_IN) {
   34154          24 :                 if (r->in.info_ctr == NULL) {
   34155           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   34156             :                 }
   34157          24 :                 if (r->in.devmode_ctr == NULL) {
   34158           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   34159             :                 }
   34160          24 :                 if (r->in.secdesc_ctr == NULL) {
   34161           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   34162             :                 }
   34163          24 :                 if (r->in.userlevel_ctr == NULL) {
   34164           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   34165             :                 }
   34166          24 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
   34167          24 :                 if (r->in.server) {
   34168           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
   34169           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   34170           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
   34171           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   34172             :                 }
   34173          24 :                 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
   34174          24 :                 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
   34175          24 :                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
   34176          24 :                 NDR_CHECK(ndr_push_spoolss_UserLevelCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.userlevel_ctr));
   34177             :         }
   34178          48 :         if (flags & NDR_OUT) {
   34179          24 :                 if (r->out.handle == NULL) {
   34180           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   34181             :                 }
   34182          24 :                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
   34183          24 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   34184             :         }
   34185          48 :         return NDR_ERR_SUCCESS;
   34186             : }
   34187             : 
   34188          48 : static enum ndr_err_code ndr_pull_spoolss_AddPrinterEx(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_AddPrinterEx *r)
   34189             : {
   34190           0 :         uint32_t _ptr_server;
   34191          48 :         uint32_t size_server_1 = 0;
   34192          48 :         uint32_t length_server_1 = 0;
   34193          48 :         TALLOC_CTX *_mem_save_server_0 = NULL;
   34194          48 :         TALLOC_CTX *_mem_save_info_ctr_0 = NULL;
   34195          48 :         TALLOC_CTX *_mem_save_devmode_ctr_0 = NULL;
   34196          48 :         TALLOC_CTX *_mem_save_secdesc_ctr_0 = NULL;
   34197          48 :         TALLOC_CTX *_mem_save_userlevel_ctr_0 = NULL;
   34198          48 :         TALLOC_CTX *_mem_save_handle_0 = NULL;
   34199          48 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   34200          48 :         if (flags & NDR_IN) {
   34201          24 :                 NDR_ZERO_STRUCT(r->out);
   34202             : 
   34203          24 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
   34204          24 :                 if (_ptr_server) {
   34205           0 :                         NDR_PULL_ALLOC(ndr, r->in.server);
   34206             :                 } else {
   34207          24 :                         r->in.server = NULL;
   34208             :                 }
   34209          24 :                 if (r->in.server) {
   34210           0 :                         _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
   34211           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
   34212           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
   34213           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
   34214           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.server, &size_server_1));
   34215           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.server, &length_server_1));
   34216           0 :                         if (length_server_1 > size_server_1) {
   34217           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_server_1, length_server_1);
   34218             :                         }
   34219           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_server_1, sizeof(uint16_t)));
   34220           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, length_server_1, sizeof(uint16_t), CH_UTF16));
   34221           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
   34222             :                 }
   34223          24 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   34224          24 :                         NDR_PULL_ALLOC(ndr, r->in.info_ctr);
   34225             :                 }
   34226          24 :                 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
   34227          24 :                 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
   34228          24 :                 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
   34229          24 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
   34230          24 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   34231          24 :                         NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
   34232             :                 }
   34233          24 :                 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
   34234          24 :                 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
   34235          24 :                 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
   34236          24 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
   34237          24 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   34238          24 :                         NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
   34239             :                 }
   34240          24 :                 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
   34241          24 :                 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
   34242          24 :                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
   34243          24 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
   34244          24 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   34245          24 :                         NDR_PULL_ALLOC(ndr, r->in.userlevel_ctr);
   34246             :                 }
   34247          24 :                 _mem_save_userlevel_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
   34248          24 :                 NDR_PULL_SET_MEM_CTX(ndr, r->in.userlevel_ctr, LIBNDR_FLAG_REF_ALLOC);
   34249          24 :                 NDR_CHECK(ndr_pull_spoolss_UserLevelCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.userlevel_ctr));
   34250          24 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_userlevel_ctr_0, LIBNDR_FLAG_REF_ALLOC);
   34251          24 :                 NDR_PULL_ALLOC(ndr, r->out.handle);
   34252          24 :                 NDR_ZERO_STRUCTP(r->out.handle);
   34253             :         }
   34254          48 :         if (flags & NDR_OUT) {
   34255             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   34256             :                 if (r->in.info_ctr == NULL) {
   34257             :                         NDR_PULL_ALLOC(ndr, r->in.info_ctr);
   34258             :                         NDR_ZERO_STRUCTP(r->in.info_ctr);
   34259             :                 }
   34260             :                 if (r->in.devmode_ctr == NULL) {
   34261             :                         NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
   34262             :                         NDR_ZERO_STRUCTP(r->in.devmode_ctr);
   34263             :                 }
   34264             :                 if (r->in.secdesc_ctr == NULL) {
   34265             :                         NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
   34266             :                         NDR_ZERO_STRUCTP(r->in.secdesc_ctr);
   34267             :                 }
   34268             :                 if (r->in.userlevel_ctr == NULL) {
   34269             :                         NDR_PULL_ALLOC(ndr, r->in.userlevel_ctr);
   34270             :                         NDR_ZERO_STRUCTP(r->in.userlevel_ctr);
   34271             :                 }
   34272             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   34273          24 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   34274           0 :                         NDR_PULL_ALLOC(ndr, r->out.handle);
   34275             :                 }
   34276          24 :                 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
   34277          24 :                 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
   34278          24 :                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
   34279          24 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
   34280          24 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   34281             :         }
   34282          48 :         return NDR_ERR_SUCCESS;
   34283             : }
   34284             : 
   34285           0 : _PUBLIC_ void ndr_print_spoolss_AddPrinterEx(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_AddPrinterEx *r)
   34286             : {
   34287           0 :         ndr_print_struct(ndr, name, "spoolss_AddPrinterEx");
   34288           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   34289           0 :         ndr->depth++;
   34290           0 :         if (flags & NDR_SET_VALUES) {
   34291           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   34292             :         }
   34293           0 :         if (flags & NDR_IN) {
   34294           0 :                 ndr_print_struct(ndr, "in", "spoolss_AddPrinterEx");
   34295           0 :                 ndr->depth++;
   34296           0 :                 ndr_print_ptr(ndr, "server", r->in.server);
   34297           0 :                 ndr->depth++;
   34298           0 :                 if (r->in.server) {
   34299           0 :                         ndr_print_string(ndr, "server", r->in.server);
   34300             :                 }
   34301           0 :                 ndr->depth--;
   34302           0 :                 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
   34303           0 :                 ndr->depth++;
   34304           0 :                 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
   34305           0 :                 ndr->depth--;
   34306           0 :                 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
   34307           0 :                 ndr->depth++;
   34308           0 :                 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
   34309           0 :                 ndr->depth--;
   34310           0 :                 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
   34311           0 :                 ndr->depth++;
   34312           0 :                 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
   34313           0 :                 ndr->depth--;
   34314           0 :                 ndr_print_ptr(ndr, "userlevel_ctr", r->in.userlevel_ctr);
   34315           0 :                 ndr->depth++;
   34316           0 :                 ndr_print_spoolss_UserLevelCtr(ndr, "userlevel_ctr", r->in.userlevel_ctr);
   34317           0 :                 ndr->depth--;
   34318           0 :                 ndr->depth--;
   34319             :         }
   34320           0 :         if (flags & NDR_OUT) {
   34321           0 :                 ndr_print_struct(ndr, "out", "spoolss_AddPrinterEx");
   34322           0 :                 ndr->depth++;
   34323           0 :                 ndr_print_ptr(ndr, "handle", r->out.handle);
   34324           0 :                 ndr->depth++;
   34325           0 :                 ndr_print_policy_handle(ndr, "handle", r->out.handle);
   34326           0 :                 ndr->depth--;
   34327           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   34328           0 :                 ndr->depth--;
   34329             :         }
   34330           0 :         ndr->depth--;
   34331             : }
   34332             : 
   34333           0 : static enum ndr_err_code ndr_push_spoolss_SetPort(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_SetPort *r)
   34334             : {
   34335           0 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   34336           0 :         if (flags & NDR_IN) {
   34337           0 :                 if (r->in.port_ctr == NULL) {
   34338           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   34339             :                 }
   34340           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
   34341           0 :                 if (r->in.servername) {
   34342           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
   34343           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   34344           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
   34345           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   34346             :                 }
   34347           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.port_name));
   34348           0 :                 if (r->in.port_name) {
   34349           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.port_name, CH_UTF16)));
   34350           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   34351           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.port_name, CH_UTF16)));
   34352           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.port_name, ndr_charset_length(r->in.port_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   34353             :                 }
   34354           0 :                 NDR_CHECK(ndr_push_spoolss_SetPortInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.port_ctr));
   34355             :         }
   34356           0 :         if (flags & NDR_OUT) {
   34357           0 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   34358             :         }
   34359           0 :         return NDR_ERR_SUCCESS;
   34360             : }
   34361             : 
   34362           0 : static enum ndr_err_code ndr_pull_spoolss_SetPort(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_SetPort *r)
   34363             : {
   34364           0 :         uint32_t _ptr_servername;
   34365           0 :         uint32_t size_servername_1 = 0;
   34366           0 :         uint32_t length_servername_1 = 0;
   34367           0 :         uint32_t _ptr_port_name;
   34368           0 :         uint32_t size_port_name_1 = 0;
   34369           0 :         uint32_t length_port_name_1 = 0;
   34370           0 :         TALLOC_CTX *_mem_save_servername_0 = NULL;
   34371           0 :         TALLOC_CTX *_mem_save_port_name_0 = NULL;
   34372           0 :         TALLOC_CTX *_mem_save_port_ctr_0 = NULL;
   34373           0 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   34374           0 :         if (flags & NDR_IN) {
   34375           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
   34376           0 :                 if (_ptr_servername) {
   34377           0 :                         NDR_PULL_ALLOC(ndr, r->in.servername);
   34378             :                 } else {
   34379           0 :                         r->in.servername = NULL;
   34380             :                 }
   34381           0 :                 if (r->in.servername) {
   34382           0 :                         _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
   34383           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
   34384           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
   34385           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
   34386           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.servername, &size_servername_1));
   34387           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.servername, &length_servername_1));
   34388           0 :                         if (length_servername_1 > size_servername_1) {
   34389           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_servername_1, length_servername_1);
   34390             :                         }
   34391           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_servername_1, sizeof(uint16_t)));
   34392           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, length_servername_1, sizeof(uint16_t), CH_UTF16));
   34393           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
   34394             :                 }
   34395           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
   34396           0 :                 if (_ptr_port_name) {
   34397           0 :                         NDR_PULL_ALLOC(ndr, r->in.port_name);
   34398             :                 } else {
   34399           0 :                         r->in.port_name = NULL;
   34400             :                 }
   34401           0 :                 if (r->in.port_name) {
   34402           0 :                         _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
   34403           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->in.port_name, 0);
   34404           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.port_name));
   34405           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.port_name));
   34406           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.port_name, &size_port_name_1));
   34407           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.port_name, &length_port_name_1));
   34408           0 :                         if (length_port_name_1 > size_port_name_1) {
   34409           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_port_name_1, length_port_name_1);
   34410             :                         }
   34411           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_port_name_1, sizeof(uint16_t)));
   34412           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.port_name, length_port_name_1, sizeof(uint16_t), CH_UTF16));
   34413           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
   34414             :                 }
   34415           0 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   34416           0 :                         NDR_PULL_ALLOC(ndr, r->in.port_ctr);
   34417             :                 }
   34418           0 :                 _mem_save_port_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
   34419           0 :                 NDR_PULL_SET_MEM_CTX(ndr, r->in.port_ctr, LIBNDR_FLAG_REF_ALLOC);
   34420           0 :                 NDR_CHECK(ndr_pull_spoolss_SetPortInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.port_ctr));
   34421           0 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_ctr_0, LIBNDR_FLAG_REF_ALLOC);
   34422             :         }
   34423           0 :         if (flags & NDR_OUT) {
   34424             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   34425             :                 if (r->in.port_ctr == NULL) {
   34426             :                         NDR_PULL_ALLOC(ndr, r->in.port_ctr);
   34427             :                         NDR_ZERO_STRUCTP(r->in.port_ctr);
   34428             :                 }
   34429             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   34430           0 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   34431             :         }
   34432           0 :         return NDR_ERR_SUCCESS;
   34433             : }
   34434             : 
   34435           0 : _PUBLIC_ void ndr_print_spoolss_SetPort(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_SetPort *r)
   34436             : {
   34437           0 :         ndr_print_struct(ndr, name, "spoolss_SetPort");
   34438           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   34439           0 :         ndr->depth++;
   34440           0 :         if (flags & NDR_SET_VALUES) {
   34441           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   34442             :         }
   34443           0 :         if (flags & NDR_IN) {
   34444           0 :                 ndr_print_struct(ndr, "in", "spoolss_SetPort");
   34445           0 :                 ndr->depth++;
   34446           0 :                 ndr_print_ptr(ndr, "servername", r->in.servername);
   34447           0 :                 ndr->depth++;
   34448           0 :                 if (r->in.servername) {
   34449           0 :                         ndr_print_string(ndr, "servername", r->in.servername);
   34450             :                 }
   34451           0 :                 ndr->depth--;
   34452           0 :                 ndr_print_ptr(ndr, "port_name", r->in.port_name);
   34453           0 :                 ndr->depth++;
   34454           0 :                 if (r->in.port_name) {
   34455           0 :                         ndr_print_string(ndr, "port_name", r->in.port_name);
   34456             :                 }
   34457           0 :                 ndr->depth--;
   34458           0 :                 ndr_print_ptr(ndr, "port_ctr", r->in.port_ctr);
   34459           0 :                 ndr->depth++;
   34460           0 :                 ndr_print_spoolss_SetPortInfoContainer(ndr, "port_ctr", r->in.port_ctr);
   34461           0 :                 ndr->depth--;
   34462           0 :                 ndr->depth--;
   34463             :         }
   34464           0 :         if (flags & NDR_OUT) {
   34465           0 :                 ndr_print_struct(ndr, "out", "spoolss_SetPort");
   34466           0 :                 ndr->depth++;
   34467           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   34468           0 :                 ndr->depth--;
   34469             :         }
   34470           0 :         ndr->depth--;
   34471             : }
   34472             : 
   34473         304 : static enum ndr_err_code ndr_push_spoolss_EnumPrinterData(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_EnumPrinterData *r)
   34474             : {
   34475         304 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   34476         304 :         if (flags & NDR_IN) {
   34477         152 :                 if (r->in.handle == NULL) {
   34478           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   34479             :                 }
   34480         152 :                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
   34481         152 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.enum_index));
   34482         152 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.value_offered));
   34483         152 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_offered));
   34484             :         }
   34485         304 :         if (flags & NDR_OUT) {
   34486         152 :                 if (r->out.value_needed == NULL) {
   34487           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   34488             :                 }
   34489         152 :                 if (r->out.type == NULL) {
   34490           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   34491             :                 }
   34492         152 :                 if (r->out.data == NULL) {
   34493           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   34494             :                 }
   34495         152 :                 if (r->out.data_needed == NULL) {
   34496           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   34497             :                 }
   34498         152 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.value_offered / 2));
   34499         152 :                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->out.value_name, r->in.value_offered / 2, sizeof(uint16_t), CH_UTF16));
   34500         152 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.value_needed));
   34501         152 :                 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
   34502             :                 {
   34503         152 :                         libndr_flags _flags_save_uint8 = ndr->flags;
   34504         152 :                         ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
   34505         152 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.data_offered));
   34506         152 :                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, r->in.data_offered));
   34507         152 :                         ndr->flags = _flags_save_uint8;
   34508             :                 }
   34509         152 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.data_needed));
   34510         152 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   34511             :         }
   34512         304 :         return NDR_ERR_SUCCESS;
   34513             : }
   34514             : 
   34515         304 : static enum ndr_err_code ndr_pull_spoolss_EnumPrinterData(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_EnumPrinterData *r)
   34516             : {
   34517         304 :         uint32_t size_value_name_0 = 0;
   34518         304 :         uint32_t size_data_1 = 0;
   34519         304 :         TALLOC_CTX *_mem_save_handle_0 = NULL;
   34520         304 :         TALLOC_CTX *_mem_save_value_needed_0 = NULL;
   34521         304 :         TALLOC_CTX *_mem_save_type_0 = NULL;
   34522         304 :         TALLOC_CTX *_mem_save_data_needed_0 = NULL;
   34523         304 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   34524         304 :         if (flags & NDR_IN) {
   34525         152 :                 NDR_ZERO_STRUCT(r->out);
   34526             : 
   34527         152 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   34528         152 :                         NDR_PULL_ALLOC(ndr, r->in.handle);
   34529             :                 }
   34530         152 :                 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
   34531         152 :                 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
   34532         152 :                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
   34533         152 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
   34534         152 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.enum_index));
   34535         152 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.value_offered));
   34536         152 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.data_offered));
   34537         152 :                 NDR_PULL_ALLOC(ndr, r->out.value_needed);
   34538         152 :                 NDR_ZERO_STRUCTP(r->out.value_needed);
   34539         152 :                 NDR_PULL_ALLOC(ndr, r->out.type);
   34540         152 :                 NDR_ZERO_STRUCTP(r->out.type);
   34541         152 :                 NDR_PULL_ALLOC_N(ndr, r->out.data, r->in.data_offered);
   34542         152 :                 memset(r->out.data, 0, (r->in.data_offered) * sizeof(*r->out.data));
   34543         152 :                 NDR_PULL_ALLOC(ndr, r->out.data_needed);
   34544         152 :                 NDR_ZERO_STRUCTP(r->out.data_needed);
   34545             :         }
   34546         304 :         if (flags & NDR_OUT) {
   34547             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   34548             :                 if (r->in.handle == NULL) {
   34549             :                         NDR_PULL_ALLOC(ndr, r->in.handle);
   34550             :                         NDR_ZERO_STRUCTP(r->in.handle);
   34551             :                 }
   34552             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   34553         152 :                 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.value_name));
   34554         152 :                 NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->out.value_name, &size_value_name_0));
   34555         152 :                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->out.value_name, size_value_name_0, sizeof(uint16_t), CH_UTF16));
   34556         152 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   34557           0 :                         NDR_PULL_ALLOC(ndr, r->out.value_needed);
   34558             :                 }
   34559         152 :                 _mem_save_value_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
   34560         152 :                 NDR_PULL_SET_MEM_CTX(ndr, r->out.value_needed, LIBNDR_FLAG_REF_ALLOC);
   34561         152 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.value_needed));
   34562         152 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_needed_0, LIBNDR_FLAG_REF_ALLOC);
   34563         152 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   34564           0 :                         NDR_PULL_ALLOC(ndr, r->out.type);
   34565             :                 }
   34566         152 :                 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
   34567         152 :                 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
   34568         152 :                 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
   34569         152 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
   34570             :                 {
   34571         152 :                         libndr_flags _flags_save_uint8 = ndr->flags;
   34572         152 :                         ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
   34573         152 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
   34574         152 :                         NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->out.data, &size_data_1));
   34575         152 :                         if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   34576           0 :                                 NDR_PULL_ALLOC_N(ndr, r->out.data, size_data_1);
   34577             :                         }
   34578         152 :                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, size_data_1));
   34579         152 :                         ndr->flags = _flags_save_uint8;
   34580             :                 }
   34581         152 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   34582           0 :                         NDR_PULL_ALLOC(ndr, r->out.data_needed);
   34583             :                 }
   34584         152 :                 _mem_save_data_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
   34585         152 :                 NDR_PULL_SET_MEM_CTX(ndr, r->out.data_needed, LIBNDR_FLAG_REF_ALLOC);
   34586         152 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.data_needed));
   34587         152 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_needed_0, LIBNDR_FLAG_REF_ALLOC);
   34588         152 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   34589         152 :                 if (r->out.value_name) {
   34590         152 :                         NDR_CHECK(ndr_check_steal_array_size(ndr, (void*)&r->out.value_name, r->in.value_offered / 2));
   34591             :                 }
   34592         152 :                 if (r->out.data) {
   34593         152 :                         NDR_CHECK(ndr_check_steal_array_size(ndr, (void*)&r->out.data, r->in.data_offered));
   34594             :                 }
   34595             :         }
   34596         304 :         return NDR_ERR_SUCCESS;
   34597             : }
   34598             : 
   34599           0 : _PUBLIC_ void ndr_print_spoolss_EnumPrinterData(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_EnumPrinterData *r)
   34600             : {
   34601           0 :         ndr_print_struct(ndr, name, "spoolss_EnumPrinterData");
   34602           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   34603           0 :         ndr->depth++;
   34604           0 :         if (flags & NDR_SET_VALUES) {
   34605           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   34606             :         }
   34607           0 :         if (flags & NDR_IN) {
   34608           0 :                 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterData");
   34609           0 :                 ndr->depth++;
   34610           0 :                 ndr_print_ptr(ndr, "handle", r->in.handle);
   34611           0 :                 ndr->depth++;
   34612           0 :                 ndr_print_policy_handle(ndr, "handle", r->in.handle);
   34613           0 :                 ndr->depth--;
   34614           0 :                 ndr_print_uint32(ndr, "enum_index", r->in.enum_index);
   34615           0 :                 ndr_print_uint32(ndr, "value_offered", r->in.value_offered);
   34616           0 :                 ndr_print_uint32(ndr, "data_offered", r->in.data_offered);
   34617           0 :                 ndr->depth--;
   34618             :         }
   34619           0 :         if (flags & NDR_OUT) {
   34620           0 :                 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterData");
   34621           0 :                 ndr->depth++;
   34622           0 :                 ndr_print_string(ndr, "value_name", r->out.value_name);
   34623           0 :                 ndr_print_ptr(ndr, "value_needed", r->out.value_needed);
   34624           0 :                 ndr->depth++;
   34625           0 :                 ndr_print_uint32(ndr, "value_needed", *r->out.value_needed);
   34626           0 :                 ndr->depth--;
   34627           0 :                 ndr_print_ptr(ndr, "type", r->out.type);
   34628           0 :                 ndr->depth++;
   34629           0 :                 ndr_print_winreg_Type(ndr, "type", *r->out.type);
   34630           0 :                 ndr->depth--;
   34631             :                 {
   34632           0 :                         libndr_flags _flags_save_uint8 = ndr->flags;
   34633           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
   34634           0 :                         ndr_print_ptr(ndr, "data", r->out.data);
   34635           0 :                         ndr->depth++;
   34636           0 :                         ndr_print_array_uint8(ndr, "data", r->out.data, r->in.data_offered);
   34637           0 :                         ndr->depth--;
   34638           0 :                         ndr->flags = _flags_save_uint8;
   34639             :                 }
   34640           0 :                 ndr_print_ptr(ndr, "data_needed", r->out.data_needed);
   34641           0 :                 ndr->depth++;
   34642           0 :                 ndr_print_uint32(ndr, "data_needed", *r->out.data_needed);
   34643           0 :                 ndr->depth--;
   34644           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   34645           0 :                 ndr->depth--;
   34646             :         }
   34647           0 :         ndr->depth--;
   34648             : }
   34649             : 
   34650         336 : static enum ndr_err_code ndr_push_spoolss_DeletePrinterData(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_DeletePrinterData *r)
   34651             : {
   34652         336 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   34653         336 :         if (flags & NDR_IN) {
   34654         168 :                 if (r->in.handle == NULL) {
   34655           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   34656             :                 }
   34657         168 :                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
   34658         168 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
   34659         168 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   34660         168 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
   34661         168 :                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.value_name, ndr_charset_length(r->in.value_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   34662             :         }
   34663         336 :         if (flags & NDR_OUT) {
   34664         168 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   34665             :         }
   34666         336 :         return NDR_ERR_SUCCESS;
   34667             : }
   34668             : 
   34669         336 : static enum ndr_err_code ndr_pull_spoolss_DeletePrinterData(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_DeletePrinterData *r)
   34670             : {
   34671         336 :         uint32_t size_value_name_0 = 0;
   34672         336 :         uint32_t length_value_name_0 = 0;
   34673         336 :         TALLOC_CTX *_mem_save_handle_0 = NULL;
   34674         336 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   34675         336 :         if (flags & NDR_IN) {
   34676         168 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   34677         168 :                         NDR_PULL_ALLOC(ndr, r->in.handle);
   34678             :                 }
   34679         168 :                 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
   34680         168 :                 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
   34681         168 :                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
   34682         168 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
   34683         168 :                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
   34684         168 :                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
   34685         168 :                 NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.value_name, &size_value_name_0));
   34686         168 :                 NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.value_name, &length_value_name_0));
   34687         168 :                 if (length_value_name_0 > size_value_name_0) {
   34688           0 :                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_value_name_0, length_value_name_0);
   34689             :                 }
   34690         168 :                 NDR_CHECK(ndr_check_string_terminator(ndr, length_value_name_0, sizeof(uint16_t)));
   34691         168 :                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.value_name, length_value_name_0, sizeof(uint16_t), CH_UTF16));
   34692             :         }
   34693         336 :         if (flags & NDR_OUT) {
   34694             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   34695             :                 if (r->in.handle == NULL) {
   34696             :                         NDR_PULL_ALLOC(ndr, r->in.handle);
   34697             :                         NDR_ZERO_STRUCTP(r->in.handle);
   34698             :                 }
   34699             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   34700         168 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   34701             :         }
   34702         336 :         return NDR_ERR_SUCCESS;
   34703             : }
   34704             : 
   34705           0 : _PUBLIC_ void ndr_print_spoolss_DeletePrinterData(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_DeletePrinterData *r)
   34706             : {
   34707           0 :         ndr_print_struct(ndr, name, "spoolss_DeletePrinterData");
   34708           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   34709           0 :         ndr->depth++;
   34710           0 :         if (flags & NDR_SET_VALUES) {
   34711           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   34712             :         }
   34713           0 :         if (flags & NDR_IN) {
   34714           0 :                 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterData");
   34715           0 :                 ndr->depth++;
   34716           0 :                 ndr_print_ptr(ndr, "handle", r->in.handle);
   34717           0 :                 ndr->depth++;
   34718           0 :                 ndr_print_policy_handle(ndr, "handle", r->in.handle);
   34719           0 :                 ndr->depth--;
   34720           0 :                 ndr_print_string(ndr, "value_name", r->in.value_name);
   34721           0 :                 ndr->depth--;
   34722             :         }
   34723           0 :         if (flags & NDR_OUT) {
   34724           0 :                 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterData");
   34725           0 :                 ndr->depth++;
   34726           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   34727           0 :                 ndr->depth--;
   34728             :         }
   34729           0 :         ndr->depth--;
   34730             : }
   34731             : 
   34732           0 : static enum ndr_err_code ndr_push_spoolss_4a(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_4a *r)
   34733             : {
   34734           0 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   34735           0 :         if (flags & NDR_IN) {
   34736           0 :         }
   34737           0 :         if (flags & NDR_OUT) {
   34738           0 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   34739             :         }
   34740           0 :         return NDR_ERR_SUCCESS;
   34741             : }
   34742             : 
   34743           0 : static enum ndr_err_code ndr_pull_spoolss_4a(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_4a *r)
   34744             : {
   34745           0 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   34746           0 :         if (flags & NDR_IN) {
   34747           0 :         }
   34748           0 :         if (flags & NDR_OUT) {
   34749             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   34750             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   34751           0 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   34752             :         }
   34753           0 :         return NDR_ERR_SUCCESS;
   34754             : }
   34755             : 
   34756           0 : _PUBLIC_ void ndr_print_spoolss_4a(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_4a *r)
   34757             : {
   34758           0 :         ndr_print_struct(ndr, name, "spoolss_4a");
   34759           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   34760           0 :         ndr->depth++;
   34761           0 :         if (flags & NDR_SET_VALUES) {
   34762           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   34763             :         }
   34764           0 :         if (flags & NDR_IN) {
   34765           0 :                 ndr_print_struct(ndr, "in", "spoolss_4a");
   34766           0 :                 ndr->depth++;
   34767           0 :                 ndr->depth--;
   34768             :         }
   34769           0 :         if (flags & NDR_OUT) {
   34770           0 :                 ndr_print_struct(ndr, "out", "spoolss_4a");
   34771           0 :                 ndr->depth++;
   34772           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   34773           0 :                 ndr->depth--;
   34774             :         }
   34775           0 :         ndr->depth--;
   34776             : }
   34777             : 
   34778           0 : static enum ndr_err_code ndr_push_spoolss_4b(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_4b *r)
   34779             : {
   34780           0 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   34781           0 :         if (flags & NDR_IN) {
   34782           0 :         }
   34783           0 :         if (flags & NDR_OUT) {
   34784           0 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   34785             :         }
   34786           0 :         return NDR_ERR_SUCCESS;
   34787             : }
   34788             : 
   34789           0 : static enum ndr_err_code ndr_pull_spoolss_4b(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_4b *r)
   34790             : {
   34791           0 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   34792           0 :         if (flags & NDR_IN) {
   34793           0 :         }
   34794           0 :         if (flags & NDR_OUT) {
   34795             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   34796             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   34797           0 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   34798             :         }
   34799           0 :         return NDR_ERR_SUCCESS;
   34800             : }
   34801             : 
   34802           0 : _PUBLIC_ void ndr_print_spoolss_4b(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_4b *r)
   34803             : {
   34804           0 :         ndr_print_struct(ndr, name, "spoolss_4b");
   34805           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   34806           0 :         ndr->depth++;
   34807           0 :         if (flags & NDR_SET_VALUES) {
   34808           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   34809             :         }
   34810           0 :         if (flags & NDR_IN) {
   34811           0 :                 ndr_print_struct(ndr, "in", "spoolss_4b");
   34812           0 :                 ndr->depth++;
   34813           0 :                 ndr->depth--;
   34814             :         }
   34815           0 :         if (flags & NDR_OUT) {
   34816           0 :                 ndr_print_struct(ndr, "out", "spoolss_4b");
   34817           0 :                 ndr->depth++;
   34818           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   34819           0 :                 ndr->depth--;
   34820             :         }
   34821           0 :         ndr->depth--;
   34822             : }
   34823             : 
   34824           0 : static enum ndr_err_code ndr_push_spoolss_4c(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_4c *r)
   34825             : {
   34826           0 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   34827           0 :         if (flags & NDR_IN) {
   34828           0 :         }
   34829           0 :         if (flags & NDR_OUT) {
   34830           0 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   34831             :         }
   34832           0 :         return NDR_ERR_SUCCESS;
   34833             : }
   34834             : 
   34835           0 : static enum ndr_err_code ndr_pull_spoolss_4c(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_4c *r)
   34836             : {
   34837           0 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   34838           0 :         if (flags & NDR_IN) {
   34839           0 :         }
   34840           0 :         if (flags & NDR_OUT) {
   34841             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   34842             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   34843           0 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   34844             :         }
   34845           0 :         return NDR_ERR_SUCCESS;
   34846             : }
   34847             : 
   34848           0 : _PUBLIC_ void ndr_print_spoolss_4c(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_4c *r)
   34849             : {
   34850           0 :         ndr_print_struct(ndr, name, "spoolss_4c");
   34851           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   34852           0 :         ndr->depth++;
   34853           0 :         if (flags & NDR_SET_VALUES) {
   34854           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   34855             :         }
   34856           0 :         if (flags & NDR_IN) {
   34857           0 :                 ndr_print_struct(ndr, "in", "spoolss_4c");
   34858           0 :                 ndr->depth++;
   34859           0 :                 ndr->depth--;
   34860             :         }
   34861           0 :         if (flags & NDR_OUT) {
   34862           0 :                 ndr_print_struct(ndr, "out", "spoolss_4c");
   34863           0 :                 ndr->depth++;
   34864           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   34865           0 :                 ndr->depth--;
   34866             :         }
   34867           0 :         ndr->depth--;
   34868             : }
   34869             : 
   34870        2400 : static enum ndr_err_code ndr_push_spoolss_SetPrinterDataEx(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_SetPrinterDataEx *r)
   34871             : {
   34872        2400 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   34873        2400 :         if (flags & NDR_IN) {
   34874        1200 :                 if (r->in.handle == NULL) {
   34875           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   34876             :                 }
   34877        1200 :                 if (r->in.data == NULL) {
   34878           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   34879             :                 }
   34880        1200 :                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
   34881        1200 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
   34882        1200 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   34883        1200 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
   34884        1200 :                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.key_name, ndr_charset_length(r->in.key_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   34885        1200 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
   34886        1200 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   34887        1200 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
   34888        1200 :                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.value_name, ndr_charset_length(r->in.value_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   34889        1200 :                 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
   34890        1200 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.offered));
   34891        1200 :                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.data, r->in.offered));
   34892        1200 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
   34893             :         }
   34894        2400 :         if (flags & NDR_OUT) {
   34895        1200 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   34896             :         }
   34897        2400 :         return NDR_ERR_SUCCESS;
   34898             : }
   34899             : 
   34900        2400 : static enum ndr_err_code ndr_pull_spoolss_SetPrinterDataEx(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_SetPrinterDataEx *r)
   34901             : {
   34902        2400 :         uint32_t size_key_name_0 = 0;
   34903        2400 :         uint32_t length_key_name_0 = 0;
   34904        2400 :         uint32_t size_value_name_0 = 0;
   34905        2400 :         uint32_t length_value_name_0 = 0;
   34906        2400 :         uint32_t size_data_1 = 0;
   34907        2400 :         TALLOC_CTX *_mem_save_handle_0 = NULL;
   34908        2400 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   34909        2400 :         if (flags & NDR_IN) {
   34910        1200 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   34911        1200 :                         NDR_PULL_ALLOC(ndr, r->in.handle);
   34912             :                 }
   34913        1200 :                 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
   34914        1200 :                 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
   34915        1200 :                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
   34916        1200 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
   34917        1200 :                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
   34918        1200 :                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
   34919        1200 :                 NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.key_name, &size_key_name_0));
   34920        1200 :                 NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.key_name, &length_key_name_0));
   34921        1200 :                 if (length_key_name_0 > size_key_name_0) {
   34922           0 :                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_key_name_0, length_key_name_0);
   34923             :                 }
   34924        1200 :                 NDR_CHECK(ndr_check_string_terminator(ndr, length_key_name_0, sizeof(uint16_t)));
   34925        1200 :                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.key_name, length_key_name_0, sizeof(uint16_t), CH_UTF16));
   34926        1200 :                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
   34927        1200 :                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
   34928        1200 :                 NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.value_name, &size_value_name_0));
   34929        1200 :                 NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.value_name, &length_value_name_0));
   34930        1200 :                 if (length_value_name_0 > size_value_name_0) {
   34931           0 :                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_value_name_0, length_value_name_0);
   34932             :                 }
   34933        1200 :                 NDR_CHECK(ndr_check_string_terminator(ndr, length_value_name_0, sizeof(uint16_t)));
   34934        1200 :                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.value_name, length_value_name_0, sizeof(uint16_t), CH_UTF16));
   34935        1200 :                 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
   34936        1200 :                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.data));
   34937        1200 :                 NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->in.data, &size_data_1));
   34938        1200 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   34939        1200 :                         NDR_PULL_ALLOC_N(ndr, r->in.data, size_data_1);
   34940             :                 }
   34941        1200 :                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.data, size_data_1));
   34942        1200 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
   34943        1200 :                 if (r->in.data) {
   34944        1200 :                         NDR_CHECK(ndr_check_steal_array_size(ndr, (void*)&r->in.data, r->in.offered));
   34945             :                 }
   34946             :         }
   34947        2400 :         if (flags & NDR_OUT) {
   34948             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   34949             :                 if (r->in.handle == NULL) {
   34950             :                         NDR_PULL_ALLOC(ndr, r->in.handle);
   34951             :                         NDR_ZERO_STRUCTP(r->in.handle);
   34952             :                 }
   34953             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   34954        1200 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   34955             :         }
   34956        2400 :         return NDR_ERR_SUCCESS;
   34957             : }
   34958             : 
   34959           0 : _PUBLIC_ void ndr_print_spoolss_SetPrinterDataEx(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_SetPrinterDataEx *r)
   34960             : {
   34961           0 :         ndr_print_struct(ndr, name, "spoolss_SetPrinterDataEx");
   34962           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   34963           0 :         ndr->depth++;
   34964           0 :         if (flags & NDR_SET_VALUES) {
   34965           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   34966             :         }
   34967           0 :         if (flags & NDR_IN) {
   34968           0 :                 ndr_print_struct(ndr, "in", "spoolss_SetPrinterDataEx");
   34969           0 :                 ndr->depth++;
   34970           0 :                 ndr_print_ptr(ndr, "handle", r->in.handle);
   34971           0 :                 ndr->depth++;
   34972           0 :                 ndr_print_policy_handle(ndr, "handle", r->in.handle);
   34973           0 :                 ndr->depth--;
   34974           0 :                 ndr_print_string(ndr, "key_name", r->in.key_name);
   34975           0 :                 ndr_print_string(ndr, "value_name", r->in.value_name);
   34976           0 :                 ndr_print_winreg_Type(ndr, "type", r->in.type);
   34977           0 :                 ndr_print_ptr(ndr, "data", r->in.data);
   34978           0 :                 ndr->depth++;
   34979           0 :                 ndr_print_array_uint8(ndr, "data", r->in.data, r->in.offered);
   34980           0 :                 ndr->depth--;
   34981           0 :                 ndr_print_uint32(ndr, "offered", r->in.offered);
   34982           0 :                 ndr->depth--;
   34983             :         }
   34984           0 :         if (flags & NDR_OUT) {
   34985           0 :                 ndr_print_struct(ndr, "out", "spoolss_SetPrinterDataEx");
   34986           0 :                 ndr->depth++;
   34987           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   34988           0 :                 ndr->depth--;
   34989             :         }
   34990           0 :         ndr->depth--;
   34991             : }
   34992             : 
   34993        5400 : static enum ndr_err_code ndr_push_spoolss_GetPrinterDataEx(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_GetPrinterDataEx *r)
   34994             : {
   34995        5400 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   34996        5400 :         if (flags & NDR_IN) {
   34997        2700 :                 if (r->in.handle == NULL) {
   34998           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   34999             :                 }
   35000        2700 :                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
   35001        2700 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
   35002        2700 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   35003        2700 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
   35004        2700 :                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.key_name, ndr_charset_length(r->in.key_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   35005        2700 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
   35006        2700 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   35007        2700 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
   35008        2700 :                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.value_name, ndr_charset_length(r->in.value_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   35009        2700 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
   35010             :         }
   35011        5400 :         if (flags & NDR_OUT) {
   35012        2700 :                 if (r->out.type == NULL) {
   35013           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   35014             :                 }
   35015        2700 :                 if (r->out.data == NULL) {
   35016           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   35017             :                 }
   35018        2700 :                 if (r->out.needed == NULL) {
   35019           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   35020             :                 }
   35021        2700 :                 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
   35022        2700 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.offered));
   35023        2700 :                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, r->in.offered));
   35024        2700 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
   35025        2700 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   35026             :         }
   35027        5400 :         return NDR_ERR_SUCCESS;
   35028             : }
   35029             : 
   35030        5400 : static enum ndr_err_code ndr_pull_spoolss_GetPrinterDataEx(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_GetPrinterDataEx *r)
   35031             : {
   35032        5400 :         uint32_t size_key_name_0 = 0;
   35033        5400 :         uint32_t length_key_name_0 = 0;
   35034        5400 :         uint32_t size_value_name_0 = 0;
   35035        5400 :         uint32_t length_value_name_0 = 0;
   35036        5400 :         uint32_t size_data_1 = 0;
   35037        5400 :         TALLOC_CTX *_mem_save_handle_0 = NULL;
   35038        5400 :         TALLOC_CTX *_mem_save_type_0 = NULL;
   35039        5400 :         TALLOC_CTX *_mem_save_needed_0 = NULL;
   35040        5400 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   35041        5400 :         if (flags & NDR_IN) {
   35042        2700 :                 NDR_ZERO_STRUCT(r->out);
   35043             : 
   35044        2700 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   35045        2700 :                         NDR_PULL_ALLOC(ndr, r->in.handle);
   35046             :                 }
   35047        2700 :                 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
   35048        2700 :                 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
   35049        2700 :                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
   35050        2700 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
   35051        2700 :                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
   35052        2700 :                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
   35053        2700 :                 NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.key_name, &size_key_name_0));
   35054        2700 :                 NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.key_name, &length_key_name_0));
   35055        2700 :                 if (length_key_name_0 > size_key_name_0) {
   35056           0 :                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_key_name_0, length_key_name_0);
   35057             :                 }
   35058        2700 :                 NDR_CHECK(ndr_check_string_terminator(ndr, length_key_name_0, sizeof(uint16_t)));
   35059        2700 :                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.key_name, length_key_name_0, sizeof(uint16_t), CH_UTF16));
   35060        2700 :                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
   35061        2700 :                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
   35062        2700 :                 NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.value_name, &size_value_name_0));
   35063        2700 :                 NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.value_name, &length_value_name_0));
   35064        2700 :                 if (length_value_name_0 > size_value_name_0) {
   35065           0 :                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_value_name_0, length_value_name_0);
   35066             :                 }
   35067        2700 :                 NDR_CHECK(ndr_check_string_terminator(ndr, length_value_name_0, sizeof(uint16_t)));
   35068        2700 :                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.value_name, length_value_name_0, sizeof(uint16_t), CH_UTF16));
   35069        2700 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
   35070        2700 :                 NDR_PULL_ALLOC(ndr, r->out.type);
   35071        2700 :                 NDR_ZERO_STRUCTP(r->out.type);
   35072        2700 :                 NDR_PULL_ALLOC_N(ndr, r->out.data, r->in.offered);
   35073        2700 :                 memset(r->out.data, 0, (r->in.offered) * sizeof(*r->out.data));
   35074        2700 :                 NDR_PULL_ALLOC(ndr, r->out.needed);
   35075        2700 :                 NDR_ZERO_STRUCTP(r->out.needed);
   35076             :         }
   35077        5400 :         if (flags & NDR_OUT) {
   35078             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   35079             :                 if (r->in.handle == NULL) {
   35080             :                         NDR_PULL_ALLOC(ndr, r->in.handle);
   35081             :                         NDR_ZERO_STRUCTP(r->in.handle);
   35082             :                 }
   35083             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   35084        2700 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   35085           0 :                         NDR_PULL_ALLOC(ndr, r->out.type);
   35086             :                 }
   35087        2700 :                 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
   35088        2700 :                 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
   35089        2700 :                 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
   35090        2700 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
   35091        2700 :                 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
   35092        2700 :                 NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->out.data, &size_data_1));
   35093        2700 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   35094           0 :                         NDR_PULL_ALLOC_N(ndr, r->out.data, size_data_1);
   35095             :                 }
   35096        2700 :                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, size_data_1));
   35097        2700 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   35098           0 :                         NDR_PULL_ALLOC(ndr, r->out.needed);
   35099             :                 }
   35100        2700 :                 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
   35101        2700 :                 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
   35102        2700 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
   35103        2700 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
   35104        2700 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   35105        2700 :                 if (r->out.data) {
   35106        2700 :                         NDR_CHECK(ndr_check_steal_array_size(ndr, (void*)&r->out.data, r->in.offered));
   35107             :                 }
   35108             :         }
   35109        5400 :         return NDR_ERR_SUCCESS;
   35110             : }
   35111             : 
   35112           0 : _PUBLIC_ void ndr_print_spoolss_GetPrinterDataEx(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_GetPrinterDataEx *r)
   35113             : {
   35114           0 :         ndr_print_struct(ndr, name, "spoolss_GetPrinterDataEx");
   35115           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   35116           0 :         ndr->depth++;
   35117           0 :         if (flags & NDR_SET_VALUES) {
   35118           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   35119             :         }
   35120           0 :         if (flags & NDR_IN) {
   35121           0 :                 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDataEx");
   35122           0 :                 ndr->depth++;
   35123           0 :                 ndr_print_ptr(ndr, "handle", r->in.handle);
   35124           0 :                 ndr->depth++;
   35125           0 :                 ndr_print_policy_handle(ndr, "handle", r->in.handle);
   35126           0 :                 ndr->depth--;
   35127           0 :                 ndr_print_string(ndr, "key_name", r->in.key_name);
   35128           0 :                 ndr_print_string(ndr, "value_name", r->in.value_name);
   35129           0 :                 ndr_print_uint32(ndr, "offered", r->in.offered);
   35130           0 :                 ndr->depth--;
   35131             :         }
   35132           0 :         if (flags & NDR_OUT) {
   35133           0 :                 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDataEx");
   35134           0 :                 ndr->depth++;
   35135           0 :                 ndr_print_ptr(ndr, "type", r->out.type);
   35136           0 :                 ndr->depth++;
   35137           0 :                 ndr_print_winreg_Type(ndr, "type", *r->out.type);
   35138           0 :                 ndr->depth--;
   35139           0 :                 ndr_print_ptr(ndr, "data", r->out.data);
   35140           0 :                 ndr->depth++;
   35141           0 :                 ndr_print_array_uint8(ndr, "data", r->out.data, r->in.offered);
   35142           0 :                 ndr->depth--;
   35143           0 :                 ndr_print_ptr(ndr, "needed", r->out.needed);
   35144           0 :                 ndr->depth++;
   35145           0 :                 ndr_print_uint32(ndr, "needed", *r->out.needed);
   35146           0 :                 ndr->depth--;
   35147           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   35148           0 :                 ndr->depth--;
   35149             :         }
   35150           0 :         ndr->depth--;
   35151             : }
   35152             : 
   35153        5192 : _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinterDataEx(struct ndr_push *ndr, ndr_flags_type flags, const struct _spoolss_EnumPrinterDataEx *r)
   35154             : {
   35155        5192 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   35156        5192 :         if (flags & NDR_IN) {
   35157        2596 :                 if (r->in.handle == NULL) {
   35158           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   35159             :                 }
   35160        2596 :                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
   35161        2596 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
   35162        2596 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   35163        2596 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
   35164        2596 :                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.key_name, ndr_charset_length(r->in.key_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   35165        2596 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
   35166             :         }
   35167        5192 :         if (flags & NDR_OUT) {
   35168        2596 :                 if (r->out.needed == NULL) {
   35169           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   35170             :                 }
   35171        2596 :                 if (r->out.count == NULL) {
   35172           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   35173             :                 }
   35174        2596 :                 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
   35175        2596 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
   35176        2596 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
   35177        2596 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   35178             :         }
   35179        5192 :         return NDR_ERR_SUCCESS;
   35180             : }
   35181             : 
   35182        5200 : _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinterDataEx(struct ndr_pull *ndr, ndr_flags_type flags, struct _spoolss_EnumPrinterDataEx *r)
   35183             : {
   35184        5200 :         uint32_t size_key_name_0 = 0;
   35185        5200 :         uint32_t length_key_name_0 = 0;
   35186        5200 :         TALLOC_CTX *_mem_save_handle_0 = NULL;
   35187        5200 :         TALLOC_CTX *_mem_save_needed_0 = NULL;
   35188        5200 :         TALLOC_CTX *_mem_save_count_0 = NULL;
   35189        5200 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   35190        5200 :         if (flags & NDR_IN) {
   35191        2600 :                 NDR_ZERO_STRUCT(r->out);
   35192             : 
   35193        2600 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   35194        2600 :                         NDR_PULL_ALLOC(ndr, r->in.handle);
   35195             :                 }
   35196        2600 :                 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
   35197        2600 :                 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
   35198        2600 :                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
   35199        2600 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
   35200        2600 :                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
   35201        2600 :                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
   35202        2600 :                 NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.key_name, &size_key_name_0));
   35203        2600 :                 NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.key_name, &length_key_name_0));
   35204        2600 :                 if (length_key_name_0 > size_key_name_0) {
   35205           0 :                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_key_name_0, length_key_name_0);
   35206             :                 }
   35207        2600 :                 NDR_CHECK(ndr_check_string_terminator(ndr, length_key_name_0, sizeof(uint16_t)));
   35208        2600 :                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.key_name, length_key_name_0, sizeof(uint16_t), CH_UTF16));
   35209        2600 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
   35210        2600 :                 NDR_PULL_ALLOC(ndr, r->out.needed);
   35211        2600 :                 NDR_ZERO_STRUCTP(r->out.needed);
   35212        2600 :                 NDR_PULL_ALLOC(ndr, r->out.count);
   35213        2600 :                 NDR_ZERO_STRUCTP(r->out.count);
   35214             :         }
   35215        5200 :         if (flags & NDR_OUT) {
   35216             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   35217             :                 if (r->in.handle == NULL) {
   35218             :                         NDR_PULL_ALLOC(ndr, r->in.handle);
   35219             :                         NDR_ZERO_STRUCTP(r->in.handle);
   35220             :                 }
   35221             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   35222        2600 :                 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->out.info));
   35223        2600 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   35224           4 :                         NDR_PULL_ALLOC(ndr, r->out.needed);
   35225             :                 }
   35226        2600 :                 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
   35227        2600 :                 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
   35228        2600 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
   35229        2600 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
   35230        2600 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   35231           4 :                         NDR_PULL_ALLOC(ndr, r->out.count);
   35232             :                 }
   35233        2600 :                 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
   35234        2600 :                 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
   35235        2600 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
   35236        2600 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
   35237        2600 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   35238             :         }
   35239        5192 :         return NDR_ERR_SUCCESS;
   35240             : }
   35241             : 
   35242        4192 : _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinterDataEx(struct ndr_push *ndr, ndr_flags_type flags, const struct __spoolss_EnumPrinterDataEx *r)
   35243             : {
   35244           0 :         uint32_t cntr_info_0;
   35245        4192 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   35246        4192 :         if (flags & NDR_IN) {
   35247           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
   35248             :         }
   35249        4192 :         if (flags & NDR_OUT) {
   35250        9736 :                 for (cntr_info_0 = 0; cntr_info_0 < (r->in.count); cntr_info_0++) {
   35251        5544 :                         NDR_CHECK(ndr_push_spoolss_PrinterEnumValues(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
   35252             :                 }
   35253        9736 :                 for (cntr_info_0 = 0; cntr_info_0 < (r->in.count); cntr_info_0++) {
   35254        5544 :                         NDR_CHECK(ndr_push_spoolss_PrinterEnumValues(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
   35255             :                 }
   35256             :         }
   35257        4192 :         return NDR_ERR_SUCCESS;
   35258             : }
   35259             : 
   35260        1262 : _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinterDataEx(struct ndr_pull *ndr, ndr_flags_type flags, struct __spoolss_EnumPrinterDataEx *r)
   35261             : {
   35262        1262 :         uint32_t size_info_0 = 0;
   35263           2 :         uint32_t cntr_info_0;
   35264        1262 :         TALLOC_CTX *_mem_save_info_0 = NULL;
   35265        1262 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   35266        1262 :         if (flags & NDR_IN) {
   35267           0 :                 NDR_ZERO_STRUCT(r->out);
   35268             : 
   35269           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
   35270             :         }
   35271        1262 :         if (flags & NDR_OUT) {
   35272             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   35273             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   35274        1262 :                 size_info_0 = r->in.count;
   35275        1262 :                 NDR_PULL_ALLOC_N(ndr, r->out.info, size_info_0);
   35276        1262 :                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
   35277        1262 :                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
   35278        2936 :                 for (cntr_info_0 = 0; cntr_info_0 < (size_info_0); cntr_info_0++) {
   35279        1674 :                         NDR_CHECK(ndr_pull_spoolss_PrinterEnumValues(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
   35280             :                 }
   35281        2936 :                 for (cntr_info_0 = 0; cntr_info_0 < (size_info_0); cntr_info_0++) {
   35282        1674 :                         NDR_CHECK(ndr_pull_spoolss_PrinterEnumValues(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
   35283             :                 }
   35284        1262 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
   35285        2886 :                 for (cntr_info_0 = 0; cntr_info_0 < (size_info_0); cntr_info_0++) {
   35286             :                 }
   35287             :         }
   35288        1260 :         return NDR_ERR_SUCCESS;
   35289             : }
   35290             : 
   35291           8 : _PUBLIC_ void ndr_print_spoolss_EnumPrinterDataEx(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_EnumPrinterDataEx *r)
   35292             : {
   35293           8 :         uint32_t cntr_info_2;
   35294           8 :         ndr_print_struct(ndr, name, "spoolss_EnumPrinterDataEx");
   35295           8 :         if (r == NULL) { ndr_print_null(ndr); return; }
   35296           8 :         ndr->depth++;
   35297           8 :         if (flags & NDR_SET_VALUES) {
   35298           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   35299             :         }
   35300           8 :         if (flags & NDR_IN) {
   35301           4 :                 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterDataEx");
   35302           4 :                 ndr->depth++;
   35303           4 :                 ndr_print_ptr(ndr, "handle", r->in.handle);
   35304           4 :                 ndr->depth++;
   35305           4 :                 ndr_print_policy_handle(ndr, "handle", r->in.handle);
   35306           4 :                 ndr->depth--;
   35307           4 :                 ndr_print_string(ndr, "key_name", r->in.key_name);
   35308           4 :                 ndr_print_uint32(ndr, "offered", r->in.offered);
   35309           4 :                 ndr->depth--;
   35310             :         }
   35311           8 :         if (flags & NDR_OUT) {
   35312           4 :                 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterDataEx");
   35313           4 :                 ndr->depth++;
   35314           4 :                 ndr_print_ptr(ndr, "count", r->out.count);
   35315           4 :                 ndr->depth++;
   35316           4 :                 ndr_print_uint32(ndr, "count", *r->out.count);
   35317           4 :                 ndr->depth--;
   35318           4 :                 ndr_print_ptr(ndr, "info", r->out.info);
   35319           4 :                 ndr->depth++;
   35320           4 :                 ndr_print_ptr(ndr, "info", *r->out.info);
   35321           4 :                 ndr->depth++;
   35322           4 :                 if (*r->out.info) {
   35323           2 :                         ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "info", (uint32_t)(*r->out.count));
   35324           2 :                         ndr->depth++;
   35325          52 :                         for (cntr_info_2 = 0; cntr_info_2 < (*r->out.count); cntr_info_2++) {
   35326          50 :                                 ndr_print_spoolss_PrinterEnumValues(ndr, "info", &(*r->out.info)[cntr_info_2]);
   35327             :                         }
   35328           2 :                         ndr->depth--;
   35329             :                 }
   35330           4 :                 ndr->depth--;
   35331           4 :                 ndr->depth--;
   35332           4 :                 ndr_print_ptr(ndr, "needed", r->out.needed);
   35333           4 :                 ndr->depth++;
   35334           4 :                 ndr_print_uint32(ndr, "needed", *r->out.needed);
   35335           4 :                 ndr->depth--;
   35336           4 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   35337           4 :                 ndr->depth--;
   35338             :         }
   35339           8 :         ndr->depth--;
   35340             : }
   35341             : 
   35342        6768 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_EnumPrinterKey(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_EnumPrinterKey *r)
   35343             : {
   35344        6768 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   35345        6768 :         if (flags & NDR_IN) {
   35346        3384 :                 if (r->in.handle == NULL) {
   35347           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   35348             :                 }
   35349        3384 :                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
   35350        3384 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
   35351        3384 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   35352        3384 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
   35353        3384 :                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.key_name, ndr_charset_length(r->in.key_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   35354        3384 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
   35355             :         }
   35356        6768 :         if (flags & NDR_OUT) {
   35357        3384 :                 if (r->out._ndr_size == NULL) {
   35358           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   35359             :                 }
   35360        3384 :                 if (r->out.key_buffer == NULL) {
   35361           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   35362             :                 }
   35363        3384 :                 if (r->out.needed == NULL) {
   35364           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   35365             :                 }
   35366        3384 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out._ndr_size));
   35367             :                 {
   35368           0 :                         struct ndr_push *_ndr_key_buffer;
   35369        3384 :                         NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_key_buffer, 0, *r->out._ndr_size * 2));
   35370        3384 :                         NDR_CHECK(ndr_push_set_switch_value(_ndr_key_buffer, r->out.key_buffer, *r->out._ndr_size));
   35371        3384 :                         NDR_CHECK(ndr_push_spoolss_KeyNames(_ndr_key_buffer, NDR_SCALARS|NDR_BUFFERS, r->out.key_buffer));
   35372        3384 :                         NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_key_buffer, 0, *r->out._ndr_size * 2));
   35373             :                 }
   35374        3384 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
   35375        3384 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   35376             :         }
   35377        6768 :         return NDR_ERR_SUCCESS;
   35378             : }
   35379             : 
   35380        6776 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_EnumPrinterKey(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_EnumPrinterKey *r)
   35381             : {
   35382        6776 :         uint32_t size_key_name_0 = 0;
   35383        6776 :         uint32_t length_key_name_0 = 0;
   35384        6776 :         TALLOC_CTX *_mem_save_handle_0 = NULL;
   35385        6776 :         TALLOC_CTX *_mem_save__ndr_size_0 = NULL;
   35386        6776 :         TALLOC_CTX *_mem_save_key_buffer_0 = NULL;
   35387        6776 :         TALLOC_CTX *_mem_save_needed_0 = NULL;
   35388        6776 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   35389        6776 :         if (flags & NDR_IN) {
   35390        3388 :                 NDR_ZERO_STRUCT(r->out);
   35391             : 
   35392        3388 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   35393        3388 :                         NDR_PULL_ALLOC(ndr, r->in.handle);
   35394             :                 }
   35395        3388 :                 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
   35396        3388 :                 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
   35397        3388 :                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
   35398        3388 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
   35399        3388 :                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
   35400        3388 :                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
   35401        3388 :                 NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.key_name, &size_key_name_0));
   35402        3388 :                 NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.key_name, &length_key_name_0));
   35403        3388 :                 if (length_key_name_0 > size_key_name_0) {
   35404           0 :                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_key_name_0, length_key_name_0);
   35405             :                 }
   35406        3388 :                 NDR_CHECK(ndr_check_string_terminator(ndr, length_key_name_0, sizeof(uint16_t)));
   35407        3388 :                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.key_name, length_key_name_0, sizeof(uint16_t), CH_UTF16));
   35408        3388 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
   35409        3388 :                 NDR_PULL_ALLOC(ndr, r->out._ndr_size);
   35410        3388 :                 NDR_ZERO_STRUCTP(r->out._ndr_size);
   35411        3388 :                 NDR_PULL_ALLOC(ndr, r->out.key_buffer);
   35412        3388 :                 NDR_ZERO_STRUCTP(r->out.key_buffer);
   35413        3388 :                 NDR_PULL_ALLOC(ndr, r->out.needed);
   35414        3388 :                 NDR_ZERO_STRUCTP(r->out.needed);
   35415             :         }
   35416        6776 :         if (flags & NDR_OUT) {
   35417             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   35418             :                 if (r->in.handle == NULL) {
   35419             :                         NDR_PULL_ALLOC(ndr, r->in.handle);
   35420             :                         NDR_ZERO_STRUCTP(r->in.handle);
   35421             :                 }
   35422             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   35423        3388 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   35424           4 :                         NDR_PULL_ALLOC(ndr, r->out._ndr_size);
   35425             :                 }
   35426        3388 :                 _mem_save__ndr_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
   35427        3388 :                 NDR_PULL_SET_MEM_CTX(ndr, r->out._ndr_size, LIBNDR_FLAG_REF_ALLOC);
   35428        3388 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out._ndr_size));
   35429        3388 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save__ndr_size_0, LIBNDR_FLAG_REF_ALLOC);
   35430        3388 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   35431           4 :                         NDR_PULL_ALLOC(ndr, r->out.key_buffer);
   35432             :                 }
   35433        3388 :                 _mem_save_key_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
   35434        3388 :                 NDR_PULL_SET_MEM_CTX(ndr, r->out.key_buffer, LIBNDR_FLAG_REF_ALLOC);
   35435             :                 {
   35436           4 :                         struct ndr_pull *_ndr_key_buffer;
   35437        3388 :                         ssize_t sub_size = *r->out._ndr_size * 2;
   35438        3388 :                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_key_buffer, 0, sub_size));
   35439        3388 :                         NDR_CHECK(ndr_pull_set_switch_value(_ndr_key_buffer, r->out.key_buffer, *r->out._ndr_size));
   35440        3388 :                         NDR_CHECK(ndr_pull_spoolss_KeyNames(_ndr_key_buffer, NDR_SCALARS|NDR_BUFFERS, r->out.key_buffer));
   35441        3388 :                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_key_buffer, 0, sub_size));
   35442             :                 }
   35443        3388 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_key_buffer_0, LIBNDR_FLAG_REF_ALLOC);
   35444        3388 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   35445           4 :                         NDR_PULL_ALLOC(ndr, r->out.needed);
   35446             :                 }
   35447        3388 :                 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
   35448        3388 :                 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
   35449        3388 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
   35450        3388 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
   35451        3388 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   35452             :         }
   35453        6768 :         return NDR_ERR_SUCCESS;
   35454             : }
   35455             : 
   35456           8 : _PUBLIC_ void ndr_print_spoolss_EnumPrinterKey(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_EnumPrinterKey *r)
   35457             : {
   35458           8 :         ndr_print_struct(ndr, name, "spoolss_EnumPrinterKey");
   35459           8 :         if (r == NULL) { ndr_print_null(ndr); return; }
   35460           8 :         ndr->depth++;
   35461           8 :         if (flags & NDR_SET_VALUES) {
   35462           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   35463             :         }
   35464           8 :         if (flags & NDR_IN) {
   35465           4 :                 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterKey");
   35466           4 :                 ndr->depth++;
   35467           4 :                 ndr_print_ptr(ndr, "handle", r->in.handle);
   35468           4 :                 ndr->depth++;
   35469           4 :                 ndr_print_policy_handle(ndr, "handle", r->in.handle);
   35470           4 :                 ndr->depth--;
   35471           4 :                 ndr_print_string(ndr, "key_name", r->in.key_name);
   35472           4 :                 ndr_print_uint32(ndr, "offered", r->in.offered);
   35473           4 :                 ndr->depth--;
   35474             :         }
   35475           8 :         if (flags & NDR_OUT) {
   35476           4 :                 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterKey");
   35477           4 :                 ndr->depth++;
   35478           4 :                 ndr_print_ptr(ndr, "_ndr_size", r->out._ndr_size);
   35479           4 :                 ndr->depth++;
   35480           4 :                 ndr_print_uint32(ndr, "_ndr_size", *r->out._ndr_size);
   35481           4 :                 ndr->depth--;
   35482           4 :                 ndr_print_ptr(ndr, "key_buffer", r->out.key_buffer);
   35483           4 :                 ndr->depth++;
   35484           4 :                 ndr_print_set_switch_value(ndr, r->out.key_buffer, *r->out._ndr_size);
   35485           4 :                 ndr_print_spoolss_KeyNames(ndr, "key_buffer", r->out.key_buffer);
   35486           4 :                 ndr->depth--;
   35487           4 :                 ndr_print_ptr(ndr, "needed", r->out.needed);
   35488           4 :                 ndr->depth++;
   35489           4 :                 ndr_print_uint32(ndr, "needed", *r->out.needed);
   35490           4 :                 ndr->depth--;
   35491           4 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   35492           4 :                 ndr->depth--;
   35493             :         }
   35494           8 :         ndr->depth--;
   35495             : }
   35496             : 
   35497        2400 : static enum ndr_err_code ndr_push_spoolss_DeletePrinterDataEx(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_DeletePrinterDataEx *r)
   35498             : {
   35499        2400 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   35500        2400 :         if (flags & NDR_IN) {
   35501        1200 :                 if (r->in.handle == NULL) {
   35502           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   35503             :                 }
   35504        1200 :                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
   35505        1200 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
   35506        1200 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   35507        1200 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
   35508        1200 :                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.key_name, ndr_charset_length(r->in.key_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   35509        1200 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
   35510        1200 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   35511        1200 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
   35512        1200 :                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.value_name, ndr_charset_length(r->in.value_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   35513             :         }
   35514        2400 :         if (flags & NDR_OUT) {
   35515        1200 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   35516             :         }
   35517        2400 :         return NDR_ERR_SUCCESS;
   35518             : }
   35519             : 
   35520        2400 : static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDataEx(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_DeletePrinterDataEx *r)
   35521             : {
   35522        2400 :         uint32_t size_key_name_0 = 0;
   35523        2400 :         uint32_t length_key_name_0 = 0;
   35524        2400 :         uint32_t size_value_name_0 = 0;
   35525        2400 :         uint32_t length_value_name_0 = 0;
   35526        2400 :         TALLOC_CTX *_mem_save_handle_0 = NULL;
   35527        2400 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   35528        2400 :         if (flags & NDR_IN) {
   35529        1200 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   35530        1200 :                         NDR_PULL_ALLOC(ndr, r->in.handle);
   35531             :                 }
   35532        1200 :                 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
   35533        1200 :                 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
   35534        1200 :                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
   35535        1200 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
   35536        1200 :                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
   35537        1200 :                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
   35538        1200 :                 NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.key_name, &size_key_name_0));
   35539        1200 :                 NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.key_name, &length_key_name_0));
   35540        1200 :                 if (length_key_name_0 > size_key_name_0) {
   35541           0 :                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_key_name_0, length_key_name_0);
   35542             :                 }
   35543        1200 :                 NDR_CHECK(ndr_check_string_terminator(ndr, length_key_name_0, sizeof(uint16_t)));
   35544        1200 :                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.key_name, length_key_name_0, sizeof(uint16_t), CH_UTF16));
   35545        1200 :                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
   35546        1200 :                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
   35547        1200 :                 NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.value_name, &size_value_name_0));
   35548        1200 :                 NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.value_name, &length_value_name_0));
   35549        1200 :                 if (length_value_name_0 > size_value_name_0) {
   35550           0 :                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_value_name_0, length_value_name_0);
   35551             :                 }
   35552        1200 :                 NDR_CHECK(ndr_check_string_terminator(ndr, length_value_name_0, sizeof(uint16_t)));
   35553        1200 :                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.value_name, length_value_name_0, sizeof(uint16_t), CH_UTF16));
   35554             :         }
   35555        2400 :         if (flags & NDR_OUT) {
   35556             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   35557             :                 if (r->in.handle == NULL) {
   35558             :                         NDR_PULL_ALLOC(ndr, r->in.handle);
   35559             :                         NDR_ZERO_STRUCTP(r->in.handle);
   35560             :                 }
   35561             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   35562        1200 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   35563             :         }
   35564        2400 :         return NDR_ERR_SUCCESS;
   35565             : }
   35566             : 
   35567           0 : _PUBLIC_ void ndr_print_spoolss_DeletePrinterDataEx(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_DeletePrinterDataEx *r)
   35568             : {
   35569           0 :         ndr_print_struct(ndr, name, "spoolss_DeletePrinterDataEx");
   35570           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   35571           0 :         ndr->depth++;
   35572           0 :         if (flags & NDR_SET_VALUES) {
   35573           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   35574             :         }
   35575           0 :         if (flags & NDR_IN) {
   35576           0 :                 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDataEx");
   35577           0 :                 ndr->depth++;
   35578           0 :                 ndr_print_ptr(ndr, "handle", r->in.handle);
   35579           0 :                 ndr->depth++;
   35580           0 :                 ndr_print_policy_handle(ndr, "handle", r->in.handle);
   35581           0 :                 ndr->depth--;
   35582           0 :                 ndr_print_string(ndr, "key_name", r->in.key_name);
   35583           0 :                 ndr_print_string(ndr, "value_name", r->in.value_name);
   35584           0 :                 ndr->depth--;
   35585             :         }
   35586           0 :         if (flags & NDR_OUT) {
   35587           0 :                 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDataEx");
   35588           0 :                 ndr->depth++;
   35589           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   35590           0 :                 ndr->depth--;
   35591             :         }
   35592           0 :         ndr->depth--;
   35593             : }
   35594             : 
   35595         432 : static enum ndr_err_code ndr_push_spoolss_DeletePrinterKey(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_DeletePrinterKey *r)
   35596             : {
   35597         432 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   35598         432 :         if (flags & NDR_IN) {
   35599         216 :                 if (r->in.handle == NULL) {
   35600           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   35601             :                 }
   35602         216 :                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
   35603         216 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
   35604         216 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   35605         216 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
   35606         216 :                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.key_name, ndr_charset_length(r->in.key_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   35607             :         }
   35608         432 :         if (flags & NDR_OUT) {
   35609         216 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   35610             :         }
   35611         432 :         return NDR_ERR_SUCCESS;
   35612             : }
   35613             : 
   35614         432 : static enum ndr_err_code ndr_pull_spoolss_DeletePrinterKey(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_DeletePrinterKey *r)
   35615             : {
   35616         432 :         uint32_t size_key_name_0 = 0;
   35617         432 :         uint32_t length_key_name_0 = 0;
   35618         432 :         TALLOC_CTX *_mem_save_handle_0 = NULL;
   35619         432 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   35620         432 :         if (flags & NDR_IN) {
   35621         216 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   35622         216 :                         NDR_PULL_ALLOC(ndr, r->in.handle);
   35623             :                 }
   35624         216 :                 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
   35625         216 :                 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
   35626         216 :                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
   35627         216 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
   35628         216 :                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
   35629         216 :                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
   35630         216 :                 NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.key_name, &size_key_name_0));
   35631         216 :                 NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.key_name, &length_key_name_0));
   35632         216 :                 if (length_key_name_0 > size_key_name_0) {
   35633           0 :                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_key_name_0, length_key_name_0);
   35634             :                 }
   35635         216 :                 NDR_CHECK(ndr_check_string_terminator(ndr, length_key_name_0, sizeof(uint16_t)));
   35636         216 :                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.key_name, length_key_name_0, sizeof(uint16_t), CH_UTF16));
   35637             :         }
   35638         432 :         if (flags & NDR_OUT) {
   35639             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   35640             :                 if (r->in.handle == NULL) {
   35641             :                         NDR_PULL_ALLOC(ndr, r->in.handle);
   35642             :                         NDR_ZERO_STRUCTP(r->in.handle);
   35643             :                 }
   35644             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   35645         216 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   35646             :         }
   35647         432 :         return NDR_ERR_SUCCESS;
   35648             : }
   35649             : 
   35650           0 : _PUBLIC_ void ndr_print_spoolss_DeletePrinterKey(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_DeletePrinterKey *r)
   35651             : {
   35652           0 :         ndr_print_struct(ndr, name, "spoolss_DeletePrinterKey");
   35653           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   35654           0 :         ndr->depth++;
   35655           0 :         if (flags & NDR_SET_VALUES) {
   35656           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   35657             :         }
   35658           0 :         if (flags & NDR_IN) {
   35659           0 :                 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterKey");
   35660           0 :                 ndr->depth++;
   35661           0 :                 ndr_print_ptr(ndr, "handle", r->in.handle);
   35662           0 :                 ndr->depth++;
   35663           0 :                 ndr_print_policy_handle(ndr, "handle", r->in.handle);
   35664           0 :                 ndr->depth--;
   35665           0 :                 ndr_print_string(ndr, "key_name", r->in.key_name);
   35666           0 :                 ndr->depth--;
   35667             :         }
   35668           0 :         if (flags & NDR_OUT) {
   35669           0 :                 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterKey");
   35670           0 :                 ndr->depth++;
   35671           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   35672           0 :                 ndr->depth--;
   35673             :         }
   35674           0 :         ndr->depth--;
   35675             : }
   35676             : 
   35677           0 : static enum ndr_err_code ndr_push_spoolss_53(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_53 *r)
   35678             : {
   35679           0 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   35680           0 :         if (flags & NDR_IN) {
   35681           0 :         }
   35682           0 :         if (flags & NDR_OUT) {
   35683           0 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   35684             :         }
   35685           0 :         return NDR_ERR_SUCCESS;
   35686             : }
   35687             : 
   35688           0 : static enum ndr_err_code ndr_pull_spoolss_53(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_53 *r)
   35689             : {
   35690           0 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   35691           0 :         if (flags & NDR_IN) {
   35692           0 :         }
   35693           0 :         if (flags & NDR_OUT) {
   35694             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   35695             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   35696           0 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   35697             :         }
   35698           0 :         return NDR_ERR_SUCCESS;
   35699             : }
   35700             : 
   35701           0 : _PUBLIC_ void ndr_print_spoolss_53(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_53 *r)
   35702             : {
   35703           0 :         ndr_print_struct(ndr, name, "spoolss_53");
   35704           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   35705           0 :         ndr->depth++;
   35706           0 :         if (flags & NDR_SET_VALUES) {
   35707           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   35708             :         }
   35709           0 :         if (flags & NDR_IN) {
   35710           0 :                 ndr_print_struct(ndr, "in", "spoolss_53");
   35711           0 :                 ndr->depth++;
   35712           0 :                 ndr->depth--;
   35713             :         }
   35714           0 :         if (flags & NDR_OUT) {
   35715           0 :                 ndr_print_struct(ndr, "out", "spoolss_53");
   35716           0 :                 ndr->depth++;
   35717           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   35718           0 :                 ndr->depth--;
   35719             :         }
   35720           0 :         ndr->depth--;
   35721             : }
   35722             : 
   35723           0 : static enum ndr_err_code ndr_push_spoolss_DeletePrinterDriverEx(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_DeletePrinterDriverEx *r)
   35724             : {
   35725           0 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   35726           0 :         if (flags & NDR_IN) {
   35727           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
   35728           0 :                 if (r->in.server) {
   35729           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
   35730           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   35731           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
   35732           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   35733             :                 }
   35734           0 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
   35735           0 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   35736           0 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
   35737           0 :                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   35738           0 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
   35739           0 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   35740           0 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
   35741           0 :                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver, ndr_charset_length(r->in.driver, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   35742           0 :                 NDR_CHECK(ndr_push_spoolss_DeleteDriverFlags(ndr, NDR_SCALARS, r->in.delete_flags));
   35743           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.version));
   35744             :         }
   35745           0 :         if (flags & NDR_OUT) {
   35746           0 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   35747             :         }
   35748           0 :         return NDR_ERR_SUCCESS;
   35749             : }
   35750             : 
   35751           0 : static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDriverEx(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_DeletePrinterDriverEx *r)
   35752             : {
   35753           0 :         uint32_t _ptr_server;
   35754           0 :         uint32_t size_server_1 = 0;
   35755           0 :         uint32_t length_server_1 = 0;
   35756           0 :         uint32_t size_architecture_0 = 0;
   35757           0 :         uint32_t length_architecture_0 = 0;
   35758           0 :         uint32_t size_driver_0 = 0;
   35759           0 :         uint32_t length_driver_0 = 0;
   35760           0 :         TALLOC_CTX *_mem_save_server_0 = NULL;
   35761           0 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   35762           0 :         if (flags & NDR_IN) {
   35763           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
   35764           0 :                 if (_ptr_server) {
   35765           0 :                         NDR_PULL_ALLOC(ndr, r->in.server);
   35766             :                 } else {
   35767           0 :                         r->in.server = NULL;
   35768             :                 }
   35769           0 :                 if (r->in.server) {
   35770           0 :                         _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
   35771           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
   35772           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
   35773           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
   35774           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.server, &size_server_1));
   35775           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.server, &length_server_1));
   35776           0 :                         if (length_server_1 > size_server_1) {
   35777           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_server_1, length_server_1);
   35778             :                         }
   35779           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_server_1, sizeof(uint16_t)));
   35780           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, length_server_1, sizeof(uint16_t), CH_UTF16));
   35781           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
   35782             :                 }
   35783           0 :                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
   35784           0 :                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
   35785           0 :                 NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.architecture, &size_architecture_0));
   35786           0 :                 NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.architecture, &length_architecture_0));
   35787           0 :                 if (length_architecture_0 > size_architecture_0) {
   35788           0 :                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_architecture_0, length_architecture_0);
   35789             :                 }
   35790           0 :                 NDR_CHECK(ndr_check_string_terminator(ndr, length_architecture_0, sizeof(uint16_t)));
   35791           0 :                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, length_architecture_0, sizeof(uint16_t), CH_UTF16));
   35792           0 :                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver));
   35793           0 :                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.driver));
   35794           0 :                 NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.driver, &size_driver_0));
   35795           0 :                 NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.driver, &length_driver_0));
   35796           0 :                 if (length_driver_0 > size_driver_0) {
   35797           0 :                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_driver_0, length_driver_0);
   35798             :                 }
   35799           0 :                 NDR_CHECK(ndr_check_string_terminator(ndr, length_driver_0, sizeof(uint16_t)));
   35800           0 :                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver, length_driver_0, sizeof(uint16_t), CH_UTF16));
   35801           0 :                 NDR_CHECK(ndr_pull_spoolss_DeleteDriverFlags(ndr, NDR_SCALARS, &r->in.delete_flags));
   35802           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.version));
   35803             :         }
   35804           0 :         if (flags & NDR_OUT) {
   35805             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   35806             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   35807           0 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   35808             :         }
   35809           0 :         return NDR_ERR_SUCCESS;
   35810             : }
   35811             : 
   35812           0 : _PUBLIC_ void ndr_print_spoolss_DeletePrinterDriverEx(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_DeletePrinterDriverEx *r)
   35813             : {
   35814           0 :         ndr_print_struct(ndr, name, "spoolss_DeletePrinterDriverEx");
   35815           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   35816           0 :         ndr->depth++;
   35817           0 :         if (flags & NDR_SET_VALUES) {
   35818           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   35819             :         }
   35820           0 :         if (flags & NDR_IN) {
   35821           0 :                 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDriverEx");
   35822           0 :                 ndr->depth++;
   35823           0 :                 ndr_print_ptr(ndr, "server", r->in.server);
   35824           0 :                 ndr->depth++;
   35825           0 :                 if (r->in.server) {
   35826           0 :                         ndr_print_string(ndr, "server", r->in.server);
   35827             :                 }
   35828           0 :                 ndr->depth--;
   35829           0 :                 ndr_print_string(ndr, "architecture", r->in.architecture);
   35830           0 :                 ndr_print_string(ndr, "driver", r->in.driver);
   35831           0 :                 ndr_print_spoolss_DeleteDriverFlags(ndr, "delete_flags", r->in.delete_flags);
   35832           0 :                 ndr_print_uint32(ndr, "version", r->in.version);
   35833           0 :                 ndr->depth--;
   35834             :         }
   35835           0 :         if (flags & NDR_OUT) {
   35836           0 :                 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDriverEx");
   35837           0 :                 ndr->depth++;
   35838           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   35839           0 :                 ndr->depth--;
   35840             :         }
   35841           0 :         ndr->depth--;
   35842             : }
   35843             : 
   35844           4 : static enum ndr_err_code ndr_push_spoolss_AddPerMachineConnection(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_AddPerMachineConnection *r)
   35845             : {
   35846           4 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   35847           4 :         if (flags & NDR_IN) {
   35848           4 :                 if (r->in.printername == NULL) {
   35849           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   35850             :                 }
   35851           4 :                 if (r->in.printserver == NULL) {
   35852           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   35853             :                 }
   35854           4 :                 if (r->in.provider == NULL) {
   35855           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   35856             :                 }
   35857           4 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
   35858           4 :                 if (r->in.server) {
   35859           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
   35860           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   35861           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
   35862           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   35863             :                 }
   35864           4 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
   35865           4 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   35866           4 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
   35867           4 :                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.printername, ndr_charset_length(r->in.printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   35868           4 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printserver, CH_UTF16)));
   35869           4 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   35870           4 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printserver, CH_UTF16)));
   35871           4 :                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.printserver, ndr_charset_length(r->in.printserver, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   35872           4 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.provider, CH_UTF16)));
   35873           4 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   35874           4 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.provider, CH_UTF16)));
   35875           4 :                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.provider, ndr_charset_length(r->in.provider, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   35876             :         }
   35877           4 :         if (flags & NDR_OUT) {
   35878           0 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   35879             :         }
   35880           4 :         return NDR_ERR_SUCCESS;
   35881             : }
   35882             : 
   35883           4 : static enum ndr_err_code ndr_pull_spoolss_AddPerMachineConnection(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_AddPerMachineConnection *r)
   35884             : {
   35885           0 :         uint32_t _ptr_server;
   35886           4 :         uint32_t size_server_1 = 0;
   35887           4 :         uint32_t length_server_1 = 0;
   35888           4 :         uint32_t size_printername_1 = 0;
   35889           4 :         uint32_t length_printername_1 = 0;
   35890           4 :         uint32_t size_printserver_1 = 0;
   35891           4 :         uint32_t length_printserver_1 = 0;
   35892           4 :         uint32_t size_provider_1 = 0;
   35893           4 :         uint32_t length_provider_1 = 0;
   35894           4 :         TALLOC_CTX *_mem_save_server_0 = NULL;
   35895           4 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   35896           4 :         if (flags & NDR_IN) {
   35897           4 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
   35898           4 :                 if (_ptr_server) {
   35899           0 :                         NDR_PULL_ALLOC(ndr, r->in.server);
   35900             :                 } else {
   35901           4 :                         r->in.server = NULL;
   35902             :                 }
   35903           4 :                 if (r->in.server) {
   35904           0 :                         _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
   35905           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
   35906           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
   35907           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
   35908           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.server, &size_server_1));
   35909           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.server, &length_server_1));
   35910           0 :                         if (length_server_1 > size_server_1) {
   35911           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_server_1, length_server_1);
   35912             :                         }
   35913           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_server_1, sizeof(uint16_t)));
   35914           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, length_server_1, sizeof(uint16_t), CH_UTF16));
   35915           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
   35916             :                 }
   35917           4 :                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printername));
   35918           4 :                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printername));
   35919           4 :                 NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.printername, &size_printername_1));
   35920           4 :                 NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.printername, &length_printername_1));
   35921           4 :                 if (length_printername_1 > size_printername_1) {
   35922           0 :                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_printername_1, length_printername_1);
   35923             :                 }
   35924           4 :                 NDR_CHECK(ndr_check_string_terminator(ndr, length_printername_1, sizeof(uint16_t)));
   35925           4 :                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, length_printername_1, sizeof(uint16_t), CH_UTF16));
   35926           4 :                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printserver));
   35927           4 :                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printserver));
   35928           4 :                 NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.printserver, &size_printserver_1));
   35929           4 :                 NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.printserver, &length_printserver_1));
   35930           4 :                 if (length_printserver_1 > size_printserver_1) {
   35931           0 :                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_printserver_1, length_printserver_1);
   35932             :                 }
   35933           4 :                 NDR_CHECK(ndr_check_string_terminator(ndr, length_printserver_1, sizeof(uint16_t)));
   35934           4 :                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printserver, length_printserver_1, sizeof(uint16_t), CH_UTF16));
   35935           4 :                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.provider));
   35936           4 :                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.provider));
   35937           4 :                 NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.provider, &size_provider_1));
   35938           4 :                 NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.provider, &length_provider_1));
   35939           4 :                 if (length_provider_1 > size_provider_1) {
   35940           0 :                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_provider_1, length_provider_1);
   35941             :                 }
   35942           4 :                 NDR_CHECK(ndr_check_string_terminator(ndr, length_provider_1, sizeof(uint16_t)));
   35943           4 :                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.provider, length_provider_1, sizeof(uint16_t), CH_UTF16));
   35944             :         }
   35945           4 :         if (flags & NDR_OUT) {
   35946             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   35947             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   35948           0 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   35949             :         }
   35950           4 :         return NDR_ERR_SUCCESS;
   35951             : }
   35952             : 
   35953           0 : _PUBLIC_ void ndr_print_spoolss_AddPerMachineConnection(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_AddPerMachineConnection *r)
   35954             : {
   35955           0 :         ndr_print_struct(ndr, name, "spoolss_AddPerMachineConnection");
   35956           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   35957           0 :         ndr->depth++;
   35958           0 :         if (flags & NDR_SET_VALUES) {
   35959           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   35960             :         }
   35961           0 :         if (flags & NDR_IN) {
   35962           0 :                 ndr_print_struct(ndr, "in", "spoolss_AddPerMachineConnection");
   35963           0 :                 ndr->depth++;
   35964           0 :                 ndr_print_ptr(ndr, "server", r->in.server);
   35965           0 :                 ndr->depth++;
   35966           0 :                 if (r->in.server) {
   35967           0 :                         ndr_print_string(ndr, "server", r->in.server);
   35968             :                 }
   35969           0 :                 ndr->depth--;
   35970           0 :                 ndr_print_ptr(ndr, "printername", r->in.printername);
   35971           0 :                 ndr->depth++;
   35972           0 :                 ndr_print_string(ndr, "printername", r->in.printername);
   35973           0 :                 ndr->depth--;
   35974           0 :                 ndr_print_ptr(ndr, "printserver", r->in.printserver);
   35975           0 :                 ndr->depth++;
   35976           0 :                 ndr_print_string(ndr, "printserver", r->in.printserver);
   35977           0 :                 ndr->depth--;
   35978           0 :                 ndr_print_ptr(ndr, "provider", r->in.provider);
   35979           0 :                 ndr->depth++;
   35980           0 :                 ndr_print_string(ndr, "provider", r->in.provider);
   35981           0 :                 ndr->depth--;
   35982           0 :                 ndr->depth--;
   35983             :         }
   35984           0 :         if (flags & NDR_OUT) {
   35985           0 :                 ndr_print_struct(ndr, "out", "spoolss_AddPerMachineConnection");
   35986           0 :                 ndr->depth++;
   35987           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   35988           0 :                 ndr->depth--;
   35989             :         }
   35990           0 :         ndr->depth--;
   35991             : }
   35992             : 
   35993           0 : static enum ndr_err_code ndr_push_spoolss_DeletePerMachineConnection(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_DeletePerMachineConnection *r)
   35994             : {
   35995           0 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   35996           0 :         if (flags & NDR_IN) {
   35997           0 :                 if (r->in.printername == NULL) {
   35998           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   35999             :                 }
   36000           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
   36001           0 :                 if (r->in.server) {
   36002           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
   36003           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   36004           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
   36005           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   36006             :                 }
   36007           0 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
   36008           0 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   36009           0 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
   36010           0 :                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.printername, ndr_charset_length(r->in.printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   36011             :         }
   36012           0 :         if (flags & NDR_OUT) {
   36013           0 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   36014             :         }
   36015           0 :         return NDR_ERR_SUCCESS;
   36016             : }
   36017             : 
   36018           0 : static enum ndr_err_code ndr_pull_spoolss_DeletePerMachineConnection(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_DeletePerMachineConnection *r)
   36019             : {
   36020           0 :         uint32_t _ptr_server;
   36021           0 :         uint32_t size_server_1 = 0;
   36022           0 :         uint32_t length_server_1 = 0;
   36023           0 :         uint32_t size_printername_1 = 0;
   36024           0 :         uint32_t length_printername_1 = 0;
   36025           0 :         TALLOC_CTX *_mem_save_server_0 = NULL;
   36026           0 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   36027           0 :         if (flags & NDR_IN) {
   36028           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
   36029           0 :                 if (_ptr_server) {
   36030           0 :                         NDR_PULL_ALLOC(ndr, r->in.server);
   36031             :                 } else {
   36032           0 :                         r->in.server = NULL;
   36033             :                 }
   36034           0 :                 if (r->in.server) {
   36035           0 :                         _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
   36036           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
   36037           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
   36038           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
   36039           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.server, &size_server_1));
   36040           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.server, &length_server_1));
   36041           0 :                         if (length_server_1 > size_server_1) {
   36042           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_server_1, length_server_1);
   36043             :                         }
   36044           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_server_1, sizeof(uint16_t)));
   36045           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, length_server_1, sizeof(uint16_t), CH_UTF16));
   36046           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
   36047             :                 }
   36048           0 :                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printername));
   36049           0 :                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printername));
   36050           0 :                 NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.printername, &size_printername_1));
   36051           0 :                 NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.printername, &length_printername_1));
   36052           0 :                 if (length_printername_1 > size_printername_1) {
   36053           0 :                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_printername_1, length_printername_1);
   36054             :                 }
   36055           0 :                 NDR_CHECK(ndr_check_string_terminator(ndr, length_printername_1, sizeof(uint16_t)));
   36056           0 :                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, length_printername_1, sizeof(uint16_t), CH_UTF16));
   36057             :         }
   36058           0 :         if (flags & NDR_OUT) {
   36059             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   36060             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   36061           0 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   36062             :         }
   36063           0 :         return NDR_ERR_SUCCESS;
   36064             : }
   36065             : 
   36066           0 : _PUBLIC_ void ndr_print_spoolss_DeletePerMachineConnection(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_DeletePerMachineConnection *r)
   36067             : {
   36068           0 :         ndr_print_struct(ndr, name, "spoolss_DeletePerMachineConnection");
   36069           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   36070           0 :         ndr->depth++;
   36071           0 :         if (flags & NDR_SET_VALUES) {
   36072           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   36073             :         }
   36074           0 :         if (flags & NDR_IN) {
   36075           0 :                 ndr_print_struct(ndr, "in", "spoolss_DeletePerMachineConnection");
   36076           0 :                 ndr->depth++;
   36077           0 :                 ndr_print_ptr(ndr, "server", r->in.server);
   36078           0 :                 ndr->depth++;
   36079           0 :                 if (r->in.server) {
   36080           0 :                         ndr_print_string(ndr, "server", r->in.server);
   36081             :                 }
   36082           0 :                 ndr->depth--;
   36083           0 :                 ndr_print_ptr(ndr, "printername", r->in.printername);
   36084           0 :                 ndr->depth++;
   36085           0 :                 ndr_print_string(ndr, "printername", r->in.printername);
   36086           0 :                 ndr->depth--;
   36087           0 :                 ndr->depth--;
   36088             :         }
   36089           0 :         if (flags & NDR_OUT) {
   36090           0 :                 ndr_print_struct(ndr, "out", "spoolss_DeletePerMachineConnection");
   36091           0 :                 ndr->depth++;
   36092           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   36093           0 :                 ndr->depth--;
   36094             :         }
   36095           0 :         ndr->depth--;
   36096             : }
   36097             : 
   36098           0 : _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPerMachineConnections(struct ndr_push *ndr, ndr_flags_type flags, const struct _spoolss_EnumPerMachineConnections *r)
   36099             : {
   36100           0 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   36101           0 :         if (flags & NDR_IN) {
   36102           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
   36103           0 :                 if (r->in.server) {
   36104           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
   36105           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   36106           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
   36107           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   36108             :                 }
   36109           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
   36110           0 :                 if (r->in.buffer) {
   36111           0 :                         NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
   36112             :                 }
   36113           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
   36114             :         }
   36115           0 :         if (flags & NDR_OUT) {
   36116           0 :                 if (r->out.needed == NULL) {
   36117           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   36118             :                 }
   36119           0 :                 if (r->out.count == NULL) {
   36120           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   36121             :                 }
   36122           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
   36123           0 :                 if (r->out.info) {
   36124           0 :                         NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
   36125             :                 }
   36126           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
   36127           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
   36128           0 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   36129             :         }
   36130           0 :         return NDR_ERR_SUCCESS;
   36131             : }
   36132             : 
   36133           0 : _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPerMachineConnections(struct ndr_pull *ndr, ndr_flags_type flags, struct _spoolss_EnumPerMachineConnections *r)
   36134             : {
   36135           0 :         uint32_t _ptr_server;
   36136           0 :         uint32_t size_server_1 = 0;
   36137           0 :         uint32_t length_server_1 = 0;
   36138           0 :         uint32_t _ptr_buffer;
   36139           0 :         uint32_t _ptr_info;
   36140           0 :         TALLOC_CTX *_mem_save_server_0 = NULL;
   36141           0 :         TALLOC_CTX *_mem_save_buffer_0 = NULL;
   36142           0 :         TALLOC_CTX *_mem_save_info_0 = NULL;
   36143           0 :         TALLOC_CTX *_mem_save_needed_0 = NULL;
   36144           0 :         TALLOC_CTX *_mem_save_count_0 = NULL;
   36145           0 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   36146           0 :         if (flags & NDR_IN) {
   36147           0 :                 NDR_ZERO_STRUCT(r->out);
   36148             : 
   36149           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
   36150           0 :                 if (_ptr_server) {
   36151           0 :                         NDR_PULL_ALLOC(ndr, r->in.server);
   36152             :                 } else {
   36153           0 :                         r->in.server = NULL;
   36154             :                 }
   36155           0 :                 if (r->in.server) {
   36156           0 :                         _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
   36157           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
   36158           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
   36159           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
   36160           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.server, &size_server_1));
   36161           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.server, &length_server_1));
   36162           0 :                         if (length_server_1 > size_server_1) {
   36163           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_server_1, length_server_1);
   36164             :                         }
   36165           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_server_1, sizeof(uint16_t)));
   36166           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, length_server_1, sizeof(uint16_t), CH_UTF16));
   36167           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
   36168             :                 }
   36169           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
   36170           0 :                 if (_ptr_buffer) {
   36171           0 :                         NDR_PULL_ALLOC(ndr, r->in.buffer);
   36172             :                 } else {
   36173           0 :                         r->in.buffer = NULL;
   36174             :                 }
   36175           0 :                 if (r->in.buffer) {
   36176           0 :                         _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
   36177           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
   36178           0 :                         NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
   36179           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
   36180             :                 }
   36181           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
   36182           0 :                 NDR_PULL_ALLOC(ndr, r->out.needed);
   36183           0 :                 NDR_ZERO_STRUCTP(r->out.needed);
   36184           0 :                 NDR_PULL_ALLOC(ndr, r->out.count);
   36185           0 :                 NDR_ZERO_STRUCTP(r->out.count);
   36186             :         }
   36187           0 :         if (flags & NDR_OUT) {
   36188             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   36189             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   36190           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
   36191           0 :                 if (_ptr_info) {
   36192           0 :                         NDR_PULL_ALLOC(ndr, r->out.info);
   36193             :                 } else {
   36194           0 :                         r->out.info = NULL;
   36195             :                 }
   36196           0 :                 if (r->out.info) {
   36197           0 :                         _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
   36198           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
   36199           0 :                         NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
   36200           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
   36201             :                 }
   36202           0 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   36203           0 :                         NDR_PULL_ALLOC(ndr, r->out.needed);
   36204             :                 }
   36205           0 :                 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
   36206           0 :                 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
   36207           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
   36208           0 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
   36209           0 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   36210           0 :                         NDR_PULL_ALLOC(ndr, r->out.count);
   36211             :                 }
   36212           0 :                 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
   36213           0 :                 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
   36214           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
   36215           0 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
   36216           0 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   36217             :         }
   36218           0 :         return NDR_ERR_SUCCESS;
   36219             : }
   36220             : 
   36221           0 : _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPerMachineConnections(struct ndr_push *ndr, ndr_flags_type flags, const struct __spoolss_EnumPerMachineConnections *r)
   36222             : {
   36223           0 :         uint32_t cntr_info_0;
   36224           0 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   36225           0 :         if (flags & NDR_IN) {
   36226           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
   36227             :         }
   36228           0 :         if (flags & NDR_OUT) {
   36229           0 :                 for (cntr_info_0 = 0; cntr_info_0 < (r->in.count); cntr_info_0++) {
   36230           0 :                         NDR_CHECK(ndr_push_spoolss_PrinterInfo4(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
   36231             :                 }
   36232           0 :                 for (cntr_info_0 = 0; cntr_info_0 < (r->in.count); cntr_info_0++) {
   36233           0 :                         NDR_CHECK(ndr_push_spoolss_PrinterInfo4(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
   36234             :                 }
   36235             :         }
   36236           0 :         return NDR_ERR_SUCCESS;
   36237             : }
   36238             : 
   36239           0 : _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPerMachineConnections(struct ndr_pull *ndr, ndr_flags_type flags, struct __spoolss_EnumPerMachineConnections *r)
   36240             : {
   36241           0 :         uint32_t size_info_0 = 0;
   36242           0 :         uint32_t cntr_info_0;
   36243           0 :         TALLOC_CTX *_mem_save_info_0 = NULL;
   36244           0 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   36245           0 :         if (flags & NDR_IN) {
   36246           0 :                 NDR_ZERO_STRUCT(r->out);
   36247             : 
   36248           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
   36249             :         }
   36250           0 :         if (flags & NDR_OUT) {
   36251             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   36252             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   36253           0 :                 size_info_0 = r->in.count;
   36254           0 :                 NDR_PULL_ALLOC_N(ndr, r->out.info, size_info_0);
   36255           0 :                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
   36256           0 :                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
   36257           0 :                 for (cntr_info_0 = 0; cntr_info_0 < (size_info_0); cntr_info_0++) {
   36258           0 :                         NDR_CHECK(ndr_pull_spoolss_PrinterInfo4(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
   36259             :                 }
   36260           0 :                 for (cntr_info_0 = 0; cntr_info_0 < (size_info_0); cntr_info_0++) {
   36261           0 :                         NDR_CHECK(ndr_pull_spoolss_PrinterInfo4(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
   36262             :                 }
   36263           0 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
   36264           0 :                 for (cntr_info_0 = 0; cntr_info_0 < (size_info_0); cntr_info_0++) {
   36265             :                 }
   36266             :         }
   36267           0 :         return NDR_ERR_SUCCESS;
   36268             : }
   36269             : 
   36270           0 : _PUBLIC_ void ndr_print_spoolss_EnumPerMachineConnections(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_EnumPerMachineConnections *r)
   36271             : {
   36272           0 :         uint32_t cntr_info_2;
   36273           0 :         ndr_print_struct(ndr, name, "spoolss_EnumPerMachineConnections");
   36274           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   36275           0 :         ndr->depth++;
   36276           0 :         if (flags & NDR_SET_VALUES) {
   36277           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   36278             :         }
   36279           0 :         if (flags & NDR_IN) {
   36280           0 :                 ndr_print_struct(ndr, "in", "spoolss_EnumPerMachineConnections");
   36281           0 :                 ndr->depth++;
   36282           0 :                 ndr_print_ptr(ndr, "server", r->in.server);
   36283           0 :                 ndr->depth++;
   36284           0 :                 if (r->in.server) {
   36285           0 :                         ndr_print_string(ndr, "server", r->in.server);
   36286             :                 }
   36287           0 :                 ndr->depth--;
   36288           0 :                 ndr_print_ptr(ndr, "buffer", r->in.buffer);
   36289           0 :                 ndr->depth++;
   36290           0 :                 if (r->in.buffer) {
   36291           0 :                         ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
   36292             :                 }
   36293           0 :                 ndr->depth--;
   36294           0 :                 ndr_print_uint32(ndr, "offered", r->in.offered);
   36295           0 :                 ndr->depth--;
   36296             :         }
   36297           0 :         if (flags & NDR_OUT) {
   36298           0 :                 ndr_print_struct(ndr, "out", "spoolss_EnumPerMachineConnections");
   36299           0 :                 ndr->depth++;
   36300           0 :                 ndr_print_ptr(ndr, "count", r->out.count);
   36301           0 :                 ndr->depth++;
   36302           0 :                 ndr_print_uint32(ndr, "count", *r->out.count);
   36303           0 :                 ndr->depth--;
   36304           0 :                 ndr_print_ptr(ndr, "info", r->out.info);
   36305           0 :                 ndr->depth++;
   36306           0 :                 ndr_print_ptr(ndr, "info", *r->out.info);
   36307           0 :                 ndr->depth++;
   36308           0 :                 if (*r->out.info) {
   36309           0 :                         ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "info", (uint32_t)(*r->out.count));
   36310           0 :                         ndr->depth++;
   36311           0 :                         for (cntr_info_2 = 0; cntr_info_2 < (*r->out.count); cntr_info_2++) {
   36312           0 :                                 ndr_print_spoolss_PrinterInfo4(ndr, "info", &(*r->out.info)[cntr_info_2]);
   36313             :                         }
   36314           0 :                         ndr->depth--;
   36315             :                 }
   36316           0 :                 ndr->depth--;
   36317           0 :                 ndr->depth--;
   36318           0 :                 ndr_print_ptr(ndr, "needed", r->out.needed);
   36319           0 :                 ndr->depth++;
   36320           0 :                 ndr_print_uint32(ndr, "needed", *r->out.needed);
   36321           0 :                 ndr->depth--;
   36322           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   36323           0 :                 ndr->depth--;
   36324             :         }
   36325           0 :         ndr->depth--;
   36326             : }
   36327             : 
   36328           0 : static enum ndr_err_code ndr_push_spoolss_XcvData(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_XcvData *r)
   36329             : {
   36330           0 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   36331           0 :         if (flags & NDR_IN) {
   36332           0 :                 if (r->in.handle == NULL) {
   36333           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   36334             :                 }
   36335           0 :                 if (r->in.status_code == NULL) {
   36336           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   36337             :                 }
   36338           0 :                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
   36339           0 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.function_name, CH_UTF16)));
   36340           0 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   36341           0 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.function_name, CH_UTF16)));
   36342           0 :                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.function_name, ndr_charset_length(r->in.function_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   36343           0 :                 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.in_data));
   36344           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.in_data.length));
   36345           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.out_data_size));
   36346           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.status_code));
   36347             :         }
   36348           0 :         if (flags & NDR_OUT) {
   36349           0 :                 if (r->out.out_data == NULL) {
   36350           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   36351             :                 }
   36352           0 :                 if (r->out.needed == NULL) {
   36353           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   36354             :                 }
   36355           0 :                 if (r->out.status_code == NULL) {
   36356           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   36357             :                 }
   36358           0 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.out_data_size));
   36359           0 :                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.out_data, r->in.out_data_size));
   36360           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
   36361           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.status_code));
   36362           0 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   36363             :         }
   36364           0 :         return NDR_ERR_SUCCESS;
   36365             : }
   36366             : 
   36367           0 : static enum ndr_err_code ndr_pull_spoolss_XcvData(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_XcvData *r)
   36368             : {
   36369           0 :         uint32_t size_function_name_0 = 0;
   36370           0 :         uint32_t length_function_name_0 = 0;
   36371           0 :         uint32_t size_out_data_1 = 0;
   36372           0 :         TALLOC_CTX *_mem_save_handle_0 = NULL;
   36373           0 :         TALLOC_CTX *_mem_save_needed_0 = NULL;
   36374           0 :         TALLOC_CTX *_mem_save_status_code_0 = NULL;
   36375           0 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   36376           0 :         if (flags & NDR_IN) {
   36377           0 :                 NDR_ZERO_STRUCT(r->out);
   36378             : 
   36379           0 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   36380           0 :                         NDR_PULL_ALLOC(ndr, r->in.handle);
   36381             :                 }
   36382           0 :                 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
   36383           0 :                 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
   36384           0 :                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
   36385           0 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
   36386           0 :                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.function_name));
   36387           0 :                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.function_name));
   36388           0 :                 NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.function_name, &size_function_name_0));
   36389           0 :                 NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.function_name, &length_function_name_0));
   36390           0 :                 if (length_function_name_0 > size_function_name_0) {
   36391           0 :                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_function_name_0, length_function_name_0);
   36392             :                 }
   36393           0 :                 NDR_CHECK(ndr_check_string_terminator(ndr, length_function_name_0, sizeof(uint16_t)));
   36394           0 :                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.function_name, length_function_name_0, sizeof(uint16_t), CH_UTF16));
   36395           0 :                 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->in.in_data));
   36396           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._in_data_length));
   36397           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.out_data_size));
   36398           0 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   36399           0 :                         NDR_PULL_ALLOC(ndr, r->in.status_code);
   36400             :                 }
   36401           0 :                 _mem_save_status_code_0 = NDR_PULL_GET_MEM_CTX(ndr);
   36402           0 :                 NDR_PULL_SET_MEM_CTX(ndr, r->in.status_code, LIBNDR_FLAG_REF_ALLOC);
   36403           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.status_code));
   36404           0 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_code_0, LIBNDR_FLAG_REF_ALLOC);
   36405           0 :                 NDR_PULL_ALLOC_N(ndr, r->out.out_data, r->in.out_data_size);
   36406           0 :                 memset(r->out.out_data, 0, (r->in.out_data_size) * sizeof(*r->out.out_data));
   36407           0 :                 NDR_PULL_ALLOC(ndr, r->out.needed);
   36408           0 :                 NDR_ZERO_STRUCTP(r->out.needed);
   36409           0 :                 NDR_PULL_ALLOC(ndr, r->out.status_code);
   36410           0 :                 *r->out.status_code = *r->in.status_code;
   36411             :         }
   36412           0 :         if (flags & NDR_OUT) {
   36413             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   36414             :                 if (r->in.handle == NULL) {
   36415             :                         NDR_PULL_ALLOC(ndr, r->in.handle);
   36416             :                         NDR_ZERO_STRUCTP(r->in.handle);
   36417             :                 }
   36418             :                 if (r->in.status_code == NULL) {
   36419             :                         NDR_PULL_ALLOC(ndr, r->in.status_code);
   36420             :                         NDR_ZERO_STRUCTP(r->in.status_code);
   36421             :                 }
   36422             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   36423           0 :                 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.out_data));
   36424           0 :                 NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->out.out_data, &size_out_data_1));
   36425           0 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   36426           0 :                         NDR_PULL_ALLOC_N(ndr, r->out.out_data, size_out_data_1);
   36427             :                 }
   36428           0 :                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.out_data, size_out_data_1));
   36429           0 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   36430           0 :                         NDR_PULL_ALLOC(ndr, r->out.needed);
   36431             :                 }
   36432           0 :                 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
   36433           0 :                 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
   36434           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
   36435           0 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
   36436           0 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   36437           0 :                         NDR_PULL_ALLOC(ndr, r->out.status_code);
   36438             :                 }
   36439           0 :                 _mem_save_status_code_0 = NDR_PULL_GET_MEM_CTX(ndr);
   36440           0 :                 NDR_PULL_SET_MEM_CTX(ndr, r->out.status_code, LIBNDR_FLAG_REF_ALLOC);
   36441           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.status_code));
   36442           0 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_code_0, LIBNDR_FLAG_REF_ALLOC);
   36443           0 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   36444           0 :                 if (r->out.out_data) {
   36445           0 :                         NDR_CHECK(ndr_check_steal_array_size(ndr, (void*)&r->out.out_data, r->in.out_data_size));
   36446             :                 }
   36447             :         }
   36448           0 :         return NDR_ERR_SUCCESS;
   36449             : }
   36450             : 
   36451           0 : _PUBLIC_ void ndr_print_spoolss_XcvData(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_XcvData *r)
   36452             : {
   36453           0 :         ndr_print_struct(ndr, name, "spoolss_XcvData");
   36454           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   36455           0 :         ndr->depth++;
   36456           0 :         if (flags & NDR_SET_VALUES) {
   36457           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   36458             :         }
   36459           0 :         if (flags & NDR_IN) {
   36460           0 :                 ndr_print_struct(ndr, "in", "spoolss_XcvData");
   36461           0 :                 ndr->depth++;
   36462           0 :                 ndr_print_ptr(ndr, "handle", r->in.handle);
   36463           0 :                 ndr->depth++;
   36464           0 :                 ndr_print_policy_handle(ndr, "handle", r->in.handle);
   36465           0 :                 ndr->depth--;
   36466           0 :                 ndr_print_string(ndr, "function_name", r->in.function_name);
   36467           0 :                 ndr_print_DATA_BLOB(ndr, "in_data", r->in.in_data);
   36468           0 :                 ndr_print_uint32(ndr, "_in_data_length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->in.in_data.length:r->in._in_data_length);
   36469           0 :                 ndr_print_uint32(ndr, "out_data_size", r->in.out_data_size);
   36470           0 :                 ndr_print_ptr(ndr, "status_code", r->in.status_code);
   36471           0 :                 ndr->depth++;
   36472           0 :                 ndr_print_uint32(ndr, "status_code", *r->in.status_code);
   36473           0 :                 ndr->depth--;
   36474           0 :                 ndr->depth--;
   36475             :         }
   36476           0 :         if (flags & NDR_OUT) {
   36477           0 :                 ndr_print_struct(ndr, "out", "spoolss_XcvData");
   36478           0 :                 ndr->depth++;
   36479           0 :                 ndr_print_ptr(ndr, "out_data", r->out.out_data);
   36480           0 :                 ndr->depth++;
   36481           0 :                 ndr_print_array_uint8(ndr, "out_data", r->out.out_data, r->in.out_data_size);
   36482           0 :                 ndr->depth--;
   36483           0 :                 ndr_print_ptr(ndr, "needed", r->out.needed);
   36484           0 :                 ndr->depth++;
   36485           0 :                 ndr_print_uint32(ndr, "needed", *r->out.needed);
   36486           0 :                 ndr->depth--;
   36487           0 :                 ndr_print_ptr(ndr, "status_code", r->out.status_code);
   36488           0 :                 ndr->depth++;
   36489           0 :                 ndr_print_uint32(ndr, "status_code", *r->out.status_code);
   36490           0 :                 ndr->depth--;
   36491           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   36492           0 :                 ndr->depth--;
   36493             :         }
   36494           0 :         ndr->depth--;
   36495             : }
   36496             : 
   36497           0 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_AddPrinterDriverEx(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_AddPrinterDriverEx *r)
   36498             : {
   36499           0 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   36500           0 :         if (flags & NDR_IN) {
   36501           0 :                 if (r->in.info_ctr == NULL) {
   36502           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   36503             :                 }
   36504           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
   36505           0 :                 if (r->in.servername) {
   36506           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
   36507           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   36508           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
   36509           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   36510             :                 }
   36511           0 :                 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
   36512           0 :                 NDR_CHECK(ndr_push_spoolss_AddPrinterDriverExFlags(ndr, NDR_SCALARS, r->in.flags));
   36513             :         }
   36514           0 :         if (flags & NDR_OUT) {
   36515           0 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   36516             :         }
   36517           0 :         return NDR_ERR_SUCCESS;
   36518             : }
   36519             : 
   36520           2 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_AddPrinterDriverEx(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_AddPrinterDriverEx *r)
   36521             : {
   36522           2 :         uint32_t _ptr_servername;
   36523           2 :         uint32_t size_servername_1 = 0;
   36524           2 :         uint32_t length_servername_1 = 0;
   36525           2 :         TALLOC_CTX *_mem_save_servername_0 = NULL;
   36526           2 :         TALLOC_CTX *_mem_save_info_ctr_0 = NULL;
   36527           2 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   36528           2 :         if (flags & NDR_IN) {
   36529           2 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
   36530           2 :                 if (_ptr_servername) {
   36531           2 :                         NDR_PULL_ALLOC(ndr, r->in.servername);
   36532             :                 } else {
   36533           0 :                         r->in.servername = NULL;
   36534             :                 }
   36535           2 :                 if (r->in.servername) {
   36536           2 :                         _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
   36537           2 :                         NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
   36538           2 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
   36539           2 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
   36540           2 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.servername, &size_servername_1));
   36541           2 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.servername, &length_servername_1));
   36542           2 :                         if (length_servername_1 > size_servername_1) {
   36543           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_servername_1, length_servername_1);
   36544             :                         }
   36545           2 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_servername_1, sizeof(uint16_t)));
   36546           2 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, length_servername_1, sizeof(uint16_t), CH_UTF16));
   36547           2 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
   36548             :                 }
   36549           2 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   36550           2 :                         NDR_PULL_ALLOC(ndr, r->in.info_ctr);
   36551             :                 }
   36552           2 :                 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
   36553           2 :                 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
   36554           2 :                 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
   36555           2 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
   36556           4 :                 NDR_CHECK(ndr_pull_spoolss_AddPrinterDriverExFlags(ndr, NDR_SCALARS, &r->in.flags));
   36557             :         }
   36558           2 :         if (flags & NDR_OUT) {
   36559             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   36560             :                 if (r->in.info_ctr == NULL) {
   36561             :                         NDR_PULL_ALLOC(ndr, r->in.info_ctr);
   36562             :                         NDR_ZERO_STRUCTP(r->in.info_ctr);
   36563             :                 }
   36564             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   36565           0 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   36566             :         }
   36567           0 :         return NDR_ERR_SUCCESS;
   36568             : }
   36569             : 
   36570           2 : _PUBLIC_ void ndr_print_spoolss_AddPrinterDriverEx(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_AddPrinterDriverEx *r)
   36571             : {
   36572           2 :         ndr_print_struct(ndr, name, "spoolss_AddPrinterDriverEx");
   36573           2 :         if (r == NULL) { ndr_print_null(ndr); return; }
   36574           2 :         ndr->depth++;
   36575           2 :         if (flags & NDR_SET_VALUES) {
   36576           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   36577             :         }
   36578           2 :         if (flags & NDR_IN) {
   36579           2 :                 ndr_print_struct(ndr, "in", "spoolss_AddPrinterDriverEx");
   36580           2 :                 ndr->depth++;
   36581           2 :                 ndr_print_ptr(ndr, "servername", r->in.servername);
   36582           2 :                 ndr->depth++;
   36583           2 :                 if (r->in.servername) {
   36584           2 :                         ndr_print_string(ndr, "servername", r->in.servername);
   36585             :                 }
   36586           2 :                 ndr->depth--;
   36587           2 :                 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
   36588           2 :                 ndr->depth++;
   36589           2 :                 ndr_print_spoolss_AddDriverInfoCtr(ndr, "info_ctr", r->in.info_ctr);
   36590           2 :                 ndr->depth--;
   36591           2 :                 ndr_print_spoolss_AddPrinterDriverExFlags(ndr, "flags", r->in.flags);
   36592           2 :                 ndr->depth--;
   36593             :         }
   36594           2 :         if (flags & NDR_OUT) {
   36595           0 :                 ndr_print_struct(ndr, "out", "spoolss_AddPrinterDriverEx");
   36596           0 :                 ndr->depth++;
   36597           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   36598           0 :                 ndr->depth--;
   36599             :         }
   36600           2 :         ndr->depth--;
   36601             : }
   36602             : 
   36603           0 : static enum ndr_err_code ndr_push_spoolss_5a(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_5a *r)
   36604             : {
   36605           0 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   36606           0 :         if (flags & NDR_IN) {
   36607           0 :         }
   36608           0 :         if (flags & NDR_OUT) {
   36609           0 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   36610             :         }
   36611           0 :         return NDR_ERR_SUCCESS;
   36612             : }
   36613             : 
   36614           0 : static enum ndr_err_code ndr_pull_spoolss_5a(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_5a *r)
   36615             : {
   36616           0 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   36617           0 :         if (flags & NDR_IN) {
   36618           0 :         }
   36619           0 :         if (flags & NDR_OUT) {
   36620             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   36621             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   36622           0 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   36623             :         }
   36624           0 :         return NDR_ERR_SUCCESS;
   36625             : }
   36626             : 
   36627           0 : _PUBLIC_ void ndr_print_spoolss_5a(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_5a *r)
   36628             : {
   36629           0 :         ndr_print_struct(ndr, name, "spoolss_5a");
   36630           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   36631           0 :         ndr->depth++;
   36632           0 :         if (flags & NDR_SET_VALUES) {
   36633           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   36634             :         }
   36635           0 :         if (flags & NDR_IN) {
   36636           0 :                 ndr_print_struct(ndr, "in", "spoolss_5a");
   36637           0 :                 ndr->depth++;
   36638           0 :                 ndr->depth--;
   36639             :         }
   36640           0 :         if (flags & NDR_OUT) {
   36641           0 :                 ndr_print_struct(ndr, "out", "spoolss_5a");
   36642           0 :                 ndr->depth++;
   36643           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   36644           0 :                 ndr->depth--;
   36645             :         }
   36646           0 :         ndr->depth--;
   36647             : }
   36648             : 
   36649           0 : static enum ndr_err_code ndr_push_spoolss_5b(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_5b *r)
   36650             : {
   36651           0 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   36652           0 :         if (flags & NDR_IN) {
   36653           0 :         }
   36654           0 :         if (flags & NDR_OUT) {
   36655           0 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   36656             :         }
   36657           0 :         return NDR_ERR_SUCCESS;
   36658             : }
   36659             : 
   36660           0 : static enum ndr_err_code ndr_pull_spoolss_5b(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_5b *r)
   36661             : {
   36662           0 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   36663           0 :         if (flags & NDR_IN) {
   36664           0 :         }
   36665           0 :         if (flags & NDR_OUT) {
   36666             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   36667             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   36668           0 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   36669             :         }
   36670           0 :         return NDR_ERR_SUCCESS;
   36671             : }
   36672             : 
   36673           0 : _PUBLIC_ void ndr_print_spoolss_5b(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_5b *r)
   36674             : {
   36675           0 :         ndr_print_struct(ndr, name, "spoolss_5b");
   36676           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   36677           0 :         ndr->depth++;
   36678           0 :         if (flags & NDR_SET_VALUES) {
   36679           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   36680             :         }
   36681           0 :         if (flags & NDR_IN) {
   36682           0 :                 ndr_print_struct(ndr, "in", "spoolss_5b");
   36683           0 :                 ndr->depth++;
   36684           0 :                 ndr->depth--;
   36685             :         }
   36686           0 :         if (flags & NDR_OUT) {
   36687           0 :                 ndr_print_struct(ndr, "out", "spoolss_5b");
   36688           0 :                 ndr->depth++;
   36689           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   36690           0 :                 ndr->depth--;
   36691             :         }
   36692           0 :         ndr->depth--;
   36693             : }
   36694             : 
   36695           0 : static enum ndr_err_code ndr_push_spoolss_5c(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_5c *r)
   36696             : {
   36697           0 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   36698           0 :         if (flags & NDR_IN) {
   36699           0 :         }
   36700           0 :         if (flags & NDR_OUT) {
   36701           0 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   36702             :         }
   36703           0 :         return NDR_ERR_SUCCESS;
   36704             : }
   36705             : 
   36706           0 : static enum ndr_err_code ndr_pull_spoolss_5c(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_5c *r)
   36707             : {
   36708           0 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   36709           0 :         if (flags & NDR_IN) {
   36710           0 :         }
   36711           0 :         if (flags & NDR_OUT) {
   36712             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   36713             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   36714           0 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   36715             :         }
   36716           0 :         return NDR_ERR_SUCCESS;
   36717             : }
   36718             : 
   36719           0 : _PUBLIC_ void ndr_print_spoolss_5c(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_5c *r)
   36720             : {
   36721           0 :         ndr_print_struct(ndr, name, "spoolss_5c");
   36722           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   36723           0 :         ndr->depth++;
   36724           0 :         if (flags & NDR_SET_VALUES) {
   36725           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   36726             :         }
   36727           0 :         if (flags & NDR_IN) {
   36728           0 :                 ndr_print_struct(ndr, "in", "spoolss_5c");
   36729           0 :                 ndr->depth++;
   36730           0 :                 ndr->depth--;
   36731             :         }
   36732           0 :         if (flags & NDR_OUT) {
   36733           0 :                 ndr_print_struct(ndr, "out", "spoolss_5c");
   36734           0 :                 ndr->depth++;
   36735           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   36736           0 :                 ndr->depth--;
   36737             :         }
   36738           0 :         ndr->depth--;
   36739             : }
   36740             : 
   36741           0 : static enum ndr_err_code ndr_push_spoolss_5d(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_5d *r)
   36742             : {
   36743           0 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   36744           0 :         if (flags & NDR_IN) {
   36745           0 :         }
   36746           0 :         if (flags & NDR_OUT) {
   36747           0 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   36748             :         }
   36749           0 :         return NDR_ERR_SUCCESS;
   36750             : }
   36751             : 
   36752           0 : static enum ndr_err_code ndr_pull_spoolss_5d(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_5d *r)
   36753             : {
   36754           0 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   36755           0 :         if (flags & NDR_IN) {
   36756           0 :         }
   36757           0 :         if (flags & NDR_OUT) {
   36758             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   36759             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   36760           0 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   36761             :         }
   36762           0 :         return NDR_ERR_SUCCESS;
   36763             : }
   36764             : 
   36765           0 : _PUBLIC_ void ndr_print_spoolss_5d(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_5d *r)
   36766             : {
   36767           0 :         ndr_print_struct(ndr, name, "spoolss_5d");
   36768           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   36769           0 :         ndr->depth++;
   36770           0 :         if (flags & NDR_SET_VALUES) {
   36771           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   36772             :         }
   36773           0 :         if (flags & NDR_IN) {
   36774           0 :                 ndr_print_struct(ndr, "in", "spoolss_5d");
   36775           0 :                 ndr->depth++;
   36776           0 :                 ndr->depth--;
   36777             :         }
   36778           0 :         if (flags & NDR_OUT) {
   36779           0 :                 ndr_print_struct(ndr, "out", "spoolss_5d");
   36780           0 :                 ndr->depth++;
   36781           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   36782           0 :                 ndr->depth--;
   36783             :         }
   36784           0 :         ndr->depth--;
   36785             : }
   36786             : 
   36787           0 : static enum ndr_err_code ndr_push_spoolss_5e(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_5e *r)
   36788             : {
   36789           0 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   36790           0 :         if (flags & NDR_IN) {
   36791           0 :         }
   36792           0 :         if (flags & NDR_OUT) {
   36793           0 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   36794             :         }
   36795           0 :         return NDR_ERR_SUCCESS;
   36796             : }
   36797             : 
   36798           0 : static enum ndr_err_code ndr_pull_spoolss_5e(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_5e *r)
   36799             : {
   36800           0 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   36801           0 :         if (flags & NDR_IN) {
   36802           0 :         }
   36803           0 :         if (flags & NDR_OUT) {
   36804             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   36805             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   36806           0 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   36807             :         }
   36808           0 :         return NDR_ERR_SUCCESS;
   36809             : }
   36810             : 
   36811           0 : _PUBLIC_ void ndr_print_spoolss_5e(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_5e *r)
   36812             : {
   36813           0 :         ndr_print_struct(ndr, name, "spoolss_5e");
   36814           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   36815           0 :         ndr->depth++;
   36816           0 :         if (flags & NDR_SET_VALUES) {
   36817           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   36818             :         }
   36819           0 :         if (flags & NDR_IN) {
   36820           0 :                 ndr_print_struct(ndr, "in", "spoolss_5e");
   36821           0 :                 ndr->depth++;
   36822           0 :                 ndr->depth--;
   36823             :         }
   36824           0 :         if (flags & NDR_OUT) {
   36825           0 :                 ndr_print_struct(ndr, "out", "spoolss_5e");
   36826           0 :                 ndr->depth++;
   36827           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   36828           0 :                 ndr->depth--;
   36829             :         }
   36830           0 :         ndr->depth--;
   36831             : }
   36832             : 
   36833           0 : static enum ndr_err_code ndr_push_spoolss_5f(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_5f *r)
   36834             : {
   36835           0 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   36836           0 :         if (flags & NDR_IN) {
   36837           0 :         }
   36838           0 :         if (flags & NDR_OUT) {
   36839           0 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   36840             :         }
   36841           0 :         return NDR_ERR_SUCCESS;
   36842             : }
   36843             : 
   36844           0 : static enum ndr_err_code ndr_pull_spoolss_5f(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_5f *r)
   36845             : {
   36846           0 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   36847           0 :         if (flags & NDR_IN) {
   36848           0 :         }
   36849           0 :         if (flags & NDR_OUT) {
   36850             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   36851             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   36852           0 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   36853             :         }
   36854           0 :         return NDR_ERR_SUCCESS;
   36855             : }
   36856             : 
   36857           0 : _PUBLIC_ void ndr_print_spoolss_5f(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_5f *r)
   36858             : {
   36859           0 :         ndr_print_struct(ndr, name, "spoolss_5f");
   36860           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   36861           0 :         ndr->depth++;
   36862           0 :         if (flags & NDR_SET_VALUES) {
   36863           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   36864             :         }
   36865           0 :         if (flags & NDR_IN) {
   36866           0 :                 ndr_print_struct(ndr, "in", "spoolss_5f");
   36867           0 :                 ndr->depth++;
   36868           0 :                 ndr->depth--;
   36869             :         }
   36870           0 :         if (flags & NDR_OUT) {
   36871           0 :                 ndr_print_struct(ndr, "out", "spoolss_5f");
   36872           0 :                 ndr->depth++;
   36873           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   36874           0 :                 ndr->depth--;
   36875             :         }
   36876           0 :         ndr->depth--;
   36877             : }
   36878             : 
   36879           0 : static enum ndr_err_code ndr_push_spoolss_60(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_60 *r)
   36880             : {
   36881           0 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   36882           0 :         if (flags & NDR_IN) {
   36883           0 :         }
   36884           0 :         if (flags & NDR_OUT) {
   36885           0 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   36886             :         }
   36887           0 :         return NDR_ERR_SUCCESS;
   36888             : }
   36889             : 
   36890           0 : static enum ndr_err_code ndr_pull_spoolss_60(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_60 *r)
   36891             : {
   36892           0 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   36893           0 :         if (flags & NDR_IN) {
   36894           0 :         }
   36895           0 :         if (flags & NDR_OUT) {
   36896             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   36897             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   36898           0 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   36899             :         }
   36900           0 :         return NDR_ERR_SUCCESS;
   36901             : }
   36902             : 
   36903           0 : _PUBLIC_ void ndr_print_spoolss_60(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_60 *r)
   36904             : {
   36905           0 :         ndr_print_struct(ndr, name, "spoolss_60");
   36906           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   36907           0 :         ndr->depth++;
   36908           0 :         if (flags & NDR_SET_VALUES) {
   36909           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   36910             :         }
   36911           0 :         if (flags & NDR_IN) {
   36912           0 :                 ndr_print_struct(ndr, "in", "spoolss_60");
   36913           0 :                 ndr->depth++;
   36914           0 :                 ndr->depth--;
   36915             :         }
   36916           0 :         if (flags & NDR_OUT) {
   36917           0 :                 ndr_print_struct(ndr, "out", "spoolss_60");
   36918           0 :                 ndr->depth++;
   36919           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   36920           0 :                 ndr->depth--;
   36921             :         }
   36922           0 :         ndr->depth--;
   36923             : }
   36924             : 
   36925           0 : static enum ndr_err_code ndr_push_spoolss_SendRecvBidiData(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_SendRecvBidiData *r)
   36926             : {
   36927           0 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   36928           0 :         if (flags & NDR_IN) {
   36929           0 :                 if (r->in.pReqData == NULL) {
   36930           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   36931             :                 }
   36932           0 :                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, &r->in.hPrinter));
   36933           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.pAction));
   36934           0 :                 if (r->in.pAction) {
   36935           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.pAction, CH_UTF16)));
   36936           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   36937           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.pAction, CH_UTF16)));
   36938           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.pAction, ndr_charset_length(r->in.pAction, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   36939             :                 }
   36940           0 :                 NDR_CHECK(ndr_push_RPC_BIDI_REQUEST_CONTAINER(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pReqData));
   36941             :         }
   36942           0 :         if (flags & NDR_OUT) {
   36943           0 :                 if (r->out.ppRespData == NULL) {
   36944           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   36945             :                 }
   36946           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.ppRespData));
   36947           0 :                 if (*r->out.ppRespData) {
   36948           0 :                         NDR_CHECK(ndr_push_RPC_BIDI_RESPONSE_CONTAINER(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ppRespData));
   36949             :                 }
   36950           0 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   36951             :         }
   36952           0 :         return NDR_ERR_SUCCESS;
   36953             : }
   36954             : 
   36955           0 : static enum ndr_err_code ndr_pull_spoolss_SendRecvBidiData(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_SendRecvBidiData *r)
   36956             : {
   36957           0 :         uint32_t _ptr_pAction;
   36958           0 :         uint32_t size_pAction_1 = 0;
   36959           0 :         uint32_t length_pAction_1 = 0;
   36960           0 :         uint32_t _ptr_ppRespData;
   36961           0 :         TALLOC_CTX *_mem_save_pAction_0 = NULL;
   36962           0 :         TALLOC_CTX *_mem_save_pReqData_0 = NULL;
   36963           0 :         TALLOC_CTX *_mem_save_ppRespData_0 = NULL;
   36964           0 :         TALLOC_CTX *_mem_save_ppRespData_1 = NULL;
   36965           0 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   36966           0 :         if (flags & NDR_IN) {
   36967           0 :                 NDR_ZERO_STRUCT(r->out);
   36968             : 
   36969           0 :                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, &r->in.hPrinter));
   36970           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pAction));
   36971           0 :                 if (_ptr_pAction) {
   36972           0 :                         NDR_PULL_ALLOC(ndr, r->in.pAction);
   36973             :                 } else {
   36974           0 :                         r->in.pAction = NULL;
   36975             :                 }
   36976           0 :                 if (r->in.pAction) {
   36977           0 :                         _mem_save_pAction_0 = NDR_PULL_GET_MEM_CTX(ndr);
   36978           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->in.pAction, 0);
   36979           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.pAction));
   36980           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.pAction));
   36981           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.pAction, &size_pAction_1));
   36982           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.pAction, &length_pAction_1));
   36983           0 :                         if (length_pAction_1 > size_pAction_1) {
   36984           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_pAction_1, length_pAction_1);
   36985             :                         }
   36986           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pAction_1, sizeof(uint16_t)));
   36987           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.pAction, length_pAction_1, sizeof(uint16_t), CH_UTF16));
   36988           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pAction_0, 0);
   36989             :                 }
   36990           0 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   36991           0 :                         NDR_PULL_ALLOC(ndr, r->in.pReqData);
   36992             :                 }
   36993           0 :                 _mem_save_pReqData_0 = NDR_PULL_GET_MEM_CTX(ndr);
   36994           0 :                 NDR_PULL_SET_MEM_CTX(ndr, r->in.pReqData, LIBNDR_FLAG_REF_ALLOC);
   36995           0 :                 NDR_CHECK(ndr_pull_RPC_BIDI_REQUEST_CONTAINER(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pReqData));
   36996           0 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pReqData_0, LIBNDR_FLAG_REF_ALLOC);
   36997           0 :                 NDR_PULL_ALLOC(ndr, r->out.ppRespData);
   36998           0 :                 NDR_ZERO_STRUCTP(r->out.ppRespData);
   36999             :         }
   37000           0 :         if (flags & NDR_OUT) {
   37001             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   37002             :                 if (r->in.pReqData == NULL) {
   37003             :                         NDR_PULL_ALLOC(ndr, r->in.pReqData);
   37004             :                         NDR_ZERO_STRUCTP(r->in.pReqData);
   37005             :                 }
   37006             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   37007           0 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   37008           0 :                         NDR_PULL_ALLOC(ndr, r->out.ppRespData);
   37009             :                 }
   37010           0 :                 _mem_save_ppRespData_0 = NDR_PULL_GET_MEM_CTX(ndr);
   37011           0 :                 NDR_PULL_SET_MEM_CTX(ndr, r->out.ppRespData, LIBNDR_FLAG_REF_ALLOC);
   37012           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ppRespData));
   37013           0 :                 if (_ptr_ppRespData) {
   37014           0 :                         NDR_PULL_ALLOC(ndr, *r->out.ppRespData);
   37015             :                 } else {
   37016           0 :                         *r->out.ppRespData = NULL;
   37017             :                 }
   37018           0 :                 if (*r->out.ppRespData) {
   37019           0 :                         _mem_save_ppRespData_1 = NDR_PULL_GET_MEM_CTX(ndr);
   37020           0 :                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.ppRespData, 0);
   37021           0 :                         NDR_CHECK(ndr_pull_RPC_BIDI_RESPONSE_CONTAINER(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ppRespData));
   37022           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ppRespData_1, 0);
   37023             :                 }
   37024           0 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ppRespData_0, LIBNDR_FLAG_REF_ALLOC);
   37025           0 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   37026             :         }
   37027           0 :         return NDR_ERR_SUCCESS;
   37028             : }
   37029             : 
   37030           0 : _PUBLIC_ void ndr_print_spoolss_SendRecvBidiData(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_SendRecvBidiData *r)
   37031             : {
   37032           0 :         ndr_print_struct(ndr, name, "spoolss_SendRecvBidiData");
   37033           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   37034           0 :         ndr->depth++;
   37035           0 :         if (flags & NDR_SET_VALUES) {
   37036           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   37037             :         }
   37038           0 :         if (flags & NDR_IN) {
   37039           0 :                 ndr_print_struct(ndr, "in", "spoolss_SendRecvBidiData");
   37040           0 :                 ndr->depth++;
   37041           0 :                 ndr_print_policy_handle(ndr, "hPrinter", &r->in.hPrinter);
   37042           0 :                 ndr_print_ptr(ndr, "pAction", r->in.pAction);
   37043           0 :                 ndr->depth++;
   37044           0 :                 if (r->in.pAction) {
   37045           0 :                         ndr_print_string(ndr, "pAction", r->in.pAction);
   37046             :                 }
   37047           0 :                 ndr->depth--;
   37048           0 :                 ndr_print_ptr(ndr, "pReqData", r->in.pReqData);
   37049           0 :                 ndr->depth++;
   37050           0 :                 ndr_print_RPC_BIDI_REQUEST_CONTAINER(ndr, "pReqData", r->in.pReqData);
   37051           0 :                 ndr->depth--;
   37052           0 :                 ndr->depth--;
   37053             :         }
   37054           0 :         if (flags & NDR_OUT) {
   37055           0 :                 ndr_print_struct(ndr, "out", "spoolss_SendRecvBidiData");
   37056           0 :                 ndr->depth++;
   37057           0 :                 ndr_print_ptr(ndr, "ppRespData", r->out.ppRespData);
   37058           0 :                 ndr->depth++;
   37059           0 :                 ndr_print_ptr(ndr, "ppRespData", *r->out.ppRespData);
   37060           0 :                 ndr->depth++;
   37061           0 :                 if (*r->out.ppRespData) {
   37062           0 :                         ndr_print_RPC_BIDI_RESPONSE_CONTAINER(ndr, "ppRespData", *r->out.ppRespData);
   37063             :                 }
   37064           0 :                 ndr->depth--;
   37065           0 :                 ndr->depth--;
   37066           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   37067           0 :                 ndr->depth--;
   37068             :         }
   37069           0 :         ndr->depth--;
   37070             : }
   37071             : 
   37072           0 : static enum ndr_err_code ndr_push_spoolss_62(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_62 *r)
   37073             : {
   37074           0 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   37075           0 :         if (flags & NDR_IN) {
   37076           0 :         }
   37077           0 :         if (flags & NDR_OUT) {
   37078           0 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   37079             :         }
   37080           0 :         return NDR_ERR_SUCCESS;
   37081             : }
   37082             : 
   37083           0 : static enum ndr_err_code ndr_pull_spoolss_62(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_62 *r)
   37084             : {
   37085           0 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   37086           0 :         if (flags & NDR_IN) {
   37087           0 :         }
   37088           0 :         if (flags & NDR_OUT) {
   37089             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   37090             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   37091           0 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   37092             :         }
   37093           0 :         return NDR_ERR_SUCCESS;
   37094             : }
   37095             : 
   37096           0 : _PUBLIC_ void ndr_print_spoolss_62(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_62 *r)
   37097             : {
   37098           0 :         ndr_print_struct(ndr, name, "spoolss_62");
   37099           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   37100           0 :         ndr->depth++;
   37101           0 :         if (flags & NDR_SET_VALUES) {
   37102           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   37103             :         }
   37104           0 :         if (flags & NDR_IN) {
   37105           0 :                 ndr_print_struct(ndr, "in", "spoolss_62");
   37106           0 :                 ndr->depth++;
   37107           0 :                 ndr->depth--;
   37108             :         }
   37109           0 :         if (flags & NDR_OUT) {
   37110           0 :                 ndr_print_struct(ndr, "out", "spoolss_62");
   37111           0 :                 ndr->depth++;
   37112           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   37113           0 :                 ndr->depth--;
   37114             :         }
   37115           0 :         ndr->depth--;
   37116             : }
   37117             : 
   37118           0 : static enum ndr_err_code ndr_push_spoolss_63(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_63 *r)
   37119             : {
   37120           0 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   37121           0 :         if (flags & NDR_IN) {
   37122           0 :         }
   37123           0 :         if (flags & NDR_OUT) {
   37124           0 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   37125             :         }
   37126           0 :         return NDR_ERR_SUCCESS;
   37127             : }
   37128             : 
   37129           0 : static enum ndr_err_code ndr_pull_spoolss_63(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_63 *r)
   37130             : {
   37131           0 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   37132           0 :         if (flags & NDR_IN) {
   37133           0 :         }
   37134           0 :         if (flags & NDR_OUT) {
   37135             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   37136             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   37137           0 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   37138             :         }
   37139           0 :         return NDR_ERR_SUCCESS;
   37140             : }
   37141             : 
   37142           0 : _PUBLIC_ void ndr_print_spoolss_63(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_63 *r)
   37143             : {
   37144           0 :         ndr_print_struct(ndr, name, "spoolss_63");
   37145           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   37146           0 :         ndr->depth++;
   37147           0 :         if (flags & NDR_SET_VALUES) {
   37148           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   37149             :         }
   37150           0 :         if (flags & NDR_IN) {
   37151           0 :                 ndr_print_struct(ndr, "in", "spoolss_63");
   37152           0 :                 ndr->depth++;
   37153           0 :                 ndr->depth--;
   37154             :         }
   37155           0 :         if (flags & NDR_OUT) {
   37156           0 :                 ndr_print_struct(ndr, "out", "spoolss_63");
   37157           0 :                 ndr->depth++;
   37158           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   37159           0 :                 ndr->depth--;
   37160             :         }
   37161           0 :         ndr->depth--;
   37162             : }
   37163             : 
   37164           0 : static enum ndr_err_code ndr_push_spoolss_64(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_64 *r)
   37165             : {
   37166           0 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   37167           0 :         if (flags & NDR_IN) {
   37168           0 :         }
   37169           0 :         if (flags & NDR_OUT) {
   37170           0 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   37171             :         }
   37172           0 :         return NDR_ERR_SUCCESS;
   37173             : }
   37174             : 
   37175           0 : static enum ndr_err_code ndr_pull_spoolss_64(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_64 *r)
   37176             : {
   37177           0 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   37178           0 :         if (flags & NDR_IN) {
   37179           0 :         }
   37180           0 :         if (flags & NDR_OUT) {
   37181             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   37182             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   37183           0 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   37184             :         }
   37185           0 :         return NDR_ERR_SUCCESS;
   37186             : }
   37187             : 
   37188           0 : _PUBLIC_ void ndr_print_spoolss_64(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_64 *r)
   37189             : {
   37190           0 :         ndr_print_struct(ndr, name, "spoolss_64");
   37191           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   37192           0 :         ndr->depth++;
   37193           0 :         if (flags & NDR_SET_VALUES) {
   37194           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   37195             :         }
   37196           0 :         if (flags & NDR_IN) {
   37197           0 :                 ndr_print_struct(ndr, "in", "spoolss_64");
   37198           0 :                 ndr->depth++;
   37199           0 :                 ndr->depth--;
   37200             :         }
   37201           0 :         if (flags & NDR_OUT) {
   37202           0 :                 ndr_print_struct(ndr, "out", "spoolss_64");
   37203           0 :                 ndr->depth++;
   37204           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   37205           0 :                 ndr->depth--;
   37206             :         }
   37207           0 :         ndr->depth--;
   37208             : }
   37209             : 
   37210           0 : static enum ndr_err_code ndr_push_spoolss_65(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_65 *r)
   37211             : {
   37212           0 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   37213           0 :         if (flags & NDR_IN) {
   37214           0 :         }
   37215           0 :         if (flags & NDR_OUT) {
   37216           0 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   37217             :         }
   37218           0 :         return NDR_ERR_SUCCESS;
   37219             : }
   37220             : 
   37221           0 : static enum ndr_err_code ndr_pull_spoolss_65(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_65 *r)
   37222             : {
   37223           0 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   37224           0 :         if (flags & NDR_IN) {
   37225           0 :         }
   37226           0 :         if (flags & NDR_OUT) {
   37227             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   37228             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   37229           0 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   37230             :         }
   37231           0 :         return NDR_ERR_SUCCESS;
   37232             : }
   37233             : 
   37234           0 : _PUBLIC_ void ndr_print_spoolss_65(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_65 *r)
   37235             : {
   37236           0 :         ndr_print_struct(ndr, name, "spoolss_65");
   37237           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   37238           0 :         ndr->depth++;
   37239           0 :         if (flags & NDR_SET_VALUES) {
   37240           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   37241             :         }
   37242           0 :         if (flags & NDR_IN) {
   37243           0 :                 ndr_print_struct(ndr, "in", "spoolss_65");
   37244           0 :                 ndr->depth++;
   37245           0 :                 ndr->depth--;
   37246             :         }
   37247           0 :         if (flags & NDR_OUT) {
   37248           0 :                 ndr_print_struct(ndr, "out", "spoolss_65");
   37249           0 :                 ndr->depth++;
   37250           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   37251           0 :                 ndr->depth--;
   37252             :         }
   37253           0 :         ndr->depth--;
   37254             : }
   37255             : 
   37256           8 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetCorePrinterDrivers(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_GetCorePrinterDrivers *r)
   37257             : {
   37258           0 :         uint32_t cntr_core_driver_dependencies_1;
   37259           0 :         uint32_t cntr_core_printer_drivers_1;
   37260           8 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   37261           8 :         if (flags & NDR_IN) {
   37262           8 :                 if (r->in.architecture == NULL) {
   37263           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   37264             :                 }
   37265           8 :                 if (r->in.core_driver_dependencies == NULL) {
   37266           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   37267             :                 }
   37268           8 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
   37269           8 :                 if (r->in.servername) {
   37270           8 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
   37271           8 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   37272           8 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
   37273           8 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   37274             :                 }
   37275           8 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
   37276           8 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   37277           8 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
   37278           8 :                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   37279           8 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.core_driver_size));
   37280           8 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.core_driver_size));
   37281           8 :                 for (cntr_core_driver_dependencies_1 = 0; cntr_core_driver_dependencies_1 < (r->in.core_driver_size); cntr_core_driver_dependencies_1++) {
   37282           0 :                         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.core_driver_dependencies[cntr_core_driver_dependencies_1]));
   37283             :                 }
   37284           8 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.core_printer_driver_count));
   37285             :         }
   37286           8 :         if (flags & NDR_OUT) {
   37287           0 :                 if (r->out.core_printer_drivers == NULL) {
   37288           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   37289             :                 }
   37290           0 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.core_printer_driver_count));
   37291           0 :                 for (cntr_core_printer_drivers_1 = 0; cntr_core_printer_drivers_1 < (r->in.core_printer_driver_count); cntr_core_printer_drivers_1++) {
   37292           0 :                         NDR_CHECK(ndr_push_spoolss_CorePrinterDriver(ndr, NDR_SCALARS, &r->out.core_printer_drivers[cntr_core_printer_drivers_1]));
   37293             :                 }
   37294           0 :                 NDR_CHECK(ndr_push_HRESULT(ndr, NDR_SCALARS, r->out.result));
   37295             :         }
   37296           8 :         return NDR_ERR_SUCCESS;
   37297             : }
   37298             : 
   37299          22 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetCorePrinterDrivers(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_GetCorePrinterDrivers *r)
   37300             : {
   37301          14 :         uint32_t _ptr_servername;
   37302          22 :         uint32_t size_servername_1 = 0;
   37303          22 :         uint32_t length_servername_1 = 0;
   37304          22 :         uint32_t size_architecture_1 = 0;
   37305          22 :         uint32_t length_architecture_1 = 0;
   37306          22 :         uint32_t size_core_driver_dependencies_1 = 0;
   37307          14 :         uint32_t cntr_core_driver_dependencies_1;
   37308          22 :         uint32_t size_core_printer_drivers_1 = 0;
   37309          14 :         uint32_t cntr_core_printer_drivers_1;
   37310          22 :         TALLOC_CTX *_mem_save_servername_0 = NULL;
   37311          22 :         TALLOC_CTX *_mem_save_core_driver_dependencies_1 = NULL;
   37312          22 :         TALLOC_CTX *_mem_save_core_printer_drivers_1 = NULL;
   37313          22 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   37314          22 :         if (flags & NDR_IN) {
   37315          18 :                 NDR_ZERO_STRUCT(r->out);
   37316             : 
   37317          18 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
   37318          18 :                 if (_ptr_servername) {
   37319          18 :                         NDR_PULL_ALLOC(ndr, r->in.servername);
   37320             :                 } else {
   37321           0 :                         r->in.servername = NULL;
   37322             :                 }
   37323          18 :                 if (r->in.servername) {
   37324          18 :                         _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
   37325          18 :                         NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
   37326          18 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
   37327          18 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
   37328          18 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.servername, &size_servername_1));
   37329          18 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.servername, &length_servername_1));
   37330          18 :                         if (length_servername_1 > size_servername_1) {
   37331           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_servername_1, length_servername_1);
   37332             :                         }
   37333          18 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_servername_1, sizeof(uint16_t)));
   37334          18 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, length_servername_1, sizeof(uint16_t), CH_UTF16));
   37335          18 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
   37336             :                 }
   37337          18 :                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
   37338          18 :                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
   37339          18 :                 NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.architecture, &size_architecture_1));
   37340          18 :                 NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.architecture, &length_architecture_1));
   37341          18 :                 if (length_architecture_1 > size_architecture_1) {
   37342           0 :                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_architecture_1, length_architecture_1);
   37343             :                 }
   37344          18 :                 NDR_CHECK(ndr_check_string_terminator(ndr, length_architecture_1, sizeof(uint16_t)));
   37345          18 :                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, length_architecture_1, sizeof(uint16_t), CH_UTF16));
   37346          18 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.core_driver_size));
   37347          18 :                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.core_driver_dependencies));
   37348          18 :                 NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->in.core_driver_dependencies, &size_core_driver_dependencies_1));
   37349          18 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   37350          18 :                         NDR_PULL_ALLOC_N(ndr, r->in.core_driver_dependencies, size_core_driver_dependencies_1);
   37351             :                 }
   37352          18 :                 _mem_save_core_driver_dependencies_1 = NDR_PULL_GET_MEM_CTX(ndr);
   37353          18 :                 NDR_PULL_SET_MEM_CTX(ndr, r->in.core_driver_dependencies, 0);
   37354         548 :                 for (cntr_core_driver_dependencies_1 = 0; cntr_core_driver_dependencies_1 < (size_core_driver_dependencies_1); cntr_core_driver_dependencies_1++) {
   37355         530 :                         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.core_driver_dependencies[cntr_core_driver_dependencies_1]));
   37356             :                 }
   37357          18 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_core_driver_dependencies_1, 0);
   37358          18 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.core_printer_driver_count));
   37359          18 :                 NDR_PULL_ALLOC_N(ndr, r->out.core_printer_drivers, r->in.core_printer_driver_count);
   37360          18 :                 memset(r->out.core_printer_drivers, 0, (r->in.core_printer_driver_count) * sizeof(*r->out.core_printer_drivers));
   37361          18 :                 if (r->in.core_driver_dependencies) {
   37362          18 :                         NDR_CHECK(ndr_check_steal_array_size(ndr, (void*)&r->in.core_driver_dependencies, r->in.core_driver_size));
   37363             :                 }
   37364             :         }
   37365          22 :         if (flags & NDR_OUT) {
   37366             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   37367             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   37368           4 :                 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.core_printer_drivers));
   37369           4 :                 NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->out.core_printer_drivers, &size_core_printer_drivers_1));
   37370           4 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   37371           4 :                         NDR_PULL_ALLOC_N(ndr, r->out.core_printer_drivers, size_core_printer_drivers_1);
   37372             :                 }
   37373           4 :                 _mem_save_core_printer_drivers_1 = NDR_PULL_GET_MEM_CTX(ndr);
   37374           4 :                 NDR_PULL_SET_MEM_CTX(ndr, r->out.core_printer_drivers, 0);
   37375           8 :                 for (cntr_core_printer_drivers_1 = 0; cntr_core_printer_drivers_1 < (size_core_printer_drivers_1); cntr_core_printer_drivers_1++) {
   37376           4 :                         NDR_CHECK(ndr_pull_spoolss_CorePrinterDriver(ndr, NDR_SCALARS, &r->out.core_printer_drivers[cntr_core_printer_drivers_1]));
   37377             :                 }
   37378           4 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_core_printer_drivers_1, 0);
   37379           4 :                 NDR_CHECK(ndr_pull_HRESULT(ndr, NDR_SCALARS, &r->out.result));
   37380           4 :                 if (r->out.core_printer_drivers) {
   37381           4 :                         NDR_CHECK(ndr_check_steal_array_size(ndr, (void*)&r->out.core_printer_drivers, r->in.core_printer_driver_count));
   37382             :                 }
   37383             :         }
   37384           8 :         return NDR_ERR_SUCCESS;
   37385             : }
   37386             : 
   37387          14 : _PUBLIC_ void ndr_print_spoolss_GetCorePrinterDrivers(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_GetCorePrinterDrivers *r)
   37388             : {
   37389          14 :         uint32_t cntr_core_driver_dependencies_1;
   37390          14 :         uint32_t cntr_core_printer_drivers_1;
   37391          14 :         ndr_print_struct(ndr, name, "spoolss_GetCorePrinterDrivers");
   37392          14 :         if (r == NULL) { ndr_print_null(ndr); return; }
   37393          14 :         ndr->depth++;
   37394          14 :         if (flags & NDR_SET_VALUES) {
   37395           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   37396             :         }
   37397          14 :         if (flags & NDR_IN) {
   37398          10 :                 ndr_print_struct(ndr, "in", "spoolss_GetCorePrinterDrivers");
   37399          10 :                 ndr->depth++;
   37400          10 :                 ndr_print_ptr(ndr, "servername", r->in.servername);
   37401          10 :                 ndr->depth++;
   37402          10 :                 if (r->in.servername) {
   37403          10 :                         ndr_print_string(ndr, "servername", r->in.servername);
   37404             :                 }
   37405          10 :                 ndr->depth--;
   37406          10 :                 ndr_print_ptr(ndr, "architecture", r->in.architecture);
   37407          10 :                 ndr->depth++;
   37408          10 :                 ndr_print_string(ndr, "architecture", r->in.architecture);
   37409          10 :                 ndr->depth--;
   37410          10 :                 ndr_print_uint32(ndr, "core_driver_size", r->in.core_driver_size);
   37411          10 :                 ndr_print_ptr(ndr, "core_driver_dependencies", r->in.core_driver_dependencies);
   37412          10 :                 ndr->depth++;
   37413          10 :                 ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "core_driver_dependencies", (uint32_t)(r->in.core_driver_size));
   37414          10 :                 ndr->depth++;
   37415         540 :                 for (cntr_core_driver_dependencies_1 = 0; cntr_core_driver_dependencies_1 < (r->in.core_driver_size); cntr_core_driver_dependencies_1++) {
   37416         530 :                         ndr_print_uint16(ndr, "core_driver_dependencies", r->in.core_driver_dependencies[cntr_core_driver_dependencies_1]);
   37417             :                 }
   37418          10 :                 ndr->depth--;
   37419          10 :                 ndr->depth--;
   37420          10 :                 ndr_print_uint32(ndr, "core_printer_driver_count", r->in.core_printer_driver_count);
   37421          10 :                 ndr->depth--;
   37422             :         }
   37423          14 :         if (flags & NDR_OUT) {
   37424           4 :                 ndr_print_struct(ndr, "out", "spoolss_GetCorePrinterDrivers");
   37425           4 :                 ndr->depth++;
   37426           4 :                 ndr_print_ptr(ndr, "core_printer_drivers", r->out.core_printer_drivers);
   37427           4 :                 ndr->depth++;
   37428           4 :                 ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "core_printer_drivers", (uint32_t)(r->in.core_printer_driver_count));
   37429           4 :                 ndr->depth++;
   37430           8 :                 for (cntr_core_printer_drivers_1 = 0; cntr_core_printer_drivers_1 < (r->in.core_printer_driver_count); cntr_core_printer_drivers_1++) {
   37431           4 :                         ndr_print_spoolss_CorePrinterDriver(ndr, "core_printer_drivers", &r->out.core_printer_drivers[cntr_core_printer_drivers_1]);
   37432             :                 }
   37433           4 :                 ndr->depth--;
   37434           4 :                 ndr->depth--;
   37435           4 :                 ndr_print_HRESULT(ndr, "result", r->out.result);
   37436           4 :                 ndr->depth--;
   37437             :         }
   37438          14 :         ndr->depth--;
   37439             : }
   37440             : 
   37441           0 : static enum ndr_err_code ndr_push_spoolss_67(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_67 *r)
   37442             : {
   37443           0 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   37444           0 :         if (flags & NDR_IN) {
   37445           0 :         }
   37446           0 :         if (flags & NDR_OUT) {
   37447           0 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   37448             :         }
   37449           0 :         return NDR_ERR_SUCCESS;
   37450             : }
   37451             : 
   37452           0 : static enum ndr_err_code ndr_pull_spoolss_67(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_67 *r)
   37453             : {
   37454           0 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   37455           0 :         if (flags & NDR_IN) {
   37456           0 :         }
   37457           0 :         if (flags & NDR_OUT) {
   37458             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   37459             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   37460           0 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   37461             :         }
   37462           0 :         return NDR_ERR_SUCCESS;
   37463             : }
   37464             : 
   37465           0 : _PUBLIC_ void ndr_print_spoolss_67(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_67 *r)
   37466             : {
   37467           0 :         ndr_print_struct(ndr, name, "spoolss_67");
   37468           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   37469           0 :         ndr->depth++;
   37470           0 :         if (flags & NDR_SET_VALUES) {
   37471           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   37472             :         }
   37473           0 :         if (flags & NDR_IN) {
   37474           0 :                 ndr_print_struct(ndr, "in", "spoolss_67");
   37475           0 :                 ndr->depth++;
   37476           0 :                 ndr->depth--;
   37477             :         }
   37478           0 :         if (flags & NDR_OUT) {
   37479           0 :                 ndr_print_struct(ndr, "out", "spoolss_67");
   37480           0 :                 ndr->depth++;
   37481           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   37482           0 :                 ndr->depth--;
   37483             :         }
   37484           0 :         ndr->depth--;
   37485             : }
   37486             : 
   37487           4 : static enum ndr_err_code ndr_push_spoolss_GetPrinterDriverPackagePath(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_GetPrinterDriverPackagePath *r)
   37488             : {
   37489           4 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   37490           4 :         if (flags & NDR_IN) {
   37491           4 :                 if (r->in.architecture == NULL) {
   37492           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   37493             :                 }
   37494           4 :                 if (r->in.package_id == NULL) {
   37495           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   37496             :                 }
   37497           4 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
   37498           4 :                 if (r->in.servername) {
   37499           4 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
   37500           4 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   37501           4 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
   37502           4 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   37503             :                 }
   37504           4 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
   37505           4 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   37506           4 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
   37507           4 :                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   37508           4 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.language));
   37509           4 :                 if (r->in.language) {
   37510           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.language, CH_UTF16)));
   37511           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   37512           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.language, CH_UTF16)));
   37513           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.language, ndr_charset_length(r->in.language, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   37514             :                 }
   37515           4 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.package_id, CH_UTF16)));
   37516           4 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   37517           4 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.package_id, CH_UTF16)));
   37518           4 :                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.package_id, ndr_charset_length(r->in.package_id, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   37519           4 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.driver_package_cab));
   37520           4 :                 if (r->in.driver_package_cab) {
   37521           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.driver_package_cab_size));
   37522           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver_package_cab, r->in.driver_package_cab_size, sizeof(uint16_t), CH_UTF16));
   37523             :                 }
   37524           4 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.driver_package_cab_size));
   37525             :         }
   37526           4 :         if (flags & NDR_OUT) {
   37527           0 :                 if (r->out.required == NULL) {
   37528           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   37529             :                 }
   37530           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.driver_package_cab));
   37531           0 :                 if (r->out.driver_package_cab) {
   37532           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.driver_package_cab_size));
   37533           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->out.driver_package_cab, r->in.driver_package_cab_size, sizeof(uint16_t), CH_UTF16));
   37534             :                 }
   37535           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.required));
   37536           0 :                 NDR_CHECK(ndr_push_HRESULT(ndr, NDR_SCALARS, r->out.result));
   37537             :         }
   37538           4 :         return NDR_ERR_SUCCESS;
   37539             : }
   37540             : 
   37541           4 : static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriverPackagePath(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_GetPrinterDriverPackagePath *r)
   37542             : {
   37543           0 :         uint32_t _ptr_servername;
   37544           4 :         uint32_t size_servername_1 = 0;
   37545           4 :         uint32_t length_servername_1 = 0;
   37546           4 :         uint32_t size_architecture_1 = 0;
   37547           4 :         uint32_t length_architecture_1 = 0;
   37548           0 :         uint32_t _ptr_language;
   37549           4 :         uint32_t size_language_1 = 0;
   37550           4 :         uint32_t length_language_1 = 0;
   37551           4 :         uint32_t size_package_id_1 = 0;
   37552           4 :         uint32_t length_package_id_1 = 0;
   37553           0 :         uint32_t _ptr_driver_package_cab;
   37554           4 :         uint32_t size_driver_package_cab_1 = 0;
   37555           4 :         TALLOC_CTX *_mem_save_servername_0 = NULL;
   37556           4 :         TALLOC_CTX *_mem_save_language_0 = NULL;
   37557           4 :         TALLOC_CTX *_mem_save_driver_package_cab_0 = NULL;
   37558           4 :         TALLOC_CTX *_mem_save_required_0 = NULL;
   37559           4 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   37560           4 :         if (flags & NDR_IN) {
   37561           4 :                 NDR_ZERO_STRUCT(r->out);
   37562             : 
   37563           4 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
   37564           4 :                 if (_ptr_servername) {
   37565           4 :                         NDR_PULL_ALLOC(ndr, r->in.servername);
   37566             :                 } else {
   37567           0 :                         r->in.servername = NULL;
   37568             :                 }
   37569           4 :                 if (r->in.servername) {
   37570           4 :                         _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
   37571           4 :                         NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
   37572           4 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
   37573           4 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
   37574           4 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.servername, &size_servername_1));
   37575           4 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.servername, &length_servername_1));
   37576           4 :                         if (length_servername_1 > size_servername_1) {
   37577           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_servername_1, length_servername_1);
   37578             :                         }
   37579           4 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_servername_1, sizeof(uint16_t)));
   37580           4 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, length_servername_1, sizeof(uint16_t), CH_UTF16));
   37581           4 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
   37582             :                 }
   37583           4 :                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
   37584           4 :                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
   37585           4 :                 NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.architecture, &size_architecture_1));
   37586           4 :                 NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.architecture, &length_architecture_1));
   37587           4 :                 if (length_architecture_1 > size_architecture_1) {
   37588           0 :                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_architecture_1, length_architecture_1);
   37589             :                 }
   37590           4 :                 NDR_CHECK(ndr_check_string_terminator(ndr, length_architecture_1, sizeof(uint16_t)));
   37591           4 :                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, length_architecture_1, sizeof(uint16_t), CH_UTF16));
   37592           4 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_language));
   37593           4 :                 if (_ptr_language) {
   37594           0 :                         NDR_PULL_ALLOC(ndr, r->in.language);
   37595             :                 } else {
   37596           4 :                         r->in.language = NULL;
   37597             :                 }
   37598           4 :                 if (r->in.language) {
   37599           0 :                         _mem_save_language_0 = NDR_PULL_GET_MEM_CTX(ndr);
   37600           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->in.language, 0);
   37601           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.language));
   37602           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.language));
   37603           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.language, &size_language_1));
   37604           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.language, &length_language_1));
   37605           0 :                         if (length_language_1 > size_language_1) {
   37606           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_language_1, length_language_1);
   37607             :                         }
   37608           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_language_1, sizeof(uint16_t)));
   37609           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.language, length_language_1, sizeof(uint16_t), CH_UTF16));
   37610           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_language_0, 0);
   37611             :                 }
   37612           4 :                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.package_id));
   37613           4 :                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.package_id));
   37614           4 :                 NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.package_id, &size_package_id_1));
   37615           4 :                 NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.package_id, &length_package_id_1));
   37616           4 :                 if (length_package_id_1 > size_package_id_1) {
   37617           0 :                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_package_id_1, length_package_id_1);
   37618             :                 }
   37619           4 :                 NDR_CHECK(ndr_check_string_terminator(ndr, length_package_id_1, sizeof(uint16_t)));
   37620           4 :                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.package_id, length_package_id_1, sizeof(uint16_t), CH_UTF16));
   37621           4 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_package_cab));
   37622           4 :                 if (_ptr_driver_package_cab) {
   37623           0 :                         NDR_PULL_ALLOC(ndr, r->in.driver_package_cab);
   37624             :                 } else {
   37625           4 :                         r->in.driver_package_cab = NULL;
   37626             :                 }
   37627           4 :                 if (r->in.driver_package_cab) {
   37628           0 :                         _mem_save_driver_package_cab_0 = NDR_PULL_GET_MEM_CTX(ndr);
   37629           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->in.driver_package_cab, 0);
   37630           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver_package_cab));
   37631           0 :                         NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->in.driver_package_cab, &size_driver_package_cab_1));
   37632           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver_package_cab, size_driver_package_cab_1, sizeof(uint16_t), CH_UTF16));
   37633           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_package_cab_0, 0);
   37634             :                 }
   37635           4 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.driver_package_cab_size));
   37636           4 :                 NDR_PULL_ALLOC(ndr, r->out.required);
   37637           4 :                 NDR_ZERO_STRUCTP(r->out.required);
   37638           4 :                 if (r->in.driver_package_cab) {
   37639           0 :                         NDR_CHECK(ndr_check_steal_array_size(ndr, (void*)&r->in.driver_package_cab, r->in.driver_package_cab_size));
   37640             :                 }
   37641             :         }
   37642           4 :         if (flags & NDR_OUT) {
   37643             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   37644             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   37645           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_package_cab));
   37646           0 :                 if (_ptr_driver_package_cab) {
   37647           0 :                         NDR_PULL_ALLOC(ndr, r->out.driver_package_cab);
   37648             :                 } else {
   37649           0 :                         r->out.driver_package_cab = NULL;
   37650             :                 }
   37651           0 :                 if (r->out.driver_package_cab) {
   37652           0 :                         _mem_save_driver_package_cab_0 = NDR_PULL_GET_MEM_CTX(ndr);
   37653           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->out.driver_package_cab, 0);
   37654           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->out.driver_package_cab));
   37655           0 :                         NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->out.driver_package_cab, &size_driver_package_cab_1));
   37656           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->out.driver_package_cab, size_driver_package_cab_1, sizeof(uint16_t), CH_UTF16));
   37657           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_package_cab_0, 0);
   37658             :                 }
   37659           0 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   37660           0 :                         NDR_PULL_ALLOC(ndr, r->out.required);
   37661             :                 }
   37662           0 :                 _mem_save_required_0 = NDR_PULL_GET_MEM_CTX(ndr);
   37663           0 :                 NDR_PULL_SET_MEM_CTX(ndr, r->out.required, LIBNDR_FLAG_REF_ALLOC);
   37664           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.required));
   37665           0 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_required_0, LIBNDR_FLAG_REF_ALLOC);
   37666           0 :                 NDR_CHECK(ndr_pull_HRESULT(ndr, NDR_SCALARS, &r->out.result));
   37667           0 :                 if (r->out.driver_package_cab) {
   37668           0 :                         NDR_CHECK(ndr_check_steal_array_size(ndr, (void*)&r->out.driver_package_cab, r->in.driver_package_cab_size));
   37669             :                 }
   37670             :         }
   37671           4 :         return NDR_ERR_SUCCESS;
   37672             : }
   37673             : 
   37674           0 : _PUBLIC_ void ndr_print_spoolss_GetPrinterDriverPackagePath(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_GetPrinterDriverPackagePath *r)
   37675             : {
   37676           0 :         ndr_print_struct(ndr, name, "spoolss_GetPrinterDriverPackagePath");
   37677           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   37678           0 :         ndr->depth++;
   37679           0 :         if (flags & NDR_SET_VALUES) {
   37680           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   37681             :         }
   37682           0 :         if (flags & NDR_IN) {
   37683           0 :                 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriverPackagePath");
   37684           0 :                 ndr->depth++;
   37685           0 :                 ndr_print_ptr(ndr, "servername", r->in.servername);
   37686           0 :                 ndr->depth++;
   37687           0 :                 if (r->in.servername) {
   37688           0 :                         ndr_print_string(ndr, "servername", r->in.servername);
   37689             :                 }
   37690           0 :                 ndr->depth--;
   37691           0 :                 ndr_print_ptr(ndr, "architecture", r->in.architecture);
   37692           0 :                 ndr->depth++;
   37693           0 :                 ndr_print_string(ndr, "architecture", r->in.architecture);
   37694           0 :                 ndr->depth--;
   37695           0 :                 ndr_print_ptr(ndr, "language", r->in.language);
   37696           0 :                 ndr->depth++;
   37697           0 :                 if (r->in.language) {
   37698           0 :                         ndr_print_string(ndr, "language", r->in.language);
   37699             :                 }
   37700           0 :                 ndr->depth--;
   37701           0 :                 ndr_print_ptr(ndr, "package_id", r->in.package_id);
   37702           0 :                 ndr->depth++;
   37703           0 :                 ndr_print_string(ndr, "package_id", r->in.package_id);
   37704           0 :                 ndr->depth--;
   37705           0 :                 ndr_print_ptr(ndr, "driver_package_cab", r->in.driver_package_cab);
   37706           0 :                 ndr->depth++;
   37707           0 :                 if (r->in.driver_package_cab) {
   37708           0 :                         ndr_print_string(ndr, "driver_package_cab", r->in.driver_package_cab);
   37709             :                 }
   37710           0 :                 ndr->depth--;
   37711           0 :                 ndr_print_uint32(ndr, "driver_package_cab_size", r->in.driver_package_cab_size);
   37712           0 :                 ndr->depth--;
   37713             :         }
   37714           0 :         if (flags & NDR_OUT) {
   37715           0 :                 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriverPackagePath");
   37716           0 :                 ndr->depth++;
   37717           0 :                 ndr_print_ptr(ndr, "driver_package_cab", r->out.driver_package_cab);
   37718           0 :                 ndr->depth++;
   37719           0 :                 if (r->out.driver_package_cab) {
   37720           0 :                         ndr_print_string(ndr, "driver_package_cab", r->out.driver_package_cab);
   37721             :                 }
   37722           0 :                 ndr->depth--;
   37723           0 :                 ndr_print_ptr(ndr, "required", r->out.required);
   37724           0 :                 ndr->depth++;
   37725           0 :                 ndr_print_uint32(ndr, "required", *r->out.required);
   37726           0 :                 ndr->depth--;
   37727           0 :                 ndr_print_HRESULT(ndr, "result", r->out.result);
   37728           0 :                 ndr->depth--;
   37729             :         }
   37730           0 :         ndr->depth--;
   37731             : }
   37732             : 
   37733           0 : static enum ndr_err_code ndr_push_spoolss_69(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_69 *r)
   37734             : {
   37735           0 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   37736           0 :         if (flags & NDR_IN) {
   37737           0 :         }
   37738           0 :         if (flags & NDR_OUT) {
   37739           0 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   37740             :         }
   37741           0 :         return NDR_ERR_SUCCESS;
   37742             : }
   37743             : 
   37744           0 : static enum ndr_err_code ndr_pull_spoolss_69(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_69 *r)
   37745             : {
   37746           0 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   37747           0 :         if (flags & NDR_IN) {
   37748           0 :         }
   37749           0 :         if (flags & NDR_OUT) {
   37750             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   37751             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   37752           0 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   37753             :         }
   37754           0 :         return NDR_ERR_SUCCESS;
   37755             : }
   37756             : 
   37757           0 : _PUBLIC_ void ndr_print_spoolss_69(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_69 *r)
   37758             : {
   37759           0 :         ndr_print_struct(ndr, name, "spoolss_69");
   37760           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   37761           0 :         ndr->depth++;
   37762           0 :         if (flags & NDR_SET_VALUES) {
   37763           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   37764             :         }
   37765           0 :         if (flags & NDR_IN) {
   37766           0 :                 ndr_print_struct(ndr, "in", "spoolss_69");
   37767           0 :                 ndr->depth++;
   37768           0 :                 ndr->depth--;
   37769             :         }
   37770           0 :         if (flags & NDR_OUT) {
   37771           0 :                 ndr_print_struct(ndr, "out", "spoolss_69");
   37772           0 :                 ndr->depth++;
   37773           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   37774           0 :                 ndr->depth--;
   37775             :         }
   37776           0 :         ndr->depth--;
   37777             : }
   37778             : 
   37779           0 : static enum ndr_err_code ndr_push_spoolss_6a(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_6a *r)
   37780             : {
   37781           0 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   37782           0 :         if (flags & NDR_IN) {
   37783           0 :         }
   37784           0 :         if (flags & NDR_OUT) {
   37785           0 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   37786             :         }
   37787           0 :         return NDR_ERR_SUCCESS;
   37788             : }
   37789             : 
   37790           0 : static enum ndr_err_code ndr_pull_spoolss_6a(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_6a *r)
   37791             : {
   37792           0 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   37793           0 :         if (flags & NDR_IN) {
   37794           0 :         }
   37795           0 :         if (flags & NDR_OUT) {
   37796             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   37797             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   37798           0 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   37799             :         }
   37800           0 :         return NDR_ERR_SUCCESS;
   37801             : }
   37802             : 
   37803           0 : _PUBLIC_ void ndr_print_spoolss_6a(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_6a *r)
   37804             : {
   37805           0 :         ndr_print_struct(ndr, name, "spoolss_6a");
   37806           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   37807           0 :         ndr->depth++;
   37808           0 :         if (flags & NDR_SET_VALUES) {
   37809           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   37810             :         }
   37811           0 :         if (flags & NDR_IN) {
   37812           0 :                 ndr_print_struct(ndr, "in", "spoolss_6a");
   37813           0 :                 ndr->depth++;
   37814           0 :                 ndr->depth--;
   37815             :         }
   37816           0 :         if (flags & NDR_OUT) {
   37817           0 :                 ndr_print_struct(ndr, "out", "spoolss_6a");
   37818           0 :                 ndr->depth++;
   37819           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   37820           0 :                 ndr->depth--;
   37821             :         }
   37822           0 :         ndr->depth--;
   37823             : }
   37824             : 
   37825           0 : static enum ndr_err_code ndr_push_spoolss_6b(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_6b *r)
   37826             : {
   37827           0 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   37828           0 :         if (flags & NDR_IN) {
   37829           0 :         }
   37830           0 :         if (flags & NDR_OUT) {
   37831           0 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   37832             :         }
   37833           0 :         return NDR_ERR_SUCCESS;
   37834             : }
   37835             : 
   37836           0 : static enum ndr_err_code ndr_pull_spoolss_6b(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_6b *r)
   37837             : {
   37838           0 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   37839           0 :         if (flags & NDR_IN) {
   37840           0 :         }
   37841           0 :         if (flags & NDR_OUT) {
   37842             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   37843             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   37844           0 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   37845             :         }
   37846           0 :         return NDR_ERR_SUCCESS;
   37847             : }
   37848             : 
   37849           0 : _PUBLIC_ void ndr_print_spoolss_6b(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_6b *r)
   37850             : {
   37851           0 :         ndr_print_struct(ndr, name, "spoolss_6b");
   37852           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   37853           0 :         ndr->depth++;
   37854           0 :         if (flags & NDR_SET_VALUES) {
   37855           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   37856             :         }
   37857           0 :         if (flags & NDR_IN) {
   37858           0 :                 ndr_print_struct(ndr, "in", "spoolss_6b");
   37859           0 :                 ndr->depth++;
   37860           0 :                 ndr->depth--;
   37861             :         }
   37862           0 :         if (flags & NDR_OUT) {
   37863           0 :                 ndr_print_struct(ndr, "out", "spoolss_6b");
   37864           0 :                 ndr->depth++;
   37865           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   37866           0 :                 ndr->depth--;
   37867             :         }
   37868           0 :         ndr->depth--;
   37869             : }
   37870             : 
   37871           0 : static enum ndr_err_code ndr_push_spoolss_6c(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_6c *r)
   37872             : {
   37873           0 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   37874           0 :         if (flags & NDR_IN) {
   37875           0 :         }
   37876           0 :         if (flags & NDR_OUT) {
   37877           0 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   37878             :         }
   37879           0 :         return NDR_ERR_SUCCESS;
   37880             : }
   37881             : 
   37882           0 : static enum ndr_err_code ndr_pull_spoolss_6c(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_6c *r)
   37883             : {
   37884           0 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   37885           0 :         if (flags & NDR_IN) {
   37886           0 :         }
   37887           0 :         if (flags & NDR_OUT) {
   37888             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   37889             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   37890           0 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   37891             :         }
   37892           0 :         return NDR_ERR_SUCCESS;
   37893             : }
   37894             : 
   37895           0 : _PUBLIC_ void ndr_print_spoolss_6c(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_6c *r)
   37896             : {
   37897           0 :         ndr_print_struct(ndr, name, "spoolss_6c");
   37898           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   37899           0 :         ndr->depth++;
   37900           0 :         if (flags & NDR_SET_VALUES) {
   37901           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   37902             :         }
   37903           0 :         if (flags & NDR_IN) {
   37904           0 :                 ndr_print_struct(ndr, "in", "spoolss_6c");
   37905           0 :                 ndr->depth++;
   37906           0 :                 ndr->depth--;
   37907             :         }
   37908           0 :         if (flags & NDR_OUT) {
   37909           0 :                 ndr_print_struct(ndr, "out", "spoolss_6c");
   37910           0 :                 ndr->depth++;
   37911           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   37912           0 :                 ndr->depth--;
   37913             :         }
   37914           0 :         ndr->depth--;
   37915             : }
   37916             : 
   37917           0 : static enum ndr_err_code ndr_push_spoolss_6d(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_6d *r)
   37918             : {
   37919           0 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   37920           0 :         if (flags & NDR_IN) {
   37921           0 :         }
   37922           0 :         if (flags & NDR_OUT) {
   37923           0 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   37924             :         }
   37925           0 :         return NDR_ERR_SUCCESS;
   37926             : }
   37927             : 
   37928           0 : static enum ndr_err_code ndr_pull_spoolss_6d(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_6d *r)
   37929             : {
   37930           0 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   37931           0 :         if (flags & NDR_IN) {
   37932           0 :         }
   37933           0 :         if (flags & NDR_OUT) {
   37934             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   37935             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   37936           0 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   37937             :         }
   37938           0 :         return NDR_ERR_SUCCESS;
   37939             : }
   37940             : 
   37941           0 : _PUBLIC_ void ndr_print_spoolss_6d(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_6d *r)
   37942             : {
   37943           0 :         ndr_print_struct(ndr, name, "spoolss_6d");
   37944           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   37945           0 :         ndr->depth++;
   37946           0 :         if (flags & NDR_SET_VALUES) {
   37947           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   37948             :         }
   37949           0 :         if (flags & NDR_IN) {
   37950           0 :                 ndr_print_struct(ndr, "in", "spoolss_6d");
   37951           0 :                 ndr->depth++;
   37952           0 :                 ndr->depth--;
   37953             :         }
   37954           0 :         if (flags & NDR_OUT) {
   37955           0 :                 ndr_print_struct(ndr, "out", "spoolss_6d");
   37956           0 :                 ndr->depth++;
   37957           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   37958           0 :                 ndr->depth--;
   37959             :         }
   37960           0 :         ndr->depth--;
   37961             : }
   37962             : 
   37963           0 : static enum ndr_err_code ndr_push_spoolss_GetJobNamedPropertyValue(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_GetJobNamedPropertyValue *r)
   37964             : {
   37965           0 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   37966           0 :         if (flags & NDR_IN) {
   37967           0 :                 if (r->in.hPrinter == NULL) {
   37968           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   37969             :                 }
   37970           0 :                 if (r->in.pszName == NULL) {
   37971           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   37972             :                 }
   37973           0 :                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.hPrinter));
   37974           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.JobId));
   37975           0 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.pszName, CH_UTF16)));
   37976           0 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   37977           0 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.pszName, CH_UTF16)));
   37978           0 :                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.pszName, ndr_charset_length(r->in.pszName, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   37979             :         }
   37980           0 :         if (flags & NDR_OUT) {
   37981           0 :                 if (r->out.pValue == NULL) {
   37982           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   37983             :                 }
   37984           0 :                 NDR_CHECK(ndr_push_spoolss_PrintPropertyValue(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.pValue));
   37985           0 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   37986             :         }
   37987           0 :         return NDR_ERR_SUCCESS;
   37988             : }
   37989             : 
   37990           0 : static enum ndr_err_code ndr_pull_spoolss_GetJobNamedPropertyValue(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_GetJobNamedPropertyValue *r)
   37991             : {
   37992           0 :         uint32_t size_pszName_1 = 0;
   37993           0 :         uint32_t length_pszName_1 = 0;
   37994           0 :         TALLOC_CTX *_mem_save_hPrinter_0 = NULL;
   37995           0 :         TALLOC_CTX *_mem_save_pValue_0 = NULL;
   37996           0 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   37997           0 :         if (flags & NDR_IN) {
   37998           0 :                 NDR_ZERO_STRUCT(r->out);
   37999             : 
   38000           0 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   38001           0 :                         NDR_PULL_ALLOC(ndr, r->in.hPrinter);
   38002             :                 }
   38003           0 :                 _mem_save_hPrinter_0 = NDR_PULL_GET_MEM_CTX(ndr);
   38004           0 :                 NDR_PULL_SET_MEM_CTX(ndr, r->in.hPrinter, LIBNDR_FLAG_REF_ALLOC);
   38005           0 :                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.hPrinter));
   38006           0 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hPrinter_0, LIBNDR_FLAG_REF_ALLOC);
   38007           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.JobId));
   38008           0 :                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.pszName));
   38009           0 :                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.pszName));
   38010           0 :                 NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.pszName, &size_pszName_1));
   38011           0 :                 NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.pszName, &length_pszName_1));
   38012           0 :                 if (length_pszName_1 > size_pszName_1) {
   38013           0 :                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_pszName_1, length_pszName_1);
   38014             :                 }
   38015           0 :                 NDR_CHECK(ndr_check_string_terminator(ndr, length_pszName_1, sizeof(uint16_t)));
   38016           0 :                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.pszName, length_pszName_1, sizeof(uint16_t), CH_UTF16));
   38017           0 :                 NDR_PULL_ALLOC(ndr, r->out.pValue);
   38018           0 :                 NDR_ZERO_STRUCTP(r->out.pValue);
   38019             :         }
   38020           0 :         if (flags & NDR_OUT) {
   38021             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   38022             :                 if (r->in.hPrinter == NULL) {
   38023             :                         NDR_PULL_ALLOC(ndr, r->in.hPrinter);
   38024             :                         NDR_ZERO_STRUCTP(r->in.hPrinter);
   38025             :                 }
   38026             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   38027           0 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   38028           0 :                         NDR_PULL_ALLOC(ndr, r->out.pValue);
   38029             :                 }
   38030           0 :                 _mem_save_pValue_0 = NDR_PULL_GET_MEM_CTX(ndr);
   38031           0 :                 NDR_PULL_SET_MEM_CTX(ndr, r->out.pValue, LIBNDR_FLAG_REF_ALLOC);
   38032           0 :                 NDR_CHECK(ndr_pull_spoolss_PrintPropertyValue(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.pValue));
   38033           0 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pValue_0, LIBNDR_FLAG_REF_ALLOC);
   38034           0 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   38035             :         }
   38036           0 :         return NDR_ERR_SUCCESS;
   38037             : }
   38038             : 
   38039           0 : _PUBLIC_ void ndr_print_spoolss_GetJobNamedPropertyValue(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_GetJobNamedPropertyValue *r)
   38040             : {
   38041           0 :         ndr_print_struct(ndr, name, "spoolss_GetJobNamedPropertyValue");
   38042           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   38043           0 :         ndr->depth++;
   38044           0 :         if (flags & NDR_SET_VALUES) {
   38045           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   38046             :         }
   38047           0 :         if (flags & NDR_IN) {
   38048           0 :                 ndr_print_struct(ndr, "in", "spoolss_GetJobNamedPropertyValue");
   38049           0 :                 ndr->depth++;
   38050           0 :                 ndr_print_ptr(ndr, "hPrinter", r->in.hPrinter);
   38051           0 :                 ndr->depth++;
   38052           0 :                 ndr_print_policy_handle(ndr, "hPrinter", r->in.hPrinter);
   38053           0 :                 ndr->depth--;
   38054           0 :                 ndr_print_uint32(ndr, "JobId", r->in.JobId);
   38055           0 :                 ndr_print_ptr(ndr, "pszName", r->in.pszName);
   38056           0 :                 ndr->depth++;
   38057           0 :                 ndr_print_string(ndr, "pszName", r->in.pszName);
   38058           0 :                 ndr->depth--;
   38059           0 :                 ndr->depth--;
   38060             :         }
   38061           0 :         if (flags & NDR_OUT) {
   38062           0 :                 ndr_print_struct(ndr, "out", "spoolss_GetJobNamedPropertyValue");
   38063           0 :                 ndr->depth++;
   38064           0 :                 ndr_print_ptr(ndr, "pValue", r->out.pValue);
   38065           0 :                 ndr->depth++;
   38066           0 :                 ndr_print_spoolss_PrintPropertyValue(ndr, "pValue", r->out.pValue);
   38067           0 :                 ndr->depth--;
   38068           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   38069           0 :                 ndr->depth--;
   38070             :         }
   38071           0 :         ndr->depth--;
   38072             : }
   38073             : 
   38074           0 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_SetJobNamedProperty(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_SetJobNamedProperty *r)
   38075             : {
   38076           0 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   38077           0 :         if (flags & NDR_IN) {
   38078           0 :                 if (r->in.hPrinter == NULL) {
   38079           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   38080             :                 }
   38081           0 :                 if (r->in.pProperty == NULL) {
   38082           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   38083             :                 }
   38084           0 :                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.hPrinter));
   38085           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.JobId));
   38086           0 :                 NDR_CHECK(ndr_push_spoolss_PrintNamedProperty(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pProperty));
   38087             :         }
   38088           0 :         if (flags & NDR_OUT) {
   38089           0 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   38090             :         }
   38091           0 :         return NDR_ERR_SUCCESS;
   38092             : }
   38093             : 
   38094           2 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_SetJobNamedProperty(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_SetJobNamedProperty *r)
   38095             : {
   38096           2 :         TALLOC_CTX *_mem_save_hPrinter_0 = NULL;
   38097           2 :         TALLOC_CTX *_mem_save_pProperty_0 = NULL;
   38098           2 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   38099           2 :         if (flags & NDR_IN) {
   38100           2 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   38101           2 :                         NDR_PULL_ALLOC(ndr, r->in.hPrinter);
   38102             :                 }
   38103           2 :                 _mem_save_hPrinter_0 = NDR_PULL_GET_MEM_CTX(ndr);
   38104           2 :                 NDR_PULL_SET_MEM_CTX(ndr, r->in.hPrinter, LIBNDR_FLAG_REF_ALLOC);
   38105           2 :                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.hPrinter));
   38106           2 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hPrinter_0, LIBNDR_FLAG_REF_ALLOC);
   38107           2 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.JobId));
   38108           2 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   38109           2 :                         NDR_PULL_ALLOC(ndr, r->in.pProperty);
   38110             :                 }
   38111           2 :                 _mem_save_pProperty_0 = NDR_PULL_GET_MEM_CTX(ndr);
   38112           2 :                 NDR_PULL_SET_MEM_CTX(ndr, r->in.pProperty, LIBNDR_FLAG_REF_ALLOC);
   38113           2 :                 NDR_CHECK(ndr_pull_spoolss_PrintNamedProperty(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pProperty));
   38114           2 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pProperty_0, LIBNDR_FLAG_REF_ALLOC);
   38115             :         }
   38116           2 :         if (flags & NDR_OUT) {
   38117             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   38118             :                 if (r->in.hPrinter == NULL) {
   38119             :                         NDR_PULL_ALLOC(ndr, r->in.hPrinter);
   38120             :                         NDR_ZERO_STRUCTP(r->in.hPrinter);
   38121             :                 }
   38122             :                 if (r->in.pProperty == NULL) {
   38123             :                         NDR_PULL_ALLOC(ndr, r->in.pProperty);
   38124             :                         NDR_ZERO_STRUCTP(r->in.pProperty);
   38125             :                 }
   38126             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   38127           0 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   38128             :         }
   38129           0 :         return NDR_ERR_SUCCESS;
   38130             : }
   38131             : 
   38132           2 : _PUBLIC_ void ndr_print_spoolss_SetJobNamedProperty(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_SetJobNamedProperty *r)
   38133             : {
   38134           2 :         ndr_print_struct(ndr, name, "spoolss_SetJobNamedProperty");
   38135           2 :         if (r == NULL) { ndr_print_null(ndr); return; }
   38136           2 :         ndr->depth++;
   38137           2 :         if (flags & NDR_SET_VALUES) {
   38138           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   38139             :         }
   38140           2 :         if (flags & NDR_IN) {
   38141           2 :                 ndr_print_struct(ndr, "in", "spoolss_SetJobNamedProperty");
   38142           2 :                 ndr->depth++;
   38143           2 :                 ndr_print_ptr(ndr, "hPrinter", r->in.hPrinter);
   38144           2 :                 ndr->depth++;
   38145           2 :                 ndr_print_policy_handle(ndr, "hPrinter", r->in.hPrinter);
   38146           2 :                 ndr->depth--;
   38147           2 :                 ndr_print_uint32(ndr, "JobId", r->in.JobId);
   38148           2 :                 ndr_print_ptr(ndr, "pProperty", r->in.pProperty);
   38149           2 :                 ndr->depth++;
   38150           2 :                 ndr_print_spoolss_PrintNamedProperty(ndr, "pProperty", r->in.pProperty);
   38151           2 :                 ndr->depth--;
   38152           2 :                 ndr->depth--;
   38153             :         }
   38154           2 :         if (flags & NDR_OUT) {
   38155           0 :                 ndr_print_struct(ndr, "out", "spoolss_SetJobNamedProperty");
   38156           0 :                 ndr->depth++;
   38157           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   38158           0 :                 ndr->depth--;
   38159             :         }
   38160           2 :         ndr->depth--;
   38161             : }
   38162             : 
   38163           0 : static enum ndr_err_code ndr_push_spoolss_DeleteJobNamedProperty(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_DeleteJobNamedProperty *r)
   38164             : {
   38165           0 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   38166           0 :         if (flags & NDR_IN) {
   38167           0 :                 if (r->in.hPrinter == NULL) {
   38168           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   38169             :                 }
   38170           0 :                 if (r->in.pszName == NULL) {
   38171           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   38172             :                 }
   38173           0 :                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.hPrinter));
   38174           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.JobId));
   38175           0 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.pszName, CH_UTF16)));
   38176           0 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
   38177           0 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.pszName, CH_UTF16)));
   38178           0 :                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.pszName, ndr_charset_length(r->in.pszName, CH_UTF16), sizeof(uint16_t), CH_UTF16));
   38179             :         }
   38180           0 :         if (flags & NDR_OUT) {
   38181           0 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   38182             :         }
   38183           0 :         return NDR_ERR_SUCCESS;
   38184             : }
   38185             : 
   38186           0 : static enum ndr_err_code ndr_pull_spoolss_DeleteJobNamedProperty(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_DeleteJobNamedProperty *r)
   38187             : {
   38188           0 :         uint32_t size_pszName_1 = 0;
   38189           0 :         uint32_t length_pszName_1 = 0;
   38190           0 :         TALLOC_CTX *_mem_save_hPrinter_0 = NULL;
   38191           0 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   38192           0 :         if (flags & NDR_IN) {
   38193           0 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   38194           0 :                         NDR_PULL_ALLOC(ndr, r->in.hPrinter);
   38195             :                 }
   38196           0 :                 _mem_save_hPrinter_0 = NDR_PULL_GET_MEM_CTX(ndr);
   38197           0 :                 NDR_PULL_SET_MEM_CTX(ndr, r->in.hPrinter, LIBNDR_FLAG_REF_ALLOC);
   38198           0 :                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.hPrinter));
   38199           0 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hPrinter_0, LIBNDR_FLAG_REF_ALLOC);
   38200           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.JobId));
   38201           0 :                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.pszName));
   38202           0 :                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.pszName));
   38203           0 :                 NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.pszName, &size_pszName_1));
   38204           0 :                 NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.pszName, &length_pszName_1));
   38205           0 :                 if (length_pszName_1 > size_pszName_1) {
   38206           0 :                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_pszName_1, length_pszName_1);
   38207             :                 }
   38208           0 :                 NDR_CHECK(ndr_check_string_terminator(ndr, length_pszName_1, sizeof(uint16_t)));
   38209           0 :                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.pszName, length_pszName_1, sizeof(uint16_t), CH_UTF16));
   38210             :         }
   38211           0 :         if (flags & NDR_OUT) {
   38212             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   38213             :                 if (r->in.hPrinter == NULL) {
   38214             :                         NDR_PULL_ALLOC(ndr, r->in.hPrinter);
   38215             :                         NDR_ZERO_STRUCTP(r->in.hPrinter);
   38216             :                 }
   38217             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   38218           0 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   38219             :         }
   38220           0 :         return NDR_ERR_SUCCESS;
   38221             : }
   38222             : 
   38223           0 : _PUBLIC_ void ndr_print_spoolss_DeleteJobNamedProperty(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_DeleteJobNamedProperty *r)
   38224             : {
   38225           0 :         ndr_print_struct(ndr, name, "spoolss_DeleteJobNamedProperty");
   38226           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   38227           0 :         ndr->depth++;
   38228           0 :         if (flags & NDR_SET_VALUES) {
   38229           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   38230             :         }
   38231           0 :         if (flags & NDR_IN) {
   38232           0 :                 ndr_print_struct(ndr, "in", "spoolss_DeleteJobNamedProperty");
   38233           0 :                 ndr->depth++;
   38234           0 :                 ndr_print_ptr(ndr, "hPrinter", r->in.hPrinter);
   38235           0 :                 ndr->depth++;
   38236           0 :                 ndr_print_policy_handle(ndr, "hPrinter", r->in.hPrinter);
   38237           0 :                 ndr->depth--;
   38238           0 :                 ndr_print_uint32(ndr, "JobId", r->in.JobId);
   38239           0 :                 ndr_print_ptr(ndr, "pszName", r->in.pszName);
   38240           0 :                 ndr->depth++;
   38241           0 :                 ndr_print_string(ndr, "pszName", r->in.pszName);
   38242           0 :                 ndr->depth--;
   38243           0 :                 ndr->depth--;
   38244             :         }
   38245           0 :         if (flags & NDR_OUT) {
   38246           0 :                 ndr_print_struct(ndr, "out", "spoolss_DeleteJobNamedProperty");
   38247           0 :                 ndr->depth++;
   38248           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   38249           0 :                 ndr->depth--;
   38250             :         }
   38251           0 :         ndr->depth--;
   38252             : }
   38253             : 
   38254           0 : static enum ndr_err_code ndr_push_spoolss_EnumJobNamedProperties(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_EnumJobNamedProperties *r)
   38255             : {
   38256           0 :         uint32_t cntr_ppProperties_2;
   38257           0 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   38258           0 :         if (flags & NDR_IN) {
   38259           0 :                 if (r->in.hPrinter == NULL) {
   38260           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   38261             :                 }
   38262           0 :                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.hPrinter));
   38263           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.JobId));
   38264             :         }
   38265           0 :         if (flags & NDR_OUT) {
   38266           0 :                 if (r->out.pcProperties == NULL) {
   38267           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   38268             :                 }
   38269           0 :                 if (r->out.ppProperties == NULL) {
   38270           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   38271             :                 }
   38272           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.pcProperties));
   38273           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.ppProperties));
   38274           0 :                 if (*r->out.ppProperties) {
   38275           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, *r->out.pcProperties));
   38276           0 :                         for (cntr_ppProperties_2 = 0; cntr_ppProperties_2 < (*r->out.pcProperties); cntr_ppProperties_2++) {
   38277           0 :                                 NDR_CHECK(ndr_push_spoolss_PrintNamedProperty(ndr, NDR_SCALARS, &(*r->out.ppProperties)[cntr_ppProperties_2]));
   38278             :                         }
   38279           0 :                         for (cntr_ppProperties_2 = 0; cntr_ppProperties_2 < (*r->out.pcProperties); cntr_ppProperties_2++) {
   38280           0 :                                 NDR_CHECK(ndr_push_spoolss_PrintNamedProperty(ndr, NDR_BUFFERS, &(*r->out.ppProperties)[cntr_ppProperties_2]));
   38281             :                         }
   38282             :                 }
   38283           0 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   38284             :         }
   38285           0 :         return NDR_ERR_SUCCESS;
   38286             : }
   38287             : 
   38288           0 : static enum ndr_err_code ndr_pull_spoolss_EnumJobNamedProperties(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_EnumJobNamedProperties *r)
   38289             : {
   38290           0 :         uint32_t _ptr_ppProperties;
   38291           0 :         uint32_t size_ppProperties_2 = 0;
   38292           0 :         uint32_t cntr_ppProperties_2;
   38293           0 :         TALLOC_CTX *_mem_save_hPrinter_0 = NULL;
   38294           0 :         TALLOC_CTX *_mem_save_pcProperties_0 = NULL;
   38295           0 :         TALLOC_CTX *_mem_save_ppProperties_0 = NULL;
   38296           0 :         TALLOC_CTX *_mem_save_ppProperties_1 = NULL;
   38297           0 :         TALLOC_CTX *_mem_save_ppProperties_2 = NULL;
   38298           0 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   38299           0 :         if (flags & NDR_IN) {
   38300           0 :                 NDR_ZERO_STRUCT(r->out);
   38301             : 
   38302           0 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   38303           0 :                         NDR_PULL_ALLOC(ndr, r->in.hPrinter);
   38304             :                 }
   38305           0 :                 _mem_save_hPrinter_0 = NDR_PULL_GET_MEM_CTX(ndr);
   38306           0 :                 NDR_PULL_SET_MEM_CTX(ndr, r->in.hPrinter, LIBNDR_FLAG_REF_ALLOC);
   38307           0 :                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.hPrinter));
   38308           0 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hPrinter_0, LIBNDR_FLAG_REF_ALLOC);
   38309           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.JobId));
   38310           0 :                 NDR_PULL_ALLOC(ndr, r->out.pcProperties);
   38311           0 :                 NDR_ZERO_STRUCTP(r->out.pcProperties);
   38312           0 :                 NDR_PULL_ALLOC(ndr, r->out.ppProperties);
   38313           0 :                 NDR_ZERO_STRUCTP(r->out.ppProperties);
   38314             :         }
   38315           0 :         if (flags & NDR_OUT) {
   38316             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   38317             :                 if (r->in.hPrinter == NULL) {
   38318             :                         NDR_PULL_ALLOC(ndr, r->in.hPrinter);
   38319             :                         NDR_ZERO_STRUCTP(r->in.hPrinter);
   38320             :                 }
   38321             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   38322           0 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   38323           0 :                         NDR_PULL_ALLOC(ndr, r->out.pcProperties);
   38324             :                 }
   38325           0 :                 _mem_save_pcProperties_0 = NDR_PULL_GET_MEM_CTX(ndr);
   38326           0 :                 NDR_PULL_SET_MEM_CTX(ndr, r->out.pcProperties, LIBNDR_FLAG_REF_ALLOC);
   38327           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.pcProperties));
   38328           0 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pcProperties_0, LIBNDR_FLAG_REF_ALLOC);
   38329           0 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   38330           0 :                         NDR_PULL_ALLOC(ndr, r->out.ppProperties);
   38331             :                 }
   38332           0 :                 _mem_save_ppProperties_0 = NDR_PULL_GET_MEM_CTX(ndr);
   38333           0 :                 NDR_PULL_SET_MEM_CTX(ndr, r->out.ppProperties, LIBNDR_FLAG_REF_ALLOC);
   38334           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ppProperties));
   38335           0 :                 if (_ptr_ppProperties) {
   38336           0 :                         NDR_PULL_ALLOC(ndr, *r->out.ppProperties);
   38337             :                 } else {
   38338           0 :                         *r->out.ppProperties = NULL;
   38339             :                 }
   38340           0 :                 if (*r->out.ppProperties) {
   38341           0 :                         _mem_save_ppProperties_1 = NDR_PULL_GET_MEM_CTX(ndr);
   38342           0 :                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.ppProperties, 0);
   38343           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, r->out.ppProperties));
   38344           0 :                         NDR_CHECK(ndr_get_array_size(ndr, (void*)r->out.ppProperties, &size_ppProperties_2));
   38345           0 :                         NDR_PULL_ALLOC_N(ndr, *r->out.ppProperties, size_ppProperties_2);
   38346           0 :                         _mem_save_ppProperties_2 = NDR_PULL_GET_MEM_CTX(ndr);
   38347           0 :                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.ppProperties, 0);
   38348           0 :                         for (cntr_ppProperties_2 = 0; cntr_ppProperties_2 < (size_ppProperties_2); cntr_ppProperties_2++) {
   38349           0 :                                 NDR_CHECK(ndr_pull_spoolss_PrintNamedProperty(ndr, NDR_SCALARS, &(*r->out.ppProperties)[cntr_ppProperties_2]));
   38350             :                         }
   38351           0 :                         for (cntr_ppProperties_2 = 0; cntr_ppProperties_2 < (size_ppProperties_2); cntr_ppProperties_2++) {
   38352           0 :                                 NDR_CHECK(ndr_pull_spoolss_PrintNamedProperty(ndr, NDR_BUFFERS, &(*r->out.ppProperties)[cntr_ppProperties_2]));
   38353             :                         }
   38354           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ppProperties_2, 0);
   38355           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ppProperties_1, 0);
   38356             :                 }
   38357           0 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ppProperties_0, LIBNDR_FLAG_REF_ALLOC);
   38358           0 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   38359           0 :                 if (*r->out.ppProperties) {
   38360           0 :                         NDR_CHECK(ndr_check_array_size(ndr, (void*)r->out.ppProperties, *r->out.pcProperties));
   38361             :                 }
   38362           0 :                 for (cntr_ppProperties_2 = 0; cntr_ppProperties_2 < (size_ppProperties_2); cntr_ppProperties_2++) {
   38363           0 :                 }
   38364             :         }
   38365           0 :         return NDR_ERR_SUCCESS;
   38366             : }
   38367             : 
   38368           0 : _PUBLIC_ void ndr_print_spoolss_EnumJobNamedProperties(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_EnumJobNamedProperties *r)
   38369             : {
   38370           0 :         uint32_t cntr_ppProperties_2;
   38371           0 :         ndr_print_struct(ndr, name, "spoolss_EnumJobNamedProperties");
   38372           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   38373           0 :         ndr->depth++;
   38374           0 :         if (flags & NDR_SET_VALUES) {
   38375           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   38376             :         }
   38377           0 :         if (flags & NDR_IN) {
   38378           0 :                 ndr_print_struct(ndr, "in", "spoolss_EnumJobNamedProperties");
   38379           0 :                 ndr->depth++;
   38380           0 :                 ndr_print_ptr(ndr, "hPrinter", r->in.hPrinter);
   38381           0 :                 ndr->depth++;
   38382           0 :                 ndr_print_policy_handle(ndr, "hPrinter", r->in.hPrinter);
   38383           0 :                 ndr->depth--;
   38384           0 :                 ndr_print_uint32(ndr, "JobId", r->in.JobId);
   38385           0 :                 ndr->depth--;
   38386             :         }
   38387           0 :         if (flags & NDR_OUT) {
   38388           0 :                 ndr_print_struct(ndr, "out", "spoolss_EnumJobNamedProperties");
   38389           0 :                 ndr->depth++;
   38390           0 :                 ndr_print_ptr(ndr, "pcProperties", r->out.pcProperties);
   38391           0 :                 ndr->depth++;
   38392           0 :                 ndr_print_uint32(ndr, "pcProperties", *r->out.pcProperties);
   38393           0 :                 ndr->depth--;
   38394           0 :                 ndr_print_ptr(ndr, "ppProperties", r->out.ppProperties);
   38395           0 :                 ndr->depth++;
   38396           0 :                 ndr_print_ptr(ndr, "ppProperties", *r->out.ppProperties);
   38397           0 :                 ndr->depth++;
   38398           0 :                 if (*r->out.ppProperties) {
   38399           0 :                         ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "ppProperties", (uint32_t)(*r->out.pcProperties));
   38400           0 :                         ndr->depth++;
   38401           0 :                         for (cntr_ppProperties_2 = 0; cntr_ppProperties_2 < (*r->out.pcProperties); cntr_ppProperties_2++) {
   38402           0 :                                 ndr_print_spoolss_PrintNamedProperty(ndr, "ppProperties", &(*r->out.ppProperties)[cntr_ppProperties_2]);
   38403             :                         }
   38404           0 :                         ndr->depth--;
   38405             :                 }
   38406           0 :                 ndr->depth--;
   38407           0 :                 ndr->depth--;
   38408           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   38409           0 :                 ndr->depth--;
   38410             :         }
   38411           0 :         ndr->depth--;
   38412             : }
   38413             : 
   38414           0 : static enum ndr_err_code ndr_push_spoolss_72(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_72 *r)
   38415             : {
   38416           0 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   38417           0 :         if (flags & NDR_IN) {
   38418           0 :         }
   38419           0 :         if (flags & NDR_OUT) {
   38420           0 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   38421             :         }
   38422           0 :         return NDR_ERR_SUCCESS;
   38423             : }
   38424             : 
   38425           0 : static enum ndr_err_code ndr_pull_spoolss_72(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_72 *r)
   38426             : {
   38427           0 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   38428           0 :         if (flags & NDR_IN) {
   38429           0 :         }
   38430           0 :         if (flags & NDR_OUT) {
   38431             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   38432             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   38433           0 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   38434             :         }
   38435           0 :         return NDR_ERR_SUCCESS;
   38436             : }
   38437             : 
   38438           0 : _PUBLIC_ void ndr_print_spoolss_72(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_72 *r)
   38439             : {
   38440           0 :         ndr_print_struct(ndr, name, "spoolss_72");
   38441           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   38442           0 :         ndr->depth++;
   38443           0 :         if (flags & NDR_SET_VALUES) {
   38444           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   38445             :         }
   38446           0 :         if (flags & NDR_IN) {
   38447           0 :                 ndr_print_struct(ndr, "in", "spoolss_72");
   38448           0 :                 ndr->depth++;
   38449           0 :                 ndr->depth--;
   38450             :         }
   38451           0 :         if (flags & NDR_OUT) {
   38452           0 :                 ndr_print_struct(ndr, "out", "spoolss_72");
   38453           0 :                 ndr->depth++;
   38454           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   38455           0 :                 ndr->depth--;
   38456             :         }
   38457           0 :         ndr->depth--;
   38458             : }
   38459             : 
   38460           0 : static enum ndr_err_code ndr_push_spoolss_73(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_73 *r)
   38461             : {
   38462           0 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   38463           0 :         if (flags & NDR_IN) {
   38464           0 :         }
   38465           0 :         if (flags & NDR_OUT) {
   38466           0 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   38467             :         }
   38468           0 :         return NDR_ERR_SUCCESS;
   38469             : }
   38470             : 
   38471           0 : static enum ndr_err_code ndr_pull_spoolss_73(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_73 *r)
   38472             : {
   38473           0 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   38474           0 :         if (flags & NDR_IN) {
   38475           0 :         }
   38476           0 :         if (flags & NDR_OUT) {
   38477             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   38478             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   38479           0 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   38480             :         }
   38481           0 :         return NDR_ERR_SUCCESS;
   38482             : }
   38483             : 
   38484           0 : _PUBLIC_ void ndr_print_spoolss_73(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_73 *r)
   38485             : {
   38486           0 :         ndr_print_struct(ndr, name, "spoolss_73");
   38487           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   38488           0 :         ndr->depth++;
   38489           0 :         if (flags & NDR_SET_VALUES) {
   38490           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   38491             :         }
   38492           0 :         if (flags & NDR_IN) {
   38493           0 :                 ndr_print_struct(ndr, "in", "spoolss_73");
   38494           0 :                 ndr->depth++;
   38495           0 :                 ndr->depth--;
   38496             :         }
   38497           0 :         if (flags & NDR_OUT) {
   38498           0 :                 ndr_print_struct(ndr, "out", "spoolss_73");
   38499           0 :                 ndr->depth++;
   38500           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   38501           0 :                 ndr->depth--;
   38502             :         }
   38503           0 :         ndr->depth--;
   38504             : }
   38505             : 
   38506           8 : static enum ndr_err_code ndr_push_spoolss_LogJobInfoForBranchOffice(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_LogJobInfoForBranchOffice *r)
   38507             : {
   38508           8 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
   38509           8 :         if (flags & NDR_IN) {
   38510           8 :                 if (r->in.hPrinter == NULL) {
   38511           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   38512             :                 }
   38513           8 :                 if (r->in.pBranchOfficeJobDataContainer == NULL) {
   38514           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
   38515             :                 }
   38516           8 :                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.hPrinter));
   38517           8 :                 NDR_CHECK(ndr_push_spoolss_BranchOfficeJobDataContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pBranchOfficeJobDataContainer));
   38518             :         }
   38519           8 :         if (flags & NDR_OUT) {
   38520           0 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
   38521             :         }
   38522           8 :         return NDR_ERR_SUCCESS;
   38523             : }
   38524             : 
   38525           8 : static enum ndr_err_code ndr_pull_spoolss_LogJobInfoForBranchOffice(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_LogJobInfoForBranchOffice *r)
   38526             : {
   38527           8 :         TALLOC_CTX *_mem_save_hPrinter_0 = NULL;
   38528           8 :         TALLOC_CTX *_mem_save_pBranchOfficeJobDataContainer_0 = NULL;
   38529           8 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
   38530           8 :         if (flags & NDR_IN) {
   38531           8 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   38532           8 :                         NDR_PULL_ALLOC(ndr, r->in.hPrinter);
   38533             :                 }
   38534           8 :                 _mem_save_hPrinter_0 = NDR_PULL_GET_MEM_CTX(ndr);
   38535           8 :                 NDR_PULL_SET_MEM_CTX(ndr, r->in.hPrinter, LIBNDR_FLAG_REF_ALLOC);
   38536           8 :                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.hPrinter));
   38537           8 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hPrinter_0, LIBNDR_FLAG_REF_ALLOC);
   38538           8 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
   38539           8 :                         NDR_PULL_ALLOC(ndr, r->in.pBranchOfficeJobDataContainer);
   38540             :                 }
   38541           8 :                 _mem_save_pBranchOfficeJobDataContainer_0 = NDR_PULL_GET_MEM_CTX(ndr);
   38542           8 :                 NDR_PULL_SET_MEM_CTX(ndr, r->in.pBranchOfficeJobDataContainer, LIBNDR_FLAG_REF_ALLOC);
   38543           8 :                 NDR_CHECK(ndr_pull_spoolss_BranchOfficeJobDataContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pBranchOfficeJobDataContainer));
   38544           8 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pBranchOfficeJobDataContainer_0, LIBNDR_FLAG_REF_ALLOC);
   38545             :         }
   38546           8 :         if (flags & NDR_OUT) {
   38547             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
   38548             :                 if (r->in.hPrinter == NULL) {
   38549             :                         NDR_PULL_ALLOC(ndr, r->in.hPrinter);
   38550             :                         NDR_ZERO_STRUCTP(r->in.hPrinter);
   38551             :                 }
   38552             :                 if (r->in.pBranchOfficeJobDataContainer == NULL) {
   38553             :                         NDR_PULL_ALLOC(ndr, r->in.pBranchOfficeJobDataContainer);
   38554             :                         NDR_ZERO_STRUCTP(r->in.pBranchOfficeJobDataContainer);
   38555             :                 }
   38556             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
   38557           0 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
   38558             :         }
   38559           8 :         return NDR_ERR_SUCCESS;
   38560             : }
   38561             : 
   38562           0 : _PUBLIC_ void ndr_print_spoolss_LogJobInfoForBranchOffice(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_LogJobInfoForBranchOffice *r)
   38563             : {
   38564           0 :         ndr_print_struct(ndr, name, "spoolss_LogJobInfoForBranchOffice");
   38565           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
   38566           0 :         ndr->depth++;
   38567           0 :         if (flags & NDR_SET_VALUES) {
   38568           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
   38569             :         }
   38570           0 :         if (flags & NDR_IN) {
   38571           0 :                 ndr_print_struct(ndr, "in", "spoolss_LogJobInfoForBranchOffice");
   38572           0 :                 ndr->depth++;
   38573           0 :                 ndr_print_ptr(ndr, "hPrinter", r->in.hPrinter);
   38574           0 :                 ndr->depth++;
   38575           0 :                 ndr_print_policy_handle(ndr, "hPrinter", r->in.hPrinter);
   38576           0 :                 ndr->depth--;
   38577           0 :                 ndr_print_ptr(ndr, "pBranchOfficeJobDataContainer", r->in.pBranchOfficeJobDataContainer);
   38578           0 :                 ndr->depth++;
   38579           0 :                 ndr_print_spoolss_BranchOfficeJobDataContainer(ndr, "pBranchOfficeJobDataContainer", r->in.pBranchOfficeJobDataContainer);
   38580           0 :                 ndr->depth--;
   38581           0 :                 ndr->depth--;
   38582             :         }
   38583           0 :         if (flags & NDR_OUT) {
   38584           0 :                 ndr_print_struct(ndr, "out", "spoolss_LogJobInfoForBranchOffice");
   38585           0 :                 ndr->depth++;
   38586           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
   38587           0 :                 ndr->depth--;
   38588             :         }
   38589           0 :         ndr->depth--;
   38590             : }
   38591             : 
   38592             : #ifndef SKIP_NDR_TABLE_spoolss
   38593             : static const struct ndr_interface_public_struct spoolss_public_structs[] = {
   38594             :         {
   38595             :                 .name = "spoolss_TimeCtr",
   38596             :                 .struct_size = sizeof(struct spoolss_TimeCtr ),
   38597             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_TimeCtr,
   38598             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_TimeCtr,
   38599             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_TimeCtr,
   38600             :         },
   38601             :         {
   38602             :                 .name = "spoolss_PrinterInfo0",
   38603             :                 .struct_size = sizeof(struct spoolss_PrinterInfo0 ),
   38604             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_PrinterInfo0,
   38605             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_PrinterInfo0,
   38606             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_PrinterInfo0,
   38607             :         },
   38608             :         {
   38609             :                 .name = "spoolss_UNIDRVEXTRA",
   38610             :                 .struct_size = sizeof(struct spoolss_UNIDRVEXTRA ),
   38611             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_UNIDRVEXTRA,
   38612             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_UNIDRVEXTRA,
   38613             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_UNIDRVEXTRA,
   38614             :         },
   38615             :         {
   38616             :                 .name = "spoolss_DeviceMode",
   38617             :                 .struct_size = sizeof(struct spoolss_DeviceMode ),
   38618             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_DeviceMode,
   38619             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeviceMode,
   38620             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_DeviceMode,
   38621             :         },
   38622             :         {
   38623             :                 .name = "spoolss_PrinterInfo1",
   38624             :                 .struct_size = sizeof(struct spoolss_PrinterInfo1 ),
   38625             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_PrinterInfo1,
   38626             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_PrinterInfo1,
   38627             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_PrinterInfo1,
   38628             :         },
   38629             :         {
   38630             :                 .name = "spoolss_PrinterInfo2",
   38631             :                 .struct_size = sizeof(struct spoolss_PrinterInfo2 ),
   38632             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_PrinterInfo2,
   38633             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_PrinterInfo2,
   38634             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_PrinterInfo2,
   38635             :         },
   38636             :         {
   38637             :                 .name = "spoolss_PrinterInfo3",
   38638             :                 .struct_size = sizeof(struct spoolss_PrinterInfo3 ),
   38639             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_PrinterInfo3,
   38640             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_PrinterInfo3,
   38641             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_PrinterInfo3,
   38642             :         },
   38643             :         {
   38644             :                 .name = "spoolss_PrinterInfo4",
   38645             :                 .struct_size = sizeof(struct spoolss_PrinterInfo4 ),
   38646             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_PrinterInfo4,
   38647             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_PrinterInfo4,
   38648             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_PrinterInfo4,
   38649             :         },
   38650             :         {
   38651             :                 .name = "spoolss_PrinterInfo5",
   38652             :                 .struct_size = sizeof(struct spoolss_PrinterInfo5 ),
   38653             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_PrinterInfo5,
   38654             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_PrinterInfo5,
   38655             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_PrinterInfo5,
   38656             :         },
   38657             :         {
   38658             :                 .name = "spoolss_PrinterInfo6",
   38659             :                 .struct_size = sizeof(struct spoolss_PrinterInfo6 ),
   38660             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_PrinterInfo6,
   38661             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_PrinterInfo6,
   38662             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_PrinterInfo6,
   38663             :         },
   38664             :         {
   38665             :                 .name = "spoolss_PrinterInfo7",
   38666             :                 .struct_size = sizeof(struct spoolss_PrinterInfo7 ),
   38667             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_PrinterInfo7,
   38668             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_PrinterInfo7,
   38669             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_PrinterInfo7,
   38670             :         },
   38671             :         {
   38672             :                 .name = "spoolss_DevmodeContainer",
   38673             :                 .struct_size = sizeof(struct spoolss_DevmodeContainer ),
   38674             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_DevmodeContainer,
   38675             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_DevmodeContainer,
   38676             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_DevmodeContainer,
   38677             :         },
   38678             :         {
   38679             :                 .name = "spoolss_JobInfo1",
   38680             :                 .struct_size = sizeof(struct spoolss_JobInfo1 ),
   38681             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_JobInfo1,
   38682             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_JobInfo1,
   38683             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_JobInfo1,
   38684             :         },
   38685             :         {
   38686             :                 .name = "spoolss_JobInfo2",
   38687             :                 .struct_size = sizeof(struct spoolss_JobInfo2 ),
   38688             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_JobInfo2,
   38689             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_JobInfo2,
   38690             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_JobInfo2,
   38691             :         },
   38692             :         {
   38693             :                 .name = "spoolss_JobInfo3",
   38694             :                 .struct_size = sizeof(struct spoolss_JobInfo3 ),
   38695             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_JobInfo3,
   38696             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_JobInfo3,
   38697             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_JobInfo3,
   38698             :         },
   38699             :         {
   38700             :                 .name = "spoolss_JobInfo4",
   38701             :                 .struct_size = sizeof(struct spoolss_JobInfo4 ),
   38702             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_JobInfo4,
   38703             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_JobInfo4,
   38704             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_JobInfo4,
   38705             :         },
   38706             :         {
   38707             :                 .name = "spoolss_JobInfoContainer",
   38708             :                 .struct_size = sizeof(struct spoolss_JobInfoContainer ),
   38709             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_JobInfoContainer,
   38710             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_JobInfoContainer,
   38711             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_JobInfoContainer,
   38712             :         },
   38713             :         {
   38714             :                 .name = "spoolss_SetPrinterInfoCtr",
   38715             :                 .struct_size = sizeof(struct spoolss_SetPrinterInfoCtr ),
   38716             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinterInfoCtr,
   38717             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinterInfoCtr,
   38718             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_SetPrinterInfoCtr,
   38719             :         },
   38720             :         {
   38721             :                 .name = "spoolss_StringArray",
   38722             :                 .struct_size = sizeof(struct spoolss_StringArray ),
   38723             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_StringArray,
   38724             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_StringArray,
   38725             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_StringArray,
   38726             :         },
   38727             :         {
   38728             :                 .name = "spoolss_AddDriverInfoCtr",
   38729             :                 .struct_size = sizeof(struct spoolss_AddDriverInfoCtr ),
   38730             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_AddDriverInfoCtr,
   38731             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddDriverInfoCtr,
   38732             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_AddDriverInfoCtr,
   38733             :         },
   38734             :         {
   38735             :                 .name = "spoolss_DriverInfo1",
   38736             :                 .struct_size = sizeof(struct spoolss_DriverInfo1 ),
   38737             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_DriverInfo1,
   38738             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_DriverInfo1,
   38739             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_DriverInfo1,
   38740             :         },
   38741             :         {
   38742             :                 .name = "spoolss_DriverInfo2",
   38743             :                 .struct_size = sizeof(struct spoolss_DriverInfo2 ),
   38744             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_DriverInfo2,
   38745             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_DriverInfo2,
   38746             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_DriverInfo2,
   38747             :         },
   38748             :         {
   38749             :                 .name = "spoolss_DriverInfo3",
   38750             :                 .struct_size = sizeof(struct spoolss_DriverInfo3 ),
   38751             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_DriverInfo3,
   38752             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_DriverInfo3,
   38753             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_DriverInfo3,
   38754             :         },
   38755             :         {
   38756             :                 .name = "spoolss_DriverInfo4",
   38757             :                 .struct_size = sizeof(struct spoolss_DriverInfo4 ),
   38758             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_DriverInfo4,
   38759             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_DriverInfo4,
   38760             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_DriverInfo4,
   38761             :         },
   38762             :         {
   38763             :                 .name = "spoolss_DriverInfo5",
   38764             :                 .struct_size = sizeof(struct spoolss_DriverInfo5 ),
   38765             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_DriverInfo5,
   38766             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_DriverInfo5,
   38767             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_DriverInfo5,
   38768             :         },
   38769             :         {
   38770             :                 .name = "spoolss_DriverInfo6",
   38771             :                 .struct_size = sizeof(struct spoolss_DriverInfo6 ),
   38772             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_DriverInfo6,
   38773             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_DriverInfo6,
   38774             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_DriverInfo6,
   38775             :         },
   38776             :         {
   38777             :                 .name = "spoolss_DriverInfo7",
   38778             :                 .struct_size = sizeof(struct spoolss_DriverInfo7 ),
   38779             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_DriverInfo7,
   38780             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_DriverInfo7,
   38781             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_DriverInfo7,
   38782             :         },
   38783             :         {
   38784             :                 .name = "spoolss_DriverInfo8",
   38785             :                 .struct_size = sizeof(struct spoolss_DriverInfo8 ),
   38786             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_DriverInfo8,
   38787             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_DriverInfo8,
   38788             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_DriverInfo8,
   38789             :         },
   38790             :         {
   38791             :                 .name = "spoolss_DriverFileInfo",
   38792             :                 .struct_size = sizeof(struct spoolss_DriverFileInfo ),
   38793             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_DriverFileInfo,
   38794             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_DriverFileInfo,
   38795             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_DriverFileInfo,
   38796             :         },
   38797             :         {
   38798             :                 .name = "spoolss_DriverInfo101",
   38799             :                 .struct_size = sizeof(struct spoolss_DriverInfo101 ),
   38800             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_DriverInfo101,
   38801             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_DriverInfo101,
   38802             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_DriverInfo101,
   38803             :         },
   38804             :         {
   38805             :                 .name = "spoolss_DriverDirectoryInfo1",
   38806             :                 .struct_size = sizeof(struct spoolss_DriverDirectoryInfo1 ),
   38807             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_DriverDirectoryInfo1,
   38808             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_DriverDirectoryInfo1,
   38809             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_DriverDirectoryInfo1,
   38810             :         },
   38811             :         {
   38812             :                 .name = "spoolss_PrintProcessorInfo1",
   38813             :                 .struct_size = sizeof(struct spoolss_PrintProcessorInfo1 ),
   38814             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_PrintProcessorInfo1,
   38815             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_PrintProcessorInfo1,
   38816             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_PrintProcessorInfo1,
   38817             :         },
   38818             :         {
   38819             :                 .name = "spoolss_PrintProcessorDirectoryInfo1",
   38820             :                 .struct_size = sizeof(struct spoolss_PrintProcessorDirectoryInfo1 ),
   38821             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_PrintProcessorDirectoryInfo1,
   38822             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_PrintProcessorDirectoryInfo1,
   38823             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_PrintProcessorDirectoryInfo1,
   38824             :         },
   38825             :         {
   38826             :                 .name = "spoolss_DocumentInfoCtr",
   38827             :                 .struct_size = sizeof(struct spoolss_DocumentInfoCtr ),
   38828             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_DocumentInfoCtr,
   38829             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_DocumentInfoCtr,
   38830             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_DocumentInfoCtr,
   38831             :         },
   38832             :         {
   38833             :                 .name = "spoolss_OSVersion",
   38834             :                 .struct_size = sizeof(struct spoolss_OSVersion ),
   38835             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_OSVersion,
   38836             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_OSVersion,
   38837             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_OSVersion,
   38838             :         },
   38839             :         {
   38840             :                 .name = "spoolss_OSVersionEx",
   38841             :                 .struct_size = sizeof(struct spoolss_OSVersionEx ),
   38842             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_OSVersionEx,
   38843             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_OSVersionEx,
   38844             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_OSVersionEx,
   38845             :         },
   38846             :         {
   38847             :                 .name = "spoolss_FormInfo1",
   38848             :                 .struct_size = sizeof(struct spoolss_FormInfo1 ),
   38849             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_FormInfo1,
   38850             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_FormInfo1,
   38851             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_FormInfo1,
   38852             :         },
   38853             :         {
   38854             :                 .name = "spoolss_FormInfo2",
   38855             :                 .struct_size = sizeof(struct spoolss_FormInfo2 ),
   38856             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_FormInfo2,
   38857             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_FormInfo2,
   38858             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_FormInfo2,
   38859             :         },
   38860             :         {
   38861             :                 .name = "spoolss_AddFormInfoCtr",
   38862             :                 .struct_size = sizeof(struct spoolss_AddFormInfoCtr ),
   38863             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_AddFormInfoCtr,
   38864             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddFormInfoCtr,
   38865             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_AddFormInfoCtr,
   38866             :         },
   38867             :         {
   38868             :                 .name = "spoolss_PortInfo1",
   38869             :                 .struct_size = sizeof(struct spoolss_PortInfo1 ),
   38870             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_PortInfo1,
   38871             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_PortInfo1,
   38872             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_PortInfo1,
   38873             :         },
   38874             :         {
   38875             :                 .name = "spoolss_PortInfo2",
   38876             :                 .struct_size = sizeof(struct spoolss_PortInfo2 ),
   38877             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_PortInfo2,
   38878             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_PortInfo2,
   38879             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_PortInfo2,
   38880             :         },
   38881             :         {
   38882             :                 .name = "spoolss_PortInfo3",
   38883             :                 .struct_size = sizeof(struct spoolss_PortInfo3 ),
   38884             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_PortInfo3,
   38885             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_PortInfo3,
   38886             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_PortInfo3,
   38887             :         },
   38888             :         {
   38889             :                 .name = "spoolss_PortInfoFF",
   38890             :                 .struct_size = sizeof(struct spoolss_PortInfoFF ),
   38891             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_PortInfoFF,
   38892             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_PortInfoFF,
   38893             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_PortInfoFF,
   38894             :         },
   38895             :         {
   38896             :                 .name = "spoolss_MonitorInfo1",
   38897             :                 .struct_size = sizeof(struct spoolss_MonitorInfo1 ),
   38898             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_MonitorInfo1,
   38899             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_MonitorInfo1,
   38900             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_MonitorInfo1,
   38901             :         },
   38902             :         {
   38903             :                 .name = "spoolss_MonitorInfo2",
   38904             :                 .struct_size = sizeof(struct spoolss_MonitorInfo2 ),
   38905             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_MonitorInfo2,
   38906             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_MonitorInfo2,
   38907             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_MonitorInfo2,
   38908             :         },
   38909             :         {
   38910             :                 .name = "spoolss_SetPortInfo1",
   38911             :                 .struct_size = sizeof(struct spoolss_SetPortInfo1 ),
   38912             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_SetPortInfo1,
   38913             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPortInfo1,
   38914             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_SetPortInfo1,
   38915             :         },
   38916             :         {
   38917             :                 .name = "spoolss_SetPortInfo2",
   38918             :                 .struct_size = sizeof(struct spoolss_SetPortInfo2 ),
   38919             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_SetPortInfo2,
   38920             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPortInfo2,
   38921             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_SetPortInfo2,
   38922             :         },
   38923             :         {
   38924             :                 .name = "spoolss_SetPortInfo3",
   38925             :                 .struct_size = sizeof(struct spoolss_SetPortInfo3 ),
   38926             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_SetPortInfo3,
   38927             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPortInfo3,
   38928             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_SetPortInfo3,
   38929             :         },
   38930             :         {
   38931             :                 .name = "spoolss_SetPortInfoFF",
   38932             :                 .struct_size = sizeof(struct spoolss_SetPortInfoFF ),
   38933             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_SetPortInfoFF,
   38934             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPortInfoFF,
   38935             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_SetPortInfoFF,
   38936             :         },
   38937             :         {
   38938             :                 .name = "spoolss_SetPortInfoContainer",
   38939             :                 .struct_size = sizeof(struct spoolss_SetPortInfoContainer ),
   38940             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_SetPortInfoContainer,
   38941             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPortInfoContainer,
   38942             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_SetPortInfoContainer,
   38943             :         },
   38944             :         {
   38945             :                 .name = "UNIVERSAL_FONT_ID_ctr",
   38946             :                 .struct_size = sizeof(struct UNIVERSAL_FONT_ID_ctr ),
   38947             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_UNIVERSAL_FONT_ID_ctr,
   38948             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_UNIVERSAL_FONT_ID_ctr,
   38949             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_UNIVERSAL_FONT_ID_ctr,
   38950             :         },
   38951             :         {
   38952             :                 .name = "spoolss_MonitorContainer",
   38953             :                 .struct_size = sizeof(struct spoolss_MonitorContainer ),
   38954             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_MonitorContainer,
   38955             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_MonitorContainer,
   38956             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_MonitorContainer,
   38957             :         },
   38958             :         {
   38959             :                 .name = "spoolss_PrintProcDataTypesInfo1",
   38960             :                 .struct_size = sizeof(struct spoolss_PrintProcDataTypesInfo1 ),
   38961             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_PrintProcDataTypesInfo1,
   38962             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_PrintProcDataTypesInfo1,
   38963             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_PrintProcDataTypesInfo1,
   38964             :         },
   38965             :         {
   38966             :                 .name = "spoolss_PortVarContainer",
   38967             :                 .struct_size = sizeof(struct spoolss_PortVarContainer ),
   38968             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_PortVarContainer,
   38969             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_PortVarContainer,
   38970             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_PortVarContainer,
   38971             :         },
   38972             :         {
   38973             :                 .name = "spoolss_NotifyOption",
   38974             :                 .struct_size = sizeof(struct spoolss_NotifyOption ),
   38975             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_NotifyOption,
   38976             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_NotifyOption,
   38977             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_NotifyOption,
   38978             :         },
   38979             :         {
   38980             :                 .name = "spoolss_NotifyInfo",
   38981             :                 .struct_size = sizeof(struct spoolss_NotifyInfo ),
   38982             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_NotifyInfo,
   38983             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_NotifyInfo,
   38984             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_NotifyInfo,
   38985             :         },
   38986             :         {
   38987             :                 .name = "spoolss_UserLevelCtr",
   38988             :                 .struct_size = sizeof(struct spoolss_UserLevelCtr ),
   38989             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_UserLevelCtr,
   38990             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_UserLevelCtr,
   38991             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_UserLevelCtr,
   38992             :         },
   38993             :         {
   38994             :                 .name = "spoolss_PrinterEnumValues",
   38995             :                 .struct_size = sizeof(struct spoolss_PrinterEnumValues ),
   38996             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_PrinterEnumValues,
   38997             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_PrinterEnumValues,
   38998             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_PrinterEnumValues,
   38999             :         },
   39000             :         {
   39001             :                 .name = "spoolss_PortData1",
   39002             :                 .struct_size = sizeof(struct spoolss_PortData1 ),
   39003             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_PortData1,
   39004             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_PortData1,
   39005             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_PortData1,
   39006             :         },
   39007             :         {
   39008             :                 .name = "spoolss_PortData2",
   39009             :                 .struct_size = sizeof(struct spoolss_PortData2 ),
   39010             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_PortData2,
   39011             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_PortData2,
   39012             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_PortData2,
   39013             :         },
   39014             :         {
   39015             :                 .name = "spoolss_MonitorUi",
   39016             :                 .struct_size = sizeof(struct spoolss_MonitorUi ),
   39017             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_MonitorUi,
   39018             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_MonitorUi,
   39019             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_MonitorUi,
   39020             :         },
   39021             :         {
   39022             :                 .name = "RPC_BIDI_REQUEST_CONTAINER",
   39023             :                 .struct_size = sizeof(struct RPC_BIDI_REQUEST_CONTAINER ),
   39024             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_RPC_BIDI_REQUEST_CONTAINER,
   39025             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_RPC_BIDI_REQUEST_CONTAINER,
   39026             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_RPC_BIDI_REQUEST_CONTAINER,
   39027             :         },
   39028             :         {
   39029             :                 .name = "RPC_BIDI_RESPONSE_CONTAINER",
   39030             :                 .struct_size = sizeof(struct RPC_BIDI_RESPONSE_CONTAINER ),
   39031             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_RPC_BIDI_RESPONSE_CONTAINER,
   39032             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_RPC_BIDI_RESPONSE_CONTAINER,
   39033             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_RPC_BIDI_RESPONSE_CONTAINER,
   39034             :         },
   39035             :         {
   39036             :                 .name = "spoolss_CorePrinterDriver",
   39037             :                 .struct_size = sizeof(struct spoolss_CorePrinterDriver ),
   39038             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_CorePrinterDriver,
   39039             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_CorePrinterDriver,
   39040             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_CorePrinterDriver,
   39041             :         },
   39042             :         {
   39043             :                 .name = "spoolss_PrintPropertyValue",
   39044             :                 .struct_size = sizeof(struct spoolss_PrintPropertyValue ),
   39045             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_PrintPropertyValue,
   39046             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_PrintPropertyValue,
   39047             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_PrintPropertyValue,
   39048             :         },
   39049             :         {
   39050             :                 .name = "spoolss_PrintNamedProperty",
   39051             :                 .struct_size = sizeof(struct spoolss_PrintNamedProperty ),
   39052             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_PrintNamedProperty,
   39053             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_PrintNamedProperty,
   39054             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_PrintNamedProperty,
   39055             :         },
   39056             :         {
   39057             :                 .name = "spoolss_BranchOfficeJobDataContainer",
   39058             :                 .struct_size = sizeof(struct spoolss_BranchOfficeJobDataContainer ),
   39059             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_BranchOfficeJobDataContainer,
   39060             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_BranchOfficeJobDataContainer,
   39061             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_BranchOfficeJobDataContainer,
   39062             :         },
   39063             :         { .name = NULL }
   39064             : };
   39065             : 
   39066             : static const struct ndr_interface_call spoolss_calls[] = {
   39067             :         {
   39068             :                 "spoolss_EnumPrinters",
   39069             :                 sizeof(struct spoolss_EnumPrinters),
   39070             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinters,
   39071             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinters,
   39072             :                 (ndr_print_function_t) ndr_print_spoolss_EnumPrinters,
   39073             :                 { 0, NULL },
   39074             :                 { 0, NULL },
   39075             :         },
   39076             :         {
   39077             :                 "spoolss_OpenPrinter",
   39078             :                 sizeof(struct spoolss_OpenPrinter),
   39079             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_OpenPrinter,
   39080             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_OpenPrinter,
   39081             :                 (ndr_print_function_t) ndr_print_spoolss_OpenPrinter,
   39082             :                 { 0, NULL },
   39083             :                 { 0, NULL },
   39084             :         },
   39085             :         {
   39086             :                 "spoolss_SetJob",
   39087             :                 sizeof(struct spoolss_SetJob),
   39088             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_SetJob,
   39089             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetJob,
   39090             :                 (ndr_print_function_t) ndr_print_spoolss_SetJob,
   39091             :                 { 0, NULL },
   39092             :                 { 0, NULL },
   39093             :         },
   39094             :         {
   39095             :                 "spoolss_GetJob",
   39096             :                 sizeof(struct spoolss_GetJob),
   39097             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_GetJob,
   39098             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetJob,
   39099             :                 (ndr_print_function_t) ndr_print_spoolss_GetJob,
   39100             :                 { 0, NULL },
   39101             :                 { 0, NULL },
   39102             :         },
   39103             :         {
   39104             :                 "spoolss_EnumJobs",
   39105             :                 sizeof(struct spoolss_EnumJobs),
   39106             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumJobs,
   39107             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumJobs,
   39108             :                 (ndr_print_function_t) ndr_print_spoolss_EnumJobs,
   39109             :                 { 0, NULL },
   39110             :                 { 0, NULL },
   39111             :         },
   39112             :         {
   39113             :                 "spoolss_AddPrinter",
   39114             :                 sizeof(struct spoolss_AddPrinter),
   39115             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinter,
   39116             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinter,
   39117             :                 (ndr_print_function_t) ndr_print_spoolss_AddPrinter,
   39118             :                 { 0, NULL },
   39119             :                 { 0, NULL },
   39120             :         },
   39121             :         {
   39122             :                 "spoolss_DeletePrinter",
   39123             :                 sizeof(struct spoolss_DeletePrinter),
   39124             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinter,
   39125             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinter,
   39126             :                 (ndr_print_function_t) ndr_print_spoolss_DeletePrinter,
   39127             :                 { 0, NULL },
   39128             :                 { 0, NULL },
   39129             :         },
   39130             :         {
   39131             :                 "spoolss_SetPrinter",
   39132             :                 sizeof(struct spoolss_SetPrinter),
   39133             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinter,
   39134             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinter,
   39135             :                 (ndr_print_function_t) ndr_print_spoolss_SetPrinter,
   39136             :                 { 0, NULL },
   39137             :                 { 0, NULL },
   39138             :         },
   39139             :         {
   39140             :                 "spoolss_GetPrinter",
   39141             :                 sizeof(struct spoolss_GetPrinter),
   39142             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinter,
   39143             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinter,
   39144             :                 (ndr_print_function_t) ndr_print_spoolss_GetPrinter,
   39145             :                 { 0, NULL },
   39146             :                 { 0, NULL },
   39147             :         },
   39148             :         {
   39149             :                 "spoolss_AddPrinterDriver",
   39150             :                 sizeof(struct spoolss_AddPrinterDriver),
   39151             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterDriver,
   39152             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterDriver,
   39153             :                 (ndr_print_function_t) ndr_print_spoolss_AddPrinterDriver,
   39154             :                 { 0, NULL },
   39155             :                 { 0, NULL },
   39156             :         },
   39157             :         {
   39158             :                 "spoolss_EnumPrinterDrivers",
   39159             :                 sizeof(struct spoolss_EnumPrinterDrivers),
   39160             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterDrivers,
   39161             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterDrivers,
   39162             :                 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterDrivers,
   39163             :                 { 0, NULL },
   39164             :                 { 0, NULL },
   39165             :         },
   39166             :         {
   39167             :                 "spoolss_GetPrinterDriver",
   39168             :                 sizeof(struct spoolss_GetPrinterDriver),
   39169             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriver,
   39170             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriver,
   39171             :                 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriver,
   39172             :                 { 0, NULL },
   39173             :                 { 0, NULL },
   39174             :         },
   39175             :         {
   39176             :                 "spoolss_GetPrinterDriverDirectory",
   39177             :                 sizeof(struct spoolss_GetPrinterDriverDirectory),
   39178             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriverDirectory,
   39179             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriverDirectory,
   39180             :                 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriverDirectory,
   39181             :                 { 0, NULL },
   39182             :                 { 0, NULL },
   39183             :         },
   39184             :         {
   39185             :                 "spoolss_DeletePrinterDriver",
   39186             :                 sizeof(struct spoolss_DeletePrinterDriver),
   39187             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDriver,
   39188             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDriver,
   39189             :                 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDriver,
   39190             :                 { 0, NULL },
   39191             :                 { 0, NULL },
   39192             :         },
   39193             :         {
   39194             :                 "spoolss_AddPrintProcessor",
   39195             :                 sizeof(struct spoolss_AddPrintProcessor),
   39196             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrintProcessor,
   39197             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrintProcessor,
   39198             :                 (ndr_print_function_t) ndr_print_spoolss_AddPrintProcessor,
   39199             :                 { 0, NULL },
   39200             :                 { 0, NULL },
   39201             :         },
   39202             :         {
   39203             :                 "spoolss_EnumPrintProcessors",
   39204             :                 sizeof(struct spoolss_EnumPrintProcessors),
   39205             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrintProcessors,
   39206             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrintProcessors,
   39207             :                 (ndr_print_function_t) ndr_print_spoolss_EnumPrintProcessors,
   39208             :                 { 0, NULL },
   39209             :                 { 0, NULL },
   39210             :         },
   39211             :         {
   39212             :                 "spoolss_GetPrintProcessorDirectory",
   39213             :                 sizeof(struct spoolss_GetPrintProcessorDirectory),
   39214             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrintProcessorDirectory,
   39215             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrintProcessorDirectory,
   39216             :                 (ndr_print_function_t) ndr_print_spoolss_GetPrintProcessorDirectory,
   39217             :                 { 0, NULL },
   39218             :                 { 0, NULL },
   39219             :         },
   39220             :         {
   39221             :                 "spoolss_StartDocPrinter",
   39222             :                 sizeof(struct spoolss_StartDocPrinter),
   39223             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_StartDocPrinter,
   39224             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_StartDocPrinter,
   39225             :                 (ndr_print_function_t) ndr_print_spoolss_StartDocPrinter,
   39226             :                 { 0, NULL },
   39227             :                 { 0, NULL },
   39228             :         },
   39229             :         {
   39230             :                 "spoolss_StartPagePrinter",
   39231             :                 sizeof(struct spoolss_StartPagePrinter),
   39232             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_StartPagePrinter,
   39233             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_StartPagePrinter,
   39234             :                 (ndr_print_function_t) ndr_print_spoolss_StartPagePrinter,
   39235             :                 { 0, NULL },
   39236             :                 { 0, NULL },
   39237             :         },
   39238             :         {
   39239             :                 "spoolss_WritePrinter",
   39240             :                 sizeof(struct spoolss_WritePrinter),
   39241             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_WritePrinter,
   39242             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_WritePrinter,
   39243             :                 (ndr_print_function_t) ndr_print_spoolss_WritePrinter,
   39244             :                 { 0, NULL },
   39245             :                 { 0, NULL },
   39246             :         },
   39247             :         {
   39248             :                 "spoolss_EndPagePrinter",
   39249             :                 sizeof(struct spoolss_EndPagePrinter),
   39250             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_EndPagePrinter,
   39251             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EndPagePrinter,
   39252             :                 (ndr_print_function_t) ndr_print_spoolss_EndPagePrinter,
   39253             :                 { 0, NULL },
   39254             :                 { 0, NULL },
   39255             :         },
   39256             :         {
   39257             :                 "spoolss_AbortPrinter",
   39258             :                 sizeof(struct spoolss_AbortPrinter),
   39259             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_AbortPrinter,
   39260             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AbortPrinter,
   39261             :                 (ndr_print_function_t) ndr_print_spoolss_AbortPrinter,
   39262             :                 { 0, NULL },
   39263             :                 { 0, NULL },
   39264             :         },
   39265             :         {
   39266             :                 "spoolss_ReadPrinter",
   39267             :                 sizeof(struct spoolss_ReadPrinter),
   39268             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_ReadPrinter,
   39269             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReadPrinter,
   39270             :                 (ndr_print_function_t) ndr_print_spoolss_ReadPrinter,
   39271             :                 { 0, NULL },
   39272             :                 { 0, NULL },
   39273             :         },
   39274             :         {
   39275             :                 "spoolss_EndDocPrinter",
   39276             :                 sizeof(struct spoolss_EndDocPrinter),
   39277             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_EndDocPrinter,
   39278             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EndDocPrinter,
   39279             :                 (ndr_print_function_t) ndr_print_spoolss_EndDocPrinter,
   39280             :                 { 0, NULL },
   39281             :                 { 0, NULL },
   39282             :         },
   39283             :         {
   39284             :                 "spoolss_AddJob",
   39285             :                 sizeof(struct spoolss_AddJob),
   39286             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_AddJob,
   39287             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddJob,
   39288             :                 (ndr_print_function_t) ndr_print_spoolss_AddJob,
   39289             :                 { 0, NULL },
   39290             :                 { 0, NULL },
   39291             :         },
   39292             :         {
   39293             :                 "spoolss_ScheduleJob",
   39294             :                 sizeof(struct spoolss_ScheduleJob),
   39295             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_ScheduleJob,
   39296             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ScheduleJob,
   39297             :                 (ndr_print_function_t) ndr_print_spoolss_ScheduleJob,
   39298             :                 { 0, NULL },
   39299             :                 { 0, NULL },
   39300             :         },
   39301             :         {
   39302             :                 "spoolss_GetPrinterData",
   39303             :                 sizeof(struct spoolss_GetPrinterData),
   39304             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterData,
   39305             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterData,
   39306             :                 (ndr_print_function_t) ndr_print_spoolss_GetPrinterData,
   39307             :                 { 0, NULL },
   39308             :                 { 0, NULL },
   39309             :         },
   39310             :         {
   39311             :                 "spoolss_SetPrinterData",
   39312             :                 sizeof(struct spoolss_SetPrinterData),
   39313             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinterData,
   39314             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinterData,
   39315             :                 (ndr_print_function_t) ndr_print_spoolss_SetPrinterData,
   39316             :                 { 0, NULL },
   39317             :                 { 0, NULL },
   39318             :         },
   39319             :         {
   39320             :                 "spoolss_WaitForPrinterChange",
   39321             :                 sizeof(struct spoolss_WaitForPrinterChange),
   39322             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_WaitForPrinterChange,
   39323             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_WaitForPrinterChange,
   39324             :                 (ndr_print_function_t) ndr_print_spoolss_WaitForPrinterChange,
   39325             :                 { 0, NULL },
   39326             :                 { 0, NULL },
   39327             :         },
   39328             :         {
   39329             :                 "spoolss_ClosePrinter",
   39330             :                 sizeof(struct spoolss_ClosePrinter),
   39331             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_ClosePrinter,
   39332             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ClosePrinter,
   39333             :                 (ndr_print_function_t) ndr_print_spoolss_ClosePrinter,
   39334             :                 { 0, NULL },
   39335             :                 { 0, NULL },
   39336             :         },
   39337             :         {
   39338             :                 "spoolss_AddForm",
   39339             :                 sizeof(struct spoolss_AddForm),
   39340             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_AddForm,
   39341             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddForm,
   39342             :                 (ndr_print_function_t) ndr_print_spoolss_AddForm,
   39343             :                 { 0, NULL },
   39344             :                 { 0, NULL },
   39345             :         },
   39346             :         {
   39347             :                 "spoolss_DeleteForm",
   39348             :                 sizeof(struct spoolss_DeleteForm),
   39349             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_DeleteForm,
   39350             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeleteForm,
   39351             :                 (ndr_print_function_t) ndr_print_spoolss_DeleteForm,
   39352             :                 { 0, NULL },
   39353             :                 { 0, NULL },
   39354             :         },
   39355             :         {
   39356             :                 "spoolss_GetForm",
   39357             :                 sizeof(struct spoolss_GetForm),
   39358             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_GetForm,
   39359             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetForm,
   39360             :                 (ndr_print_function_t) ndr_print_spoolss_GetForm,
   39361             :                 { 0, NULL },
   39362             :                 { 0, NULL },
   39363             :         },
   39364             :         {
   39365             :                 "spoolss_SetForm",
   39366             :                 sizeof(struct spoolss_SetForm),
   39367             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_SetForm,
   39368             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetForm,
   39369             :                 (ndr_print_function_t) ndr_print_spoolss_SetForm,
   39370             :                 { 0, NULL },
   39371             :                 { 0, NULL },
   39372             :         },
   39373             :         {
   39374             :                 "spoolss_EnumForms",
   39375             :                 sizeof(struct spoolss_EnumForms),
   39376             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumForms,
   39377             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumForms,
   39378             :                 (ndr_print_function_t) ndr_print_spoolss_EnumForms,
   39379             :                 { 0, NULL },
   39380             :                 { 0, NULL },
   39381             :         },
   39382             :         {
   39383             :                 "spoolss_EnumPorts",
   39384             :                 sizeof(struct spoolss_EnumPorts),
   39385             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPorts,
   39386             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPorts,
   39387             :                 (ndr_print_function_t) ndr_print_spoolss_EnumPorts,
   39388             :                 { 0, NULL },
   39389             :                 { 0, NULL },
   39390             :         },
   39391             :         {
   39392             :                 "spoolss_EnumMonitors",
   39393             :                 sizeof(struct spoolss_EnumMonitors),
   39394             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumMonitors,
   39395             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumMonitors,
   39396             :                 (ndr_print_function_t) ndr_print_spoolss_EnumMonitors,
   39397             :                 { 0, NULL },
   39398             :                 { 0, NULL },
   39399             :         },
   39400             :         {
   39401             :                 "spoolss_AddPort",
   39402             :                 sizeof(struct spoolss_AddPort),
   39403             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPort,
   39404             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPort,
   39405             :                 (ndr_print_function_t) ndr_print_spoolss_AddPort,
   39406             :                 { 0, NULL },
   39407             :                 { 0, NULL },
   39408             :         },
   39409             :         {
   39410             :                 "spoolss_ConfigurePort",
   39411             :                 sizeof(struct spoolss_ConfigurePort),
   39412             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_ConfigurePort,
   39413             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ConfigurePort,
   39414             :                 (ndr_print_function_t) ndr_print_spoolss_ConfigurePort,
   39415             :                 { 0, NULL },
   39416             :                 { 0, NULL },
   39417             :         },
   39418             :         {
   39419             :                 "spoolss_DeletePort",
   39420             :                 sizeof(struct spoolss_DeletePort),
   39421             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePort,
   39422             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePort,
   39423             :                 (ndr_print_function_t) ndr_print_spoolss_DeletePort,
   39424             :                 { 0, NULL },
   39425             :                 { 0, NULL },
   39426             :         },
   39427             :         {
   39428             :                 "spoolss_CreatePrinterIC",
   39429             :                 sizeof(struct spoolss_CreatePrinterIC),
   39430             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_CreatePrinterIC,
   39431             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_CreatePrinterIC,
   39432             :                 (ndr_print_function_t) ndr_print_spoolss_CreatePrinterIC,
   39433             :                 { 0, NULL },
   39434             :                 { 0, NULL },
   39435             :         },
   39436             :         {
   39437             :                 "spoolss_PlayGDIScriptOnPrinterIC",
   39438             :                 sizeof(struct spoolss_PlayGDIScriptOnPrinterIC),
   39439             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_PlayGDIScriptOnPrinterIC,
   39440             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_PlayGDIScriptOnPrinterIC,
   39441             :                 (ndr_print_function_t) ndr_print_spoolss_PlayGDIScriptOnPrinterIC,
   39442             :                 { 0, NULL },
   39443             :                 { 0, NULL },
   39444             :         },
   39445             :         {
   39446             :                 "spoolss_DeletePrinterIC",
   39447             :                 sizeof(struct spoolss_DeletePrinterIC),
   39448             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterIC,
   39449             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterIC,
   39450             :                 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterIC,
   39451             :                 { 0, NULL },
   39452             :                 { 0, NULL },
   39453             :         },
   39454             :         {
   39455             :                 "spoolss_AddPrinterConnection",
   39456             :                 sizeof(struct spoolss_AddPrinterConnection),
   39457             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterConnection,
   39458             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterConnection,
   39459             :                 (ndr_print_function_t) ndr_print_spoolss_AddPrinterConnection,
   39460             :                 { 0, NULL },
   39461             :                 { 0, NULL },
   39462             :         },
   39463             :         {
   39464             :                 "spoolss_DeletePrinterConnection",
   39465             :                 sizeof(struct spoolss_DeletePrinterConnection),
   39466             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterConnection,
   39467             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterConnection,
   39468             :                 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterConnection,
   39469             :                 { 0, NULL },
   39470             :                 { 0, NULL },
   39471             :         },
   39472             :         {
   39473             :                 "spoolss_PrinterMessageBox",
   39474             :                 sizeof(struct spoolss_PrinterMessageBox),
   39475             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_PrinterMessageBox,
   39476             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_PrinterMessageBox,
   39477             :                 (ndr_print_function_t) ndr_print_spoolss_PrinterMessageBox,
   39478             :                 { 0, NULL },
   39479             :                 { 0, NULL },
   39480             :         },
   39481             :         {
   39482             :                 "spoolss_AddMonitor",
   39483             :                 sizeof(struct spoolss_AddMonitor),
   39484             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_AddMonitor,
   39485             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddMonitor,
   39486             :                 (ndr_print_function_t) ndr_print_spoolss_AddMonitor,
   39487             :                 { 0, NULL },
   39488             :                 { 0, NULL },
   39489             :         },
   39490             :         {
   39491             :                 "spoolss_DeleteMonitor",
   39492             :                 sizeof(struct spoolss_DeleteMonitor),
   39493             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_DeleteMonitor,
   39494             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeleteMonitor,
   39495             :                 (ndr_print_function_t) ndr_print_spoolss_DeleteMonitor,
   39496             :                 { 0, NULL },
   39497             :                 { 0, NULL },
   39498             :         },
   39499             :         {
   39500             :                 "spoolss_DeletePrintProcessor",
   39501             :                 sizeof(struct spoolss_DeletePrintProcessor),
   39502             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrintProcessor,
   39503             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrintProcessor,
   39504             :                 (ndr_print_function_t) ndr_print_spoolss_DeletePrintProcessor,
   39505             :                 { 0, NULL },
   39506             :                 { 0, NULL },
   39507             :         },
   39508             :         {
   39509             :                 "spoolss_AddPrintProvidor",
   39510             :                 sizeof(struct spoolss_AddPrintProvidor),
   39511             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrintProvidor,
   39512             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrintProvidor,
   39513             :                 (ndr_print_function_t) ndr_print_spoolss_AddPrintProvidor,
   39514             :                 { 0, NULL },
   39515             :                 { 0, NULL },
   39516             :         },
   39517             :         {
   39518             :                 "spoolss_DeletePrintProvidor",
   39519             :                 sizeof(struct spoolss_DeletePrintProvidor),
   39520             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrintProvidor,
   39521             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrintProvidor,
   39522             :                 (ndr_print_function_t) ndr_print_spoolss_DeletePrintProvidor,
   39523             :                 { 0, NULL },
   39524             :                 { 0, NULL },
   39525             :         },
   39526             :         {
   39527             :                 "spoolss_EnumPrintProcessorDataTypes",
   39528             :                 sizeof(struct spoolss_EnumPrintProcessorDataTypes),
   39529             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrintProcessorDataTypes,
   39530             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrintProcessorDataTypes,
   39531             :                 (ndr_print_function_t) ndr_print_spoolss_EnumPrintProcessorDataTypes,
   39532             :                 { 0, NULL },
   39533             :                 { 0, NULL },
   39534             :         },
   39535             :         {
   39536             :                 "spoolss_ResetPrinter",
   39537             :                 sizeof(struct spoolss_ResetPrinter),
   39538             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_ResetPrinter,
   39539             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ResetPrinter,
   39540             :                 (ndr_print_function_t) ndr_print_spoolss_ResetPrinter,
   39541             :                 { 0, NULL },
   39542             :                 { 0, NULL },
   39543             :         },
   39544             :         {
   39545             :                 "spoolss_GetPrinterDriver2",
   39546             :                 sizeof(struct spoolss_GetPrinterDriver2),
   39547             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriver2,
   39548             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriver2,
   39549             :                 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriver2,
   39550             :                 { 0, NULL },
   39551             :                 { 0, NULL },
   39552             :         },
   39553             :         {
   39554             :                 "spoolss_FindFirstPrinterChangeNotification",
   39555             :                 sizeof(struct spoolss_FindFirstPrinterChangeNotification),
   39556             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_FindFirstPrinterChangeNotification,
   39557             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindFirstPrinterChangeNotification,
   39558             :                 (ndr_print_function_t) ndr_print_spoolss_FindFirstPrinterChangeNotification,
   39559             :                 { 0, NULL },
   39560             :                 { 0, NULL },
   39561             :         },
   39562             :         {
   39563             :                 "spoolss_FindNextPrinterChangeNotification",
   39564             :                 sizeof(struct spoolss_FindNextPrinterChangeNotification),
   39565             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_FindNextPrinterChangeNotification,
   39566             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindNextPrinterChangeNotification,
   39567             :                 (ndr_print_function_t) ndr_print_spoolss_FindNextPrinterChangeNotification,
   39568             :                 { 0, NULL },
   39569             :                 { 0, NULL },
   39570             :         },
   39571             :         {
   39572             :                 "spoolss_FindClosePrinterNotify",
   39573             :                 sizeof(struct spoolss_FindClosePrinterNotify),
   39574             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_FindClosePrinterNotify,
   39575             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindClosePrinterNotify,
   39576             :                 (ndr_print_function_t) ndr_print_spoolss_FindClosePrinterNotify,
   39577             :                 { 0, NULL },
   39578             :                 { 0, NULL },
   39579             :         },
   39580             :         {
   39581             :                 "spoolss_RouterFindFirstPrinterChangeNotificationOld",
   39582             :                 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotificationOld),
   39583             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld,
   39584             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld,
   39585             :                 (ndr_print_function_t) ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld,
   39586             :                 { 0, NULL },
   39587             :                 { 0, NULL },
   39588             :         },
   39589             :         {
   39590             :                 "spoolss_ReplyOpenPrinter",
   39591             :                 sizeof(struct spoolss_ReplyOpenPrinter),
   39592             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_ReplyOpenPrinter,
   39593             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReplyOpenPrinter,
   39594             :                 (ndr_print_function_t) ndr_print_spoolss_ReplyOpenPrinter,
   39595             :                 { 0, NULL },
   39596             :                 { 0, NULL },
   39597             :         },
   39598             :         {
   39599             :                 "spoolss_RouterReplyPrinter",
   39600             :                 sizeof(struct spoolss_RouterReplyPrinter),
   39601             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterReplyPrinter,
   39602             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterReplyPrinter,
   39603             :                 (ndr_print_function_t) ndr_print_spoolss_RouterReplyPrinter,
   39604             :                 { 0, NULL },
   39605             :                 { 0, NULL },
   39606             :         },
   39607             :         {
   39608             :                 "spoolss_ReplyClosePrinter",
   39609             :                 sizeof(struct spoolss_ReplyClosePrinter),
   39610             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_ReplyClosePrinter,
   39611             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReplyClosePrinter,
   39612             :                 (ndr_print_function_t) ndr_print_spoolss_ReplyClosePrinter,
   39613             :                 { 0, NULL },
   39614             :                 { 0, NULL },
   39615             :         },
   39616             :         {
   39617             :                 "spoolss_AddPortEx",
   39618             :                 sizeof(struct spoolss_AddPortEx),
   39619             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPortEx,
   39620             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPortEx,
   39621             :                 (ndr_print_function_t) ndr_print_spoolss_AddPortEx,
   39622             :                 { 0, NULL },
   39623             :                 { 0, NULL },
   39624             :         },
   39625             :         {
   39626             :                 "spoolss_RouterFindFirstPrinterChangeNotification",
   39627             :                 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotification),
   39628             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterFindFirstPrinterChangeNotification,
   39629             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification,
   39630             :                 (ndr_print_function_t) ndr_print_spoolss_RouterFindFirstPrinterChangeNotification,
   39631             :                 { 0, NULL },
   39632             :                 { 0, NULL },
   39633             :         },
   39634             :         {
   39635             :                 "spoolss_SpoolerInit",
   39636             :                 sizeof(struct spoolss_SpoolerInit),
   39637             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_SpoolerInit,
   39638             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SpoolerInit,
   39639             :                 (ndr_print_function_t) ndr_print_spoolss_SpoolerInit,
   39640             :                 { 0, NULL },
   39641             :                 { 0, NULL },
   39642             :         },
   39643             :         {
   39644             :                 "spoolss_ResetPrinterEx",
   39645             :                 sizeof(struct spoolss_ResetPrinterEx),
   39646             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_ResetPrinterEx,
   39647             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ResetPrinterEx,
   39648             :                 (ndr_print_function_t) ndr_print_spoolss_ResetPrinterEx,
   39649             :                 { 0, NULL },
   39650             :                 { 0, NULL },
   39651             :         },
   39652             :         {
   39653             :                 "spoolss_RemoteFindFirstPrinterChangeNotifyEx",
   39654             :                 sizeof(struct spoolss_RemoteFindFirstPrinterChangeNotifyEx),
   39655             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
   39656             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
   39657             :                 (ndr_print_function_t) ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
   39658             :                 { 0, NULL },
   39659             :                 { 0, NULL },
   39660             :         },
   39661             :         {
   39662             :                 "spoolss_RouterReplyPrinterEx",
   39663             :                 sizeof(struct spoolss_RouterReplyPrinterEx),
   39664             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterReplyPrinterEx,
   39665             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterReplyPrinterEx,
   39666             :                 (ndr_print_function_t) ndr_print_spoolss_RouterReplyPrinterEx,
   39667             :                 { 0, NULL },
   39668             :                 { 0, NULL },
   39669             :         },
   39670             :         {
   39671             :                 "spoolss_RouterRefreshPrinterChangeNotify",
   39672             :                 sizeof(struct spoolss_RouterRefreshPrinterChangeNotify),
   39673             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterRefreshPrinterChangeNotify,
   39674             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterRefreshPrinterChangeNotify,
   39675             :                 (ndr_print_function_t) ndr_print_spoolss_RouterRefreshPrinterChangeNotify,
   39676             :                 { 0, NULL },
   39677             :                 { 0, NULL },
   39678             :         },
   39679             :         {
   39680             :                 "spoolss_44",
   39681             :                 sizeof(struct spoolss_44),
   39682             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_44,
   39683             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_44,
   39684             :                 (ndr_print_function_t) ndr_print_spoolss_44,
   39685             :                 { 0, NULL },
   39686             :                 { 0, NULL },
   39687             :         },
   39688             :         {
   39689             :                 "spoolss_OpenPrinterEx",
   39690             :                 sizeof(struct spoolss_OpenPrinterEx),
   39691             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_OpenPrinterEx,
   39692             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_OpenPrinterEx,
   39693             :                 (ndr_print_function_t) ndr_print_spoolss_OpenPrinterEx,
   39694             :                 { 0, NULL },
   39695             :                 { 0, NULL },
   39696             :         },
   39697             :         {
   39698             :                 "spoolss_AddPrinterEx",
   39699             :                 sizeof(struct spoolss_AddPrinterEx),
   39700             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterEx,
   39701             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterEx,
   39702             :                 (ndr_print_function_t) ndr_print_spoolss_AddPrinterEx,
   39703             :                 { 0, NULL },
   39704             :                 { 0, NULL },
   39705             :         },
   39706             :         {
   39707             :                 "spoolss_SetPort",
   39708             :                 sizeof(struct spoolss_SetPort),
   39709             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPort,
   39710             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPort,
   39711             :                 (ndr_print_function_t) ndr_print_spoolss_SetPort,
   39712             :                 { 0, NULL },
   39713             :                 { 0, NULL },
   39714             :         },
   39715             :         {
   39716             :                 "spoolss_EnumPrinterData",
   39717             :                 sizeof(struct spoolss_EnumPrinterData),
   39718             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterData,
   39719             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterData,
   39720             :                 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterData,
   39721             :                 { 0, NULL },
   39722             :                 { 0, NULL },
   39723             :         },
   39724             :         {
   39725             :                 "spoolss_DeletePrinterData",
   39726             :                 sizeof(struct spoolss_DeletePrinterData),
   39727             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterData,
   39728             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterData,
   39729             :                 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterData,
   39730             :                 { 0, NULL },
   39731             :                 { 0, NULL },
   39732             :         },
   39733             :         {
   39734             :                 "spoolss_4a",
   39735             :                 sizeof(struct spoolss_4a),
   39736             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_4a,
   39737             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4a,
   39738             :                 (ndr_print_function_t) ndr_print_spoolss_4a,
   39739             :                 { 0, NULL },
   39740             :                 { 0, NULL },
   39741             :         },
   39742             :         {
   39743             :                 "spoolss_4b",
   39744             :                 sizeof(struct spoolss_4b),
   39745             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_4b,
   39746             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4b,
   39747             :                 (ndr_print_function_t) ndr_print_spoolss_4b,
   39748             :                 { 0, NULL },
   39749             :                 { 0, NULL },
   39750             :         },
   39751             :         {
   39752             :                 "spoolss_4c",
   39753             :                 sizeof(struct spoolss_4c),
   39754             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_4c,
   39755             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4c,
   39756             :                 (ndr_print_function_t) ndr_print_spoolss_4c,
   39757             :                 { 0, NULL },
   39758             :                 { 0, NULL },
   39759             :         },
   39760             :         {
   39761             :                 "spoolss_SetPrinterDataEx",
   39762             :                 sizeof(struct spoolss_SetPrinterDataEx),
   39763             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinterDataEx,
   39764             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinterDataEx,
   39765             :                 (ndr_print_function_t) ndr_print_spoolss_SetPrinterDataEx,
   39766             :                 { 0, NULL },
   39767             :                 { 0, NULL },
   39768             :         },
   39769             :         {
   39770             :                 "spoolss_GetPrinterDataEx",
   39771             :                 sizeof(struct spoolss_GetPrinterDataEx),
   39772             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDataEx,
   39773             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDataEx,
   39774             :                 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDataEx,
   39775             :                 { 0, NULL },
   39776             :                 { 0, NULL },
   39777             :         },
   39778             :         {
   39779             :                 "spoolss_EnumPrinterDataEx",
   39780             :                 sizeof(struct spoolss_EnumPrinterDataEx),
   39781             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterDataEx,
   39782             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterDataEx,
   39783             :                 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterDataEx,
   39784             :                 { 0, NULL },
   39785             :                 { 0, NULL },
   39786             :         },
   39787             :         {
   39788             :                 "spoolss_EnumPrinterKey",
   39789             :                 sizeof(struct spoolss_EnumPrinterKey),
   39790             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterKey,
   39791             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterKey,
   39792             :                 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterKey,
   39793             :                 { 0, NULL },
   39794             :                 { 0, NULL },
   39795             :         },
   39796             :         {
   39797             :                 "spoolss_DeletePrinterDataEx",
   39798             :                 sizeof(struct spoolss_DeletePrinterDataEx),
   39799             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDataEx,
   39800             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDataEx,
   39801             :                 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDataEx,
   39802             :                 { 0, NULL },
   39803             :                 { 0, NULL },
   39804             :         },
   39805             :         {
   39806             :                 "spoolss_DeletePrinterKey",
   39807             :                 sizeof(struct spoolss_DeletePrinterKey),
   39808             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterKey,
   39809             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterKey,
   39810             :                 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterKey,
   39811             :                 { 0, NULL },
   39812             :                 { 0, NULL },
   39813             :         },
   39814             :         {
   39815             :                 "spoolss_53",
   39816             :                 sizeof(struct spoolss_53),
   39817             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_53,
   39818             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_53,
   39819             :                 (ndr_print_function_t) ndr_print_spoolss_53,
   39820             :                 { 0, NULL },
   39821             :                 { 0, NULL },
   39822             :         },
   39823             :         {
   39824             :                 "spoolss_DeletePrinterDriverEx",
   39825             :                 sizeof(struct spoolss_DeletePrinterDriverEx),
   39826             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDriverEx,
   39827             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDriverEx,
   39828             :                 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDriverEx,
   39829             :                 { 0, NULL },
   39830             :                 { 0, NULL },
   39831             :         },
   39832             :         {
   39833             :                 "spoolss_AddPerMachineConnection",
   39834             :                 sizeof(struct spoolss_AddPerMachineConnection),
   39835             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPerMachineConnection,
   39836             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPerMachineConnection,
   39837             :                 (ndr_print_function_t) ndr_print_spoolss_AddPerMachineConnection,
   39838             :                 { 0, NULL },
   39839             :                 { 0, NULL },
   39840             :         },
   39841             :         {
   39842             :                 "spoolss_DeletePerMachineConnection",
   39843             :                 sizeof(struct spoolss_DeletePerMachineConnection),
   39844             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePerMachineConnection,
   39845             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePerMachineConnection,
   39846             :                 (ndr_print_function_t) ndr_print_spoolss_DeletePerMachineConnection,
   39847             :                 { 0, NULL },
   39848             :                 { 0, NULL },
   39849             :         },
   39850             :         {
   39851             :                 "spoolss_EnumPerMachineConnections",
   39852             :                 sizeof(struct spoolss_EnumPerMachineConnections),
   39853             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPerMachineConnections,
   39854             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPerMachineConnections,
   39855             :                 (ndr_print_function_t) ndr_print_spoolss_EnumPerMachineConnections,
   39856             :                 { 0, NULL },
   39857             :                 { 0, NULL },
   39858             :         },
   39859             :         {
   39860             :                 "spoolss_XcvData",
   39861             :                 sizeof(struct spoolss_XcvData),
   39862             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_XcvData,
   39863             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_XcvData,
   39864             :                 (ndr_print_function_t) ndr_print_spoolss_XcvData,
   39865             :                 { 0, NULL },
   39866             :                 { 0, NULL },
   39867             :         },
   39868             :         {
   39869             :                 "spoolss_AddPrinterDriverEx",
   39870             :                 sizeof(struct spoolss_AddPrinterDriverEx),
   39871             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterDriverEx,
   39872             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterDriverEx,
   39873             :                 (ndr_print_function_t) ndr_print_spoolss_AddPrinterDriverEx,
   39874             :                 { 0, NULL },
   39875             :                 { 0, NULL },
   39876             :         },
   39877             :         {
   39878             :                 "spoolss_5a",
   39879             :                 sizeof(struct spoolss_5a),
   39880             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_5a,
   39881             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5a,
   39882             :                 (ndr_print_function_t) ndr_print_spoolss_5a,
   39883             :                 { 0, NULL },
   39884             :                 { 0, NULL },
   39885             :         },
   39886             :         {
   39887             :                 "spoolss_5b",
   39888             :                 sizeof(struct spoolss_5b),
   39889             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_5b,
   39890             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5b,
   39891             :                 (ndr_print_function_t) ndr_print_spoolss_5b,
   39892             :                 { 0, NULL },
   39893             :                 { 0, NULL },
   39894             :         },
   39895             :         {
   39896             :                 "spoolss_5c",
   39897             :                 sizeof(struct spoolss_5c),
   39898             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_5c,
   39899             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5c,
   39900             :                 (ndr_print_function_t) ndr_print_spoolss_5c,
   39901             :                 { 0, NULL },
   39902             :                 { 0, NULL },
   39903             :         },
   39904             :         {
   39905             :                 "spoolss_5d",
   39906             :                 sizeof(struct spoolss_5d),
   39907             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_5d,
   39908             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5d,
   39909             :                 (ndr_print_function_t) ndr_print_spoolss_5d,
   39910             :                 { 0, NULL },
   39911             :                 { 0, NULL },
   39912             :         },
   39913             :         {
   39914             :                 "spoolss_5e",
   39915             :                 sizeof(struct spoolss_5e),
   39916             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_5e,
   39917             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5e,
   39918             :                 (ndr_print_function_t) ndr_print_spoolss_5e,
   39919             :                 { 0, NULL },
   39920             :                 { 0, NULL },
   39921             :         },
   39922             :         {
   39923             :                 "spoolss_5f",
   39924             :                 sizeof(struct spoolss_5f),
   39925             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_5f,
   39926             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5f,
   39927             :                 (ndr_print_function_t) ndr_print_spoolss_5f,
   39928             :                 { 0, NULL },
   39929             :                 { 0, NULL },
   39930             :         },
   39931             :         {
   39932             :                 "spoolss_60",
   39933             :                 sizeof(struct spoolss_60),
   39934             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_60,
   39935             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_60,
   39936             :                 (ndr_print_function_t) ndr_print_spoolss_60,
   39937             :                 { 0, NULL },
   39938             :                 { 0, NULL },
   39939             :         },
   39940             :         {
   39941             :                 "spoolss_SendRecvBidiData",
   39942             :                 sizeof(struct spoolss_SendRecvBidiData),
   39943             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_SendRecvBidiData,
   39944             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SendRecvBidiData,
   39945             :                 (ndr_print_function_t) ndr_print_spoolss_SendRecvBidiData,
   39946             :                 { 0, NULL },
   39947             :                 { 0, NULL },
   39948             :         },
   39949             :         {
   39950             :                 "spoolss_62",
   39951             :                 sizeof(struct spoolss_62),
   39952             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_62,
   39953             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_62,
   39954             :                 (ndr_print_function_t) ndr_print_spoolss_62,
   39955             :                 { 0, NULL },
   39956             :                 { 0, NULL },
   39957             :         },
   39958             :         {
   39959             :                 "spoolss_63",
   39960             :                 sizeof(struct spoolss_63),
   39961             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_63,
   39962             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_63,
   39963             :                 (ndr_print_function_t) ndr_print_spoolss_63,
   39964             :                 { 0, NULL },
   39965             :                 { 0, NULL },
   39966             :         },
   39967             :         {
   39968             :                 "spoolss_64",
   39969             :                 sizeof(struct spoolss_64),
   39970             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_64,
   39971             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_64,
   39972             :                 (ndr_print_function_t) ndr_print_spoolss_64,
   39973             :                 { 0, NULL },
   39974             :                 { 0, NULL },
   39975             :         },
   39976             :         {
   39977             :                 "spoolss_65",
   39978             :                 sizeof(struct spoolss_65),
   39979             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_65,
   39980             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_65,
   39981             :                 (ndr_print_function_t) ndr_print_spoolss_65,
   39982             :                 { 0, NULL },
   39983             :                 { 0, NULL },
   39984             :         },
   39985             :         {
   39986             :                 "spoolss_GetCorePrinterDrivers",
   39987             :                 sizeof(struct spoolss_GetCorePrinterDrivers),
   39988             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_GetCorePrinterDrivers,
   39989             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetCorePrinterDrivers,
   39990             :                 (ndr_print_function_t) ndr_print_spoolss_GetCorePrinterDrivers,
   39991             :                 { 0, NULL },
   39992             :                 { 0, NULL },
   39993             :         },
   39994             :         {
   39995             :                 "spoolss_67",
   39996             :                 sizeof(struct spoolss_67),
   39997             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_67,
   39998             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_67,
   39999             :                 (ndr_print_function_t) ndr_print_spoolss_67,
   40000             :                 { 0, NULL },
   40001             :                 { 0, NULL },
   40002             :         },
   40003             :         {
   40004             :                 "spoolss_GetPrinterDriverPackagePath",
   40005             :                 sizeof(struct spoolss_GetPrinterDriverPackagePath),
   40006             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriverPackagePath,
   40007             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriverPackagePath,
   40008             :                 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriverPackagePath,
   40009             :                 { 0, NULL },
   40010             :                 { 0, NULL },
   40011             :         },
   40012             :         {
   40013             :                 "spoolss_69",
   40014             :                 sizeof(struct spoolss_69),
   40015             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_69,
   40016             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_69,
   40017             :                 (ndr_print_function_t) ndr_print_spoolss_69,
   40018             :                 { 0, NULL },
   40019             :                 { 0, NULL },
   40020             :         },
   40021             :         {
   40022             :                 "spoolss_6a",
   40023             :                 sizeof(struct spoolss_6a),
   40024             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_6a,
   40025             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_6a,
   40026             :                 (ndr_print_function_t) ndr_print_spoolss_6a,
   40027             :                 { 0, NULL },
   40028             :                 { 0, NULL },
   40029             :         },
   40030             :         {
   40031             :                 "spoolss_6b",
   40032             :                 sizeof(struct spoolss_6b),
   40033             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_6b,
   40034             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_6b,
   40035             :                 (ndr_print_function_t) ndr_print_spoolss_6b,
   40036             :                 { 0, NULL },
   40037             :                 { 0, NULL },
   40038             :         },
   40039             :         {
   40040             :                 "spoolss_6c",
   40041             :                 sizeof(struct spoolss_6c),
   40042             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_6c,
   40043             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_6c,
   40044             :                 (ndr_print_function_t) ndr_print_spoolss_6c,
   40045             :                 { 0, NULL },
   40046             :                 { 0, NULL },
   40047             :         },
   40048             :         {
   40049             :                 "spoolss_6d",
   40050             :                 sizeof(struct spoolss_6d),
   40051             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_6d,
   40052             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_6d,
   40053             :                 (ndr_print_function_t) ndr_print_spoolss_6d,
   40054             :                 { 0, NULL },
   40055             :                 { 0, NULL },
   40056             :         },
   40057             :         {
   40058             :                 "spoolss_GetJobNamedPropertyValue",
   40059             :                 sizeof(struct spoolss_GetJobNamedPropertyValue),
   40060             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_GetJobNamedPropertyValue,
   40061             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetJobNamedPropertyValue,
   40062             :                 (ndr_print_function_t) ndr_print_spoolss_GetJobNamedPropertyValue,
   40063             :                 { 0, NULL },
   40064             :                 { 0, NULL },
   40065             :         },
   40066             :         {
   40067             :                 "spoolss_SetJobNamedProperty",
   40068             :                 sizeof(struct spoolss_SetJobNamedProperty),
   40069             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_SetJobNamedProperty,
   40070             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetJobNamedProperty,
   40071             :                 (ndr_print_function_t) ndr_print_spoolss_SetJobNamedProperty,
   40072             :                 { 0, NULL },
   40073             :                 { 0, NULL },
   40074             :         },
   40075             :         {
   40076             :                 "spoolss_DeleteJobNamedProperty",
   40077             :                 sizeof(struct spoolss_DeleteJobNamedProperty),
   40078             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_DeleteJobNamedProperty,
   40079             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeleteJobNamedProperty,
   40080             :                 (ndr_print_function_t) ndr_print_spoolss_DeleteJobNamedProperty,
   40081             :                 { 0, NULL },
   40082             :                 { 0, NULL },
   40083             :         },
   40084             :         {
   40085             :                 "spoolss_EnumJobNamedProperties",
   40086             :                 sizeof(struct spoolss_EnumJobNamedProperties),
   40087             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumJobNamedProperties,
   40088             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumJobNamedProperties,
   40089             :                 (ndr_print_function_t) ndr_print_spoolss_EnumJobNamedProperties,
   40090             :                 { 0, NULL },
   40091             :                 { 0, NULL },
   40092             :         },
   40093             :         {
   40094             :                 "spoolss_72",
   40095             :                 sizeof(struct spoolss_72),
   40096             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_72,
   40097             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_72,
   40098             :                 (ndr_print_function_t) ndr_print_spoolss_72,
   40099             :                 { 0, NULL },
   40100             :                 { 0, NULL },
   40101             :         },
   40102             :         {
   40103             :                 "spoolss_73",
   40104             :                 sizeof(struct spoolss_73),
   40105             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_73,
   40106             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_73,
   40107             :                 (ndr_print_function_t) ndr_print_spoolss_73,
   40108             :                 { 0, NULL },
   40109             :                 { 0, NULL },
   40110             :         },
   40111             :         {
   40112             :                 "spoolss_LogJobInfoForBranchOffice",
   40113             :                 sizeof(struct spoolss_LogJobInfoForBranchOffice),
   40114             :                 (ndr_push_flags_fn_t) ndr_push_spoolss_LogJobInfoForBranchOffice,
   40115             :                 (ndr_pull_flags_fn_t) ndr_pull_spoolss_LogJobInfoForBranchOffice,
   40116             :                 (ndr_print_function_t) ndr_print_spoolss_LogJobInfoForBranchOffice,
   40117             :                 { 0, NULL },
   40118             :                 { 0, NULL },
   40119             :         },
   40120             :         { .name = NULL }
   40121             : };
   40122             : 
   40123             : static const char * const spoolss_endpoint_strings[] = {
   40124             :         "ncacn_np:[\\pipe\\spoolss]", 
   40125             :         "ncalrpc:", 
   40126             : };
   40127             : 
   40128             : static const struct ndr_interface_string_array spoolss_endpoints = {
   40129             :         .count  = 2,
   40130             :         .names  = spoolss_endpoint_strings
   40131             : };
   40132             : 
   40133             : static const char * const spoolss_authservice_strings[] = {
   40134             :         "host", 
   40135             : };
   40136             : 
   40137             : static const struct ndr_interface_string_array spoolss_authservices = {
   40138             :         .count  = 1,
   40139             :         .names  = spoolss_authservice_strings
   40140             : };
   40141             : 
   40142             : 
   40143             : const struct ndr_interface_table ndr_table_spoolss = {
   40144             :         .name           = "spoolss",
   40145             :         .syntax_id      = {
   40146             :                 {0x12345678,0x1234,0xabcd,{0xef,0x00},{0x01,0x23,0x45,0x67,0x89,0xab}},
   40147             :                 NDR_SPOOLSS_VERSION
   40148             :         },
   40149             :         .helpstring     = NDR_SPOOLSS_HELPSTRING,
   40150             :         .num_calls      = 117,
   40151             :         .calls          = spoolss_calls,
   40152             :         .num_public_structs     = 67,
   40153             :         .public_structs         = spoolss_public_structs,
   40154             :         .endpoints      = &spoolss_endpoints,
   40155             :         .authservices   = &spoolss_authservices
   40156             : };
   40157             : 
   40158             : #endif /* SKIP_NDR_TABLE_spoolss */

Generated by: LCOV version 1.14