18522
18522
return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterEnumValues, ic);
18525
static enum ndr_err_code ndr_push_spoolss_KeyNames(struct ndr_push *ndr, int ndr_flags, const union spoolss_KeyNames *r)
18527
if (ndr_flags & NDR_SCALARS) {
18528
int level = ndr_push_get_switch_value(ndr, r);
18538
uint32_t _flags_save_string_array = ndr->flags;
18539
ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18540
NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->string_array));
18541
ndr->flags = _flags_save_string_array;
18547
if (ndr_flags & NDR_BUFFERS) {
18548
int level = ndr_push_get_switch_value(ndr, r);
18561
return NDR_ERR_SUCCESS;
18564
static enum ndr_err_code ndr_pull_spoolss_KeyNames(struct ndr_pull *ndr, int ndr_flags, union spoolss_KeyNames *r)
18567
level = ndr_pull_get_switch_value(ndr, r);
18568
if (ndr_flags & NDR_SCALARS) {
18578
uint32_t _flags_save_string_array = ndr->flags;
18579
ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18580
NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->string_array));
18581
ndr->flags = _flags_save_string_array;
18587
if (ndr_flags & NDR_BUFFERS) {
18600
return NDR_ERR_SUCCESS;
18603
_PUBLIC_ void ndr_print_spoolss_KeyNames(struct ndr_print *ndr, const char *name, const union spoolss_KeyNames *r)
18606
level = ndr_print_get_switch_value(ndr, r);
18607
ndr_print_union(ndr, name, level, "spoolss_KeyNames");
18616
ndr_print_string_array(ndr, "string_array", r->string_array);
18525
18622
_PUBLIC_ enum ndr_err_code ndr_push_spoolss_DeleteDriverFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
18527
18624
NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
26631
26728
NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
26633
26730
if (flags & NDR_OUT) {
26731
if (r->out._ndr_size == NULL) {
26732
return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26734
NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out._ndr_size));
26735
if (r->out.key_buffer == NULL) {
26736
return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26635
uint32_t _flags_save_string_array = ndr->flags;
26636
ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
26637
if (r->out.key_buffer == NULL) {
26638
return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26640
NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.key_buffer));
26641
if (*r->out.key_buffer) {
26643
struct ndr_push *_ndr_key_buffer;
26644
NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_key_buffer, 0, r->in.offered));
26645
NDR_CHECK(ndr_push_string_array(_ndr_key_buffer, NDR_SCALARS, *r->out.key_buffer));
26646
NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_key_buffer, 0, r->in.offered));
26649
ndr->flags = _flags_save_string_array;
26739
struct ndr_push *_ndr_key_buffer;
26740
NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_key_buffer, 0, *r->out._ndr_size * 2));
26741
NDR_CHECK(ndr_push_set_switch_value(_ndr_key_buffer, r->out.key_buffer, *r->out._ndr_size));
26742
NDR_CHECK(ndr_push_spoolss_KeyNames(_ndr_key_buffer, NDR_SCALARS|NDR_BUFFERS, r->out.key_buffer));
26743
NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_key_buffer, 0, *r->out._ndr_size * 2));
26651
26745
if (r->out.needed == NULL) {
26652
26746
return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26682
26775
NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
26683
26776
NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.key_name, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t), CH_UTF16));
26684
26777
NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
26778
NDR_PULL_ALLOC(ndr, r->out._ndr_size);
26779
ZERO_STRUCTP(r->out._ndr_size);
26685
26780
NDR_PULL_ALLOC(ndr, r->out.key_buffer);
26686
26781
ZERO_STRUCTP(r->out.key_buffer);
26687
26782
NDR_PULL_ALLOC(ndr, r->out.needed);
26688
26783
ZERO_STRUCTP(r->out.needed);
26690
26785
if (flags & NDR_OUT) {
26786
if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26787
NDR_PULL_ALLOC(ndr, r->out._ndr_size);
26789
_mem_save__ndr_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
26790
NDR_PULL_SET_MEM_CTX(ndr, r->out._ndr_size, LIBNDR_FLAG_REF_ALLOC);
26791
NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out._ndr_size));
26792
NDR_PULL_SET_MEM_CTX(ndr, _mem_save__ndr_size_0, LIBNDR_FLAG_REF_ALLOC);
26793
if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26794
NDR_PULL_ALLOC(ndr, r->out.key_buffer);
26796
_mem_save_key_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
26797
NDR_PULL_SET_MEM_CTX(ndr, r->out.key_buffer, LIBNDR_FLAG_REF_ALLOC);
26692
uint32_t _flags_save_string_array = ndr->flags;
26693
ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
26694
if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26695
NDR_PULL_ALLOC(ndr, r->out.key_buffer);
26697
_mem_save_key_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
26698
NDR_PULL_SET_MEM_CTX(ndr, r->out.key_buffer, LIBNDR_FLAG_REF_ALLOC);
26699
NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_key_buffer));
26700
if (_ptr_key_buffer) {
26701
NDR_PULL_ALLOC(ndr, *r->out.key_buffer);
26703
*r->out.key_buffer = NULL;
26705
if (*r->out.key_buffer) {
26706
_mem_save_key_buffer_1 = NDR_PULL_GET_MEM_CTX(ndr);
26707
NDR_PULL_SET_MEM_CTX(ndr, *r->out.key_buffer, 0);
26709
struct ndr_pull *_ndr_key_buffer;
26710
NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_key_buffer, 0, r->in.offered));
26711
NDR_CHECK(ndr_pull_string_array(_ndr_key_buffer, NDR_SCALARS, r->out.key_buffer));
26712
NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_key_buffer, 0, r->in.offered));
26714
NDR_PULL_SET_MEM_CTX(ndr, _mem_save_key_buffer_1, 0);
26716
NDR_PULL_SET_MEM_CTX(ndr, _mem_save_key_buffer_0, LIBNDR_FLAG_REF_ALLOC);
26717
ndr->flags = _flags_save_string_array;
26799
struct ndr_pull *_ndr_key_buffer;
26800
NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_key_buffer, 0, *r->out._ndr_size * 2));
26801
NDR_CHECK(ndr_pull_set_switch_value(_ndr_key_buffer, r->out.key_buffer, *r->out._ndr_size));
26802
NDR_CHECK(ndr_pull_spoolss_KeyNames(_ndr_key_buffer, NDR_SCALARS|NDR_BUFFERS, r->out.key_buffer));
26803
NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_key_buffer, 0, *r->out._ndr_size * 2));
26805
NDR_PULL_SET_MEM_CTX(ndr, _mem_save_key_buffer_0, LIBNDR_FLAG_REF_ALLOC);
26719
26806
if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26720
26807
NDR_PULL_ALLOC(ndr, r->out.needed);
26749
26836
if (flags & NDR_OUT) {
26750
26837
ndr_print_struct(ndr, "out", "spoolss_EnumPrinterKey");
26751
26838
ndr->depth++;
26839
ndr_print_ptr(ndr, "_ndr_size", r->out._ndr_size);
26841
ndr_print_uint32(ndr, "_ndr_size", *r->out._ndr_size);
26752
26843
ndr_print_ptr(ndr, "key_buffer", r->out.key_buffer);
26753
26844
ndr->depth++;
26754
ndr_print_ptr(ndr, "key_buffer", *r->out.key_buffer);
26756
if (*r->out.key_buffer) {
26757
ndr_print_string_array(ndr, "key_buffer", *r->out.key_buffer);
26845
ndr_print_set_switch_value(ndr, r->out.key_buffer, *r->out._ndr_size);
26846
ndr_print_spoolss_KeyNames(ndr, "key_buffer", r->out.key_buffer);
26760
26847
ndr->depth--;
26761
26848
ndr_print_ptr(ndr, "needed", r->out.needed);
26762
26849
ndr->depth++;