Changeset 427 for vendor/current/librpc


Ignore:
Timestamp:
Apr 9, 2010, 3:20:58 PM (15 years ago)
Author:
Silvan Scherrer
Message:

Samba 3.5.x: update to 3.5.2

Location:
vendor/current/librpc
Files:
14 edited

Legend:

Unmodified
Added
Removed
  • vendor/current/librpc/gen_ndr/cli_spoolss.c

    r414 r427  
    41534153                                                      struct policy_handle *_handle /* [in] [ref] */,
    41544154                                                      const char *_value_name /* [in] [charset(UTF16)] */,
     4155                                                      enum winreg_Type *_type /* [out] [ref] */,
     4156                                                      uint8_t *_data /* [out] [ref,size_is(offered)] */,
    41554157                                                      uint32_t _offered /* [in]  */,
    4156                                                       enum winreg_Type *_type /* [out] [ref] */,
    4157                                                       union spoolss_PrinterData *_data /* [out] [subcontext_size(offered),ref,subcontext(4),switch_is(*type)] */,
    41584158                                                      uint32_t *_needed /* [out] [ref] */)
    41594159{
     
    42274227        /* Copy out parameters */
    42284228        *state->orig.out.type = *state->tmp.out.type;
    4229         *state->orig.out.data = *state->tmp.out.data;
     4229        memcpy(state->orig.out.data, state->tmp.out.data, (state->tmp.in.offered) * sizeof(*state->orig.out.data));
    42304230        *state->orig.out.needed = *state->tmp.out.needed;
    42314231
     
    42664266                                       struct policy_handle *handle /* [in] [ref] */,
    42674267                                       const char *value_name /* [in] [charset(UTF16)] */,
     4268                                       enum winreg_Type *type /* [out] [ref] */,
     4269                                       uint8_t *data /* [out] [ref,size_is(offered)] */,
    42684270                                       uint32_t offered /* [in]  */,
    4269                                        enum winreg_Type *type /* [out] [ref] */,
    4270                                        union spoolss_PrinterData *data /* [out] [subcontext_size(offered),ref,subcontext(4),switch_is(*type)] */,
    42714271                                       uint32_t *needed /* [out] [ref] */,
    42724272                                       WERROR *werror)
     
    42964296        /* Return variables */
    42974297        *type = *r.out.type;
    4298         *data = *r.out.data;
     4298        memcpy(data, r.out.data, (r.in.offered) * sizeof(*data));
    42994299        *needed = *r.out.needed;
    43004300
     
    43224322                                                      const char *_value_name /* [in] [charset(UTF16)] */,
    43234323                                                      enum winreg_Type _type /* [in]  */,
    4324                                                       union spoolss_PrinterData _data /* [in] [subcontext(4),switch_is(type)] */,
    4325                                                       uint32_t __offered /* [in] [value(ndr_size_spoolss_PrinterData(&data,type,ndr->iconv_convenience,flags))] */)
     4324                                                      uint8_t *_data /* [in] [ref,size_is(offered)] */,
     4325                                                      uint32_t _offered /* [in] */)
    43264326{
    43274327        struct tevent_req *req;
     
    43424342        state->orig.in.type = _type;
    43434343        state->orig.in.data = _data;
    4344         state->orig.in._offered = __offered;
     4344        state->orig.in.offered = _offered;
    43454345
    43464346        /* Out parameters */
     
    44244424                                       const char *value_name /* [in] [charset(UTF16)] */,
    44254425                                       enum winreg_Type type /* [in]  */,
    4426                                        union spoolss_PrinterData data /* [in] [subcontext(4),switch_is(type)] */,
    4427                                        uint32_t _offered /* [in] [value(ndr_size_spoolss_PrinterData(&data,type,ndr->iconv_convenience,flags))] */,
     4426                                       uint8_t *data /* [in] [ref,size_is(offered)] */,
     4427                                       uint32_t offered /* [in] */,
    44284428                                       WERROR *werror)
    44294429{
     
    44364436        r.in.type = type;
    44374437        r.in.data = data;
    4438         r.in._offered = _offered;
     4438        r.in.offered = offered;
    44394439
    44404440        status = cli->dispatch(cli,
     
    1171111711                                                        const char *_value_name /* [in] [charset(UTF16)] */,
    1171211712                                                        enum winreg_Type _type /* [in]  */,
    11713                                                         union spoolss_PrinterData _data /* [in] [subcontext(4),switch_is(type)] */,
    11714                                                         uint32_t __offered /* [in] [value(ndr_size_spoolss_PrinterData(&data,type,ndr->iconv_convenience,flags))] */)
     11713                                                        uint8_t *_data /* [in] [ref,size_is(offered)] */,
     11714                                                        uint32_t _offered /* [in] */)
    1171511715{
    1171611716        struct tevent_req *req;
     
    1173211732        state->orig.in.type = _type;
    1173311733        state->orig.in.data = _data;
    11734         state->orig.in._offered = __offered;
     11734        state->orig.in.offered = _offered;
    1173511735
    1173611736        /* Out parameters */
     
    1181511815                                         const char *value_name /* [in] [charset(UTF16)] */,
    1181611816                                         enum winreg_Type type /* [in]  */,
    11817                                          union spoolss_PrinterData data /* [in] [subcontext(4),switch_is(type)] */,
    11818                                          uint32_t _offered /* [in] [value(ndr_size_spoolss_PrinterData(&data,type,ndr->iconv_convenience,flags))] */,
     11817                                         uint8_t *data /* [in] [ref,size_is(offered)] */,
     11818                                         uint32_t offered /* [in] */,
    1181911819                                         WERROR *werror)
    1182011820{
     
    1182811828        r.in.type = type;
    1182911829        r.in.data = data;
    11830         r.in._offered = _offered;
     11830        r.in.offered = offered;
    1183111831
    1183211832        status = cli->dispatch(cli,
     
    1186911869                                                        const char *_key_name /* [in] [charset(UTF16)] */,
    1187011870                                                        const char *_value_name /* [in] [charset(UTF16)] */,
     11871                                                        enum winreg_Type *_type /* [out] [ref] */,
     11872                                                        uint8_t *_data /* [out] [ref,size_is(offered)] */,
    1187111873                                                        uint32_t _offered /* [in]  */,
    11872                                                         enum winreg_Type *_type /* [out] [ref] */,
    11873                                                         union spoolss_PrinterData *_data /* [out] [subcontext_size(offered),ref,subcontext(4),switch_is(*type)] */,
    1187411874                                                        uint32_t *_needed /* [out] [ref] */)
    1187511875{
     
    1194411944        /* Copy out parameters */
    1194511945        *state->orig.out.type = *state->tmp.out.type;
    11946         *state->orig.out.data = *state->tmp.out.data;
     11946        memcpy(state->orig.out.data, state->tmp.out.data, (state->tmp.in.offered) * sizeof(*state->orig.out.data));
    1194711947        *state->orig.out.needed = *state->tmp.out.needed;
    1194811948
     
    1198411984                                         const char *key_name /* [in] [charset(UTF16)] */,
    1198511985                                         const char *value_name /* [in] [charset(UTF16)] */,
     11986                                         enum winreg_Type *type /* [out] [ref] */,
     11987                                         uint8_t *data /* [out] [ref,size_is(offered)] */,
    1198611988                                         uint32_t offered /* [in]  */,
    11987                                          enum winreg_Type *type /* [out] [ref] */,
    11988                                          union spoolss_PrinterData *data /* [out] [subcontext_size(offered),ref,subcontext(4),switch_is(*type)] */,
    1198911989                                         uint32_t *needed /* [out] [ref] */,
    1199011990                                         WERROR *werror)
     
    1201512015        /* Return variables */
    1201612016        *type = *r.out.type;
    12017         *data = *r.out.data;
     12017        memcpy(data, r.out.data, (r.in.offered) * sizeof(*data));
    1201812018        *needed = *r.out.needed;
    1201912019
  • vendor/current/librpc/gen_ndr/cli_spoolss.h

    r414 r427  
    479479                                                      struct policy_handle *_handle /* [in] [ref] */,
    480480                                                      const char *_value_name /* [in] [charset(UTF16)] */,
     481                                                      enum winreg_Type *_type /* [out] [ref] */,
     482                                                      uint8_t *_data /* [out] [ref,size_is(offered)] */,
    481483                                                      uint32_t _offered /* [in]  */,
    482                                                       enum winreg_Type *_type /* [out] [ref] */,
    483                                                       union spoolss_PrinterData *_data /* [out] [subcontext_size(offered),ref,subcontext(4),switch_is(*type)] */,
    484484                                                      uint32_t *_needed /* [out] [ref] */);
    485485NTSTATUS rpccli_spoolss_GetPrinterData_recv(struct tevent_req *req,
     
    490490                                       struct policy_handle *handle /* [in] [ref] */,
    491491                                       const char *value_name /* [in] [charset(UTF16)] */,
     492                                       enum winreg_Type *type /* [out] [ref] */,
     493                                       uint8_t *data /* [out] [ref,size_is(offered)] */,
    492494                                       uint32_t offered /* [in]  */,
    493                                        enum winreg_Type *type /* [out] [ref] */,
    494                                        union spoolss_PrinterData *data /* [out] [subcontext_size(offered),ref,subcontext(4),switch_is(*type)] */,
    495495                                       uint32_t *needed /* [out] [ref] */,
    496496                                       WERROR *werror);
     
    501501                                                      const char *_value_name /* [in] [charset(UTF16)] */,
    502502                                                      enum winreg_Type _type /* [in]  */,
    503                                                       union spoolss_PrinterData _data /* [in] [subcontext(4),switch_is(type)] */,
    504                                                       uint32_t __offered /* [in] [value(ndr_size_spoolss_PrinterData(&data,type,ndr->iconv_convenience,flags))] */);
     503                                                      uint8_t *_data /* [in] [ref,size_is(offered)] */,
     504                                                      uint32_t _offered /* [in] */);
    505505NTSTATUS rpccli_spoolss_SetPrinterData_recv(struct tevent_req *req,
    506506                                            TALLOC_CTX *mem_ctx,
     
    511511                                       const char *value_name /* [in] [charset(UTF16)] */,
    512512                                       enum winreg_Type type /* [in]  */,
    513                                        union spoolss_PrinterData data /* [in] [subcontext(4),switch_is(type)] */,
    514                                        uint32_t _offered /* [in] [value(ndr_size_spoolss_PrinterData(&data,type,ndr->iconv_convenience,flags))] */,
     513                                       uint8_t *data /* [in] [ref,size_is(offered)] */,
     514                                       uint32_t offered /* [in] */,
    515515                                       WERROR *werror);
    516516struct tevent_req *rpccli_spoolss_WaitForPrinterChange_send(TALLOC_CTX *mem_ctx,
     
    12001200                                                        const char *_value_name /* [in] [charset(UTF16)] */,
    12011201                                                        enum winreg_Type _type /* [in]  */,
    1202                                                         union spoolss_PrinterData _data /* [in] [subcontext(4),switch_is(type)] */,
    1203                                                         uint32_t __offered /* [in] [value(ndr_size_spoolss_PrinterData(&data,type,ndr->iconv_convenience,flags))] */);
     1202                                                        uint8_t *_data /* [in] [ref,size_is(offered)] */,
     1203                                                        uint32_t _offered /* [in] */);
    12041204NTSTATUS rpccli_spoolss_SetPrinterDataEx_recv(struct tevent_req *req,
    12051205                                              TALLOC_CTX *mem_ctx,
     
    12111211                                         const char *value_name /* [in] [charset(UTF16)] */,
    12121212                                         enum winreg_Type type /* [in]  */,
    1213                                          union spoolss_PrinterData data /* [in] [subcontext(4),switch_is(type)] */,
    1214                                          uint32_t _offered /* [in] [value(ndr_size_spoolss_PrinterData(&data,type,ndr->iconv_convenience,flags))] */,
     1213                                         uint8_t *data /* [in] [ref,size_is(offered)] */,
     1214                                         uint32_t offered /* [in] */,
    12151215                                         WERROR *werror);
    12161216struct tevent_req *rpccli_spoolss_GetPrinterDataEx_send(TALLOC_CTX *mem_ctx,
     
    12201220                                                        const char *_key_name /* [in] [charset(UTF16)] */,
    12211221                                                        const char *_value_name /* [in] [charset(UTF16)] */,
     1222                                                        enum winreg_Type *_type /* [out] [ref] */,
     1223                                                        uint8_t *_data /* [out] [ref,size_is(offered)] */,
    12221224                                                        uint32_t _offered /* [in]  */,
    1223                                                         enum winreg_Type *_type /* [out] [ref] */,
    1224                                                         union spoolss_PrinterData *_data /* [out] [subcontext_size(offered),ref,subcontext(4),switch_is(*type)] */,
    12251225                                                        uint32_t *_needed /* [out] [ref] */);
    12261226NTSTATUS rpccli_spoolss_GetPrinterDataEx_recv(struct tevent_req *req,
     
    12321232                                         const char *key_name /* [in] [charset(UTF16)] */,
    12331233                                         const char *value_name /* [in] [charset(UTF16)] */,
     1234                                         enum winreg_Type *type /* [out] [ref] */,
     1235                                         uint8_t *data /* [out] [ref,size_is(offered)] */,
    12341236                                         uint32_t offered /* [in]  */,
    1235                                          enum winreg_Type *type /* [out] [ref] */,
    1236                                          union spoolss_PrinterData *data /* [out] [subcontext_size(offered),ref,subcontext(4),switch_is(*type)] */,
    12371237                                         uint32_t *needed /* [out] [ref] */,
    12381238                                         WERROR *werror);
  • vendor/current/librpc/gen_ndr/cli_winreg.c

    r414 r427  
    27442744                                                 struct winreg_String *_value_name /* [in] [ref] */,
    27452745                                                 enum winreg_Type *_type /* [in,out] [unique] */,
    2746                                                  uint8_t *_data /* [in,out] [unique,length_is(*data_length),size_is(*data_size)] */,
     2746                                                 uint8_t *_data /* [in,out] [unique,range(0,0x4000000),length_is(data_length?*data_length:0),size_is(data_size?*data_size:0)] */,
    27472747                                                 uint32_t *_data_size /* [in,out] [unique] */,
    27482748                                                 uint32_t *_data_length /* [in,out] [unique] */)
     
    28242824        }
    28252825        if (state->orig.out.data && state->tmp.out.data) {
    2826                 memcpy(state->orig.out.data, state->tmp.out.data, (*state->tmp.in.data_size) * sizeof(*state->orig.out.data));
     2826                memcpy(state->orig.out.data, state->tmp.out.data, (state->tmp.in.data_size?*state->tmp.in.data_size:0) * sizeof(*state->orig.out.data));
    28272827        }
    28282828        if (state->orig.out.data_size && state->tmp.out.data_size) {
     
    28702870                                  struct winreg_String *value_name /* [in] [ref] */,
    28712871                                  enum winreg_Type *type /* [in,out] [unique] */,
    2872                                   uint8_t *data /* [in,out] [unique,length_is(*data_length),size_is(*data_size)] */,
     2872                                  uint8_t *data /* [in,out] [unique,range(0,0x4000000),length_is(data_length?*data_length:0),size_is(data_size?*data_size:0)] */,
    28732873                                  uint32_t *data_size /* [in,out] [unique] */,
    28742874                                  uint32_t *data_length /* [in,out] [unique] */,
     
    29052905        }
    29062906        if (data && r.out.data) {
    2907                 memcpy(data, r.out.data, (*r.in.data_size) * sizeof(*data));
     2907                memcpy(data, r.out.data, (r.in.data_size?*r.in.data_size:0) * sizeof(*data));
    29082908        }
    29092909        if (data_size && r.out.data_size) {
  • vendor/current/librpc/gen_ndr/cli_winreg.h

    r414 r427  
    299299                                                 struct winreg_String *_value_name /* [in] [ref] */,
    300300                                                 enum winreg_Type *_type /* [in,out] [unique] */,
    301                                                  uint8_t *_data /* [in,out] [unique,length_is(*data_length),size_is(*data_size)] */,
     301                                                 uint8_t *_data /* [in,out] [unique,range(0,0x4000000),length_is(data_length?*data_length:0),size_is(data_size?*data_size:0)] */,
    302302                                                 uint32_t *_data_size /* [in,out] [unique] */,
    303303                                                 uint32_t *_data_length /* [in,out] [unique] */);
     
    310310                                  struct winreg_String *value_name /* [in] [ref] */,
    311311                                  enum winreg_Type *type /* [in,out] [unique] */,
    312                                   uint8_t *data /* [in,out] [unique,length_is(*data_length),size_is(*data_size)] */,
     312                                  uint8_t *data /* [in,out] [unique,range(0,0x4000000),length_is(data_length?*data_length:0),size_is(data_size?*data_size:0)] */,
    313313                                  uint32_t *data_size /* [in,out] [unique] */,
    314314                                  uint32_t *data_length /* [in,out] [unique] */,
  • vendor/current/librpc/gen_ndr/ndr_spoolss.c

    r414 r427  
    1953319533                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2 * strlen_m_term(r->value_name)));
    1953419534                NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->type));
    19535                 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data));
    19536                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_PrinterData(r->data, r->type, ndr->iconv_convenience, ndr->flags)));
     19535                {
     19536                        uint32_t _flags_save_DATA_BLOB = ndr->flags;
     19537                        ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
     19538                        NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data));
     19539                        ndr->flags = _flags_save_DATA_BLOB;
     19540                }
     19541                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->data->length));
    1953719542                NDR_CHECK(ndr_push_trailer_align(ndr, 5));
    1953819543        }
     
    1954919554                        ndr->flags = _flags_save_string;
    1955019555                }
    19551                 if (r->data) {
    19552                         NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data));
    19553                         {
    19554                                 struct ndr_push *_ndr_data;
    19555                                 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_data, 0, r->data_length));
    19556                                 NDR_CHECK(ndr_push_set_switch_value(_ndr_data, r->data, r->type));
    19557                                 NDR_CHECK(ndr_push_spoolss_PrinterData(_ndr_data, NDR_SCALARS|NDR_BUFFERS, r->data));
    19558                                 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_data, 0, r->data_length));
    19559                         }
    19560                         NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data));
     19556                {
     19557                        uint32_t _flags_save_DATA_BLOB = ndr->flags;
     19558                        ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
     19559                        if (r->data) {
     19560                                NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data));
     19561                                {
     19562                                        struct ndr_push *_ndr_data;
     19563                                        NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_data, 0, r->data->length));
     19564                                        NDR_CHECK(ndr_push_DATA_BLOB(_ndr_data, NDR_SCALARS, *r->data));
     19565                                        NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_data, 0, r->data->length));
     19566                                }
     19567                                NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data));
     19568                        }
     19569                        ndr->flags = _flags_save_DATA_BLOB;
    1956119570                }
    1956219571        }
     
    1958919598                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->value_name_len));
    1959019599                NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->type));
    19591                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
    19592                 if (_ptr_data) {
    19593                         NDR_PULL_ALLOC(ndr, r->data);
    19594                         NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data, _ptr_data));
    19595                 } else {
    19596                         r->data = NULL;
     19600                {
     19601                        uint32_t _flags_save_DATA_BLOB = ndr->flags;
     19602                        ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
     19603                        NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
     19604                        if (_ptr_data) {
     19605                                NDR_PULL_ALLOC(ndr, r->data);
     19606                                NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data, _ptr_data));
     19607                        } else {
     19608                                r->data = NULL;
     19609                        }
     19610                        ndr->flags = _flags_save_DATA_BLOB;
    1959719611                }
    1959819612                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->data_length));
     
    1961619630                        ndr->flags = _flags_save_string;
    1961719631                }
    19618                 if (r->data) {
    19619                         uint32_t _relative_save_offset;
    19620                         _relative_save_offset = ndr->offset;
    19621                         NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data));
    19622                         _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
    19623                         NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
    19624                         {
    19625                                 struct ndr_pull *_ndr_data;
    19626                                 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_data, 0, r->data_length));
    19627                                 NDR_CHECK(ndr_pull_set_switch_value(_ndr_data, r->data, r->type));
    19628                                 NDR_CHECK(ndr_pull_spoolss_PrinterData(_ndr_data, NDR_SCALARS|NDR_BUFFERS, r->data));
    19629                                 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_data, 0, r->data_length));
    19630                         }
    19631                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
    19632                         ndr->offset = _relative_save_offset;
     19632                {
     19633                        uint32_t _flags_save_DATA_BLOB = ndr->flags;
     19634                        ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
     19635                        if (r->data) {
     19636                                uint32_t _relative_save_offset;
     19637                                _relative_save_offset = ndr->offset;
     19638                                NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data));
     19639                                _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
     19640                                NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
     19641                                {
     19642                                        struct ndr_pull *_ndr_data;
     19643                                        NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_data, 0, r->data_length));
     19644                                        NDR_CHECK(ndr_pull_DATA_BLOB(_ndr_data, NDR_SCALARS, r->data));
     19645                                        NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_data, 0, r->data_length));
     19646                                }
     19647                                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
     19648                                ndr->offset = _relative_save_offset;
     19649                        }
     19650                        ndr->flags = _flags_save_DATA_BLOB;
    1963319651                }
    1963419652        }
     
    1965219670        ndr->depth++;
    1965319671        if (r->data) {
    19654                 ndr_print_set_switch_value(ndr, r->data, r->type);
    19655                 ndr_print_spoolss_PrinterData(ndr, "data", r->data);
    19656         }
    19657         ndr->depth--;
    19658         ndr_print_uint32(ndr, "data_length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_spoolss_PrinterData(r->data, r->type, ndr->iconv_convenience, ndr->flags):r->data_length);
     19672                ndr_print_DATA_BLOB(ndr, "data", *r->data);
     19673        }
     19674        ndr->depth--;
     19675        ndr_print_uint32(ndr, "data_length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->data->length:r->data_length);
    1965919676        ndr->depth--;
    1966019677}
     
    2340623423}
    2340723424
    23408 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_GetPrinterData(struct ndr_push *ndr, int flags, const struct _spoolss_GetPrinterData *r)
     23425static enum ndr_err_code ndr_push_spoolss_GetPrinterData(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterData *r)
    2340923426{
    2341023427        if (flags & NDR_IN) {
     
    2342723444                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
    2342823445                }
    23429                 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.data));
     23446                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.offered));
     23447                NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, r->in.offered));
    2343023448                if (r->out.needed == NULL) {
    2343123449                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
     
    2343723455}
    2343823456
    23439 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_GetPrinterData(struct ndr_pull *ndr, int flags, struct _spoolss_GetPrinterData *r)
     23457static enum ndr_err_code ndr_pull_spoolss_GetPrinterData(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterData *r)
    2344023458{
    2344123459        TALLOC_CTX *_mem_save_handle_0;
    2344223460        TALLOC_CTX *_mem_save_type_0;
    23443         TALLOC_CTX *_mem_save_data_0;
    2344423461        TALLOC_CTX *_mem_save_needed_0;
    2344523462        if (flags & NDR_IN) {
     
    2346323480                NDR_PULL_ALLOC(ndr, r->out.type);
    2346423481                ZERO_STRUCTP(r->out.type);
    23465                 NDR_PULL_ALLOC(ndr, r->out.data);
    23466                 ZERO_STRUCTP(r->out.data);
     23482                NDR_PULL_ALLOC_N(ndr, r->out.data, r->in.offered);
     23483                memset(r->out.data, 0, (r->in.offered) * sizeof(*r->out.data));
    2346723484                NDR_PULL_ALLOC(ndr, r->out.needed);
    2346823485                ZERO_STRUCTP(r->out.needed);
     
    2347623493                NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
    2347723494                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
     23495                NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
    2347823496                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
    23479                         NDR_PULL_ALLOC(ndr, r->out.data);
    23480                 }
    23481                 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
    23482                 NDR_PULL_SET_MEM_CTX(ndr, r->out.data, LIBNDR_FLAG_REF_ALLOC);
    23483                 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.data));
    23484                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
     23497                        NDR_PULL_ALLOC_N(ndr, r->out.data, ndr_get_array_size(ndr, &r->out.data));
     23498                }
     23499                NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, ndr_get_array_size(ndr, &r->out.data)));
    2348523500                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
    2348623501                        NDR_PULL_ALLOC(ndr, r->out.needed);
     
    2349123506                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
    2349223507                NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
    23493         }
    23494         return NDR_ERR_SUCCESS;
    23495 }
    23496 
    23497 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_GetPrinterData(struct ndr_push *ndr, int flags, const struct __spoolss_GetPrinterData *r)
    23498 {
    23499         if (flags & NDR_IN) {
    23500                 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
    23501         }
    23502         if (flags & NDR_OUT) {
    23503                 if (r->out.data == NULL) {
    23504                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
    23505                 }
    23506                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.data, r->in.type));
    23507                 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
    23508         }
    23509         return NDR_ERR_SUCCESS;
    23510 }
    23511 
    23512 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_GetPrinterData(struct ndr_pull *ndr, int flags, struct __spoolss_GetPrinterData *r)
    23513 {
    23514         TALLOC_CTX *_mem_save_data_0;
    23515         if (flags & NDR_IN) {
    23516                 ZERO_STRUCT(r->out);
    23517 
    23518                 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
    23519                 NDR_PULL_ALLOC(ndr, r->out.data);
    23520                 ZERO_STRUCTP(r->out.data);
    23521         }
    23522         if (flags & NDR_OUT) {
    23523                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
    23524                         NDR_PULL_ALLOC(ndr, r->out.data);
    23525                 }
    23526                 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
    23527                 NDR_PULL_SET_MEM_CTX(ndr, r->out.data, LIBNDR_FLAG_REF_ALLOC);
    23528                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.data, r->in.type));
    23529                 NDR_CHECK(ndr_pull_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
    23530                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
     23508                if (r->out.data) {
     23509                        NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, r->in.offered));
     23510                }
    2353123511        }
    2353223512        return NDR_ERR_SUCCESS;
     
    2356023540                ndr_print_ptr(ndr, "data", r->out.data);
    2356123541                ndr->depth++;
    23562                 ndr_print_set_switch_value(ndr, r->out.data, *r->out.type);
    23563                 ndr_print_spoolss_PrinterData(ndr, "data", r->out.data);
     23542                ndr_print_array_uint8(ndr, "data", r->out.data, r->in.offered);
    2356423543                ndr->depth--;
    2356523544                ndr_print_ptr(ndr, "needed", r->out.needed);
     
    2357323552}
    2357423553
    23575 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_SetPrinterData(struct ndr_push *ndr, int flags, const struct _spoolss_SetPrinterData *r)
     23554static enum ndr_err_code ndr_push_spoolss_SetPrinterData(struct ndr_push *ndr, int flags, const struct spoolss_SetPrinterData *r)
    2357623555{
    2357723556        if (flags & NDR_IN) {
     
    2358523564                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));
    2358623565                NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
    23587                 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.data));
    23588                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in._offered));
     23566                if (r->in.data == NULL) {
     23567                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
     23568                }
     23569                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.offered));
     23570                NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.data, r->in.offered));
     23571                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
    2358923572        }
    2359023573        if (flags & NDR_OUT) {
    2359123574                NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
    23592         }
    23593         return NDR_ERR_SUCCESS;
    23594 }
    23595 
    23596 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_SetPrinterData(struct ndr_push *ndr, int flags, const struct __spoolss_SetPrinterData *r)
    23597 {
    23598         if (flags & NDR_IN) {
    23599                 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
    23600         }
    23601         if (flags & NDR_OUT) {
    23602                 if (r->out.data == NULL) {
    23603                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
    23604                 }
    23605                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.data, r->in.type));
    23606                 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
    2360723575        }
    2360823576        return NDR_ERR_SUCCESS;
     
    2362823596                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.value_name, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t), CH_UTF16));
    2362923597                NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
    23630                 {
    23631                         struct ndr_pull *_ndr_data;
    23632                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_data, 4, -1));
    23633                         NDR_CHECK(ndr_pull_set_switch_value(_ndr_data, &r->in.data, r->in.type));
    23634                         NDR_CHECK(ndr_pull_spoolss_PrinterData(_ndr_data, NDR_SCALARS|NDR_BUFFERS, &r->in.data));
    23635                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_data, 4, -1));
    23636                 }
    23637                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._offered));
     23598                NDR_CHECK(ndr_pull_array_size(ndr, &r->in.data));
     23599                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
     23600                        NDR_PULL_ALLOC_N(ndr, r->in.data, ndr_get_array_size(ndr, &r->in.data));
     23601                }
     23602                NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.data, ndr_get_array_size(ndr, &r->in.data)));
     23603                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
     23604                if (r->in.data) {
     23605                        NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.data, r->in.offered));
     23606                }
    2363823607        }
    2363923608        if (flags & NDR_OUT) {
     
    2365923628                ndr_print_string(ndr, "value_name", r->in.value_name);
    2366023629                ndr_print_winreg_Type(ndr, "type", r->in.type);
    23661                 ndr_print_set_switch_value(ndr, &r->in.data, r->in.type);
    23662                 ndr_print_spoolss_PrinterData(ndr, "data", &r->in.data);
    23663                 ndr_print_uint32(ndr, "_offered", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_spoolss_PrinterData(&r->in.data, r->in.type, ndr->iconv_convenience, flags):r->in._offered);
     23630                ndr_print_ptr(ndr, "data", r->in.data);
     23631                ndr->depth++;
     23632                ndr_print_array_uint8(ndr, "data", r->in.data, r->in.offered);
     23633                ndr->depth--;
     23634                ndr_print_uint32(ndr, "offered", r->in.offered);
    2366423635                ndr->depth--;
    2366523636        }
     
    2781327784}
    2781427785
    27815 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_SetPrinterDataEx(struct ndr_push *ndr, int flags, const struct _spoolss_SetPrinterDataEx *r)
     27786static enum ndr_err_code ndr_push_spoolss_SetPrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_SetPrinterDataEx *r)
    2781627787{
    2781727788        if (flags & NDR_IN) {
     
    2782927800                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));
    2783027801                NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
    27831                 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.data));
    27832                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in._offered));
     27802                if (r->in.data == NULL) {
     27803                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
     27804                }
     27805                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.offered));
     27806                NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.data, r->in.offered));
     27807                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
    2783327808        }
    2783427809        if (flags & NDR_OUT) {
    2783527810                NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
    27836         }
    27837         return NDR_ERR_SUCCESS;
    27838 }
    27839 
    27840 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_SetPrinterDataEx(struct ndr_push *ndr, int flags, const struct __spoolss_SetPrinterDataEx *r)
    27841 {
    27842         if (flags & NDR_IN) {
    27843                 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
    27844         }
    27845         if (flags & NDR_OUT) {
    27846                 if (r->out.data == NULL) {
    27847                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
    27848                 }
    27849                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.data, r->in.type));
    27850                 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
    2785127811        }
    2785227812        return NDR_ERR_SUCCESS;
     
    2787927839                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.value_name, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t), CH_UTF16));
    2788027840                NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
    27881                 {
    27882                         struct ndr_pull *_ndr_data;
    27883                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_data, 4, -1));
    27884                         NDR_CHECK(ndr_pull_set_switch_value(_ndr_data, &r->in.data, r->in.type));
    27885                         NDR_CHECK(ndr_pull_spoolss_PrinterData(_ndr_data, NDR_SCALARS|NDR_BUFFERS, &r->in.data));
    27886                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_data, 4, -1));
    27887                 }
    27888                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._offered));
     27841                NDR_CHECK(ndr_pull_array_size(ndr, &r->in.data));
     27842                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
     27843                        NDR_PULL_ALLOC_N(ndr, r->in.data, ndr_get_array_size(ndr, &r->in.data));
     27844                }
     27845                NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.data, ndr_get_array_size(ndr, &r->in.data)));
     27846                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
     27847                if (r->in.data) {
     27848                        NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.data, r->in.offered));
     27849                }
    2788927850        }
    2789027851        if (flags & NDR_OUT) {
     
    2791127872                ndr_print_string(ndr, "value_name", r->in.value_name);
    2791227873                ndr_print_winreg_Type(ndr, "type", r->in.type);
    27913                 ndr_print_set_switch_value(ndr, &r->in.data, r->in.type);
    27914                 ndr_print_spoolss_PrinterData(ndr, "data", &r->in.data);
    27915                 ndr_print_uint32(ndr, "_offered", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_spoolss_PrinterData(&r->in.data, r->in.type, ndr->iconv_convenience, flags):r->in._offered);
     27874                ndr_print_ptr(ndr, "data", r->in.data);
     27875                ndr->depth++;
     27876                ndr_print_array_uint8(ndr, "data", r->in.data, r->in.offered);
     27877                ndr->depth--;
     27878                ndr_print_uint32(ndr, "offered", r->in.offered);
    2791627879                ndr->depth--;
    2791727880        }
     
    2792527888}
    2792627889
    27927 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_GetPrinterDataEx(struct ndr_push *ndr, int flags, const struct _spoolss_GetPrinterDataEx *r)
     27890static enum ndr_err_code ndr_push_spoolss_GetPrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDataEx *r)
    2792827891{
    2792927892        if (flags & NDR_IN) {
     
    2795027913                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
    2795127914                }
    27952                 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.data));
     27915                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.offered));
     27916                NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, r->in.offered));
    2795327917                if (r->out.needed == NULL) {
    2795427918                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
     
    2796027924}
    2796127925
    27962 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_GetPrinterDataEx(struct ndr_pull *ndr, int flags, struct _spoolss_GetPrinterDataEx *r)
     27926static enum ndr_err_code ndr_pull_spoolss_GetPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDataEx *r)
    2796327927{
    2796427928        TALLOC_CTX *_mem_save_handle_0;
    2796527929        TALLOC_CTX *_mem_save_type_0;
    27966         TALLOC_CTX *_mem_save_data_0;
    2796727930        TALLOC_CTX *_mem_save_needed_0;
    2796827931        if (flags & NDR_IN) {
     
    2799327956                NDR_PULL_ALLOC(ndr, r->out.type);
    2799427957                ZERO_STRUCTP(r->out.type);
    27995                 NDR_PULL_ALLOC(ndr, r->out.data);
    27996                 ZERO_STRUCTP(r->out.data);
     27958                NDR_PULL_ALLOC_N(ndr, r->out.data, r->in.offered);
     27959                memset(r->out.data, 0, (r->in.offered) * sizeof(*r->out.data));
    2799727960                NDR_PULL_ALLOC(ndr, r->out.needed);
    2799827961                ZERO_STRUCTP(r->out.needed);
     
    2800627969                NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
    2800727970                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
     27971                NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
    2800827972                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
    28009                         NDR_PULL_ALLOC(ndr, r->out.data);
    28010                 }
    28011                 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
    28012                 NDR_PULL_SET_MEM_CTX(ndr, r->out.data, LIBNDR_FLAG_REF_ALLOC);
    28013                 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.data));
    28014                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
     27973                        NDR_PULL_ALLOC_N(ndr, r->out.data, ndr_get_array_size(ndr, &r->out.data));
     27974                }
     27975                NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, ndr_get_array_size(ndr, &r->out.data)));
    2801527976                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
    2801627977                        NDR_PULL_ALLOC(ndr, r->out.needed);
     
    2802127982                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
    2802227983                NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
    28023         }
    28024         return NDR_ERR_SUCCESS;
    28025 }
    28026 
    28027 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_GetPrinterDataEx(struct ndr_push *ndr, int flags, const struct __spoolss_GetPrinterDataEx *r)
    28028 {
    28029         if (flags & NDR_IN) {
    28030                 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
    28031         }
    28032         if (flags & NDR_OUT) {
    28033                 if (r->out.data == NULL) {
    28034                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
    28035                 }
    28036                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.data, r->in.type));
    28037                 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
    28038         }
    28039         return NDR_ERR_SUCCESS;
    28040 }
    28041 
    28042 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_GetPrinterDataEx(struct ndr_pull *ndr, int flags, struct __spoolss_GetPrinterDataEx *r)
    28043 {
    28044         TALLOC_CTX *_mem_save_data_0;
    28045         if (flags & NDR_IN) {
    28046                 ZERO_STRUCT(r->out);
    28047 
    28048                 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
    28049                 NDR_PULL_ALLOC(ndr, r->out.data);
    28050                 ZERO_STRUCTP(r->out.data);
    28051         }
    28052         if (flags & NDR_OUT) {
    28053                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
    28054                         NDR_PULL_ALLOC(ndr, r->out.data);
    28055                 }
    28056                 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
    28057                 NDR_PULL_SET_MEM_CTX(ndr, r->out.data, LIBNDR_FLAG_REF_ALLOC);
    28058                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.data, r->in.type));
    28059                 NDR_CHECK(ndr_pull_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
    28060                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
     27984                if (r->out.data) {
     27985                        NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, r->in.offered));
     27986                }
    2806127987        }
    2806227988        return NDR_ERR_SUCCESS;
     
    2809128017                ndr_print_ptr(ndr, "data", r->out.data);
    2809228018                ndr->depth++;
    28093                 ndr_print_set_switch_value(ndr, r->out.data, *r->out.type);
    28094                 ndr_print_spoolss_PrinterData(ndr, "data", r->out.data);
     28019                ndr_print_array_uint8(ndr, "data", r->out.data, r->in.offered);
    2809528020                ndr->depth--;
    2809628021                ndr_print_ptr(ndr, "needed", r->out.needed);
  • vendor/current/librpc/gen_ndr/ndr_spoolss.h

    r414 r427  
    612612void ndr_print_spoolss_AddJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddJob *r);
    613613void ndr_print_spoolss_ScheduleJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ScheduleJob *r);
    614 enum ndr_err_code ndr_push__spoolss_GetPrinterData(struct ndr_push *ndr, int flags, const struct _spoolss_GetPrinterData *r);
    615 enum ndr_err_code ndr_pull__spoolss_GetPrinterData(struct ndr_pull *ndr, int flags, struct _spoolss_GetPrinterData *r);
    616 void ndr_print__spoolss_GetPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct _spoolss_GetPrinterData *r);
    617 enum ndr_err_code ndr_push___spoolss_GetPrinterData(struct ndr_push *ndr, int flags, const struct __spoolss_GetPrinterData *r);
    618 enum ndr_err_code ndr_pull___spoolss_GetPrinterData(struct ndr_pull *ndr, int flags, struct __spoolss_GetPrinterData *r);
    619 void ndr_print___spoolss_GetPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct __spoolss_GetPrinterData *r);
    620 enum ndr_err_code ndr_push_spoolss_GetPrinterData(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterData *r);
    621 enum ndr_err_code ndr_pull_spoolss_GetPrinterData(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterData *r);
    622614void ndr_print_spoolss_GetPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterData *r);
    623 enum ndr_err_code ndr_push__spoolss_SetPrinterData(struct ndr_push *ndr, int flags, const struct _spoolss_SetPrinterData *r);
    624 enum ndr_err_code ndr_pull__spoolss_SetPrinterData(struct ndr_pull *ndr, int flags, struct _spoolss_SetPrinterData *r);
    625 void ndr_print__spoolss_SetPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct _spoolss_SetPrinterData *r);
    626 enum ndr_err_code ndr_push___spoolss_SetPrinterData(struct ndr_push *ndr, int flags, const struct __spoolss_SetPrinterData *r);
    627 enum ndr_err_code ndr_pull___spoolss_SetPrinterData(struct ndr_pull *ndr, int flags, struct __spoolss_SetPrinterData *r);
    628 void ndr_print___spoolss_SetPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct __spoolss_SetPrinterData *r);
    629 enum ndr_err_code ndr_push_spoolss_SetPrinterData(struct ndr_push *ndr, int flags, const struct spoolss_SetPrinterData *r);
    630615void ndr_print_spoolss_SetPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinterData *r);
    631616void ndr_print_spoolss_WaitForPrinterChange(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_WaitForPrinterChange *r);
     
    724709void ndr_print_spoolss_4b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4b *r);
    725710void ndr_print_spoolss_4c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4c *r);
    726 enum ndr_err_code ndr_push__spoolss_SetPrinterDataEx(struct ndr_push *ndr, int flags, const struct _spoolss_SetPrinterDataEx *r);
    727 enum ndr_err_code ndr_pull__spoolss_SetPrinterDataEx(struct ndr_pull *ndr, int flags, struct _spoolss_SetPrinterDataEx *r);
    728 void ndr_print__spoolss_SetPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct _spoolss_SetPrinterDataEx *r);
    729 enum ndr_err_code ndr_push___spoolss_SetPrinterDataEx(struct ndr_push *ndr, int flags, const struct __spoolss_SetPrinterDataEx *r);
    730 enum ndr_err_code ndr_pull___spoolss_SetPrinterDataEx(struct ndr_pull *ndr, int flags, struct __spoolss_SetPrinterDataEx *r);
    731 void ndr_print___spoolss_SetPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct __spoolss_SetPrinterDataEx *r);
    732 enum ndr_err_code ndr_push_spoolss_SetPrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_SetPrinterDataEx *r);
    733711void ndr_print_spoolss_SetPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinterDataEx *r);
    734 enum ndr_err_code ndr_push__spoolss_GetPrinterDataEx(struct ndr_push *ndr, int flags, const struct _spoolss_GetPrinterDataEx *r);
    735 enum ndr_err_code ndr_pull__spoolss_GetPrinterDataEx(struct ndr_pull *ndr, int flags, struct _spoolss_GetPrinterDataEx *r);
    736 void ndr_print__spoolss_GetPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct _spoolss_GetPrinterDataEx *r);
    737 enum ndr_err_code ndr_push___spoolss_GetPrinterDataEx(struct ndr_push *ndr, int flags, const struct __spoolss_GetPrinterDataEx *r);
    738 enum ndr_err_code ndr_pull___spoolss_GetPrinterDataEx(struct ndr_pull *ndr, int flags, struct __spoolss_GetPrinterDataEx *r);
    739 void ndr_print___spoolss_GetPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct __spoolss_GetPrinterDataEx *r);
    740 enum ndr_err_code ndr_push_spoolss_GetPrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDataEx *r);
    741 enum ndr_err_code ndr_pull_spoolss_GetPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDataEx *r);
    742712void ndr_print_spoolss_GetPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDataEx *r);
    743713enum ndr_err_code ndr_push__spoolss_EnumPrinterDataEx(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinterDataEx *r);
  • vendor/current/librpc/gen_ndr/ndr_winreg.c

    r414 r427  
    24852485                NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.data));
    24862486                if (r->in.data) {
    2487                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, *r->in.data_size));
     2487                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.data_size?*r->in.data_size:0));
    24882488                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    2489                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, *r->in.data_length));
    2490                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.data, *r->in.data_length));
     2489                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.data_length?*r->in.data_length:0));
     2490                        NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.data, r->in.data_length?*r->in.data_length:0));
    24912491                }
    24922492                NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.data_size));
     
    25062506                NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.data));
    25072507                if (r->out.data) {
    2508                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, *r->out.data_size));
     2508                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->out.data_size?*r->out.data_size:0));
    25092509                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    2510                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, *r->out.data_length));
    2511                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, *r->out.data_length));
     2510                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->out.data_length?*r->out.data_length:0));
     2511                        NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, r->out.data_length?*r->out.data_length:0));
    25122512                }
    25132513                NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.data_size));
     
    26092609                if (r->in.data) {
    26102610                        if (r->in.data_size == NULL) return ndr_pull_error(ndr, NDR_ERR_INVALID_POINTER, "NULL Pointer for size_is()");
    2611                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.data, *r->in.data_size));
     2611                        NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.data, r->in.data_size?*r->in.data_size:0));
    26122612                }
    26132613                if (r->in.data) {
    26142614                        if (r->in.data_length == NULL) return ndr_pull_error(ndr, NDR_ERR_INVALID_POINTER, "NULL Pointer for length_is()");
    2615                         NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->in.data, *r->in.data_length));
     2615                        NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->in.data, r->in.data_length?*r->in.data_length:0));
    26162616                }
    26172617        }
     
    26742674                if (r->out.data) {
    26752675                        if (r->out.data_size == NULL) return ndr_pull_error(ndr, NDR_ERR_INVALID_POINTER, "NULL Pointer for size_is()");
    2676                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, *r->out.data_size));
     2676                        NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, r->out.data_size?*r->out.data_size:0));
    26772677                }
    26782678                if (r->out.data) {
    26792679                        if (r->out.data_length == NULL) return ndr_pull_error(ndr, NDR_ERR_INVALID_POINTER, "NULL Pointer for length_is()");
    2680                         NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->out.data, *r->out.data_length));
     2680                        NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->out.data, r->out.data_length?*r->out.data_length:0));
    26812681                }
    26822682        }
     
    27122712                if (r->in.data) {
    27132713                        if (r->in.data_length == NULL) return;
    2714                         ndr_print_array_uint8(ndr, "data", r->in.data, *r->in.data_length);
     2714                        ndr_print_array_uint8(ndr, "data", r->in.data, r->in.data_length?*r->in.data_length:0);
    27152715                }
    27162716                ndr->depth--;
     
    27422742                if (r->out.data) {
    27432743                        if (r->out.data_length == NULL) return;
    2744                         ndr_print_array_uint8(ndr, "data", r->out.data, *r->out.data_length);
     2744                        ndr_print_array_uint8(ndr, "data", r->out.data, r->out.data_length?*r->out.data_length:0);
    27452745                }
    27462746                ndr->depth--;
  • vendor/current/librpc/gen_ndr/spoolss.h

    r414 r427  
    20692069        uint32_t value_name_len;/* [value(2*strlen_m_term(value_name))] */
    20702070        enum winreg_Type type;
    2071         union spoolss_PrinterData *data;/* [relative,subcontext_size(r->data_length),subcontext(0),switch_is(type)] */
    2072         uint32_t data_length;/* [value(ndr_size_spoolss_PrinterData(data,type,ndr->iconv_convenience,ndr->flags))] */
     2071        DATA_BLOB *data;/* [relative,subcontext_size(data_length),subcontext(0),flag(LIBNDR_FLAG_REMAINING)] */
     2072        uint32_t data_length;/* [value(data->length)] */
    20732073}/* [relative_base,gensize,public] */;
    20742074
     
    26872687
    26882688
    2689 struct _spoolss_GetPrinterData {
     2689struct spoolss_GetPrinterData {
    26902690        struct {
    26912691                struct policy_handle *handle;/* [ref] */
     
    26962696        struct {
    26972697                enum winreg_Type *type;/* [ref] */
    2698                 DATA_BLOB *data;/* [ref] */
     2698                uint8_t *data;/* [ref,size_is(offered)] */
    26992699                uint32_t *needed;/* [ref] */
    27002700                WERROR result;
     
    27042704
    27052705
    2706 struct __spoolss_GetPrinterData {
    2707         struct {
    2708                 enum winreg_Type type;
    2709         } in;
    2710 
    2711         struct {
    2712                 union spoolss_PrinterData *data;/* [ref,switch_is(type)] */
    2713         } out;
    2714 
    2715 };
    2716 
    2717 
    2718 struct spoolss_GetPrinterData {
    2719         struct {
    2720                 struct policy_handle *handle;/* [ref] */
    2721                 const char *value_name;/* [charset(UTF16)] */
    2722                 uint32_t offered;
    2723         } in;
    2724 
    2725         struct {
    2726                 enum winreg_Type *type;/* [ref] */
    2727                 union spoolss_PrinterData *data;/* [subcontext_size(offered),ref,subcontext(4),switch_is(*type)] */
    2728                 uint32_t *needed;/* [ref] */
    2729                 WERROR result;
    2730         } out;
    2731 
    2732 };
    2733 
    2734 
    2735 struct _spoolss_SetPrinterData {
     2706struct spoolss_SetPrinterData {
    27362707        struct {
    27372708                struct policy_handle *handle;/* [ref] */
    27382709                const char *value_name;/* [charset(UTF16)] */
    27392710                enum winreg_Type type;
    2740                 DATA_BLOB data;
    2741                 uint32_t _offered;
    2742         } in;
    2743 
    2744         struct {
    2745                 WERROR result;
    2746         } out;
    2747 
    2748 };
    2749 
    2750 
    2751 struct __spoolss_SetPrinterData {
    2752         struct {
    2753                 enum winreg_Type type;
    2754         } in;
    2755 
    2756         struct {
    2757                 union spoolss_PrinterData *data;/* [ref,switch_is(type)] */
    2758         } out;
    2759 
    2760 };
    2761 
    2762 
    2763 struct spoolss_SetPrinterData {
    2764         struct {
    2765                 struct policy_handle *handle;/* [ref] */
    2766                 const char *value_name;/* [charset(UTF16)] */
    2767                 enum winreg_Type type;
    2768                 union spoolss_PrinterData data;/* [subcontext(4),switch_is(type)] */
    2769                 uint32_t _offered;/* [value(ndr_size_spoolss_PrinterData(&data,type,ndr->iconv_convenience,flags))] */
     2711                uint8_t *data;/* [ref,size_is(offered)] */
     2712                uint32_t offered;
    27702713        } in;
    27712714
     
    34913434
    34923435
    3493 struct _spoolss_SetPrinterDataEx {
     3436struct spoolss_SetPrinterDataEx {
    34943437        struct {
    34953438                struct policy_handle *handle;/* [ref] */
     
    34973440                const char *value_name;/* [charset(UTF16)] */
    34983441                enum winreg_Type type;
    3499                 DATA_BLOB data;
    3500                 uint32_t _offered;
    3501         } in;
    3502 
    3503         struct {
    3504                 WERROR result;
    3505         } out;
    3506 
    3507 };
    3508 
    3509 
    3510 struct __spoolss_SetPrinterDataEx {
    3511         struct {
    3512                 enum winreg_Type type;
    3513         } in;
    3514 
    3515         struct {
    3516                 union spoolss_PrinterData *data;/* [ref,switch_is(type)] */
    3517         } out;
    3518 
    3519 };
    3520 
    3521 
    3522 struct spoolss_SetPrinterDataEx {
    3523         struct {
    3524                 struct policy_handle *handle;/* [ref] */
    3525                 const char *key_name;/* [charset(UTF16)] */
    3526                 const char *value_name;/* [charset(UTF16)] */
    3527                 enum winreg_Type type;
    3528                 union spoolss_PrinterData data;/* [subcontext(4),switch_is(type)] */
    3529                 uint32_t _offered;/* [value(ndr_size_spoolss_PrinterData(&data,type,ndr->iconv_convenience,flags))] */
    3530         } in;
    3531 
    3532         struct {
    3533                 WERROR result;
    3534         } out;
    3535 
    3536 };
    3537 
    3538 
    3539 struct _spoolss_GetPrinterDataEx {
     3442                uint8_t *data;/* [ref,size_is(offered)] */
     3443                uint32_t offered;
     3444        } in;
     3445
     3446        struct {
     3447                WERROR result;
     3448        } out;
     3449
     3450};
     3451
     3452
     3453struct spoolss_GetPrinterDataEx {
    35403454        struct {
    35413455                struct policy_handle *handle;/* [ref] */
     
    35473461        struct {
    35483462                enum winreg_Type *type;/* [ref] */
    3549                 DATA_BLOB *data;/* [ref] */
    3550                 uint32_t *needed;/* [ref] */
    3551                 WERROR result;
    3552         } out;
    3553 
    3554 };
    3555 
    3556 
    3557 struct __spoolss_GetPrinterDataEx {
    3558         struct {
    3559                 enum winreg_Type type;
    3560         } in;
    3561 
    3562         struct {
    3563                 union spoolss_PrinterData *data;/* [ref,switch_is(type)] */
    3564         } out;
    3565 
    3566 };
    3567 
    3568 
    3569 struct spoolss_GetPrinterDataEx {
    3570         struct {
    3571                 struct policy_handle *handle;/* [ref] */
    3572                 const char *key_name;/* [charset(UTF16)] */
    3573                 const char *value_name;/* [charset(UTF16)] */
    3574                 uint32_t offered;
    3575         } in;
    3576 
    3577         struct {
    3578                 enum winreg_Type *type;/* [ref] */
    3579                 union spoolss_PrinterData *data;/* [subcontext_size(offered),ref,subcontext(4),switch_is(*type)] */
     3463                uint8_t *data;/* [ref,size_is(offered)] */
    35803464                uint32_t *needed;/* [ref] */
    35813465                WERROR result;
  • vendor/current/librpc/gen_ndr/srv_spoolss.c

    r414 r427  
    21402140        }
    21412141
    2142         r->out.data = talloc_zero(r, union spoolss_PrinterData);
     2142        r->out.data = talloc_zero_array(r, uint8_t, r->in.offered);
    21432143        if (r->out.data == NULL) {
    21442144                talloc_free(r);
     
    61486148        }
    61496149
    6150         r->out.data = talloc_zero(r, union spoolss_PrinterData);
     6150        r->out.data = talloc_zero_array(r, uint8_t, r->in.offered);
    61516151        if (r->out.data == NULL) {
    61526152                talloc_free(r);
     
    89808980                        }
    89818981
    8982                         r->out.data = talloc_zero(mem_ctx, union spoolss_PrinterData);
     8982                        r->out.data = talloc_zero_array(mem_ctx, uint8_t, r->in.offered);
    89838983                        if (r->out.data == NULL) {
    89848984                        return NT_STATUS_NO_MEMORY;
     
    94729472                        }
    94739473
    9474                         r->out.data = talloc_zero(mem_ctx, union spoolss_PrinterData);
     9474                        r->out.data = talloc_zero_array(mem_ctx, uint8_t, r->in.offered);
    94759475                        if (r->out.data == NULL) {
    94769476                        return NT_STATUS_NO_MEMORY;
  • vendor/current/librpc/gen_ndr/winreg.h

    r414 r427  
    363363                struct winreg_String *value_name;/* [ref] */
    364364                enum winreg_Type *type;/* [unique] */
    365                 uint8_t *data;/* [unique,length_is(*data_length),size_is(*data_size)] */
     365                uint8_t *data;/* [unique,range(0,0x4000000),length_is(data_length?*data_length:0),size_is(data_size?*data_size:0)] */
    366366                uint32_t *data_size;/* [unique] */
    367367                uint32_t *data_length;/* [unique] */
     
    370370        struct {
    371371                enum winreg_Type *type;/* [unique] */
    372                 uint8_t *data;/* [unique,length_is(*data_length),size_is(*data_size)] */
     372                uint8_t *data;/* [unique,range(0,0x4000000),length_is(data_length?*data_length:0),size_is(data_size?*data_size:0)] */
    373373                uint32_t *data_size;/* [unique] */
    374374                uint32_t *data_length;/* [unique] */
  • vendor/current/librpc/idl/spoolss.idl

    r414 r427  
    16221622        const string SPOOL_REG_VERSIONNUMBER            = "versionNumber";
    16231623
    1624         [noopnum,noprint,public] WERROR _spoolss_GetPrinterData(
     1624        WERROR spoolss_GetPrinterData(
    16251625                [in,ref] policy_handle *handle,
    16261626                [in]     [string,charset(UTF16)] uint16 value_name[],
     1627                [out,ref] winreg_Type *type,
     1628                [out,ref,size_is(offered)] uint8 *data,
    16271629                [in]     uint32 offered,
    1628                 [out,ref] winreg_Type *type,
    1629                 [out,ref] DATA_BLOB *data,
    16301630                [out,ref] uint32 *needed
    16311631        );
    1632         [noopnum,noprint,public] void __spoolss_GetPrinterData(
    1633                 [in] winreg_Type type,
    1634                 [out,ref,switch_is(type)] spoolss_PrinterData *data
    1635         );
    1636         [nopull,nopush,public] WERROR spoolss_GetPrinterData(
    1637                 [in,ref] policy_handle *handle,
    1638                 [in]     [string,charset(UTF16)] uint16 value_name[],
    1639                 [in]     uint32 offered,
    1640                 [out,ref] winreg_Type *type,
    1641                 [out,ref,subcontext(4),subcontext_size(offered),switch_is(*type)] spoolss_PrinterData *data,
    1642                 [out,ref] uint32 *needed
    1643         );
    16441632
    16451633        /******************/
    16461634        /* Function: 0x1b */
    1647         [noopnum,nopull,noprint,public] WERROR _spoolss_SetPrinterData(
     1635        WERROR spoolss_SetPrinterData(
    16481636                [in,ref] policy_handle *handle,
    16491637                [in] [string,charset(UTF16)] uint16 value_name[],
    16501638                [in] winreg_Type type,
    1651                 [in] DATA_BLOB data,
    1652                 [in] uint32 _offered
    1653         );
    1654         [noopnum,nopull,noprint,public] void __spoolss_SetPrinterData(
    1655                 [in] winreg_Type type,
    1656                 [out,ref,switch_is(type)] spoolss_PrinterData *data
    1657         );
    1658         [nopush] WERROR spoolss_SetPrinterData(
    1659                 [in,ref] policy_handle *handle,
    1660                 [in] [string,charset(UTF16)] uint16 value_name[],
    1661                 [in] winreg_Type type,
    1662                 [in,subcontext(4),switch_is(type)] spoolss_PrinterData data,
    1663                 [in,value(ndr_size_spoolss_PrinterData(&data,type,ndr->iconv_convenience,flags))] uint32 _offered
     1639                [in,ref] [size_is(offered)] uint8 *data,
     1640                [in] uint32 offered
    16641641        );
    16651642
     
    25462523        /******************/
    25472524        /* Function: 0x4d */
    2548         [noopnum,nopull,noprint,public] WERROR _spoolss_SetPrinterDataEx(
     2525        WERROR spoolss_SetPrinterDataEx(
    25492526                [in,ref] policy_handle *handle,
    25502527                [in] [string,charset(UTF16)] uint16 key_name[],
    25512528                [in] [string,charset(UTF16)] uint16 value_name[],
    25522529                [in] winreg_Type type,
    2553                 [in] DATA_BLOB data,
    2554                 [in] uint32 _offered
    2555         );
    2556         [noopnum,nopull,noprint,public] void __spoolss_SetPrinterDataEx(
    2557                 [in] winreg_Type type,
    2558                 [out,ref,switch_is(type)] spoolss_PrinterData *data
    2559         );
    2560         [nopush] WERROR spoolss_SetPrinterDataEx(
    2561                 [in,ref] policy_handle *handle,
    2562                 [in] [string,charset(UTF16)] uint16 key_name[],
    2563                 [in] [string,charset(UTF16)] uint16 value_name[],
    2564                 [in] winreg_Type type,
    2565                 [in,subcontext(4),switch_is(type)] spoolss_PrinterData data,
    2566                 [in,value(ndr_size_spoolss_PrinterData(&data,type,ndr->iconv_convenience,flags))] uint32 _offered
     2530                [in,ref] [size_is(offered)] uint8 *data,
     2531                [in] uint32 offered
    25672532        );
    25682533
    25692534        /******************/
    25702535        /* Function: 0x4e */
    2571         [noopnum,noprint,public] WERROR _spoolss_GetPrinterDataEx(
     2536        WERROR spoolss_GetPrinterDataEx(
    25722537                [in,ref] policy_handle *handle,
    25732538                [in]     [string,charset(UTF16)] uint16 key_name[],
    25742539                [in]     [string,charset(UTF16)] uint16 value_name[],
     2540                [out,ref] winreg_Type *type,
     2541                [out,ref,size_is(offered)] uint8 *data,
    25752542                [in]     uint32 offered,
    2576                 [out,ref] winreg_Type *type,
    2577                 [out,ref] DATA_BLOB *data,
    2578                 [out,ref] uint32 *needed
    2579         );
    2580         [noopnum,noprint,public] void __spoolss_GetPrinterDataEx(
    2581                 [in] winreg_Type type,
    2582                 [out,ref,switch_is(type)] spoolss_PrinterData *data
    2583         );
    2584         [nopull,nopush,public] WERROR spoolss_GetPrinterDataEx(
    2585                 [in,ref] policy_handle *handle,
    2586                 [in]     [string,charset(UTF16)] uint16 key_name[],
    2587                 [in]     [string,charset(UTF16)] uint16 value_name[],
    2588                 [in]     uint32 offered,
    2589                 [out,ref] winreg_Type *type,
    2590                 [out,ref,subcontext(4),subcontext_size(offered),switch_is(*type)] spoolss_PrinterData *data,
    25912543                [out,ref] uint32 *needed
    25922544        );
     
    25992551                [value(2*strlen_m_term(value_name))] uint32 value_name_len;
    26002552                winreg_Type type;
    2601                 [relative,switch_is(type),subcontext(0),subcontext_size(r->data_length)] spoolss_PrinterData *data;
    2602                 [value(ndr_size_spoolss_PrinterData(data, type, ndr->iconv_convenience, ndr->flags))] uint32 data_length;
     2553                [relative,subcontext(0),subcontext_size(data_length),flag(NDR_REMAINING)] DATA_BLOB *data;
     2554                [value(data->length)] uint32 data_length;
    26032555        } spoolss_PrinterEnumValues;
    26042556
  • vendor/current/librpc/idl/winreg.idl

    r414 r427  
    257257                [in,ref] winreg_String *value_name,
    258258                [in,out,unique] winreg_Type *type,
    259                 [in,out,unique,size_is(*data_size),length_is(*data_length)] uint8 *data,
     259                [in,out,unique,size_is(data_size ? *data_size : 0),length_is(data_length ? *data_length : 0),range(0,0x4000000)] uint8 *data,
    260260                [in,out,unique] uint32 *data_size,
    261261                [in,out,unique] uint32 *data_length
  • vendor/current/librpc/ndr/ndr_spoolss_buf.c

    r414 r427  
    558558}
    559559
    560 /*
    561   spoolss_GetPrinterData
    562 */
    563 enum ndr_err_code ndr_push_spoolss_GetPrinterData(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterData *r)
    564 {
    565         struct _spoolss_GetPrinterData _r;
    566         if (flags & NDR_IN) {
    567                 _r.in.handle    = r->in.handle;
    568                 _r.in.value_name= r->in.value_name;
    569                 _r.in.offered   = r->in.offered;
    570                 NDR_CHECK(ndr_push__spoolss_GetPrinterData(ndr, flags, &_r));
    571         }
    572         if (flags & NDR_OUT) {
    573                 struct ndr_push *_ndr_info;
    574                 DATA_BLOB blob = data_blob(NULL, 0);
    575                 _r.in.handle    = r->in.handle;
    576                 _r.in.value_name= r->in.value_name;
    577                 _r.in.offered   = r->in.offered;
    578                 _r.out.type     = r->out.type;
    579                 _r.out.data     = &blob;
    580                 _r.out.needed   = r->out.needed;
    581                 _r.out.result   = r->out.result;
    582                 {
    583                         struct __spoolss_GetPrinterData __r;
    584                         DATA_BLOB _blob;
    585                         _ndr_info = ndr_push_init_ctx(ndr, ndr->iconv_convenience);
    586                         NDR_ERR_HAVE_NO_MEMORY(_ndr_info);
    587                         _ndr_info->flags= ndr->flags;
    588                         __r.in.type     = *r->out.type;
    589                         __r.out.data    = r->out.data;
    590                         NDR_CHECK(ndr_push___spoolss_GetPrinterData(_ndr_info, flags, &__r));
    591                         if (r->in.offered > _ndr_info->offset) {
    592                                 uint32_t _padding_len = r->in.offered - _ndr_info->offset;
    593                                 NDR_CHECK(ndr_push_zero(_ndr_info, _padding_len));
    594                         }
    595                         _blob = ndr_push_blob(_ndr_info);
    596                         _r.out.data = &_blob;
    597                 }
    598                 NDR_CHECK(ndr_push__spoolss_GetPrinterData(ndr, flags, &_r));
    599         }
    600         return NDR_ERR_SUCCESS;
    601 }
    602 
    603 enum ndr_err_code ndr_pull_spoolss_GetPrinterData(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterData *r)
    604 {
    605         struct _spoolss_GetPrinterData _r;
    606         if (flags & NDR_IN) {
    607                 DATA_BLOB blob = data_blob(NULL,0);
    608                 ZERO_STRUCT(r->out);
    609 
    610                 _r.in.handle    = r->in.handle;
    611                 _r.in.value_name= r->in.value_name;
    612                 _r.in.offered   = r->in.offered;
    613                 _r.out.type     = r->out.type;
    614                 _r.out.data     = &blob;
    615                 _r.out.needed   = r->out.needed;
    616                 NDR_CHECK(ndr_pull__spoolss_GetPrinterData(ndr, flags, &_r));
    617                 r->in.handle    = _r.in.handle;
    618                 r->in.value_name= _r.in.value_name;
    619                 r->in.offered   = _r.in.offered;
    620                 r->out.needed   = _r.out.needed;
    621         }
    622         if (flags & NDR_OUT) {
    623                 DATA_BLOB blob = data_blob_talloc(ndr,NULL,0);
    624                 _r.in.handle    = r->in.handle;
    625                 _r.in.value_name= r->in.value_name;
    626                 _r.in.offered   = r->in.offered;
    627                 _r.out.type     = r->out.type;
    628                 _r.out.data     = &blob;
    629                 _r.out.needed   = r->out.needed;
    630                 _r.out.result   = r->out.result;
    631                 NDR_CHECK(ndr_pull__spoolss_GetPrinterData(ndr, flags, &_r));
    632                 r->out.type     = _r.out.type;
    633                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
    634                         NDR_PULL_ALLOC(ndr, r->out.data);
    635                 }
    636                 ZERO_STRUCTP(r->out.data);
    637                 r->out.needed   = _r.out.needed;
    638                 r->out.result   = _r.out.result;
    639                 if (_r.out.data && _r.out.data->length != r->in.offered) {
    640                         return ndr_pull_error(ndr, NDR_ERR_BUFSIZE,
    641                                 "SPOOLSS Buffer: r->in.offered[%u] doesn't match length of out buffer[%u]",
    642                                 (unsigned)r->in.offered, (unsigned)_r.out.data->length);
    643                 }
    644                 if (_r.out.data && _r.out.data->length > 0 && *r->out.needed <= _r.out.data->length) {
    645                         struct __spoolss_GetPrinterData __r;
    646                         struct ndr_pull *_ndr_data = ndr_pull_init_blob(_r.out.data, ndr, ndr->iconv_convenience);
    647                         NDR_ERR_HAVE_NO_MEMORY(_ndr_data);
    648                         _ndr_data->flags= ndr->flags;
    649                         __r.in.type     = *r->out.type;
    650                         __r.out.data    = r->out.data;
    651                         NDR_CHECK(ndr_pull___spoolss_GetPrinterData(_ndr_data, flags, &__r));
    652                         r->out.data     = __r.out.data;
    653                 } else {
    654                         *r->out.type    = REG_NONE;
    655                 }
    656         }
    657         return NDR_ERR_SUCCESS;
    658 }
    659 
    660 /*
    661   spoolss_SetPrinterData
    662 */
    663 enum ndr_err_code ndr_push_spoolss_SetPrinterData(struct ndr_push *ndr, int flags, const struct spoolss_SetPrinterData *r)
    664 {
    665         struct _spoolss_SetPrinterData _r;
    666         if (flags & NDR_IN) {
    667                 struct ndr_push *_ndr_data;
    668                 struct __spoolss_SetPrinterData __r;
    669                 DATA_BLOB _data_blob_data;
    670 
    671                 _ndr_data = ndr_push_init_ctx(ndr, ndr->iconv_convenience);
    672                 NDR_ERR_HAVE_NO_MEMORY(_ndr_data);
    673                 _ndr_data->flags= ndr->flags;
    674 
    675                 __r.in.type     = r->in.type;
    676                 __r.out.data    = discard_const_p(union spoolss_PrinterData, &r->in.data);
    677                 NDR_CHECK(ndr_push___spoolss_SetPrinterData(_ndr_data, NDR_OUT, &__r));
    678                 _data_blob_data = ndr_push_blob(_ndr_data);
    679 
    680                 _r.in.handle    = r->in.handle;
    681                 _r.in.value_name= r->in.value_name;
    682                 _r.in.type      = r->in.type;
    683                 _r.in.data      = _data_blob_data;
    684                 _r.in._offered  = _data_blob_data.length;
    685                 _r.out.result   = r->out.result;
    686                 NDR_CHECK(ndr_push__spoolss_SetPrinterData(ndr, flags, &_r));
    687         }
    688         if (flags & NDR_OUT) {
    689                 _r.in.handle    = r->in.handle;
    690                 _r.in.value_name= r->in.value_name;
    691                 _r.in.type      = r->in.type;
    692                 _r.in.data      = data_blob(NULL,0),
    693                 _r.in._offered  = r->in._offered;
    694                 _r.out.result   = r->out.result;
    695                 NDR_CHECK(ndr_push__spoolss_SetPrinterData(ndr, flags, &_r));
    696         }
    697         return NDR_ERR_SUCCESS;
    698 }
    699 
    700 /*
    701   spoolss_GetPrinterDataEx
    702 */
    703 enum ndr_err_code ndr_push_spoolss_GetPrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDataEx *r)
    704 {
    705         struct _spoolss_GetPrinterDataEx _r;
    706         if (flags & NDR_IN) {
    707                 _r.in.handle    = r->in.handle;
    708                 _r.in.key_name  = r->in.key_name;
    709                 _r.in.value_name= r->in.value_name;
    710                 _r.in.offered   = r->in.offered;
    711                 NDR_CHECK(ndr_push__spoolss_GetPrinterDataEx(ndr, flags, &_r));
    712         }
    713         if (flags & NDR_OUT) {
    714                 struct ndr_push *_ndr_info;
    715                 DATA_BLOB blob = data_blob(NULL, 0);
    716                 _r.in.handle    = r->in.handle;
    717                 _r.in.key_name  = r->in.key_name;
    718                 _r.in.value_name= r->in.value_name;
    719                 _r.in.offered   = r->in.offered;
    720                 _r.out.type     = r->out.type;
    721                 _r.out.data     = &blob;
    722                 _r.out.needed   = r->out.needed;
    723                 _r.out.result   = r->out.result;
    724                 {
    725                         struct __spoolss_GetPrinterDataEx __r;
    726                         DATA_BLOB _blob;
    727                         _ndr_info = ndr_push_init_ctx(ndr, ndr->iconv_convenience);
    728                         NDR_ERR_HAVE_NO_MEMORY(_ndr_info);
    729                         _ndr_info->flags= ndr->flags;
    730                         __r.in.type     = *r->out.type;
    731                         __r.out.data    = r->out.data;
    732                         NDR_CHECK(ndr_push___spoolss_GetPrinterDataEx(_ndr_info, flags, &__r));
    733                         if (r->in.offered > _ndr_info->offset) {
    734                                 uint32_t _padding_len = r->in.offered - _ndr_info->offset;
    735                                 NDR_CHECK(ndr_push_zero(_ndr_info, _padding_len));
    736                         }
    737                         _blob = ndr_push_blob(_ndr_info);
    738                         _r.out.data = &_blob;
    739                 }
    740                 NDR_CHECK(ndr_push__spoolss_GetPrinterDataEx(ndr, flags, &_r));
    741         }
    742         return NDR_ERR_SUCCESS;
    743 }
    744 
    745 enum ndr_err_code ndr_pull_spoolss_GetPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDataEx *r)
    746 {
    747         struct _spoolss_GetPrinterDataEx _r;
    748         if (flags & NDR_IN) {
    749                 DATA_BLOB blob = data_blob(NULL,0);
    750                 ZERO_STRUCT(r->out);
    751 
    752                 _r.in.handle    = r->in.handle;
    753                 _r.in.key_name  = r->in.key_name;
    754                 _r.in.value_name= r->in.value_name;
    755                 _r.in.offered   = r->in.offered;
    756                 _r.out.type     = r->out.type;
    757                 _r.out.data     = &blob;
    758                 _r.out.needed   = r->out.needed;
    759                 NDR_CHECK(ndr_pull__spoolss_GetPrinterDataEx(ndr, flags, &_r));
    760                 r->in.handle    = _r.in.handle;
    761                 r->in.key_name  = _r.in.key_name;
    762                 r->in.value_name= _r.in.value_name;
    763                 r->in.offered   = _r.in.offered;
    764                 r->out.needed   = _r.out.needed;
    765         }
    766         if (flags & NDR_OUT) {
    767                 DATA_BLOB blob = data_blob_talloc(ndr,NULL,0);
    768                 _r.in.handle    = r->in.handle;
    769                 _r.in.key_name  = r->in.key_name;
    770                 _r.in.value_name= r->in.value_name;
    771                 _r.in.offered   = r->in.offered;
    772                 _r.out.type     = r->out.type;
    773                 _r.out.data     = &blob;
    774                 _r.out.needed   = r->out.needed;
    775                 _r.out.result   = r->out.result;
    776                 NDR_CHECK(ndr_pull__spoolss_GetPrinterDataEx(ndr, flags, &_r));
    777                 r->out.type     = _r.out.type;
    778                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
    779                         NDR_PULL_ALLOC(ndr, r->out.data);
    780                 }
    781                 ZERO_STRUCTP(r->out.data);
    782                 r->out.needed   = _r.out.needed;
    783                 r->out.result   = _r.out.result;
    784                 if (_r.out.data && _r.out.data->length != r->in.offered) {
    785                         return ndr_pull_error(ndr, NDR_ERR_BUFSIZE,
    786                                 "SPOOLSS Buffer: r->in.offered[%u] doesn't match length of out buffer[%u]",
    787                                 (unsigned)r->in.offered, (unsigned)_r.out.data->length);
    788                 }
    789                 if (_r.out.data && _r.out.data->length > 0 && *r->out.needed <= _r.out.data->length) {
    790                         struct __spoolss_GetPrinterDataEx __r;
    791                         struct ndr_pull *_ndr_data = ndr_pull_init_blob(_r.out.data, ndr, ndr->iconv_convenience);
    792                         NDR_ERR_HAVE_NO_MEMORY(_ndr_data);
    793                         _ndr_data->flags= ndr->flags;
    794                         __r.in.type     = *r->out.type;
    795                         __r.out.data    = r->out.data;
    796                         NDR_CHECK(ndr_pull___spoolss_GetPrinterDataEx(_ndr_data, flags, &__r));
    797                         r->out.data     = __r.out.data;
    798                 } else {
    799                         *r->out.type    = REG_NONE;
    800                 }
    801         }
    802         return NDR_ERR_SUCCESS;
    803 }
    804 
    805 /*
    806   spoolss_SetPrinterDataEx
    807 */
    808 enum ndr_err_code ndr_push_spoolss_SetPrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_SetPrinterDataEx *r)
    809 {
    810         struct _spoolss_SetPrinterDataEx _r;
    811         if (flags & NDR_IN) {
    812                 struct ndr_push *_ndr_data;
    813                 struct __spoolss_SetPrinterDataEx __r;
    814                 DATA_BLOB _data_blob_data;
    815 
    816                 _ndr_data = ndr_push_init_ctx(ndr, ndr->iconv_convenience);
    817                 NDR_ERR_HAVE_NO_MEMORY(_ndr_data);
    818                 _ndr_data->flags= ndr->flags;
    819 
    820                 __r.in.type     = r->in.type;
    821                 __r.out.data    = discard_const_p(union spoolss_PrinterData, &r->in.data);
    822                 NDR_CHECK(ndr_push___spoolss_SetPrinterDataEx(_ndr_data, NDR_OUT, &__r));
    823                 _data_blob_data = ndr_push_blob(_ndr_data);
    824 
    825                 _r.in.handle    = r->in.handle;
    826                 _r.in.key_name  = r->in.key_name;
    827                 _r.in.value_name= r->in.value_name;
    828                 _r.in.type      = r->in.type;
    829                 _r.in.data      = _data_blob_data;
    830                 _r.in._offered  = _data_blob_data.length;
    831                 _r.out.result   = r->out.result;
    832                 NDR_CHECK(ndr_push__spoolss_SetPrinterDataEx(ndr, flags, &_r));
    833         }
    834         if (flags & NDR_OUT) {
    835                 _r.in.handle    = r->in.handle;
    836                 _r.in.key_name  = r->in.key_name;
    837                 _r.in.value_name= r->in.value_name;
    838                 _r.in.type      = r->in.type;
    839                 _r.in.data      = data_blob(NULL,0),
    840                 _r.in._offered  = r->in._offered;
    841                 _r.out.result   = r->out.result;
    842                 NDR_CHECK(ndr_push__spoolss_SetPrinterDataEx(ndr, flags, &_r));
    843         }
    844         return NDR_ERR_SUCCESS;
    845 }
    846 
    847560uint32_t _ndr_size_spoolss_DeviceMode(struct spoolss_DeviceMode *devmode, struct smb_iconv_convenience *ic, uint32_t flags)
    848561{
  • vendor/current/librpc/ndr/ndr_spoolss_buf.h

    r414 r427  
    4343uint32_t ndr_size_spoolss_EnumPrinterDataEx_info(TALLOC_CTX *mem_ctx, struct smb_iconv_convenience *iconv_convenience,
    4444                                                 uint32_t count, struct spoolss_PrinterEnumValues *info);
    45 enum ndr_err_code ndr_push_spoolss_GetPrinterData(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterData *r);
    46 enum ndr_err_code ndr_pull_spoolss_GetPrinterData(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterData *r);
    47 enum ndr_err_code ndr_push_spoolss_SetPrinterData(struct ndr_push *ndr, int flags, const struct spoolss_SetPrinterData *r);
    48 enum ndr_err_code ndr_push_spoolss_GetPrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDataEx *r);
    49 enum ndr_err_code ndr_pull_spoolss_GetPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDataEx *r);
    50 enum ndr_err_code ndr_push_spoolss_SetPrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_SetPrinterDataEx *r);
    5145uint32_t _ndr_size_spoolss_DeviceMode(struct spoolss_DeviceMode *devmode, struct smb_iconv_convenience *ic, uint32_t flags);
    5246size_t ndr_size_spoolss_StringArray(const struct spoolss_StringArray *r, struct smb_iconv_convenience *ic, int flags);
Note: See TracChangeset for help on using the changeset viewer.