2
* Unix SMB/CIFS implementation.
3
* server auto-generated by pidl. DO NOT MODIFY!
8
#include "librpc/gen_ndr/srv_drsuapi.h"
10
static bool api_drsuapi_DsBind(struct pipes_struct *p)
12
const struct ndr_interface_call *call;
13
struct ndr_pull *pull;
14
struct ndr_push *push;
15
enum ndr_err_code ndr_err;
16
struct drsuapi_DsBind *r;
18
call = &ndr_table_drsuapi.calls[NDR_DRSUAPI_DSBIND];
20
r = talloc(talloc_tos(), struct drsuapi_DsBind);
25
pull = ndr_pull_init_blob(&p->in_data.data, r);
31
pull->flags |= LIBNDR_FLAG_REF_ALLOC;
33
pull->flags |= LIBNDR_FLAG_BIGENDIAN;
35
ndr_err = call->ndr_pull(pull, NDR_IN, r);
36
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
41
if (DEBUGLEVEL >= 10) {
42
NDR_PRINT_FUNCTION_DEBUG(drsuapi_DsBind, NDR_IN, r);
46
r->out.bind_info = r->in.bind_info;
47
r->out.bind_handle = talloc_zero(r, struct policy_handle);
48
if (r->out.bind_handle == NULL) {
53
r->out.result = _drsuapi_DsBind(p, r);
55
if (p->rng_fault_state) {
57
/* Return true here, srv_pipe_hnd.c will take care */
61
if (DEBUGLEVEL >= 10) {
62
NDR_PRINT_FUNCTION_DEBUG(drsuapi_DsBind, NDR_OUT | NDR_SET_VALUES, r);
65
push = ndr_push_init_ctx(r);
72
* carry over the pointer count to the reply in case we are
73
* using full pointer. See NDR specification for full pointers
75
push->ptr_count = pull->ptr_count;
77
ndr_err = call->ndr_push(push, NDR_OUT, r);
78
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
83
p->out_data.rdata = ndr_push_blob(push);
84
talloc_steal(p->mem_ctx, p->out_data.rdata.data);
91
static bool api_drsuapi_DsUnbind(struct pipes_struct *p)
93
const struct ndr_interface_call *call;
94
struct ndr_pull *pull;
95
struct ndr_push *push;
96
enum ndr_err_code ndr_err;
97
struct drsuapi_DsUnbind *r;
99
call = &ndr_table_drsuapi.calls[NDR_DRSUAPI_DSUNBIND];
101
r = talloc(talloc_tos(), struct drsuapi_DsUnbind);
106
pull = ndr_pull_init_blob(&p->in_data.data, r);
112
pull->flags |= LIBNDR_FLAG_REF_ALLOC;
114
pull->flags |= LIBNDR_FLAG_BIGENDIAN;
116
ndr_err = call->ndr_pull(pull, NDR_IN, r);
117
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
122
if (DEBUGLEVEL >= 10) {
123
NDR_PRINT_FUNCTION_DEBUG(drsuapi_DsUnbind, NDR_IN, r);
127
r->out.bind_handle = r->in.bind_handle;
128
r->out.result = _drsuapi_DsUnbind(p, r);
130
if (p->rng_fault_state) {
132
/* Return true here, srv_pipe_hnd.c will take care */
136
if (DEBUGLEVEL >= 10) {
137
NDR_PRINT_FUNCTION_DEBUG(drsuapi_DsUnbind, NDR_OUT | NDR_SET_VALUES, r);
140
push = ndr_push_init_ctx(r);
147
* carry over the pointer count to the reply in case we are
148
* using full pointer. See NDR specification for full pointers
150
push->ptr_count = pull->ptr_count;
152
ndr_err = call->ndr_push(push, NDR_OUT, r);
153
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
158
p->out_data.rdata = ndr_push_blob(push);
159
talloc_steal(p->mem_ctx, p->out_data.rdata.data);
166
static bool api_drsuapi_DsReplicaSync(struct pipes_struct *p)
168
const struct ndr_interface_call *call;
169
struct ndr_pull *pull;
170
struct ndr_push *push;
171
enum ndr_err_code ndr_err;
172
struct drsuapi_DsReplicaSync *r;
174
call = &ndr_table_drsuapi.calls[NDR_DRSUAPI_DSREPLICASYNC];
176
r = talloc(talloc_tos(), struct drsuapi_DsReplicaSync);
181
pull = ndr_pull_init_blob(&p->in_data.data, r);
187
pull->flags |= LIBNDR_FLAG_REF_ALLOC;
189
pull->flags |= LIBNDR_FLAG_BIGENDIAN;
191
ndr_err = call->ndr_pull(pull, NDR_IN, r);
192
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
197
if (DEBUGLEVEL >= 10) {
198
NDR_PRINT_FUNCTION_DEBUG(drsuapi_DsReplicaSync, NDR_IN, r);
201
r->out.result = _drsuapi_DsReplicaSync(p, r);
203
if (p->rng_fault_state) {
205
/* Return true here, srv_pipe_hnd.c will take care */
209
if (DEBUGLEVEL >= 10) {
210
NDR_PRINT_FUNCTION_DEBUG(drsuapi_DsReplicaSync, NDR_OUT | NDR_SET_VALUES, r);
213
push = ndr_push_init_ctx(r);
220
* carry over the pointer count to the reply in case we are
221
* using full pointer. See NDR specification for full pointers
223
push->ptr_count = pull->ptr_count;
225
ndr_err = call->ndr_push(push, NDR_OUT, r);
226
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
231
p->out_data.rdata = ndr_push_blob(push);
232
talloc_steal(p->mem_ctx, p->out_data.rdata.data);
239
static bool api_drsuapi_DsGetNCChanges(struct pipes_struct *p)
241
const struct ndr_interface_call *call;
242
struct ndr_pull *pull;
243
struct ndr_push *push;
244
enum ndr_err_code ndr_err;
245
struct drsuapi_DsGetNCChanges *r;
247
call = &ndr_table_drsuapi.calls[NDR_DRSUAPI_DSGETNCCHANGES];
249
r = talloc(talloc_tos(), struct drsuapi_DsGetNCChanges);
254
pull = ndr_pull_init_blob(&p->in_data.data, r);
260
pull->flags |= LIBNDR_FLAG_REF_ALLOC;
262
pull->flags |= LIBNDR_FLAG_BIGENDIAN;
264
ndr_err = call->ndr_pull(pull, NDR_IN, r);
265
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
270
if (DEBUGLEVEL >= 10) {
271
NDR_PRINT_FUNCTION_DEBUG(drsuapi_DsGetNCChanges, NDR_IN, r);
275
r->out.level_out = talloc_zero(r, uint32_t);
276
if (r->out.level_out == NULL) {
281
r->out.ctr = talloc_zero(r, union drsuapi_DsGetNCChangesCtr);
282
if (r->out.ctr == NULL) {
287
r->out.result = _drsuapi_DsGetNCChanges(p, r);
289
if (p->rng_fault_state) {
291
/* Return true here, srv_pipe_hnd.c will take care */
295
if (DEBUGLEVEL >= 10) {
296
NDR_PRINT_FUNCTION_DEBUG(drsuapi_DsGetNCChanges, NDR_OUT | NDR_SET_VALUES, r);
299
push = ndr_push_init_ctx(r);
306
* carry over the pointer count to the reply in case we are
307
* using full pointer. See NDR specification for full pointers
309
push->ptr_count = pull->ptr_count;
311
ndr_err = call->ndr_push(push, NDR_OUT, r);
312
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
317
p->out_data.rdata = ndr_push_blob(push);
318
talloc_steal(p->mem_ctx, p->out_data.rdata.data);
325
static bool api_drsuapi_DsReplicaUpdateRefs(struct pipes_struct *p)
327
const struct ndr_interface_call *call;
328
struct ndr_pull *pull;
329
struct ndr_push *push;
330
enum ndr_err_code ndr_err;
331
struct drsuapi_DsReplicaUpdateRefs *r;
333
call = &ndr_table_drsuapi.calls[NDR_DRSUAPI_DSREPLICAUPDATEREFS];
335
r = talloc(talloc_tos(), struct drsuapi_DsReplicaUpdateRefs);
340
pull = ndr_pull_init_blob(&p->in_data.data, r);
346
pull->flags |= LIBNDR_FLAG_REF_ALLOC;
348
pull->flags |= LIBNDR_FLAG_BIGENDIAN;
350
ndr_err = call->ndr_pull(pull, NDR_IN, r);
351
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
356
if (DEBUGLEVEL >= 10) {
357
NDR_PRINT_FUNCTION_DEBUG(drsuapi_DsReplicaUpdateRefs, NDR_IN, r);
360
r->out.result = _drsuapi_DsReplicaUpdateRefs(p, r);
362
if (p->rng_fault_state) {
364
/* Return true here, srv_pipe_hnd.c will take care */
368
if (DEBUGLEVEL >= 10) {
369
NDR_PRINT_FUNCTION_DEBUG(drsuapi_DsReplicaUpdateRefs, NDR_OUT | NDR_SET_VALUES, r);
372
push = ndr_push_init_ctx(r);
379
* carry over the pointer count to the reply in case we are
380
* using full pointer. See NDR specification for full pointers
382
push->ptr_count = pull->ptr_count;
384
ndr_err = call->ndr_push(push, NDR_OUT, r);
385
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
390
p->out_data.rdata = ndr_push_blob(push);
391
talloc_steal(p->mem_ctx, p->out_data.rdata.data);
398
static bool api_drsuapi_DsReplicaAdd(struct pipes_struct *p)
400
const struct ndr_interface_call *call;
401
struct ndr_pull *pull;
402
struct ndr_push *push;
403
enum ndr_err_code ndr_err;
404
struct drsuapi_DsReplicaAdd *r;
406
call = &ndr_table_drsuapi.calls[NDR_DRSUAPI_DSREPLICAADD];
408
r = talloc(talloc_tos(), struct drsuapi_DsReplicaAdd);
413
pull = ndr_pull_init_blob(&p->in_data.data, r);
419
pull->flags |= LIBNDR_FLAG_REF_ALLOC;
421
pull->flags |= LIBNDR_FLAG_BIGENDIAN;
423
ndr_err = call->ndr_pull(pull, NDR_IN, r);
424
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
429
if (DEBUGLEVEL >= 10) {
430
NDR_PRINT_FUNCTION_DEBUG(drsuapi_DsReplicaAdd, NDR_IN, r);
433
r->out.result = _drsuapi_DsReplicaAdd(p, r);
435
if (p->rng_fault_state) {
437
/* Return true here, srv_pipe_hnd.c will take care */
441
if (DEBUGLEVEL >= 10) {
442
NDR_PRINT_FUNCTION_DEBUG(drsuapi_DsReplicaAdd, NDR_OUT | NDR_SET_VALUES, r);
445
push = ndr_push_init_ctx(r);
452
* carry over the pointer count to the reply in case we are
453
* using full pointer. See NDR specification for full pointers
455
push->ptr_count = pull->ptr_count;
457
ndr_err = call->ndr_push(push, NDR_OUT, r);
458
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
463
p->out_data.rdata = ndr_push_blob(push);
464
talloc_steal(p->mem_ctx, p->out_data.rdata.data);
471
static bool api_drsuapi_DsReplicaDel(struct pipes_struct *p)
473
const struct ndr_interface_call *call;
474
struct ndr_pull *pull;
475
struct ndr_push *push;
476
enum ndr_err_code ndr_err;
477
struct drsuapi_DsReplicaDel *r;
479
call = &ndr_table_drsuapi.calls[NDR_DRSUAPI_DSREPLICADEL];
481
r = talloc(talloc_tos(), struct drsuapi_DsReplicaDel);
486
pull = ndr_pull_init_blob(&p->in_data.data, r);
492
pull->flags |= LIBNDR_FLAG_REF_ALLOC;
494
pull->flags |= LIBNDR_FLAG_BIGENDIAN;
496
ndr_err = call->ndr_pull(pull, NDR_IN, r);
497
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
502
if (DEBUGLEVEL >= 10) {
503
NDR_PRINT_FUNCTION_DEBUG(drsuapi_DsReplicaDel, NDR_IN, r);
506
r->out.result = _drsuapi_DsReplicaDel(p, r);
508
if (p->rng_fault_state) {
510
/* Return true here, srv_pipe_hnd.c will take care */
514
if (DEBUGLEVEL >= 10) {
515
NDR_PRINT_FUNCTION_DEBUG(drsuapi_DsReplicaDel, NDR_OUT | NDR_SET_VALUES, r);
518
push = ndr_push_init_ctx(r);
525
* carry over the pointer count to the reply in case we are
526
* using full pointer. See NDR specification for full pointers
528
push->ptr_count = pull->ptr_count;
530
ndr_err = call->ndr_push(push, NDR_OUT, r);
531
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
536
p->out_data.rdata = ndr_push_blob(push);
537
talloc_steal(p->mem_ctx, p->out_data.rdata.data);
544
static bool api_drsuapi_DsReplicaMod(struct pipes_struct *p)
546
const struct ndr_interface_call *call;
547
struct ndr_pull *pull;
548
struct ndr_push *push;
549
enum ndr_err_code ndr_err;
550
struct drsuapi_DsReplicaMod *r;
552
call = &ndr_table_drsuapi.calls[NDR_DRSUAPI_DSREPLICAMOD];
554
r = talloc(talloc_tos(), struct drsuapi_DsReplicaMod);
559
pull = ndr_pull_init_blob(&p->in_data.data, r);
565
pull->flags |= LIBNDR_FLAG_REF_ALLOC;
567
pull->flags |= LIBNDR_FLAG_BIGENDIAN;
569
ndr_err = call->ndr_pull(pull, NDR_IN, r);
570
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
575
if (DEBUGLEVEL >= 10) {
576
NDR_PRINT_FUNCTION_DEBUG(drsuapi_DsReplicaMod, NDR_IN, r);
579
r->out.result = _drsuapi_DsReplicaMod(p, r);
581
if (p->rng_fault_state) {
583
/* Return true here, srv_pipe_hnd.c will take care */
587
if (DEBUGLEVEL >= 10) {
588
NDR_PRINT_FUNCTION_DEBUG(drsuapi_DsReplicaMod, NDR_OUT | NDR_SET_VALUES, r);
591
push = ndr_push_init_ctx(r);
598
* carry over the pointer count to the reply in case we are
599
* using full pointer. See NDR specification for full pointers
601
push->ptr_count = pull->ptr_count;
603
ndr_err = call->ndr_push(push, NDR_OUT, r);
604
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
609
p->out_data.rdata = ndr_push_blob(push);
610
talloc_steal(p->mem_ctx, p->out_data.rdata.data);
617
static bool api_DRSUAPI_VERIFY_NAMES(struct pipes_struct *p)
619
const struct ndr_interface_call *call;
620
struct ndr_pull *pull;
621
struct ndr_push *push;
622
enum ndr_err_code ndr_err;
623
struct DRSUAPI_VERIFY_NAMES *r;
625
call = &ndr_table_drsuapi.calls[NDR_DRSUAPI_VERIFY_NAMES];
627
r = talloc(talloc_tos(), struct DRSUAPI_VERIFY_NAMES);
632
pull = ndr_pull_init_blob(&p->in_data.data, r);
638
pull->flags |= LIBNDR_FLAG_REF_ALLOC;
640
pull->flags |= LIBNDR_FLAG_BIGENDIAN;
642
ndr_err = call->ndr_pull(pull, NDR_IN, r);
643
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
648
if (DEBUGLEVEL >= 10) {
649
NDR_PRINT_FUNCTION_DEBUG(DRSUAPI_VERIFY_NAMES, NDR_IN, r);
652
r->out.result = _DRSUAPI_VERIFY_NAMES(p, r);
654
if (p->rng_fault_state) {
656
/* Return true here, srv_pipe_hnd.c will take care */
660
if (DEBUGLEVEL >= 10) {
661
NDR_PRINT_FUNCTION_DEBUG(DRSUAPI_VERIFY_NAMES, NDR_OUT | NDR_SET_VALUES, r);
664
push = ndr_push_init_ctx(r);
671
* carry over the pointer count to the reply in case we are
672
* using full pointer. See NDR specification for full pointers
674
push->ptr_count = pull->ptr_count;
676
ndr_err = call->ndr_push(push, NDR_OUT, r);
677
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
682
p->out_data.rdata = ndr_push_blob(push);
683
talloc_steal(p->mem_ctx, p->out_data.rdata.data);
690
static bool api_drsuapi_DsGetMemberships(struct pipes_struct *p)
692
const struct ndr_interface_call *call;
693
struct ndr_pull *pull;
694
struct ndr_push *push;
695
enum ndr_err_code ndr_err;
696
struct drsuapi_DsGetMemberships *r;
698
call = &ndr_table_drsuapi.calls[NDR_DRSUAPI_DSGETMEMBERSHIPS];
700
r = talloc(talloc_tos(), struct drsuapi_DsGetMemberships);
705
pull = ndr_pull_init_blob(&p->in_data.data, r);
711
pull->flags |= LIBNDR_FLAG_REF_ALLOC;
713
pull->flags |= LIBNDR_FLAG_BIGENDIAN;
715
ndr_err = call->ndr_pull(pull, NDR_IN, r);
716
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
721
if (DEBUGLEVEL >= 10) {
722
NDR_PRINT_FUNCTION_DEBUG(drsuapi_DsGetMemberships, NDR_IN, r);
726
r->out.level_out = talloc_zero(r, uint32_t);
727
if (r->out.level_out == NULL) {
732
r->out.ctr = talloc_zero(r, union drsuapi_DsGetMembershipsCtr);
733
if (r->out.ctr == NULL) {
738
r->out.result = _drsuapi_DsGetMemberships(p, r);
740
if (p->rng_fault_state) {
742
/* Return true here, srv_pipe_hnd.c will take care */
746
if (DEBUGLEVEL >= 10) {
747
NDR_PRINT_FUNCTION_DEBUG(drsuapi_DsGetMemberships, NDR_OUT | NDR_SET_VALUES, r);
750
push = ndr_push_init_ctx(r);
757
* carry over the pointer count to the reply in case we are
758
* using full pointer. See NDR specification for full pointers
760
push->ptr_count = pull->ptr_count;
762
ndr_err = call->ndr_push(push, NDR_OUT, r);
763
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
768
p->out_data.rdata = ndr_push_blob(push);
769
talloc_steal(p->mem_ctx, p->out_data.rdata.data);
776
static bool api_DRSUAPI_INTER_DOMAIN_MOVE(struct pipes_struct *p)
778
const struct ndr_interface_call *call;
779
struct ndr_pull *pull;
780
struct ndr_push *push;
781
enum ndr_err_code ndr_err;
782
struct DRSUAPI_INTER_DOMAIN_MOVE *r;
784
call = &ndr_table_drsuapi.calls[NDR_DRSUAPI_INTER_DOMAIN_MOVE];
786
r = talloc(talloc_tos(), struct DRSUAPI_INTER_DOMAIN_MOVE);
791
pull = ndr_pull_init_blob(&p->in_data.data, r);
797
pull->flags |= LIBNDR_FLAG_REF_ALLOC;
799
pull->flags |= LIBNDR_FLAG_BIGENDIAN;
801
ndr_err = call->ndr_pull(pull, NDR_IN, r);
802
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
807
if (DEBUGLEVEL >= 10) {
808
NDR_PRINT_FUNCTION_DEBUG(DRSUAPI_INTER_DOMAIN_MOVE, NDR_IN, r);
811
r->out.result = _DRSUAPI_INTER_DOMAIN_MOVE(p, r);
813
if (p->rng_fault_state) {
815
/* Return true here, srv_pipe_hnd.c will take care */
819
if (DEBUGLEVEL >= 10) {
820
NDR_PRINT_FUNCTION_DEBUG(DRSUAPI_INTER_DOMAIN_MOVE, NDR_OUT | NDR_SET_VALUES, r);
823
push = ndr_push_init_ctx(r);
830
* carry over the pointer count to the reply in case we are
831
* using full pointer. See NDR specification for full pointers
833
push->ptr_count = pull->ptr_count;
835
ndr_err = call->ndr_push(push, NDR_OUT, r);
836
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
841
p->out_data.rdata = ndr_push_blob(push);
842
talloc_steal(p->mem_ctx, p->out_data.rdata.data);
849
static bool api_drsuapi_DsGetNT4ChangeLog(struct pipes_struct *p)
851
const struct ndr_interface_call *call;
852
struct ndr_pull *pull;
853
struct ndr_push *push;
854
enum ndr_err_code ndr_err;
855
struct drsuapi_DsGetNT4ChangeLog *r;
857
call = &ndr_table_drsuapi.calls[NDR_DRSUAPI_DSGETNT4CHANGELOG];
859
r = talloc(talloc_tos(), struct drsuapi_DsGetNT4ChangeLog);
864
pull = ndr_pull_init_blob(&p->in_data.data, r);
870
pull->flags |= LIBNDR_FLAG_REF_ALLOC;
872
pull->flags |= LIBNDR_FLAG_BIGENDIAN;
874
ndr_err = call->ndr_pull(pull, NDR_IN, r);
875
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
880
if (DEBUGLEVEL >= 10) {
881
NDR_PRINT_FUNCTION_DEBUG(drsuapi_DsGetNT4ChangeLog, NDR_IN, r);
885
r->out.level_out = talloc_zero(r, uint32_t);
886
if (r->out.level_out == NULL) {
891
r->out.info = talloc_zero(r, union drsuapi_DsGetNT4ChangeLogInfo);
892
if (r->out.info == NULL) {
897
r->out.result = _drsuapi_DsGetNT4ChangeLog(p, r);
899
if (p->rng_fault_state) {
901
/* Return true here, srv_pipe_hnd.c will take care */
905
if (DEBUGLEVEL >= 10) {
906
NDR_PRINT_FUNCTION_DEBUG(drsuapi_DsGetNT4ChangeLog, NDR_OUT | NDR_SET_VALUES, r);
909
push = ndr_push_init_ctx(r);
916
* carry over the pointer count to the reply in case we are
917
* using full pointer. See NDR specification for full pointers
919
push->ptr_count = pull->ptr_count;
921
ndr_err = call->ndr_push(push, NDR_OUT, r);
922
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
927
p->out_data.rdata = ndr_push_blob(push);
928
talloc_steal(p->mem_ctx, p->out_data.rdata.data);
935
static bool api_drsuapi_DsCrackNames(struct pipes_struct *p)
937
const struct ndr_interface_call *call;
938
struct ndr_pull *pull;
939
struct ndr_push *push;
940
enum ndr_err_code ndr_err;
941
struct drsuapi_DsCrackNames *r;
943
call = &ndr_table_drsuapi.calls[NDR_DRSUAPI_DSCRACKNAMES];
945
r = talloc(talloc_tos(), struct drsuapi_DsCrackNames);
950
pull = ndr_pull_init_blob(&p->in_data.data, r);
956
pull->flags |= LIBNDR_FLAG_REF_ALLOC;
958
pull->flags |= LIBNDR_FLAG_BIGENDIAN;
960
ndr_err = call->ndr_pull(pull, NDR_IN, r);
961
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
966
if (DEBUGLEVEL >= 10) {
967
NDR_PRINT_FUNCTION_DEBUG(drsuapi_DsCrackNames, NDR_IN, r);
971
r->out.level_out = talloc_zero(r, uint32_t);
972
if (r->out.level_out == NULL) {
977
r->out.ctr = talloc_zero(r, union drsuapi_DsNameCtr);
978
if (r->out.ctr == NULL) {
983
r->out.result = _drsuapi_DsCrackNames(p, r);
985
if (p->rng_fault_state) {
987
/* Return true here, srv_pipe_hnd.c will take care */
991
if (DEBUGLEVEL >= 10) {
992
NDR_PRINT_FUNCTION_DEBUG(drsuapi_DsCrackNames, NDR_OUT | NDR_SET_VALUES, r);
995
push = ndr_push_init_ctx(r);
1002
* carry over the pointer count to the reply in case we are
1003
* using full pointer. See NDR specification for full pointers
1005
push->ptr_count = pull->ptr_count;
1007
ndr_err = call->ndr_push(push, NDR_OUT, r);
1008
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1013
p->out_data.rdata = ndr_push_blob(push);
1014
talloc_steal(p->mem_ctx, p->out_data.rdata.data);
1021
static bool api_drsuapi_DsWriteAccountSpn(struct pipes_struct *p)
1023
const struct ndr_interface_call *call;
1024
struct ndr_pull *pull;
1025
struct ndr_push *push;
1026
enum ndr_err_code ndr_err;
1027
struct drsuapi_DsWriteAccountSpn *r;
1029
call = &ndr_table_drsuapi.calls[NDR_DRSUAPI_DSWRITEACCOUNTSPN];
1031
r = talloc(talloc_tos(), struct drsuapi_DsWriteAccountSpn);
1036
pull = ndr_pull_init_blob(&p->in_data.data, r);
1042
pull->flags |= LIBNDR_FLAG_REF_ALLOC;
1044
pull->flags |= LIBNDR_FLAG_BIGENDIAN;
1046
ndr_err = call->ndr_pull(pull, NDR_IN, r);
1047
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1052
if (DEBUGLEVEL >= 10) {
1053
NDR_PRINT_FUNCTION_DEBUG(drsuapi_DsWriteAccountSpn, NDR_IN, r);
1056
ZERO_STRUCT(r->out);
1057
r->out.level_out = talloc_zero(r, uint32_t);
1058
if (r->out.level_out == NULL) {
1063
r->out.res = talloc_zero(r, union drsuapi_DsWriteAccountSpnResult);
1064
if (r->out.res == NULL) {
1069
r->out.result = _drsuapi_DsWriteAccountSpn(p, r);
1071
if (p->rng_fault_state) {
1073
/* Return true here, srv_pipe_hnd.c will take care */
1077
if (DEBUGLEVEL >= 10) {
1078
NDR_PRINT_FUNCTION_DEBUG(drsuapi_DsWriteAccountSpn, NDR_OUT | NDR_SET_VALUES, r);
1081
push = ndr_push_init_ctx(r);
1088
* carry over the pointer count to the reply in case we are
1089
* using full pointer. See NDR specification for full pointers
1091
push->ptr_count = pull->ptr_count;
1093
ndr_err = call->ndr_push(push, NDR_OUT, r);
1094
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1099
p->out_data.rdata = ndr_push_blob(push);
1100
talloc_steal(p->mem_ctx, p->out_data.rdata.data);
1107
static bool api_drsuapi_DsRemoveDSServer(struct pipes_struct *p)
1109
const struct ndr_interface_call *call;
1110
struct ndr_pull *pull;
1111
struct ndr_push *push;
1112
enum ndr_err_code ndr_err;
1113
struct drsuapi_DsRemoveDSServer *r;
1115
call = &ndr_table_drsuapi.calls[NDR_DRSUAPI_DSREMOVEDSSERVER];
1117
r = talloc(talloc_tos(), struct drsuapi_DsRemoveDSServer);
1122
pull = ndr_pull_init_blob(&p->in_data.data, r);
1128
pull->flags |= LIBNDR_FLAG_REF_ALLOC;
1130
pull->flags |= LIBNDR_FLAG_BIGENDIAN;
1132
ndr_err = call->ndr_pull(pull, NDR_IN, r);
1133
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1138
if (DEBUGLEVEL >= 10) {
1139
NDR_PRINT_FUNCTION_DEBUG(drsuapi_DsRemoveDSServer, NDR_IN, r);
1142
ZERO_STRUCT(r->out);
1143
r->out.level_out = talloc_zero(r, uint32_t);
1144
if (r->out.level_out == NULL) {
1149
r->out.res = talloc_zero(r, union drsuapi_DsRemoveDSServerResult);
1150
if (r->out.res == NULL) {
1155
r->out.result = _drsuapi_DsRemoveDSServer(p, r);
1157
if (p->rng_fault_state) {
1159
/* Return true here, srv_pipe_hnd.c will take care */
1163
if (DEBUGLEVEL >= 10) {
1164
NDR_PRINT_FUNCTION_DEBUG(drsuapi_DsRemoveDSServer, NDR_OUT | NDR_SET_VALUES, r);
1167
push = ndr_push_init_ctx(r);
1174
* carry over the pointer count to the reply in case we are
1175
* using full pointer. See NDR specification for full pointers
1177
push->ptr_count = pull->ptr_count;
1179
ndr_err = call->ndr_push(push, NDR_OUT, r);
1180
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1185
p->out_data.rdata = ndr_push_blob(push);
1186
talloc_steal(p->mem_ctx, p->out_data.rdata.data);
1193
static bool api_DRSUAPI_REMOVE_DS_DOMAIN(struct pipes_struct *p)
1195
const struct ndr_interface_call *call;
1196
struct ndr_pull *pull;
1197
struct ndr_push *push;
1198
enum ndr_err_code ndr_err;
1199
struct DRSUAPI_REMOVE_DS_DOMAIN *r;
1201
call = &ndr_table_drsuapi.calls[NDR_DRSUAPI_REMOVE_DS_DOMAIN];
1203
r = talloc(talloc_tos(), struct DRSUAPI_REMOVE_DS_DOMAIN);
1208
pull = ndr_pull_init_blob(&p->in_data.data, r);
1214
pull->flags |= LIBNDR_FLAG_REF_ALLOC;
1216
pull->flags |= LIBNDR_FLAG_BIGENDIAN;
1218
ndr_err = call->ndr_pull(pull, NDR_IN, r);
1219
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1224
if (DEBUGLEVEL >= 10) {
1225
NDR_PRINT_FUNCTION_DEBUG(DRSUAPI_REMOVE_DS_DOMAIN, NDR_IN, r);
1228
r->out.result = _DRSUAPI_REMOVE_DS_DOMAIN(p, r);
1230
if (p->rng_fault_state) {
1232
/* Return true here, srv_pipe_hnd.c will take care */
1236
if (DEBUGLEVEL >= 10) {
1237
NDR_PRINT_FUNCTION_DEBUG(DRSUAPI_REMOVE_DS_DOMAIN, NDR_OUT | NDR_SET_VALUES, r);
1240
push = ndr_push_init_ctx(r);
1247
* carry over the pointer count to the reply in case we are
1248
* using full pointer. See NDR specification for full pointers
1250
push->ptr_count = pull->ptr_count;
1252
ndr_err = call->ndr_push(push, NDR_OUT, r);
1253
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1258
p->out_data.rdata = ndr_push_blob(push);
1259
talloc_steal(p->mem_ctx, p->out_data.rdata.data);
1266
static bool api_drsuapi_DsGetDomainControllerInfo(struct pipes_struct *p)
1268
const struct ndr_interface_call *call;
1269
struct ndr_pull *pull;
1270
struct ndr_push *push;
1271
enum ndr_err_code ndr_err;
1272
struct drsuapi_DsGetDomainControllerInfo *r;
1274
call = &ndr_table_drsuapi.calls[NDR_DRSUAPI_DSGETDOMAINCONTROLLERINFO];
1276
r = talloc(talloc_tos(), struct drsuapi_DsGetDomainControllerInfo);
1281
pull = ndr_pull_init_blob(&p->in_data.data, r);
1287
pull->flags |= LIBNDR_FLAG_REF_ALLOC;
1289
pull->flags |= LIBNDR_FLAG_BIGENDIAN;
1291
ndr_err = call->ndr_pull(pull, NDR_IN, r);
1292
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1297
if (DEBUGLEVEL >= 10) {
1298
NDR_PRINT_FUNCTION_DEBUG(drsuapi_DsGetDomainControllerInfo, NDR_IN, r);
1301
ZERO_STRUCT(r->out);
1302
r->out.level_out = talloc_zero(r, int32_t);
1303
if (r->out.level_out == NULL) {
1308
r->out.ctr = talloc_zero(r, union drsuapi_DsGetDCInfoCtr);
1309
if (r->out.ctr == NULL) {
1314
r->out.result = _drsuapi_DsGetDomainControllerInfo(p, r);
1316
if (p->rng_fault_state) {
1318
/* Return true here, srv_pipe_hnd.c will take care */
1322
if (DEBUGLEVEL >= 10) {
1323
NDR_PRINT_FUNCTION_DEBUG(drsuapi_DsGetDomainControllerInfo, NDR_OUT | NDR_SET_VALUES, r);
1326
push = ndr_push_init_ctx(r);
1333
* carry over the pointer count to the reply in case we are
1334
* using full pointer. See NDR specification for full pointers
1336
push->ptr_count = pull->ptr_count;
1338
ndr_err = call->ndr_push(push, NDR_OUT, r);
1339
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1344
p->out_data.rdata = ndr_push_blob(push);
1345
talloc_steal(p->mem_ctx, p->out_data.rdata.data);
1352
static bool api_drsuapi_DsAddEntry(struct pipes_struct *p)
1354
const struct ndr_interface_call *call;
1355
struct ndr_pull *pull;
1356
struct ndr_push *push;
1357
enum ndr_err_code ndr_err;
1358
struct drsuapi_DsAddEntry *r;
1360
call = &ndr_table_drsuapi.calls[NDR_DRSUAPI_DSADDENTRY];
1362
r = talloc(talloc_tos(), struct drsuapi_DsAddEntry);
1367
pull = ndr_pull_init_blob(&p->in_data.data, r);
1373
pull->flags |= LIBNDR_FLAG_REF_ALLOC;
1375
pull->flags |= LIBNDR_FLAG_BIGENDIAN;
1377
ndr_err = call->ndr_pull(pull, NDR_IN, r);
1378
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1383
if (DEBUGLEVEL >= 10) {
1384
NDR_PRINT_FUNCTION_DEBUG(drsuapi_DsAddEntry, NDR_IN, r);
1387
ZERO_STRUCT(r->out);
1388
r->out.level_out = talloc_zero(r, uint32_t);
1389
if (r->out.level_out == NULL) {
1394
r->out.ctr = talloc_zero(r, union drsuapi_DsAddEntryCtr);
1395
if (r->out.ctr == NULL) {
1400
r->out.result = _drsuapi_DsAddEntry(p, r);
1402
if (p->rng_fault_state) {
1404
/* Return true here, srv_pipe_hnd.c will take care */
1408
if (DEBUGLEVEL >= 10) {
1409
NDR_PRINT_FUNCTION_DEBUG(drsuapi_DsAddEntry, NDR_OUT | NDR_SET_VALUES, r);
1412
push = ndr_push_init_ctx(r);
1419
* carry over the pointer count to the reply in case we are
1420
* using full pointer. See NDR specification for full pointers
1422
push->ptr_count = pull->ptr_count;
1424
ndr_err = call->ndr_push(push, NDR_OUT, r);
1425
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1430
p->out_data.rdata = ndr_push_blob(push);
1431
talloc_steal(p->mem_ctx, p->out_data.rdata.data);
1438
static bool api_drsuapi_DsExecuteKCC(struct pipes_struct *p)
1440
const struct ndr_interface_call *call;
1441
struct ndr_pull *pull;
1442
struct ndr_push *push;
1443
enum ndr_err_code ndr_err;
1444
struct drsuapi_DsExecuteKCC *r;
1446
call = &ndr_table_drsuapi.calls[NDR_DRSUAPI_DSEXECUTEKCC];
1448
r = talloc(talloc_tos(), struct drsuapi_DsExecuteKCC);
1453
pull = ndr_pull_init_blob(&p->in_data.data, r);
1459
pull->flags |= LIBNDR_FLAG_REF_ALLOC;
1461
pull->flags |= LIBNDR_FLAG_BIGENDIAN;
1463
ndr_err = call->ndr_pull(pull, NDR_IN, r);
1464
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1469
if (DEBUGLEVEL >= 10) {
1470
NDR_PRINT_FUNCTION_DEBUG(drsuapi_DsExecuteKCC, NDR_IN, r);
1473
r->out.result = _drsuapi_DsExecuteKCC(p, r);
1475
if (p->rng_fault_state) {
1477
/* Return true here, srv_pipe_hnd.c will take care */
1481
if (DEBUGLEVEL >= 10) {
1482
NDR_PRINT_FUNCTION_DEBUG(drsuapi_DsExecuteKCC, NDR_OUT | NDR_SET_VALUES, r);
1485
push = ndr_push_init_ctx(r);
1492
* carry over the pointer count to the reply in case we are
1493
* using full pointer. See NDR specification for full pointers
1495
push->ptr_count = pull->ptr_count;
1497
ndr_err = call->ndr_push(push, NDR_OUT, r);
1498
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1503
p->out_data.rdata = ndr_push_blob(push);
1504
talloc_steal(p->mem_ctx, p->out_data.rdata.data);
1511
static bool api_drsuapi_DsReplicaGetInfo(struct pipes_struct *p)
1513
const struct ndr_interface_call *call;
1514
struct ndr_pull *pull;
1515
struct ndr_push *push;
1516
enum ndr_err_code ndr_err;
1517
struct drsuapi_DsReplicaGetInfo *r;
1519
call = &ndr_table_drsuapi.calls[NDR_DRSUAPI_DSREPLICAGETINFO];
1521
r = talloc(talloc_tos(), struct drsuapi_DsReplicaGetInfo);
1526
pull = ndr_pull_init_blob(&p->in_data.data, r);
1532
pull->flags |= LIBNDR_FLAG_REF_ALLOC;
1534
pull->flags |= LIBNDR_FLAG_BIGENDIAN;
1536
ndr_err = call->ndr_pull(pull, NDR_IN, r);
1537
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1542
if (DEBUGLEVEL >= 10) {
1543
NDR_PRINT_FUNCTION_DEBUG(drsuapi_DsReplicaGetInfo, NDR_IN, r);
1546
ZERO_STRUCT(r->out);
1547
r->out.info_type = talloc_zero(r, enum drsuapi_DsReplicaInfoType);
1548
if (r->out.info_type == NULL) {
1553
r->out.info = talloc_zero(r, union drsuapi_DsReplicaInfo);
1554
if (r->out.info == NULL) {
1559
r->out.result = _drsuapi_DsReplicaGetInfo(p, r);
1561
if (p->rng_fault_state) {
1563
/* Return true here, srv_pipe_hnd.c will take care */
1567
if (DEBUGLEVEL >= 10) {
1568
NDR_PRINT_FUNCTION_DEBUG(drsuapi_DsReplicaGetInfo, NDR_OUT | NDR_SET_VALUES, r);
1571
push = ndr_push_init_ctx(r);
1578
* carry over the pointer count to the reply in case we are
1579
* using full pointer. See NDR specification for full pointers
1581
push->ptr_count = pull->ptr_count;
1583
ndr_err = call->ndr_push(push, NDR_OUT, r);
1584
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1589
p->out_data.rdata = ndr_push_blob(push);
1590
talloc_steal(p->mem_ctx, p->out_data.rdata.data);
1597
static bool api_DRSUAPI_ADD_SID_HISTORY(struct pipes_struct *p)
1599
const struct ndr_interface_call *call;
1600
struct ndr_pull *pull;
1601
struct ndr_push *push;
1602
enum ndr_err_code ndr_err;
1603
struct DRSUAPI_ADD_SID_HISTORY *r;
1605
call = &ndr_table_drsuapi.calls[NDR_DRSUAPI_ADD_SID_HISTORY];
1607
r = talloc(talloc_tos(), struct DRSUAPI_ADD_SID_HISTORY);
1612
pull = ndr_pull_init_blob(&p->in_data.data, r);
1618
pull->flags |= LIBNDR_FLAG_REF_ALLOC;
1620
pull->flags |= LIBNDR_FLAG_BIGENDIAN;
1622
ndr_err = call->ndr_pull(pull, NDR_IN, r);
1623
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1628
if (DEBUGLEVEL >= 10) {
1629
NDR_PRINT_FUNCTION_DEBUG(DRSUAPI_ADD_SID_HISTORY, NDR_IN, r);
1632
r->out.result = _DRSUAPI_ADD_SID_HISTORY(p, r);
1634
if (p->rng_fault_state) {
1636
/* Return true here, srv_pipe_hnd.c will take care */
1640
if (DEBUGLEVEL >= 10) {
1641
NDR_PRINT_FUNCTION_DEBUG(DRSUAPI_ADD_SID_HISTORY, NDR_OUT | NDR_SET_VALUES, r);
1644
push = ndr_push_init_ctx(r);
1651
* carry over the pointer count to the reply in case we are
1652
* using full pointer. See NDR specification for full pointers
1654
push->ptr_count = pull->ptr_count;
1656
ndr_err = call->ndr_push(push, NDR_OUT, r);
1657
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1662
p->out_data.rdata = ndr_push_blob(push);
1663
talloc_steal(p->mem_ctx, p->out_data.rdata.data);
1670
static bool api_drsuapi_DsGetMemberships2(struct pipes_struct *p)
1672
const struct ndr_interface_call *call;
1673
struct ndr_pull *pull;
1674
struct ndr_push *push;
1675
enum ndr_err_code ndr_err;
1676
struct drsuapi_DsGetMemberships2 *r;
1678
call = &ndr_table_drsuapi.calls[NDR_DRSUAPI_DSGETMEMBERSHIPS2];
1680
r = talloc(talloc_tos(), struct drsuapi_DsGetMemberships2);
1685
pull = ndr_pull_init_blob(&p->in_data.data, r);
1691
pull->flags |= LIBNDR_FLAG_REF_ALLOC;
1693
pull->flags |= LIBNDR_FLAG_BIGENDIAN;
1695
ndr_err = call->ndr_pull(pull, NDR_IN, r);
1696
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1701
if (DEBUGLEVEL >= 10) {
1702
NDR_PRINT_FUNCTION_DEBUG(drsuapi_DsGetMemberships2, NDR_IN, r);
1705
ZERO_STRUCT(r->out);
1706
r->out.level_out = talloc_zero(r, uint32_t);
1707
if (r->out.level_out == NULL) {
1712
r->out.ctr = talloc_zero(r, union drsuapi_DsGetMemberships2Ctr);
1713
if (r->out.ctr == NULL) {
1718
r->out.result = _drsuapi_DsGetMemberships2(p, r);
1720
if (p->rng_fault_state) {
1722
/* Return true here, srv_pipe_hnd.c will take care */
1726
if (DEBUGLEVEL >= 10) {
1727
NDR_PRINT_FUNCTION_DEBUG(drsuapi_DsGetMemberships2, NDR_OUT | NDR_SET_VALUES, r);
1730
push = ndr_push_init_ctx(r);
1737
* carry over the pointer count to the reply in case we are
1738
* using full pointer. See NDR specification for full pointers
1740
push->ptr_count = pull->ptr_count;
1742
ndr_err = call->ndr_push(push, NDR_OUT, r);
1743
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1748
p->out_data.rdata = ndr_push_blob(push);
1749
talloc_steal(p->mem_ctx, p->out_data.rdata.data);
1756
static bool api_DRSUAPI_REPLICA_VERIFY_OBJECTS(struct pipes_struct *p)
1758
const struct ndr_interface_call *call;
1759
struct ndr_pull *pull;
1760
struct ndr_push *push;
1761
enum ndr_err_code ndr_err;
1762
struct DRSUAPI_REPLICA_VERIFY_OBJECTS *r;
1764
call = &ndr_table_drsuapi.calls[NDR_DRSUAPI_REPLICA_VERIFY_OBJECTS];
1766
r = talloc(talloc_tos(), struct DRSUAPI_REPLICA_VERIFY_OBJECTS);
1771
pull = ndr_pull_init_blob(&p->in_data.data, r);
1777
pull->flags |= LIBNDR_FLAG_REF_ALLOC;
1779
pull->flags |= LIBNDR_FLAG_BIGENDIAN;
1781
ndr_err = call->ndr_pull(pull, NDR_IN, r);
1782
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1787
if (DEBUGLEVEL >= 10) {
1788
NDR_PRINT_FUNCTION_DEBUG(DRSUAPI_REPLICA_VERIFY_OBJECTS, NDR_IN, r);
1791
r->out.result = _DRSUAPI_REPLICA_VERIFY_OBJECTS(p, r);
1793
if (p->rng_fault_state) {
1795
/* Return true here, srv_pipe_hnd.c will take care */
1799
if (DEBUGLEVEL >= 10) {
1800
NDR_PRINT_FUNCTION_DEBUG(DRSUAPI_REPLICA_VERIFY_OBJECTS, NDR_OUT | NDR_SET_VALUES, r);
1803
push = ndr_push_init_ctx(r);
1810
* carry over the pointer count to the reply in case we are
1811
* using full pointer. See NDR specification for full pointers
1813
push->ptr_count = pull->ptr_count;
1815
ndr_err = call->ndr_push(push, NDR_OUT, r);
1816
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1821
p->out_data.rdata = ndr_push_blob(push);
1822
talloc_steal(p->mem_ctx, p->out_data.rdata.data);
1829
static bool api_DRSUAPI_GET_OBJECT_EXISTENCE(struct pipes_struct *p)
1831
const struct ndr_interface_call *call;
1832
struct ndr_pull *pull;
1833
struct ndr_push *push;
1834
enum ndr_err_code ndr_err;
1835
struct DRSUAPI_GET_OBJECT_EXISTENCE *r;
1837
call = &ndr_table_drsuapi.calls[NDR_DRSUAPI_GET_OBJECT_EXISTENCE];
1839
r = talloc(talloc_tos(), struct DRSUAPI_GET_OBJECT_EXISTENCE);
1844
pull = ndr_pull_init_blob(&p->in_data.data, r);
1850
pull->flags |= LIBNDR_FLAG_REF_ALLOC;
1852
pull->flags |= LIBNDR_FLAG_BIGENDIAN;
1854
ndr_err = call->ndr_pull(pull, NDR_IN, r);
1855
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1860
if (DEBUGLEVEL >= 10) {
1861
NDR_PRINT_FUNCTION_DEBUG(DRSUAPI_GET_OBJECT_EXISTENCE, NDR_IN, r);
1864
r->out.result = _DRSUAPI_GET_OBJECT_EXISTENCE(p, r);
1866
if (p->rng_fault_state) {
1868
/* Return true here, srv_pipe_hnd.c will take care */
1872
if (DEBUGLEVEL >= 10) {
1873
NDR_PRINT_FUNCTION_DEBUG(DRSUAPI_GET_OBJECT_EXISTENCE, NDR_OUT | NDR_SET_VALUES, r);
1876
push = ndr_push_init_ctx(r);
1883
* carry over the pointer count to the reply in case we are
1884
* using full pointer. See NDR specification for full pointers
1886
push->ptr_count = pull->ptr_count;
1888
ndr_err = call->ndr_push(push, NDR_OUT, r);
1889
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1894
p->out_data.rdata = ndr_push_blob(push);
1895
talloc_steal(p->mem_ctx, p->out_data.rdata.data);
1902
static bool api_drsuapi_QuerySitesByCost(struct pipes_struct *p)
1904
const struct ndr_interface_call *call;
1905
struct ndr_pull *pull;
1906
struct ndr_push *push;
1907
enum ndr_err_code ndr_err;
1908
struct drsuapi_QuerySitesByCost *r;
1910
call = &ndr_table_drsuapi.calls[NDR_DRSUAPI_QUERYSITESBYCOST];
1912
r = talloc(talloc_tos(), struct drsuapi_QuerySitesByCost);
1917
pull = ndr_pull_init_blob(&p->in_data.data, r);
1923
pull->flags |= LIBNDR_FLAG_REF_ALLOC;
1925
pull->flags |= LIBNDR_FLAG_BIGENDIAN;
1927
ndr_err = call->ndr_pull(pull, NDR_IN, r);
1928
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1933
if (DEBUGLEVEL >= 10) {
1934
NDR_PRINT_FUNCTION_DEBUG(drsuapi_QuerySitesByCost, NDR_IN, r);
1937
ZERO_STRUCT(r->out);
1938
r->out.level_out = talloc_zero(r, uint32_t);
1939
if (r->out.level_out == NULL) {
1944
r->out.ctr = talloc_zero(r, union drsuapi_QuerySitesByCostCtr);
1945
if (r->out.ctr == NULL) {
1950
r->out.result = _drsuapi_QuerySitesByCost(p, r);
1952
if (p->rng_fault_state) {
1954
/* Return true here, srv_pipe_hnd.c will take care */
1958
if (DEBUGLEVEL >= 10) {
1959
NDR_PRINT_FUNCTION_DEBUG(drsuapi_QuerySitesByCost, NDR_OUT | NDR_SET_VALUES, r);
1962
push = ndr_push_init_ctx(r);
1969
* carry over the pointer count to the reply in case we are
1970
* using full pointer. See NDR specification for full pointers
1972
push->ptr_count = pull->ptr_count;
1974
ndr_err = call->ndr_push(push, NDR_OUT, r);
1975
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1980
p->out_data.rdata = ndr_push_blob(push);
1981
talloc_steal(p->mem_ctx, p->out_data.rdata.data);
1990
static struct api_struct api_drsuapi_cmds[] =
1992
{"DRSUAPI_DSBIND", NDR_DRSUAPI_DSBIND, api_drsuapi_DsBind},
1993
{"DRSUAPI_DSUNBIND", NDR_DRSUAPI_DSUNBIND, api_drsuapi_DsUnbind},
1994
{"DRSUAPI_DSREPLICASYNC", NDR_DRSUAPI_DSREPLICASYNC, api_drsuapi_DsReplicaSync},
1995
{"DRSUAPI_DSGETNCCHANGES", NDR_DRSUAPI_DSGETNCCHANGES, api_drsuapi_DsGetNCChanges},
1996
{"DRSUAPI_DSREPLICAUPDATEREFS", NDR_DRSUAPI_DSREPLICAUPDATEREFS, api_drsuapi_DsReplicaUpdateRefs},
1997
{"DRSUAPI_DSREPLICAADD", NDR_DRSUAPI_DSREPLICAADD, api_drsuapi_DsReplicaAdd},
1998
{"DRSUAPI_DSREPLICADEL", NDR_DRSUAPI_DSREPLICADEL, api_drsuapi_DsReplicaDel},
1999
{"DRSUAPI_DSREPLICAMOD", NDR_DRSUAPI_DSREPLICAMOD, api_drsuapi_DsReplicaMod},
2000
{"DRSUAPI_VERIFY_NAMES", NDR_DRSUAPI_VERIFY_NAMES, api_DRSUAPI_VERIFY_NAMES},
2001
{"DRSUAPI_DSGETMEMBERSHIPS", NDR_DRSUAPI_DSGETMEMBERSHIPS, api_drsuapi_DsGetMemberships},
2002
{"DRSUAPI_INTER_DOMAIN_MOVE", NDR_DRSUAPI_INTER_DOMAIN_MOVE, api_DRSUAPI_INTER_DOMAIN_MOVE},
2003
{"DRSUAPI_DSGETNT4CHANGELOG", NDR_DRSUAPI_DSGETNT4CHANGELOG, api_drsuapi_DsGetNT4ChangeLog},
2004
{"DRSUAPI_DSCRACKNAMES", NDR_DRSUAPI_DSCRACKNAMES, api_drsuapi_DsCrackNames},
2005
{"DRSUAPI_DSWRITEACCOUNTSPN", NDR_DRSUAPI_DSWRITEACCOUNTSPN, api_drsuapi_DsWriteAccountSpn},
2006
{"DRSUAPI_DSREMOVEDSSERVER", NDR_DRSUAPI_DSREMOVEDSSERVER, api_drsuapi_DsRemoveDSServer},
2007
{"DRSUAPI_REMOVE_DS_DOMAIN", NDR_DRSUAPI_REMOVE_DS_DOMAIN, api_DRSUAPI_REMOVE_DS_DOMAIN},
2008
{"DRSUAPI_DSGETDOMAINCONTROLLERINFO", NDR_DRSUAPI_DSGETDOMAINCONTROLLERINFO, api_drsuapi_DsGetDomainControllerInfo},
2009
{"DRSUAPI_DSADDENTRY", NDR_DRSUAPI_DSADDENTRY, api_drsuapi_DsAddEntry},
2010
{"DRSUAPI_DSEXECUTEKCC", NDR_DRSUAPI_DSEXECUTEKCC, api_drsuapi_DsExecuteKCC},
2011
{"DRSUAPI_DSREPLICAGETINFO", NDR_DRSUAPI_DSREPLICAGETINFO, api_drsuapi_DsReplicaGetInfo},
2012
{"DRSUAPI_ADD_SID_HISTORY", NDR_DRSUAPI_ADD_SID_HISTORY, api_DRSUAPI_ADD_SID_HISTORY},
2013
{"DRSUAPI_DSGETMEMBERSHIPS2", NDR_DRSUAPI_DSGETMEMBERSHIPS2, api_drsuapi_DsGetMemberships2},
2014
{"DRSUAPI_REPLICA_VERIFY_OBJECTS", NDR_DRSUAPI_REPLICA_VERIFY_OBJECTS, api_DRSUAPI_REPLICA_VERIFY_OBJECTS},
2015
{"DRSUAPI_GET_OBJECT_EXISTENCE", NDR_DRSUAPI_GET_OBJECT_EXISTENCE, api_DRSUAPI_GET_OBJECT_EXISTENCE},
2016
{"DRSUAPI_QUERYSITESBYCOST", NDR_DRSUAPI_QUERYSITESBYCOST, api_drsuapi_QuerySitesByCost},
2019
void drsuapi_get_pipe_fns(struct api_struct **fns, int *n_fns)
2021
*fns = api_drsuapi_cmds;
2022
*n_fns = sizeof(api_drsuapi_cmds) / sizeof(struct api_struct);
2025
NTSTATUS rpc_drsuapi_init(const struct rpc_srv_callbacks *rpc_srv_cb)
2027
return rpc_srv_register(SMB_RPC_INTERFACE_VERSION, "drsuapi", "drsuapi", &ndr_table_drsuapi, api_drsuapi_cmds, sizeof(api_drsuapi_cmds) / sizeof(struct api_struct), rpc_srv_cb);
2030
NTSTATUS rpc_drsuapi_shutdown(void)
2032
return rpc_srv_unregister(&ndr_table_drsuapi);