Changeset 427 for vendor/current/librpc
- Timestamp:
- Apr 9, 2010, 3:20:58 PM (15 years ago)
- Location:
- vendor/current/librpc
- Files:
-
- 14 edited
Legend:
- Unmodified
- Added
- Removed
-
vendor/current/librpc/gen_ndr/cli_spoolss.c
r414 r427 4153 4153 struct policy_handle *_handle /* [in] [ref] */, 4154 4154 const char *_value_name /* [in] [charset(UTF16)] */, 4155 enum winreg_Type *_type /* [out] [ref] */, 4156 uint8_t *_data /* [out] [ref,size_is(offered)] */, 4155 4157 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)] */,4158 4158 uint32_t *_needed /* [out] [ref] */) 4159 4159 { … … 4227 4227 /* Copy out parameters */ 4228 4228 *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)); 4230 4230 *state->orig.out.needed = *state->tmp.out.needed; 4231 4231 … … 4266 4266 struct policy_handle *handle /* [in] [ref] */, 4267 4267 const char *value_name /* [in] [charset(UTF16)] */, 4268 enum winreg_Type *type /* [out] [ref] */, 4269 uint8_t *data /* [out] [ref,size_is(offered)] */, 4268 4270 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)] */,4271 4271 uint32_t *needed /* [out] [ref] */, 4272 4272 WERROR *werror) … … 4296 4296 /* Return variables */ 4297 4297 *type = *r.out.type; 4298 *data = *r.out.data;4298 memcpy(data, r.out.data, (r.in.offered) * sizeof(*data)); 4299 4299 *needed = *r.out.needed; 4300 4300 … … 4322 4322 const char *_value_name /* [in] [charset(UTF16)] */, 4323 4323 enum winreg_Type _type /* [in] */, 4324 u nion 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] */) 4326 4326 { 4327 4327 struct tevent_req *req; … … 4342 4342 state->orig.in.type = _type; 4343 4343 state->orig.in.data = _data; 4344 state->orig.in. _offered = __offered;4344 state->orig.in.offered = _offered; 4345 4345 4346 4346 /* Out parameters */ … … 4424 4424 const char *value_name /* [in] [charset(UTF16)] */, 4425 4425 enum winreg_Type type /* [in] */, 4426 u nion 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] */, 4428 4428 WERROR *werror) 4429 4429 { … … 4436 4436 r.in.type = type; 4437 4437 r.in.data = data; 4438 r.in. _offered = _offered;4438 r.in.offered = offered; 4439 4439 4440 4440 status = cli->dispatch(cli, … … 11711 11711 const char *_value_name /* [in] [charset(UTF16)] */, 11712 11712 enum winreg_Type _type /* [in] */, 11713 u nion 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] */) 11715 11715 { 11716 11716 struct tevent_req *req; … … 11732 11732 state->orig.in.type = _type; 11733 11733 state->orig.in.data = _data; 11734 state->orig.in. _offered = __offered;11734 state->orig.in.offered = _offered; 11735 11735 11736 11736 /* Out parameters */ … … 11815 11815 const char *value_name /* [in] [charset(UTF16)] */, 11816 11816 enum winreg_Type type /* [in] */, 11817 u nion 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] */, 11819 11819 WERROR *werror) 11820 11820 { … … 11828 11828 r.in.type = type; 11829 11829 r.in.data = data; 11830 r.in. _offered = _offered;11830 r.in.offered = offered; 11831 11831 11832 11832 status = cli->dispatch(cli, … … 11869 11869 const char *_key_name /* [in] [charset(UTF16)] */, 11870 11870 const char *_value_name /* [in] [charset(UTF16)] */, 11871 enum winreg_Type *_type /* [out] [ref] */, 11872 uint8_t *_data /* [out] [ref,size_is(offered)] */, 11871 11873 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)] */,11874 11874 uint32_t *_needed /* [out] [ref] */) 11875 11875 { … … 11944 11944 /* Copy out parameters */ 11945 11945 *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)); 11947 11947 *state->orig.out.needed = *state->tmp.out.needed; 11948 11948 … … 11984 11984 const char *key_name /* [in] [charset(UTF16)] */, 11985 11985 const char *value_name /* [in] [charset(UTF16)] */, 11986 enum winreg_Type *type /* [out] [ref] */, 11987 uint8_t *data /* [out] [ref,size_is(offered)] */, 11986 11988 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)] */,11989 11989 uint32_t *needed /* [out] [ref] */, 11990 11990 WERROR *werror) … … 12015 12015 /* Return variables */ 12016 12016 *type = *r.out.type; 12017 *data = *r.out.data;12017 memcpy(data, r.out.data, (r.in.offered) * sizeof(*data)); 12018 12018 *needed = *r.out.needed; 12019 12019 -
vendor/current/librpc/gen_ndr/cli_spoolss.h
r414 r427 479 479 struct policy_handle *_handle /* [in] [ref] */, 480 480 const char *_value_name /* [in] [charset(UTF16)] */, 481 enum winreg_Type *_type /* [out] [ref] */, 482 uint8_t *_data /* [out] [ref,size_is(offered)] */, 481 483 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)] */,484 484 uint32_t *_needed /* [out] [ref] */); 485 485 NTSTATUS rpccli_spoolss_GetPrinterData_recv(struct tevent_req *req, … … 490 490 struct policy_handle *handle /* [in] [ref] */, 491 491 const char *value_name /* [in] [charset(UTF16)] */, 492 enum winreg_Type *type /* [out] [ref] */, 493 uint8_t *data /* [out] [ref,size_is(offered)] */, 492 494 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)] */,495 495 uint32_t *needed /* [out] [ref] */, 496 496 WERROR *werror); … … 501 501 const char *_value_name /* [in] [charset(UTF16)] */, 502 502 enum winreg_Type _type /* [in] */, 503 u nion 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] */); 505 505 NTSTATUS rpccli_spoolss_SetPrinterData_recv(struct tevent_req *req, 506 506 TALLOC_CTX *mem_ctx, … … 511 511 const char *value_name /* [in] [charset(UTF16)] */, 512 512 enum winreg_Type type /* [in] */, 513 u nion 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] */, 515 515 WERROR *werror); 516 516 struct tevent_req *rpccli_spoolss_WaitForPrinterChange_send(TALLOC_CTX *mem_ctx, … … 1200 1200 const char *_value_name /* [in] [charset(UTF16)] */, 1201 1201 enum winreg_Type _type /* [in] */, 1202 u nion 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] */); 1204 1204 NTSTATUS rpccli_spoolss_SetPrinterDataEx_recv(struct tevent_req *req, 1205 1205 TALLOC_CTX *mem_ctx, … … 1211 1211 const char *value_name /* [in] [charset(UTF16)] */, 1212 1212 enum winreg_Type type /* [in] */, 1213 u nion 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] */, 1215 1215 WERROR *werror); 1216 1216 struct tevent_req *rpccli_spoolss_GetPrinterDataEx_send(TALLOC_CTX *mem_ctx, … … 1220 1220 const char *_key_name /* [in] [charset(UTF16)] */, 1221 1221 const char *_value_name /* [in] [charset(UTF16)] */, 1222 enum winreg_Type *_type /* [out] [ref] */, 1223 uint8_t *_data /* [out] [ref,size_is(offered)] */, 1222 1224 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)] */,1225 1225 uint32_t *_needed /* [out] [ref] */); 1226 1226 NTSTATUS rpccli_spoolss_GetPrinterDataEx_recv(struct tevent_req *req, … … 1232 1232 const char *key_name /* [in] [charset(UTF16)] */, 1233 1233 const char *value_name /* [in] [charset(UTF16)] */, 1234 enum winreg_Type *type /* [out] [ref] */, 1235 uint8_t *data /* [out] [ref,size_is(offered)] */, 1234 1236 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)] */,1237 1237 uint32_t *needed /* [out] [ref] */, 1238 1238 WERROR *werror); -
vendor/current/librpc/gen_ndr/cli_winreg.c
r414 r427 2744 2744 struct winreg_String *_value_name /* [in] [ref] */, 2745 2745 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)] */, 2747 2747 uint32_t *_data_size /* [in,out] [unique] */, 2748 2748 uint32_t *_data_length /* [in,out] [unique] */) … … 2824 2824 } 2825 2825 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)); 2827 2827 } 2828 2828 if (state->orig.out.data_size && state->tmp.out.data_size) { … … 2870 2870 struct winreg_String *value_name /* [in] [ref] */, 2871 2871 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)] */, 2873 2873 uint32_t *data_size /* [in,out] [unique] */, 2874 2874 uint32_t *data_length /* [in,out] [unique] */, … … 2905 2905 } 2906 2906 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)); 2908 2908 } 2909 2909 if (data_size && r.out.data_size) { -
vendor/current/librpc/gen_ndr/cli_winreg.h
r414 r427 299 299 struct winreg_String *_value_name /* [in] [ref] */, 300 300 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)] */, 302 302 uint32_t *_data_size /* [in,out] [unique] */, 303 303 uint32_t *_data_length /* [in,out] [unique] */); … … 310 310 struct winreg_String *value_name /* [in] [ref] */, 311 311 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)] */, 313 313 uint32_t *data_size /* [in,out] [unique] */, 314 314 uint32_t *data_length /* [in,out] [unique] */, -
vendor/current/librpc/gen_ndr/ndr_spoolss.c
r414 r427 19533 19533 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2 * strlen_m_term(r->value_name))); 19534 19534 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)); 19537 19542 NDR_CHECK(ndr_push_trailer_align(ndr, 5)); 19538 19543 } … … 19549 19554 ndr->flags = _flags_save_string; 19550 19555 } 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; 19561 19570 } 19562 19571 } … … 19589 19598 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->value_name_len)); 19590 19599 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; 19597 19611 } 19598 19612 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->data_length)); … … 19616 19630 ndr->flags = _flags_save_string; 19617 19631 } 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; 19633 19651 } 19634 19652 } … … 19652 19670 ndr->depth++; 19653 19671 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); 19659 19676 ndr->depth--; 19660 19677 } … … 23406 23423 } 23407 23424 23408 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_GetPrinterData(struct ndr_push *ndr, int flags, const struct _spoolss_GetPrinterData *r)23425 static enum ndr_err_code ndr_push_spoolss_GetPrinterData(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterData *r) 23409 23426 { 23410 23427 if (flags & NDR_IN) { … … 23427 23444 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer"); 23428 23445 } 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)); 23430 23448 if (r->out.needed == NULL) { 23431 23449 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer"); … … 23437 23455 } 23438 23456 23439 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_GetPrinterData(struct ndr_pull *ndr, int flags, struct _spoolss_GetPrinterData *r)23457 static enum ndr_err_code ndr_pull_spoolss_GetPrinterData(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterData *r) 23440 23458 { 23441 23459 TALLOC_CTX *_mem_save_handle_0; 23442 23460 TALLOC_CTX *_mem_save_type_0; 23443 TALLOC_CTX *_mem_save_data_0;23444 23461 TALLOC_CTX *_mem_save_needed_0; 23445 23462 if (flags & NDR_IN) { … … 23463 23480 NDR_PULL_ALLOC(ndr, r->out.type); 23464 23481 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)); 23467 23484 NDR_PULL_ALLOC(ndr, r->out.needed); 23468 23485 ZERO_STRUCTP(r->out.needed); … … 23476 23493 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type)); 23477 23494 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)); 23478 23496 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))); 23485 23500 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { 23486 23501 NDR_PULL_ALLOC(ndr, r->out.needed); … … 23491 23506 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC); 23492 23507 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 } 23531 23511 } 23532 23512 return NDR_ERR_SUCCESS; … … 23560 23540 ndr_print_ptr(ndr, "data", r->out.data); 23561 23541 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); 23564 23543 ndr->depth--; 23565 23544 ndr_print_ptr(ndr, "needed", r->out.needed); … … 23573 23552 } 23574 23553 23575 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_SetPrinterData(struct ndr_push *ndr, int flags, const struct _spoolss_SetPrinterData *r)23554 static enum ndr_err_code ndr_push_spoolss_SetPrinterData(struct ndr_push *ndr, int flags, const struct spoolss_SetPrinterData *r) 23576 23555 { 23577 23556 if (flags & NDR_IN) { … … 23585 23564 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)); 23586 23565 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)); 23589 23572 } 23590 23573 if (flags & NDR_OUT) { 23591 23574 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));23607 23575 } 23608 23576 return NDR_ERR_SUCCESS; … … 23628 23596 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)); 23629 23597 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 } 23638 23607 } 23639 23608 if (flags & NDR_OUT) { … … 23659 23628 ndr_print_string(ndr, "value_name", r->in.value_name); 23660 23629 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); 23664 23635 ndr->depth--; 23665 23636 } … … 27813 27784 } 27814 27785 27815 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_SetPrinterDataEx(struct ndr_push *ndr, int flags, const struct _spoolss_SetPrinterDataEx *r)27786 static enum ndr_err_code ndr_push_spoolss_SetPrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_SetPrinterDataEx *r) 27816 27787 { 27817 27788 if (flags & NDR_IN) { … … 27829 27800 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)); 27830 27801 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)); 27833 27808 } 27834 27809 if (flags & NDR_OUT) { 27835 27810 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));27851 27811 } 27852 27812 return NDR_ERR_SUCCESS; … … 27879 27839 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)); 27880 27840 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 } 27889 27850 } 27890 27851 if (flags & NDR_OUT) { … … 27911 27872 ndr_print_string(ndr, "value_name", r->in.value_name); 27912 27873 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); 27916 27879 ndr->depth--; 27917 27880 } … … 27925 27888 } 27926 27889 27927 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_GetPrinterDataEx(struct ndr_push *ndr, int flags, const struct _spoolss_GetPrinterDataEx *r)27890 static enum ndr_err_code ndr_push_spoolss_GetPrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDataEx *r) 27928 27891 { 27929 27892 if (flags & NDR_IN) { … … 27950 27913 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer"); 27951 27914 } 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)); 27953 27917 if (r->out.needed == NULL) { 27954 27918 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer"); … … 27960 27924 } 27961 27925 27962 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_GetPrinterDataEx(struct ndr_pull *ndr, int flags, struct _spoolss_GetPrinterDataEx *r)27926 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDataEx *r) 27963 27927 { 27964 27928 TALLOC_CTX *_mem_save_handle_0; 27965 27929 TALLOC_CTX *_mem_save_type_0; 27966 TALLOC_CTX *_mem_save_data_0;27967 27930 TALLOC_CTX *_mem_save_needed_0; 27968 27931 if (flags & NDR_IN) { … … 27993 27956 NDR_PULL_ALLOC(ndr, r->out.type); 27994 27957 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)); 27997 27960 NDR_PULL_ALLOC(ndr, r->out.needed); 27998 27961 ZERO_STRUCTP(r->out.needed); … … 28006 27969 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type)); 28007 27970 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)); 28008 27972 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))); 28015 27976 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { 28016 27977 NDR_PULL_ALLOC(ndr, r->out.needed); … … 28021 27982 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC); 28022 27983 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 } 28061 27987 } 28062 27988 return NDR_ERR_SUCCESS; … … 28091 28017 ndr_print_ptr(ndr, "data", r->out.data); 28092 28018 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); 28095 28020 ndr->depth--; 28096 28021 ndr_print_ptr(ndr, "needed", r->out.needed); -
vendor/current/librpc/gen_ndr/ndr_spoolss.h
r414 r427 612 612 void ndr_print_spoolss_AddJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddJob *r); 613 613 void 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);622 614 void 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);630 615 void ndr_print_spoolss_SetPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinterData *r); 631 616 void ndr_print_spoolss_WaitForPrinterChange(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_WaitForPrinterChange *r); … … 724 709 void ndr_print_spoolss_4b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4b *r); 725 710 void 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);733 711 void 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);742 712 void ndr_print_spoolss_GetPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDataEx *r); 743 713 enum 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 2485 2485 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.data)); 2486 2486 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)); 2488 2488 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)); 2491 2491 } 2492 2492 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.data_size)); … … 2506 2506 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.data)); 2507 2507 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)); 2509 2509 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)); 2512 2512 } 2513 2513 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.data_size)); … … 2609 2609 if (r->in.data) { 2610 2610 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)); 2612 2612 } 2613 2613 if (r->in.data) { 2614 2614 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)); 2616 2616 } 2617 2617 } … … 2674 2674 if (r->out.data) { 2675 2675 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)); 2677 2677 } 2678 2678 if (r->out.data) { 2679 2679 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)); 2681 2681 } 2682 2682 } … … 2712 2712 if (r->in.data) { 2713 2713 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); 2715 2715 } 2716 2716 ndr->depth--; … … 2742 2742 if (r->out.data) { 2743 2743 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); 2745 2745 } 2746 2746 ndr->depth--; -
vendor/current/librpc/gen_ndr/spoolss.h
r414 r427 2069 2069 uint32_t value_name_len;/* [value(2*strlen_m_term(value_name))] */ 2070 2070 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)] */ 2073 2073 }/* [relative_base,gensize,public] */; 2074 2074 … … 2687 2687 2688 2688 2689 struct _spoolss_GetPrinterData {2689 struct spoolss_GetPrinterData { 2690 2690 struct { 2691 2691 struct policy_handle *handle;/* [ref] */ … … 2696 2696 struct { 2697 2697 enum winreg_Type *type;/* [ref] */ 2698 DATA_BLOB *data;/* [ref] */2698 uint8_t *data;/* [ref,size_is(offered)] */ 2699 2699 uint32_t *needed;/* [ref] */ 2700 2700 WERROR result; … … 2704 2704 2705 2705 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 { 2706 struct spoolss_SetPrinterData { 2736 2707 struct { 2737 2708 struct policy_handle *handle;/* [ref] */ 2738 2709 const char *value_name;/* [charset(UTF16)] */ 2739 2710 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; 2770 2713 } in; 2771 2714 … … 3491 3434 3492 3435 3493 struct _spoolss_SetPrinterDataEx {3436 struct spoolss_SetPrinterDataEx { 3494 3437 struct { 3495 3438 struct policy_handle *handle;/* [ref] */ … … 3497 3440 const char *value_name;/* [charset(UTF16)] */ 3498 3441 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 3453 struct spoolss_GetPrinterDataEx { 3540 3454 struct { 3541 3455 struct policy_handle *handle;/* [ref] */ … … 3547 3461 struct { 3548 3462 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)] */ 3580 3464 uint32_t *needed;/* [ref] */ 3581 3465 WERROR result; -
vendor/current/librpc/gen_ndr/srv_spoolss.c
r414 r427 2140 2140 } 2141 2141 2142 r->out.data = talloc_zero (r, union spoolss_PrinterData);2142 r->out.data = talloc_zero_array(r, uint8_t, r->in.offered); 2143 2143 if (r->out.data == NULL) { 2144 2144 talloc_free(r); … … 6148 6148 } 6149 6149 6150 r->out.data = talloc_zero (r, union spoolss_PrinterData);6150 r->out.data = talloc_zero_array(r, uint8_t, r->in.offered); 6151 6151 if (r->out.data == NULL) { 6152 6152 talloc_free(r); … … 8980 8980 } 8981 8981 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); 8983 8983 if (r->out.data == NULL) { 8984 8984 return NT_STATUS_NO_MEMORY; … … 9472 9472 } 9473 9473 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); 9475 9475 if (r->out.data == NULL) { 9476 9476 return NT_STATUS_NO_MEMORY; -
vendor/current/librpc/gen_ndr/winreg.h
r414 r427 363 363 struct winreg_String *value_name;/* [ref] */ 364 364 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)] */ 366 366 uint32_t *data_size;/* [unique] */ 367 367 uint32_t *data_length;/* [unique] */ … … 370 370 struct { 371 371 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)] */ 373 373 uint32_t *data_size;/* [unique] */ 374 374 uint32_t *data_length;/* [unique] */ -
vendor/current/librpc/idl/spoolss.idl
r414 r427 1622 1622 const string SPOOL_REG_VERSIONNUMBER = "versionNumber"; 1623 1623 1624 [noopnum,noprint,public] WERROR _spoolss_GetPrinterData(1624 WERROR spoolss_GetPrinterData( 1625 1625 [in,ref] policy_handle *handle, 1626 1626 [in] [string,charset(UTF16)] uint16 value_name[], 1627 [out,ref] winreg_Type *type, 1628 [out,ref,size_is(offered)] uint8 *data, 1627 1629 [in] uint32 offered, 1628 [out,ref] winreg_Type *type,1629 [out,ref] DATA_BLOB *data,1630 1630 [out,ref] uint32 *needed 1631 1631 ); 1632 [noopnum,noprint,public] void __spoolss_GetPrinterData(1633 [in] winreg_Type type,1634 [out,ref,switch_is(type)] spoolss_PrinterData *data1635 );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 *needed1643 );1644 1632 1645 1633 /******************/ 1646 1634 /* Function: 0x1b */ 1647 [noopnum,nopull,noprint,public] WERROR _spoolss_SetPrinterData(1635 WERROR spoolss_SetPrinterData( 1648 1636 [in,ref] policy_handle *handle, 1649 1637 [in] [string,charset(UTF16)] uint16 value_name[], 1650 1638 [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 1664 1641 ); 1665 1642 … … 2546 2523 /******************/ 2547 2524 /* Function: 0x4d */ 2548 [noopnum,nopull,noprint,public] WERROR _spoolss_SetPrinterDataEx(2525 WERROR spoolss_SetPrinterDataEx( 2549 2526 [in,ref] policy_handle *handle, 2550 2527 [in] [string,charset(UTF16)] uint16 key_name[], 2551 2528 [in] [string,charset(UTF16)] uint16 value_name[], 2552 2529 [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 2567 2532 ); 2568 2533 2569 2534 /******************/ 2570 2535 /* Function: 0x4e */ 2571 [noopnum,noprint,public] WERROR _spoolss_GetPrinterDataEx(2536 WERROR spoolss_GetPrinterDataEx( 2572 2537 [in,ref] policy_handle *handle, 2573 2538 [in] [string,charset(UTF16)] uint16 key_name[], 2574 2539 [in] [string,charset(UTF16)] uint16 value_name[], 2540 [out,ref] winreg_Type *type, 2541 [out,ref,size_is(offered)] uint8 *data, 2575 2542 [in] uint32 offered, 2576 [out,ref] winreg_Type *type,2577 [out,ref] DATA_BLOB *data,2578 [out,ref] uint32 *needed2579 );2580 [noopnum,noprint,public] void __spoolss_GetPrinterDataEx(2581 [in] winreg_Type type,2582 [out,ref,switch_is(type)] spoolss_PrinterData *data2583 );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,2591 2543 [out,ref] uint32 *needed 2592 2544 ); … … 2599 2551 [value(2*strlen_m_term(value_name))] uint32 value_name_len; 2600 2552 winreg_Type type; 2601 [relative,s witch_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; 2603 2555 } spoolss_PrinterEnumValues; 2604 2556 -
vendor/current/librpc/idl/winreg.idl
r414 r427 257 257 [in,ref] winreg_String *value_name, 258 258 [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, 260 260 [in,out,unique] uint32 *data_size, 261 261 [in,out,unique] uint32 *data_length -
vendor/current/librpc/ndr/ndr_spoolss_buf.c
r414 r427 558 558 } 559 559 560 /*561 spoolss_GetPrinterData562 */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_SetPrinterData662 */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_GetPrinterDataEx702 */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_SetPrinterDataEx807 */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 847 560 uint32_t _ndr_size_spoolss_DeviceMode(struct spoolss_DeviceMode *devmode, struct smb_iconv_convenience *ic, uint32_t flags) 848 561 { -
vendor/current/librpc/ndr/ndr_spoolss_buf.h
r414 r427 43 43 uint32_t ndr_size_spoolss_EnumPrinterDataEx_info(TALLOC_CTX *mem_ctx, struct smb_iconv_convenience *iconv_convenience, 44 44 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);51 45 uint32_t _ndr_size_spoolss_DeviceMode(struct spoolss_DeviceMode *devmode, struct smb_iconv_convenience *ic, uint32_t flags); 52 46 size_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.