2 * Unix SMB/CIFS implementation.
3 * client auto-generated by pidl. DO NOT MODIFY!
7 #include "../librpc/gen_ndr/cli_drsuapi.h"
9 struct rpccli_drsuapi_DsBind_state {
10 struct drsuapi_DsBind orig;
11 struct drsuapi_DsBind tmp;
12 TALLOC_CTX *out_mem_ctx;
13 NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx);
16 static void rpccli_drsuapi_DsBind_done(struct tevent_req *subreq);
18 struct tevent_req *rpccli_drsuapi_DsBind_send(TALLOC_CTX *mem_ctx,
19 struct tevent_context *ev,
20 struct rpc_pipe_client *cli,
21 struct GUID *_bind_guid /* [in] [unique] */,
22 struct drsuapi_DsBindInfoCtr *_bind_info /* [in,out] [unique] */,
23 struct policy_handle *_bind_handle /* [out] [ref] */)
25 struct tevent_req *req;
26 struct rpccli_drsuapi_DsBind_state *state;
27 struct tevent_req *subreq;
29 req = tevent_req_create(mem_ctx, &state,
30 struct rpccli_drsuapi_DsBind_state);
34 state->out_mem_ctx = NULL;
35 state->dispatch_recv = cli->dispatch_recv;
38 state->orig.in.bind_guid = _bind_guid;
39 state->orig.in.bind_info = _bind_info;
42 state->orig.out.bind_info = _bind_info;
43 state->orig.out.bind_handle = _bind_handle;
46 ZERO_STRUCT(state->orig.out.result);
48 if (DEBUGLEVEL >= 10) {
49 NDR_PRINT_IN_DEBUG(drsuapi_DsBind, &state->orig);
52 state->out_mem_ctx = talloc_named_const(state, 0,
53 "rpccli_drsuapi_DsBind_out_memory");
54 if (tevent_req_nomem(state->out_mem_ctx, req)) {
55 return tevent_req_post(req, ev);
58 /* make a temporary copy, that we pass to the dispatch function */
59 state->tmp = state->orig;
61 subreq = cli->dispatch_send(state, ev, cli,
65 if (tevent_req_nomem(subreq, req)) {
66 return tevent_req_post(req, ev);
68 tevent_req_set_callback(subreq, rpccli_drsuapi_DsBind_done, req);
72 static void rpccli_drsuapi_DsBind_done(struct tevent_req *subreq)
74 struct tevent_req *req = tevent_req_callback_data(
75 subreq, struct tevent_req);
76 struct rpccli_drsuapi_DsBind_state *state = tevent_req_data(
77 req, struct rpccli_drsuapi_DsBind_state);
81 if (state->out_mem_ctx) {
82 mem_ctx = state->out_mem_ctx;
87 status = state->dispatch_recv(subreq, mem_ctx);
89 if (!NT_STATUS_IS_OK(status)) {
90 tevent_req_nterror(req, status);
94 /* Copy out parameters */
95 if (state->orig.out.bind_info && state->tmp.out.bind_info) {
96 *state->orig.out.bind_info = *state->tmp.out.bind_info;
98 *state->orig.out.bind_handle = *state->tmp.out.bind_handle;
101 state->orig.out.result = state->tmp.out.result;
103 /* Reset temporary structure */
104 ZERO_STRUCT(state->tmp);
106 if (DEBUGLEVEL >= 10) {
107 NDR_PRINT_OUT_DEBUG(drsuapi_DsBind, &state->orig);
110 tevent_req_done(req);
113 NTSTATUS rpccli_drsuapi_DsBind_recv(struct tevent_req *req,
117 struct rpccli_drsuapi_DsBind_state *state = tevent_req_data(
118 req, struct rpccli_drsuapi_DsBind_state);
121 if (tevent_req_is_nterror(req, &status)) {
122 tevent_req_received(req);
126 /* Steal possbile out parameters to the callers context */
127 talloc_steal(mem_ctx, state->out_mem_ctx);
130 *result = state->orig.out.result;
132 tevent_req_received(req);
136 NTSTATUS rpccli_drsuapi_DsBind(struct rpc_pipe_client *cli,
138 struct GUID *bind_guid /* [in] [unique] */,
139 struct drsuapi_DsBindInfoCtr *bind_info /* [in,out] [unique] */,
140 struct policy_handle *bind_handle /* [out] [ref] */,
143 struct drsuapi_DsBind r;
147 r.in.bind_guid = bind_guid;
148 r.in.bind_info = bind_info;
150 if (DEBUGLEVEL >= 10) {
151 NDR_PRINT_IN_DEBUG(drsuapi_DsBind, &r);
154 status = cli->dispatch(cli,
160 if (!NT_STATUS_IS_OK(status)) {
164 if (DEBUGLEVEL >= 10) {
165 NDR_PRINT_OUT_DEBUG(drsuapi_DsBind, &r);
168 if (NT_STATUS_IS_ERR(status)) {
172 /* Return variables */
173 if (bind_info && r.out.bind_info) {
174 *bind_info = *r.out.bind_info;
176 *bind_handle = *r.out.bind_handle;
180 *werror = r.out.result;
183 return werror_to_ntstatus(r.out.result);
186 struct rpccli_drsuapi_DsUnbind_state {
187 struct drsuapi_DsUnbind orig;
188 struct drsuapi_DsUnbind tmp;
189 TALLOC_CTX *out_mem_ctx;
190 NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx);
193 static void rpccli_drsuapi_DsUnbind_done(struct tevent_req *subreq);
195 struct tevent_req *rpccli_drsuapi_DsUnbind_send(TALLOC_CTX *mem_ctx,
196 struct tevent_context *ev,
197 struct rpc_pipe_client *cli,
198 struct policy_handle *_bind_handle /* [in,out] [ref] */)
200 struct tevent_req *req;
201 struct rpccli_drsuapi_DsUnbind_state *state;
202 struct tevent_req *subreq;
204 req = tevent_req_create(mem_ctx, &state,
205 struct rpccli_drsuapi_DsUnbind_state);
209 state->out_mem_ctx = NULL;
210 state->dispatch_recv = cli->dispatch_recv;
213 state->orig.in.bind_handle = _bind_handle;
216 state->orig.out.bind_handle = _bind_handle;
219 ZERO_STRUCT(state->orig.out.result);
221 if (DEBUGLEVEL >= 10) {
222 NDR_PRINT_IN_DEBUG(drsuapi_DsUnbind, &state->orig);
225 state->out_mem_ctx = talloc_named_const(state, 0,
226 "rpccli_drsuapi_DsUnbind_out_memory");
227 if (tevent_req_nomem(state->out_mem_ctx, req)) {
228 return tevent_req_post(req, ev);
231 /* make a temporary copy, that we pass to the dispatch function */
232 state->tmp = state->orig;
234 subreq = cli->dispatch_send(state, ev, cli,
236 NDR_DRSUAPI_DSUNBIND,
238 if (tevent_req_nomem(subreq, req)) {
239 return tevent_req_post(req, ev);
241 tevent_req_set_callback(subreq, rpccli_drsuapi_DsUnbind_done, req);
245 static void rpccli_drsuapi_DsUnbind_done(struct tevent_req *subreq)
247 struct tevent_req *req = tevent_req_callback_data(
248 subreq, struct tevent_req);
249 struct rpccli_drsuapi_DsUnbind_state *state = tevent_req_data(
250 req, struct rpccli_drsuapi_DsUnbind_state);
254 if (state->out_mem_ctx) {
255 mem_ctx = state->out_mem_ctx;
260 status = state->dispatch_recv(subreq, mem_ctx);
262 if (!NT_STATUS_IS_OK(status)) {
263 tevent_req_nterror(req, status);
267 /* Copy out parameters */
268 *state->orig.out.bind_handle = *state->tmp.out.bind_handle;
271 state->orig.out.result = state->tmp.out.result;
273 /* Reset temporary structure */
274 ZERO_STRUCT(state->tmp);
276 if (DEBUGLEVEL >= 10) {
277 NDR_PRINT_OUT_DEBUG(drsuapi_DsUnbind, &state->orig);
280 tevent_req_done(req);
283 NTSTATUS rpccli_drsuapi_DsUnbind_recv(struct tevent_req *req,
287 struct rpccli_drsuapi_DsUnbind_state *state = tevent_req_data(
288 req, struct rpccli_drsuapi_DsUnbind_state);
291 if (tevent_req_is_nterror(req, &status)) {
292 tevent_req_received(req);
296 /* Steal possbile out parameters to the callers context */
297 talloc_steal(mem_ctx, state->out_mem_ctx);
300 *result = state->orig.out.result;
302 tevent_req_received(req);
306 NTSTATUS rpccli_drsuapi_DsUnbind(struct rpc_pipe_client *cli,
308 struct policy_handle *bind_handle /* [in,out] [ref] */,
311 struct drsuapi_DsUnbind r;
315 r.in.bind_handle = bind_handle;
317 if (DEBUGLEVEL >= 10) {
318 NDR_PRINT_IN_DEBUG(drsuapi_DsUnbind, &r);
321 status = cli->dispatch(cli,
324 NDR_DRSUAPI_DSUNBIND,
327 if (!NT_STATUS_IS_OK(status)) {
331 if (DEBUGLEVEL >= 10) {
332 NDR_PRINT_OUT_DEBUG(drsuapi_DsUnbind, &r);
335 if (NT_STATUS_IS_ERR(status)) {
339 /* Return variables */
340 *bind_handle = *r.out.bind_handle;
344 *werror = r.out.result;
347 return werror_to_ntstatus(r.out.result);
350 struct rpccli_drsuapi_DsReplicaSync_state {
351 struct drsuapi_DsReplicaSync orig;
352 struct drsuapi_DsReplicaSync tmp;
353 TALLOC_CTX *out_mem_ctx;
354 NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx);
357 static void rpccli_drsuapi_DsReplicaSync_done(struct tevent_req *subreq);
359 struct tevent_req *rpccli_drsuapi_DsReplicaSync_send(TALLOC_CTX *mem_ctx,
360 struct tevent_context *ev,
361 struct rpc_pipe_client *cli,
362 struct policy_handle *_bind_handle /* [in] [ref] */,
363 int32_t _level /* [in] */,
364 union drsuapi_DsReplicaSyncRequest _req /* [in] [switch_is(level)] */)
366 struct tevent_req *req;
367 struct rpccli_drsuapi_DsReplicaSync_state *state;
368 struct tevent_req *subreq;
370 req = tevent_req_create(mem_ctx, &state,
371 struct rpccli_drsuapi_DsReplicaSync_state);
375 state->out_mem_ctx = NULL;
376 state->dispatch_recv = cli->dispatch_recv;
379 state->orig.in.bind_handle = _bind_handle;
380 state->orig.in.level = _level;
381 state->orig.in.req = _req;
386 ZERO_STRUCT(state->orig.out.result);
388 if (DEBUGLEVEL >= 10) {
389 NDR_PRINT_IN_DEBUG(drsuapi_DsReplicaSync, &state->orig);
392 /* make a temporary copy, that we pass to the dispatch function */
393 state->tmp = state->orig;
395 subreq = cli->dispatch_send(state, ev, cli,
397 NDR_DRSUAPI_DSREPLICASYNC,
399 if (tevent_req_nomem(subreq, req)) {
400 return tevent_req_post(req, ev);
402 tevent_req_set_callback(subreq, rpccli_drsuapi_DsReplicaSync_done, req);
406 static void rpccli_drsuapi_DsReplicaSync_done(struct tevent_req *subreq)
408 struct tevent_req *req = tevent_req_callback_data(
409 subreq, struct tevent_req);
410 struct rpccli_drsuapi_DsReplicaSync_state *state = tevent_req_data(
411 req, struct rpccli_drsuapi_DsReplicaSync_state);
415 if (state->out_mem_ctx) {
416 mem_ctx = state->out_mem_ctx;
421 status = state->dispatch_recv(subreq, mem_ctx);
423 if (!NT_STATUS_IS_OK(status)) {
424 tevent_req_nterror(req, status);
428 /* Copy out parameters */
431 state->orig.out.result = state->tmp.out.result;
433 /* Reset temporary structure */
434 ZERO_STRUCT(state->tmp);
436 if (DEBUGLEVEL >= 10) {
437 NDR_PRINT_OUT_DEBUG(drsuapi_DsReplicaSync, &state->orig);
440 tevent_req_done(req);
443 NTSTATUS rpccli_drsuapi_DsReplicaSync_recv(struct tevent_req *req,
447 struct rpccli_drsuapi_DsReplicaSync_state *state = tevent_req_data(
448 req, struct rpccli_drsuapi_DsReplicaSync_state);
451 if (tevent_req_is_nterror(req, &status)) {
452 tevent_req_received(req);
456 /* Steal possbile out parameters to the callers context */
457 talloc_steal(mem_ctx, state->out_mem_ctx);
460 *result = state->orig.out.result;
462 tevent_req_received(req);
466 NTSTATUS rpccli_drsuapi_DsReplicaSync(struct rpc_pipe_client *cli,
468 struct policy_handle *bind_handle /* [in] [ref] */,
469 int32_t level /* [in] */,
470 union drsuapi_DsReplicaSyncRequest req /* [in] [switch_is(level)] */,
473 struct drsuapi_DsReplicaSync r;
477 r.in.bind_handle = bind_handle;
481 if (DEBUGLEVEL >= 10) {
482 NDR_PRINT_IN_DEBUG(drsuapi_DsReplicaSync, &r);
485 status = cli->dispatch(cli,
488 NDR_DRSUAPI_DSREPLICASYNC,
491 if (!NT_STATUS_IS_OK(status)) {
495 if (DEBUGLEVEL >= 10) {
496 NDR_PRINT_OUT_DEBUG(drsuapi_DsReplicaSync, &r);
499 if (NT_STATUS_IS_ERR(status)) {
503 /* Return variables */
507 *werror = r.out.result;
510 return werror_to_ntstatus(r.out.result);
513 struct rpccli_drsuapi_DsGetNCChanges_state {
514 struct drsuapi_DsGetNCChanges orig;
515 struct drsuapi_DsGetNCChanges tmp;
516 TALLOC_CTX *out_mem_ctx;
517 NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx);
520 static void rpccli_drsuapi_DsGetNCChanges_done(struct tevent_req *subreq);
522 struct tevent_req *rpccli_drsuapi_DsGetNCChanges_send(TALLOC_CTX *mem_ctx,
523 struct tevent_context *ev,
524 struct rpc_pipe_client *cli,
525 struct policy_handle *_bind_handle /* [in] [ref] */,
526 int32_t _level /* [in] */,
527 union drsuapi_DsGetNCChangesRequest *_req /* [in] [ref,switch_is(level)] */,
528 int32_t *_level_out /* [out] [ref] */,
529 union drsuapi_DsGetNCChangesCtr *_ctr /* [out] [ref,switch_is(*level_out)] */)
531 struct tevent_req *req;
532 struct rpccli_drsuapi_DsGetNCChanges_state *state;
533 struct tevent_req *subreq;
535 req = tevent_req_create(mem_ctx, &state,
536 struct rpccli_drsuapi_DsGetNCChanges_state);
540 state->out_mem_ctx = NULL;
541 state->dispatch_recv = cli->dispatch_recv;
544 state->orig.in.bind_handle = _bind_handle;
545 state->orig.in.level = _level;
546 state->orig.in.req = _req;
549 state->orig.out.level_out = _level_out;
550 state->orig.out.ctr = _ctr;
553 ZERO_STRUCT(state->orig.out.result);
555 if (DEBUGLEVEL >= 10) {
556 NDR_PRINT_IN_DEBUG(drsuapi_DsGetNCChanges, &state->orig);
559 state->out_mem_ctx = talloc_named_const(state, 0,
560 "rpccli_drsuapi_DsGetNCChanges_out_memory");
561 if (tevent_req_nomem(state->out_mem_ctx, req)) {
562 return tevent_req_post(req, ev);
565 /* make a temporary copy, that we pass to the dispatch function */
566 state->tmp = state->orig;
568 subreq = cli->dispatch_send(state, ev, cli,
570 NDR_DRSUAPI_DSGETNCCHANGES,
572 if (tevent_req_nomem(subreq, req)) {
573 return tevent_req_post(req, ev);
575 tevent_req_set_callback(subreq, rpccli_drsuapi_DsGetNCChanges_done, req);
579 static void rpccli_drsuapi_DsGetNCChanges_done(struct tevent_req *subreq)
581 struct tevent_req *req = tevent_req_callback_data(
582 subreq, struct tevent_req);
583 struct rpccli_drsuapi_DsGetNCChanges_state *state = tevent_req_data(
584 req, struct rpccli_drsuapi_DsGetNCChanges_state);
588 if (state->out_mem_ctx) {
589 mem_ctx = state->out_mem_ctx;
594 status = state->dispatch_recv(subreq, mem_ctx);
596 if (!NT_STATUS_IS_OK(status)) {
597 tevent_req_nterror(req, status);
601 /* Copy out parameters */
602 *state->orig.out.level_out = *state->tmp.out.level_out;
603 *state->orig.out.ctr = *state->tmp.out.ctr;
606 state->orig.out.result = state->tmp.out.result;
608 /* Reset temporary structure */
609 ZERO_STRUCT(state->tmp);
611 if (DEBUGLEVEL >= 10) {
612 NDR_PRINT_OUT_DEBUG(drsuapi_DsGetNCChanges, &state->orig);
615 tevent_req_done(req);
618 NTSTATUS rpccli_drsuapi_DsGetNCChanges_recv(struct tevent_req *req,
622 struct rpccli_drsuapi_DsGetNCChanges_state *state = tevent_req_data(
623 req, struct rpccli_drsuapi_DsGetNCChanges_state);
626 if (tevent_req_is_nterror(req, &status)) {
627 tevent_req_received(req);
631 /* Steal possbile out parameters to the callers context */
632 talloc_steal(mem_ctx, state->out_mem_ctx);
635 *result = state->orig.out.result;
637 tevent_req_received(req);
641 NTSTATUS rpccli_drsuapi_DsGetNCChanges(struct rpc_pipe_client *cli,
643 struct policy_handle *bind_handle /* [in] [ref] */,
644 int32_t level /* [in] */,
645 union drsuapi_DsGetNCChangesRequest *req /* [in] [ref,switch_is(level)] */,
646 int32_t *level_out /* [out] [ref] */,
647 union drsuapi_DsGetNCChangesCtr *ctr /* [out] [ref,switch_is(*level_out)] */,
650 struct drsuapi_DsGetNCChanges r;
654 r.in.bind_handle = bind_handle;
658 if (DEBUGLEVEL >= 10) {
659 NDR_PRINT_IN_DEBUG(drsuapi_DsGetNCChanges, &r);
662 status = cli->dispatch(cli,
665 NDR_DRSUAPI_DSGETNCCHANGES,
668 if (!NT_STATUS_IS_OK(status)) {
672 if (DEBUGLEVEL >= 10) {
673 NDR_PRINT_OUT_DEBUG(drsuapi_DsGetNCChanges, &r);
676 if (NT_STATUS_IS_ERR(status)) {
680 /* Return variables */
681 *level_out = *r.out.level_out;
686 *werror = r.out.result;
689 return werror_to_ntstatus(r.out.result);
692 struct rpccli_drsuapi_DsReplicaUpdateRefs_state {
693 struct drsuapi_DsReplicaUpdateRefs orig;
694 struct drsuapi_DsReplicaUpdateRefs tmp;
695 TALLOC_CTX *out_mem_ctx;
696 NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx);
699 static void rpccli_drsuapi_DsReplicaUpdateRefs_done(struct tevent_req *subreq);
701 struct tevent_req *rpccli_drsuapi_DsReplicaUpdateRefs_send(TALLOC_CTX *mem_ctx,
702 struct tevent_context *ev,
703 struct rpc_pipe_client *cli,
704 struct policy_handle *_bind_handle /* [in] [ref] */,
705 int32_t _level /* [in] */,
706 union drsuapi_DsReplicaUpdateRefsRequest _req /* [in] [switch_is(level)] */)
708 struct tevent_req *req;
709 struct rpccli_drsuapi_DsReplicaUpdateRefs_state *state;
710 struct tevent_req *subreq;
712 req = tevent_req_create(mem_ctx, &state,
713 struct rpccli_drsuapi_DsReplicaUpdateRefs_state);
717 state->out_mem_ctx = NULL;
718 state->dispatch_recv = cli->dispatch_recv;
721 state->orig.in.bind_handle = _bind_handle;
722 state->orig.in.level = _level;
723 state->orig.in.req = _req;
728 ZERO_STRUCT(state->orig.out.result);
730 if (DEBUGLEVEL >= 10) {
731 NDR_PRINT_IN_DEBUG(drsuapi_DsReplicaUpdateRefs, &state->orig);
734 /* make a temporary copy, that we pass to the dispatch function */
735 state->tmp = state->orig;
737 subreq = cli->dispatch_send(state, ev, cli,
739 NDR_DRSUAPI_DSREPLICAUPDATEREFS,
741 if (tevent_req_nomem(subreq, req)) {
742 return tevent_req_post(req, ev);
744 tevent_req_set_callback(subreq, rpccli_drsuapi_DsReplicaUpdateRefs_done, req);
748 static void rpccli_drsuapi_DsReplicaUpdateRefs_done(struct tevent_req *subreq)
750 struct tevent_req *req = tevent_req_callback_data(
751 subreq, struct tevent_req);
752 struct rpccli_drsuapi_DsReplicaUpdateRefs_state *state = tevent_req_data(
753 req, struct rpccli_drsuapi_DsReplicaUpdateRefs_state);
757 if (state->out_mem_ctx) {
758 mem_ctx = state->out_mem_ctx;
763 status = state->dispatch_recv(subreq, mem_ctx);
765 if (!NT_STATUS_IS_OK(status)) {
766 tevent_req_nterror(req, status);
770 /* Copy out parameters */
773 state->orig.out.result = state->tmp.out.result;
775 /* Reset temporary structure */
776 ZERO_STRUCT(state->tmp);
778 if (DEBUGLEVEL >= 10) {
779 NDR_PRINT_OUT_DEBUG(drsuapi_DsReplicaUpdateRefs, &state->orig);
782 tevent_req_done(req);
785 NTSTATUS rpccli_drsuapi_DsReplicaUpdateRefs_recv(struct tevent_req *req,
789 struct rpccli_drsuapi_DsReplicaUpdateRefs_state *state = tevent_req_data(
790 req, struct rpccli_drsuapi_DsReplicaUpdateRefs_state);
793 if (tevent_req_is_nterror(req, &status)) {
794 tevent_req_received(req);
798 /* Steal possbile out parameters to the callers context */
799 talloc_steal(mem_ctx, state->out_mem_ctx);
802 *result = state->orig.out.result;
804 tevent_req_received(req);
808 NTSTATUS rpccli_drsuapi_DsReplicaUpdateRefs(struct rpc_pipe_client *cli,
810 struct policy_handle *bind_handle /* [in] [ref] */,
811 int32_t level /* [in] */,
812 union drsuapi_DsReplicaUpdateRefsRequest req /* [in] [switch_is(level)] */,
815 struct drsuapi_DsReplicaUpdateRefs r;
819 r.in.bind_handle = bind_handle;
823 if (DEBUGLEVEL >= 10) {
824 NDR_PRINT_IN_DEBUG(drsuapi_DsReplicaUpdateRefs, &r);
827 status = cli->dispatch(cli,
830 NDR_DRSUAPI_DSREPLICAUPDATEREFS,
833 if (!NT_STATUS_IS_OK(status)) {
837 if (DEBUGLEVEL >= 10) {
838 NDR_PRINT_OUT_DEBUG(drsuapi_DsReplicaUpdateRefs, &r);
841 if (NT_STATUS_IS_ERR(status)) {
845 /* Return variables */
849 *werror = r.out.result;
852 return werror_to_ntstatus(r.out.result);
855 struct rpccli_DRSUAPI_REPLICA_ADD_state {
856 struct DRSUAPI_REPLICA_ADD orig;
857 struct DRSUAPI_REPLICA_ADD tmp;
858 TALLOC_CTX *out_mem_ctx;
859 NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx);
862 static void rpccli_DRSUAPI_REPLICA_ADD_done(struct tevent_req *subreq);
864 struct tevent_req *rpccli_DRSUAPI_REPLICA_ADD_send(TALLOC_CTX *mem_ctx,
865 struct tevent_context *ev,
866 struct rpc_pipe_client *cli)
868 struct tevent_req *req;
869 struct rpccli_DRSUAPI_REPLICA_ADD_state *state;
870 struct tevent_req *subreq;
872 req = tevent_req_create(mem_ctx, &state,
873 struct rpccli_DRSUAPI_REPLICA_ADD_state);
877 state->out_mem_ctx = NULL;
878 state->dispatch_recv = cli->dispatch_recv;
885 ZERO_STRUCT(state->orig.out.result);
887 if (DEBUGLEVEL >= 10) {
888 NDR_PRINT_IN_DEBUG(DRSUAPI_REPLICA_ADD, &state->orig);
891 /* make a temporary copy, that we pass to the dispatch function */
892 state->tmp = state->orig;
894 subreq = cli->dispatch_send(state, ev, cli,
896 NDR_DRSUAPI_REPLICA_ADD,
898 if (tevent_req_nomem(subreq, req)) {
899 return tevent_req_post(req, ev);
901 tevent_req_set_callback(subreq, rpccli_DRSUAPI_REPLICA_ADD_done, req);
905 static void rpccli_DRSUAPI_REPLICA_ADD_done(struct tevent_req *subreq)
907 struct tevent_req *req = tevent_req_callback_data(
908 subreq, struct tevent_req);
909 struct rpccli_DRSUAPI_REPLICA_ADD_state *state = tevent_req_data(
910 req, struct rpccli_DRSUAPI_REPLICA_ADD_state);
914 if (state->out_mem_ctx) {
915 mem_ctx = state->out_mem_ctx;
920 status = state->dispatch_recv(subreq, mem_ctx);
922 if (!NT_STATUS_IS_OK(status)) {
923 tevent_req_nterror(req, status);
927 /* Copy out parameters */
930 state->orig.out.result = state->tmp.out.result;
932 /* Reset temporary structure */
933 ZERO_STRUCT(state->tmp);
935 if (DEBUGLEVEL >= 10) {
936 NDR_PRINT_OUT_DEBUG(DRSUAPI_REPLICA_ADD, &state->orig);
939 tevent_req_done(req);
942 NTSTATUS rpccli_DRSUAPI_REPLICA_ADD_recv(struct tevent_req *req,
946 struct rpccli_DRSUAPI_REPLICA_ADD_state *state = tevent_req_data(
947 req, struct rpccli_DRSUAPI_REPLICA_ADD_state);
950 if (tevent_req_is_nterror(req, &status)) {
951 tevent_req_received(req);
955 /* Steal possbile out parameters to the callers context */
956 talloc_steal(mem_ctx, state->out_mem_ctx);
959 *result = state->orig.out.result;
961 tevent_req_received(req);
965 NTSTATUS rpccli_DRSUAPI_REPLICA_ADD(struct rpc_pipe_client *cli,
969 struct DRSUAPI_REPLICA_ADD r;
974 if (DEBUGLEVEL >= 10) {
975 NDR_PRINT_IN_DEBUG(DRSUAPI_REPLICA_ADD, &r);
978 status = cli->dispatch(cli,
981 NDR_DRSUAPI_REPLICA_ADD,
984 if (!NT_STATUS_IS_OK(status)) {
988 if (DEBUGLEVEL >= 10) {
989 NDR_PRINT_OUT_DEBUG(DRSUAPI_REPLICA_ADD, &r);
992 if (NT_STATUS_IS_ERR(status)) {
996 /* Return variables */
1000 *werror = r.out.result;
1003 return werror_to_ntstatus(r.out.result);
1006 struct rpccli_DRSUAPI_REPLICA_DEL_state {
1007 struct DRSUAPI_REPLICA_DEL orig;
1008 struct DRSUAPI_REPLICA_DEL tmp;
1009 TALLOC_CTX *out_mem_ctx;
1010 NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx);
1013 static void rpccli_DRSUAPI_REPLICA_DEL_done(struct tevent_req *subreq);
1015 struct tevent_req *rpccli_DRSUAPI_REPLICA_DEL_send(TALLOC_CTX *mem_ctx,
1016 struct tevent_context *ev,
1017 struct rpc_pipe_client *cli)
1019 struct tevent_req *req;
1020 struct rpccli_DRSUAPI_REPLICA_DEL_state *state;
1021 struct tevent_req *subreq;
1023 req = tevent_req_create(mem_ctx, &state,
1024 struct rpccli_DRSUAPI_REPLICA_DEL_state);
1028 state->out_mem_ctx = NULL;
1029 state->dispatch_recv = cli->dispatch_recv;
1033 /* Out parameters */
1036 ZERO_STRUCT(state->orig.out.result);
1038 if (DEBUGLEVEL >= 10) {
1039 NDR_PRINT_IN_DEBUG(DRSUAPI_REPLICA_DEL, &state->orig);
1042 /* make a temporary copy, that we pass to the dispatch function */
1043 state->tmp = state->orig;
1045 subreq = cli->dispatch_send(state, ev, cli,
1047 NDR_DRSUAPI_REPLICA_DEL,
1049 if (tevent_req_nomem(subreq, req)) {
1050 return tevent_req_post(req, ev);
1052 tevent_req_set_callback(subreq, rpccli_DRSUAPI_REPLICA_DEL_done, req);
1056 static void rpccli_DRSUAPI_REPLICA_DEL_done(struct tevent_req *subreq)
1058 struct tevent_req *req = tevent_req_callback_data(
1059 subreq, struct tevent_req);
1060 struct rpccli_DRSUAPI_REPLICA_DEL_state *state = tevent_req_data(
1061 req, struct rpccli_DRSUAPI_REPLICA_DEL_state);
1063 TALLOC_CTX *mem_ctx;
1065 if (state->out_mem_ctx) {
1066 mem_ctx = state->out_mem_ctx;
1071 status = state->dispatch_recv(subreq, mem_ctx);
1072 TALLOC_FREE(subreq);
1073 if (!NT_STATUS_IS_OK(status)) {
1074 tevent_req_nterror(req, status);
1078 /* Copy out parameters */
1081 state->orig.out.result = state->tmp.out.result;
1083 /* Reset temporary structure */
1084 ZERO_STRUCT(state->tmp);
1086 if (DEBUGLEVEL >= 10) {
1087 NDR_PRINT_OUT_DEBUG(DRSUAPI_REPLICA_DEL, &state->orig);
1090 tevent_req_done(req);
1093 NTSTATUS rpccli_DRSUAPI_REPLICA_DEL_recv(struct tevent_req *req,
1094 TALLOC_CTX *mem_ctx,
1097 struct rpccli_DRSUAPI_REPLICA_DEL_state *state = tevent_req_data(
1098 req, struct rpccli_DRSUAPI_REPLICA_DEL_state);
1101 if (tevent_req_is_nterror(req, &status)) {
1102 tevent_req_received(req);
1106 /* Steal possbile out parameters to the callers context */
1107 talloc_steal(mem_ctx, state->out_mem_ctx);
1110 *result = state->orig.out.result;
1112 tevent_req_received(req);
1113 return NT_STATUS_OK;
1116 NTSTATUS rpccli_DRSUAPI_REPLICA_DEL(struct rpc_pipe_client *cli,
1117 TALLOC_CTX *mem_ctx,
1120 struct DRSUAPI_REPLICA_DEL r;
1125 if (DEBUGLEVEL >= 10) {
1126 NDR_PRINT_IN_DEBUG(DRSUAPI_REPLICA_DEL, &r);
1129 status = cli->dispatch(cli,
1132 NDR_DRSUAPI_REPLICA_DEL,
1135 if (!NT_STATUS_IS_OK(status)) {
1139 if (DEBUGLEVEL >= 10) {
1140 NDR_PRINT_OUT_DEBUG(DRSUAPI_REPLICA_DEL, &r);
1143 if (NT_STATUS_IS_ERR(status)) {
1147 /* Return variables */
1151 *werror = r.out.result;
1154 return werror_to_ntstatus(r.out.result);
1157 struct rpccli_DRSUAPI_REPLICA_MODIFY_state {
1158 struct DRSUAPI_REPLICA_MODIFY orig;
1159 struct DRSUAPI_REPLICA_MODIFY tmp;
1160 TALLOC_CTX *out_mem_ctx;
1161 NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx);
1164 static void rpccli_DRSUAPI_REPLICA_MODIFY_done(struct tevent_req *subreq);
1166 struct tevent_req *rpccli_DRSUAPI_REPLICA_MODIFY_send(TALLOC_CTX *mem_ctx,
1167 struct tevent_context *ev,
1168 struct rpc_pipe_client *cli)
1170 struct tevent_req *req;
1171 struct rpccli_DRSUAPI_REPLICA_MODIFY_state *state;
1172 struct tevent_req *subreq;
1174 req = tevent_req_create(mem_ctx, &state,
1175 struct rpccli_DRSUAPI_REPLICA_MODIFY_state);
1179 state->out_mem_ctx = NULL;
1180 state->dispatch_recv = cli->dispatch_recv;
1184 /* Out parameters */
1187 ZERO_STRUCT(state->orig.out.result);
1189 if (DEBUGLEVEL >= 10) {
1190 NDR_PRINT_IN_DEBUG(DRSUAPI_REPLICA_MODIFY, &state->orig);
1193 /* make a temporary copy, that we pass to the dispatch function */
1194 state->tmp = state->orig;
1196 subreq = cli->dispatch_send(state, ev, cli,
1198 NDR_DRSUAPI_REPLICA_MODIFY,
1200 if (tevent_req_nomem(subreq, req)) {
1201 return tevent_req_post(req, ev);
1203 tevent_req_set_callback(subreq, rpccli_DRSUAPI_REPLICA_MODIFY_done, req);
1207 static void rpccli_DRSUAPI_REPLICA_MODIFY_done(struct tevent_req *subreq)
1209 struct tevent_req *req = tevent_req_callback_data(
1210 subreq, struct tevent_req);
1211 struct rpccli_DRSUAPI_REPLICA_MODIFY_state *state = tevent_req_data(
1212 req, struct rpccli_DRSUAPI_REPLICA_MODIFY_state);
1214 TALLOC_CTX *mem_ctx;
1216 if (state->out_mem_ctx) {
1217 mem_ctx = state->out_mem_ctx;
1222 status = state->dispatch_recv(subreq, mem_ctx);
1223 TALLOC_FREE(subreq);
1224 if (!NT_STATUS_IS_OK(status)) {
1225 tevent_req_nterror(req, status);
1229 /* Copy out parameters */
1232 state->orig.out.result = state->tmp.out.result;
1234 /* Reset temporary structure */
1235 ZERO_STRUCT(state->tmp);
1237 if (DEBUGLEVEL >= 10) {
1238 NDR_PRINT_OUT_DEBUG(DRSUAPI_REPLICA_MODIFY, &state->orig);
1241 tevent_req_done(req);
1244 NTSTATUS rpccli_DRSUAPI_REPLICA_MODIFY_recv(struct tevent_req *req,
1245 TALLOC_CTX *mem_ctx,
1248 struct rpccli_DRSUAPI_REPLICA_MODIFY_state *state = tevent_req_data(
1249 req, struct rpccli_DRSUAPI_REPLICA_MODIFY_state);
1252 if (tevent_req_is_nterror(req, &status)) {
1253 tevent_req_received(req);
1257 /* Steal possbile out parameters to the callers context */
1258 talloc_steal(mem_ctx, state->out_mem_ctx);
1261 *result = state->orig.out.result;
1263 tevent_req_received(req);
1264 return NT_STATUS_OK;
1267 NTSTATUS rpccli_DRSUAPI_REPLICA_MODIFY(struct rpc_pipe_client *cli,
1268 TALLOC_CTX *mem_ctx,
1271 struct DRSUAPI_REPLICA_MODIFY r;
1276 if (DEBUGLEVEL >= 10) {
1277 NDR_PRINT_IN_DEBUG(DRSUAPI_REPLICA_MODIFY, &r);
1280 status = cli->dispatch(cli,
1283 NDR_DRSUAPI_REPLICA_MODIFY,
1286 if (!NT_STATUS_IS_OK(status)) {
1290 if (DEBUGLEVEL >= 10) {
1291 NDR_PRINT_OUT_DEBUG(DRSUAPI_REPLICA_MODIFY, &r);
1294 if (NT_STATUS_IS_ERR(status)) {
1298 /* Return variables */
1302 *werror = r.out.result;
1305 return werror_to_ntstatus(r.out.result);
1308 struct rpccli_DRSUAPI_VERIFY_NAMES_state {
1309 struct DRSUAPI_VERIFY_NAMES orig;
1310 struct DRSUAPI_VERIFY_NAMES tmp;
1311 TALLOC_CTX *out_mem_ctx;
1312 NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx);
1315 static void rpccli_DRSUAPI_VERIFY_NAMES_done(struct tevent_req *subreq);
1317 struct tevent_req *rpccli_DRSUAPI_VERIFY_NAMES_send(TALLOC_CTX *mem_ctx,
1318 struct tevent_context *ev,
1319 struct rpc_pipe_client *cli)
1321 struct tevent_req *req;
1322 struct rpccli_DRSUAPI_VERIFY_NAMES_state *state;
1323 struct tevent_req *subreq;
1325 req = tevent_req_create(mem_ctx, &state,
1326 struct rpccli_DRSUAPI_VERIFY_NAMES_state);
1330 state->out_mem_ctx = NULL;
1331 state->dispatch_recv = cli->dispatch_recv;
1335 /* Out parameters */
1338 ZERO_STRUCT(state->orig.out.result);
1340 if (DEBUGLEVEL >= 10) {
1341 NDR_PRINT_IN_DEBUG(DRSUAPI_VERIFY_NAMES, &state->orig);
1344 /* make a temporary copy, that we pass to the dispatch function */
1345 state->tmp = state->orig;
1347 subreq = cli->dispatch_send(state, ev, cli,
1349 NDR_DRSUAPI_VERIFY_NAMES,
1351 if (tevent_req_nomem(subreq, req)) {
1352 return tevent_req_post(req, ev);
1354 tevent_req_set_callback(subreq, rpccli_DRSUAPI_VERIFY_NAMES_done, req);
1358 static void rpccli_DRSUAPI_VERIFY_NAMES_done(struct tevent_req *subreq)
1360 struct tevent_req *req = tevent_req_callback_data(
1361 subreq, struct tevent_req);
1362 struct rpccli_DRSUAPI_VERIFY_NAMES_state *state = tevent_req_data(
1363 req, struct rpccli_DRSUAPI_VERIFY_NAMES_state);
1365 TALLOC_CTX *mem_ctx;
1367 if (state->out_mem_ctx) {
1368 mem_ctx = state->out_mem_ctx;
1373 status = state->dispatch_recv(subreq, mem_ctx);
1374 TALLOC_FREE(subreq);
1375 if (!NT_STATUS_IS_OK(status)) {
1376 tevent_req_nterror(req, status);
1380 /* Copy out parameters */
1383 state->orig.out.result = state->tmp.out.result;
1385 /* Reset temporary structure */
1386 ZERO_STRUCT(state->tmp);
1388 if (DEBUGLEVEL >= 10) {
1389 NDR_PRINT_OUT_DEBUG(DRSUAPI_VERIFY_NAMES, &state->orig);
1392 tevent_req_done(req);
1395 NTSTATUS rpccli_DRSUAPI_VERIFY_NAMES_recv(struct tevent_req *req,
1396 TALLOC_CTX *mem_ctx,
1399 struct rpccli_DRSUAPI_VERIFY_NAMES_state *state = tevent_req_data(
1400 req, struct rpccli_DRSUAPI_VERIFY_NAMES_state);
1403 if (tevent_req_is_nterror(req, &status)) {
1404 tevent_req_received(req);
1408 /* Steal possbile out parameters to the callers context */
1409 talloc_steal(mem_ctx, state->out_mem_ctx);
1412 *result = state->orig.out.result;
1414 tevent_req_received(req);
1415 return NT_STATUS_OK;
1418 NTSTATUS rpccli_DRSUAPI_VERIFY_NAMES(struct rpc_pipe_client *cli,
1419 TALLOC_CTX *mem_ctx,
1422 struct DRSUAPI_VERIFY_NAMES r;
1427 if (DEBUGLEVEL >= 10) {
1428 NDR_PRINT_IN_DEBUG(DRSUAPI_VERIFY_NAMES, &r);
1431 status = cli->dispatch(cli,
1434 NDR_DRSUAPI_VERIFY_NAMES,
1437 if (!NT_STATUS_IS_OK(status)) {
1441 if (DEBUGLEVEL >= 10) {
1442 NDR_PRINT_OUT_DEBUG(DRSUAPI_VERIFY_NAMES, &r);
1445 if (NT_STATUS_IS_ERR(status)) {
1449 /* Return variables */
1453 *werror = r.out.result;
1456 return werror_to_ntstatus(r.out.result);
1459 struct rpccli_drsuapi_DsGetMemberships_state {
1460 struct drsuapi_DsGetMemberships orig;
1461 struct drsuapi_DsGetMemberships tmp;
1462 TALLOC_CTX *out_mem_ctx;
1463 NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx);
1466 static void rpccli_drsuapi_DsGetMemberships_done(struct tevent_req *subreq);
1468 struct tevent_req *rpccli_drsuapi_DsGetMemberships_send(TALLOC_CTX *mem_ctx,
1469 struct tevent_context *ev,
1470 struct rpc_pipe_client *cli,
1471 struct policy_handle *_bind_handle /* [in] [ref] */,
1472 int32_t _level /* [in] */,
1473 union drsuapi_DsGetMembershipsRequest *_req /* [in] [ref,switch_is(level)] */,
1474 int32_t *_level_out /* [out] [ref] */,
1475 union drsuapi_DsGetMembershipsCtr *_ctr /* [out] [ref,switch_is(*level_out)] */)
1477 struct tevent_req *req;
1478 struct rpccli_drsuapi_DsGetMemberships_state *state;
1479 struct tevent_req *subreq;
1481 req = tevent_req_create(mem_ctx, &state,
1482 struct rpccli_drsuapi_DsGetMemberships_state);
1486 state->out_mem_ctx = NULL;
1487 state->dispatch_recv = cli->dispatch_recv;
1490 state->orig.in.bind_handle = _bind_handle;
1491 state->orig.in.level = _level;
1492 state->orig.in.req = _req;
1494 /* Out parameters */
1495 state->orig.out.level_out = _level_out;
1496 state->orig.out.ctr = _ctr;
1499 ZERO_STRUCT(state->orig.out.result);
1501 if (DEBUGLEVEL >= 10) {
1502 NDR_PRINT_IN_DEBUG(drsuapi_DsGetMemberships, &state->orig);
1505 state->out_mem_ctx = talloc_named_const(state, 0,
1506 "rpccli_drsuapi_DsGetMemberships_out_memory");
1507 if (tevent_req_nomem(state->out_mem_ctx, req)) {
1508 return tevent_req_post(req, ev);
1511 /* make a temporary copy, that we pass to the dispatch function */
1512 state->tmp = state->orig;
1514 subreq = cli->dispatch_send(state, ev, cli,
1516 NDR_DRSUAPI_DSGETMEMBERSHIPS,
1518 if (tevent_req_nomem(subreq, req)) {
1519 return tevent_req_post(req, ev);
1521 tevent_req_set_callback(subreq, rpccli_drsuapi_DsGetMemberships_done, req);
1525 static void rpccli_drsuapi_DsGetMemberships_done(struct tevent_req *subreq)
1527 struct tevent_req *req = tevent_req_callback_data(
1528 subreq, struct tevent_req);
1529 struct rpccli_drsuapi_DsGetMemberships_state *state = tevent_req_data(
1530 req, struct rpccli_drsuapi_DsGetMemberships_state);
1532 TALLOC_CTX *mem_ctx;
1534 if (state->out_mem_ctx) {
1535 mem_ctx = state->out_mem_ctx;
1540 status = state->dispatch_recv(subreq, mem_ctx);
1541 TALLOC_FREE(subreq);
1542 if (!NT_STATUS_IS_OK(status)) {
1543 tevent_req_nterror(req, status);
1547 /* Copy out parameters */
1548 *state->orig.out.level_out = *state->tmp.out.level_out;
1549 *state->orig.out.ctr = *state->tmp.out.ctr;
1552 state->orig.out.result = state->tmp.out.result;
1554 /* Reset temporary structure */
1555 ZERO_STRUCT(state->tmp);
1557 if (DEBUGLEVEL >= 10) {
1558 NDR_PRINT_OUT_DEBUG(drsuapi_DsGetMemberships, &state->orig);
1561 tevent_req_done(req);
1564 NTSTATUS rpccli_drsuapi_DsGetMemberships_recv(struct tevent_req *req,
1565 TALLOC_CTX *mem_ctx,
1568 struct rpccli_drsuapi_DsGetMemberships_state *state = tevent_req_data(
1569 req, struct rpccli_drsuapi_DsGetMemberships_state);
1572 if (tevent_req_is_nterror(req, &status)) {
1573 tevent_req_received(req);
1577 /* Steal possbile out parameters to the callers context */
1578 talloc_steal(mem_ctx, state->out_mem_ctx);
1581 *result = state->orig.out.result;
1583 tevent_req_received(req);
1584 return NT_STATUS_OK;
1587 NTSTATUS rpccli_drsuapi_DsGetMemberships(struct rpc_pipe_client *cli,
1588 TALLOC_CTX *mem_ctx,
1589 struct policy_handle *bind_handle /* [in] [ref] */,
1590 int32_t level /* [in] */,
1591 union drsuapi_DsGetMembershipsRequest *req /* [in] [ref,switch_is(level)] */,
1592 int32_t *level_out /* [out] [ref] */,
1593 union drsuapi_DsGetMembershipsCtr *ctr /* [out] [ref,switch_is(*level_out)] */,
1596 struct drsuapi_DsGetMemberships r;
1600 r.in.bind_handle = bind_handle;
1604 if (DEBUGLEVEL >= 10) {
1605 NDR_PRINT_IN_DEBUG(drsuapi_DsGetMemberships, &r);
1608 status = cli->dispatch(cli,
1611 NDR_DRSUAPI_DSGETMEMBERSHIPS,
1614 if (!NT_STATUS_IS_OK(status)) {
1618 if (DEBUGLEVEL >= 10) {
1619 NDR_PRINT_OUT_DEBUG(drsuapi_DsGetMemberships, &r);
1622 if (NT_STATUS_IS_ERR(status)) {
1626 /* Return variables */
1627 *level_out = *r.out.level_out;
1632 *werror = r.out.result;
1635 return werror_to_ntstatus(r.out.result);
1638 struct rpccli_DRSUAPI_INTER_DOMAIN_MOVE_state {
1639 struct DRSUAPI_INTER_DOMAIN_MOVE orig;
1640 struct DRSUAPI_INTER_DOMAIN_MOVE tmp;
1641 TALLOC_CTX *out_mem_ctx;
1642 NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx);
1645 static void rpccli_DRSUAPI_INTER_DOMAIN_MOVE_done(struct tevent_req *subreq);
1647 struct tevent_req *rpccli_DRSUAPI_INTER_DOMAIN_MOVE_send(TALLOC_CTX *mem_ctx,
1648 struct tevent_context *ev,
1649 struct rpc_pipe_client *cli)
1651 struct tevent_req *req;
1652 struct rpccli_DRSUAPI_INTER_DOMAIN_MOVE_state *state;
1653 struct tevent_req *subreq;
1655 req = tevent_req_create(mem_ctx, &state,
1656 struct rpccli_DRSUAPI_INTER_DOMAIN_MOVE_state);
1660 state->out_mem_ctx = NULL;
1661 state->dispatch_recv = cli->dispatch_recv;
1665 /* Out parameters */
1668 ZERO_STRUCT(state->orig.out.result);
1670 if (DEBUGLEVEL >= 10) {
1671 NDR_PRINT_IN_DEBUG(DRSUAPI_INTER_DOMAIN_MOVE, &state->orig);
1674 /* make a temporary copy, that we pass to the dispatch function */
1675 state->tmp = state->orig;
1677 subreq = cli->dispatch_send(state, ev, cli,
1679 NDR_DRSUAPI_INTER_DOMAIN_MOVE,
1681 if (tevent_req_nomem(subreq, req)) {
1682 return tevent_req_post(req, ev);
1684 tevent_req_set_callback(subreq, rpccli_DRSUAPI_INTER_DOMAIN_MOVE_done, req);
1688 static void rpccli_DRSUAPI_INTER_DOMAIN_MOVE_done(struct tevent_req *subreq)
1690 struct tevent_req *req = tevent_req_callback_data(
1691 subreq, struct tevent_req);
1692 struct rpccli_DRSUAPI_INTER_DOMAIN_MOVE_state *state = tevent_req_data(
1693 req, struct rpccli_DRSUAPI_INTER_DOMAIN_MOVE_state);
1695 TALLOC_CTX *mem_ctx;
1697 if (state->out_mem_ctx) {
1698 mem_ctx = state->out_mem_ctx;
1703 status = state->dispatch_recv(subreq, mem_ctx);
1704 TALLOC_FREE(subreq);
1705 if (!NT_STATUS_IS_OK(status)) {
1706 tevent_req_nterror(req, status);
1710 /* Copy out parameters */
1713 state->orig.out.result = state->tmp.out.result;
1715 /* Reset temporary structure */
1716 ZERO_STRUCT(state->tmp);
1718 if (DEBUGLEVEL >= 10) {
1719 NDR_PRINT_OUT_DEBUG(DRSUAPI_INTER_DOMAIN_MOVE, &state->orig);
1722 tevent_req_done(req);
1725 NTSTATUS rpccli_DRSUAPI_INTER_DOMAIN_MOVE_recv(struct tevent_req *req,
1726 TALLOC_CTX *mem_ctx,
1729 struct rpccli_DRSUAPI_INTER_DOMAIN_MOVE_state *state = tevent_req_data(
1730 req, struct rpccli_DRSUAPI_INTER_DOMAIN_MOVE_state);
1733 if (tevent_req_is_nterror(req, &status)) {
1734 tevent_req_received(req);
1738 /* Steal possbile out parameters to the callers context */
1739 talloc_steal(mem_ctx, state->out_mem_ctx);
1742 *result = state->orig.out.result;
1744 tevent_req_received(req);
1745 return NT_STATUS_OK;
1748 NTSTATUS rpccli_DRSUAPI_INTER_DOMAIN_MOVE(struct rpc_pipe_client *cli,
1749 TALLOC_CTX *mem_ctx,
1752 struct DRSUAPI_INTER_DOMAIN_MOVE r;
1757 if (DEBUGLEVEL >= 10) {
1758 NDR_PRINT_IN_DEBUG(DRSUAPI_INTER_DOMAIN_MOVE, &r);
1761 status = cli->dispatch(cli,
1764 NDR_DRSUAPI_INTER_DOMAIN_MOVE,
1767 if (!NT_STATUS_IS_OK(status)) {
1771 if (DEBUGLEVEL >= 10) {
1772 NDR_PRINT_OUT_DEBUG(DRSUAPI_INTER_DOMAIN_MOVE, &r);
1775 if (NT_STATUS_IS_ERR(status)) {
1779 /* Return variables */
1783 *werror = r.out.result;
1786 return werror_to_ntstatus(r.out.result);
1789 struct rpccli_drsuapi_DsGetNT4ChangeLog_state {
1790 struct drsuapi_DsGetNT4ChangeLog orig;
1791 struct drsuapi_DsGetNT4ChangeLog tmp;
1792 TALLOC_CTX *out_mem_ctx;
1793 NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx);
1796 static void rpccli_drsuapi_DsGetNT4ChangeLog_done(struct tevent_req *subreq);
1798 struct tevent_req *rpccli_drsuapi_DsGetNT4ChangeLog_send(TALLOC_CTX *mem_ctx,
1799 struct tevent_context *ev,
1800 struct rpc_pipe_client *cli,
1801 struct policy_handle *_bind_handle /* [in] [ref] */,
1802 uint32_t _level /* [in] */,
1803 union drsuapi_DsGetNT4ChangeLogRequest *_req /* [in] [ref,switch_is(level)] */,
1804 uint32_t *_level_out /* [out] [ref] */,
1805 union drsuapi_DsGetNT4ChangeLogInfo *_info /* [out] [ref,switch_is(*level_out)] */)
1807 struct tevent_req *req;
1808 struct rpccli_drsuapi_DsGetNT4ChangeLog_state *state;
1809 struct tevent_req *subreq;
1811 req = tevent_req_create(mem_ctx, &state,
1812 struct rpccli_drsuapi_DsGetNT4ChangeLog_state);
1816 state->out_mem_ctx = NULL;
1817 state->dispatch_recv = cli->dispatch_recv;
1820 state->orig.in.bind_handle = _bind_handle;
1821 state->orig.in.level = _level;
1822 state->orig.in.req = _req;
1824 /* Out parameters */
1825 state->orig.out.level_out = _level_out;
1826 state->orig.out.info = _info;
1829 ZERO_STRUCT(state->orig.out.result);
1831 if (DEBUGLEVEL >= 10) {
1832 NDR_PRINT_IN_DEBUG(drsuapi_DsGetNT4ChangeLog, &state->orig);
1835 state->out_mem_ctx = talloc_named_const(state, 0,
1836 "rpccli_drsuapi_DsGetNT4ChangeLog_out_memory");
1837 if (tevent_req_nomem(state->out_mem_ctx, req)) {
1838 return tevent_req_post(req, ev);
1841 /* make a temporary copy, that we pass to the dispatch function */
1842 state->tmp = state->orig;
1844 subreq = cli->dispatch_send(state, ev, cli,
1846 NDR_DRSUAPI_DSGETNT4CHANGELOG,
1848 if (tevent_req_nomem(subreq, req)) {
1849 return tevent_req_post(req, ev);
1851 tevent_req_set_callback(subreq, rpccli_drsuapi_DsGetNT4ChangeLog_done, req);
1855 static void rpccli_drsuapi_DsGetNT4ChangeLog_done(struct tevent_req *subreq)
1857 struct tevent_req *req = tevent_req_callback_data(
1858 subreq, struct tevent_req);
1859 struct rpccli_drsuapi_DsGetNT4ChangeLog_state *state = tevent_req_data(
1860 req, struct rpccli_drsuapi_DsGetNT4ChangeLog_state);
1862 TALLOC_CTX *mem_ctx;
1864 if (state->out_mem_ctx) {
1865 mem_ctx = state->out_mem_ctx;
1870 status = state->dispatch_recv(subreq, mem_ctx);
1871 TALLOC_FREE(subreq);
1872 if (!NT_STATUS_IS_OK(status)) {
1873 tevent_req_nterror(req, status);
1877 /* Copy out parameters */
1878 *state->orig.out.level_out = *state->tmp.out.level_out;
1879 *state->orig.out.info = *state->tmp.out.info;
1882 state->orig.out.result = state->tmp.out.result;
1884 /* Reset temporary structure */
1885 ZERO_STRUCT(state->tmp);
1887 if (DEBUGLEVEL >= 10) {
1888 NDR_PRINT_OUT_DEBUG(drsuapi_DsGetNT4ChangeLog, &state->orig);
1891 tevent_req_done(req);
1894 NTSTATUS rpccli_drsuapi_DsGetNT4ChangeLog_recv(struct tevent_req *req,
1895 TALLOC_CTX *mem_ctx,
1898 struct rpccli_drsuapi_DsGetNT4ChangeLog_state *state = tevent_req_data(
1899 req, struct rpccli_drsuapi_DsGetNT4ChangeLog_state);
1902 if (tevent_req_is_nterror(req, &status)) {
1903 tevent_req_received(req);
1907 /* Steal possbile out parameters to the callers context */
1908 talloc_steal(mem_ctx, state->out_mem_ctx);
1911 *result = state->orig.out.result;
1913 tevent_req_received(req);
1914 return NT_STATUS_OK;
1917 NTSTATUS rpccli_drsuapi_DsGetNT4ChangeLog(struct rpc_pipe_client *cli,
1918 TALLOC_CTX *mem_ctx,
1919 struct policy_handle *bind_handle /* [in] [ref] */,
1920 uint32_t level /* [in] */,
1921 union drsuapi_DsGetNT4ChangeLogRequest *req /* [in] [ref,switch_is(level)] */,
1922 uint32_t *level_out /* [out] [ref] */,
1923 union drsuapi_DsGetNT4ChangeLogInfo *info /* [out] [ref,switch_is(*level_out)] */,
1926 struct drsuapi_DsGetNT4ChangeLog r;
1930 r.in.bind_handle = bind_handle;
1934 if (DEBUGLEVEL >= 10) {
1935 NDR_PRINT_IN_DEBUG(drsuapi_DsGetNT4ChangeLog, &r);
1938 status = cli->dispatch(cli,
1941 NDR_DRSUAPI_DSGETNT4CHANGELOG,
1944 if (!NT_STATUS_IS_OK(status)) {
1948 if (DEBUGLEVEL >= 10) {
1949 NDR_PRINT_OUT_DEBUG(drsuapi_DsGetNT4ChangeLog, &r);
1952 if (NT_STATUS_IS_ERR(status)) {
1956 /* Return variables */
1957 *level_out = *r.out.level_out;
1958 *info = *r.out.info;
1962 *werror = r.out.result;
1965 return werror_to_ntstatus(r.out.result);
1968 struct rpccli_drsuapi_DsCrackNames_state {
1969 struct drsuapi_DsCrackNames orig;
1970 struct drsuapi_DsCrackNames tmp;
1971 TALLOC_CTX *out_mem_ctx;
1972 NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx);
1975 static void rpccli_drsuapi_DsCrackNames_done(struct tevent_req *subreq);
1977 struct tevent_req *rpccli_drsuapi_DsCrackNames_send(TALLOC_CTX *mem_ctx,
1978 struct tevent_context *ev,
1979 struct rpc_pipe_client *cli,
1980 struct policy_handle *_bind_handle /* [in] [ref] */,
1981 int32_t _level /* [in] */,
1982 union drsuapi_DsNameRequest *_req /* [in] [ref,switch_is(level)] */,
1983 int32_t *_level_out /* [out] [ref] */,
1984 union drsuapi_DsNameCtr *_ctr /* [out] [ref,switch_is(*level_out)] */)
1986 struct tevent_req *req;
1987 struct rpccli_drsuapi_DsCrackNames_state *state;
1988 struct tevent_req *subreq;
1990 req = tevent_req_create(mem_ctx, &state,
1991 struct rpccli_drsuapi_DsCrackNames_state);
1995 state->out_mem_ctx = NULL;
1996 state->dispatch_recv = cli->dispatch_recv;
1999 state->orig.in.bind_handle = _bind_handle;
2000 state->orig.in.level = _level;
2001 state->orig.in.req = _req;
2003 /* Out parameters */
2004 state->orig.out.level_out = _level_out;
2005 state->orig.out.ctr = _ctr;
2008 ZERO_STRUCT(state->orig.out.result);
2010 if (DEBUGLEVEL >= 10) {
2011 NDR_PRINT_IN_DEBUG(drsuapi_DsCrackNames, &state->orig);
2014 state->out_mem_ctx = talloc_named_const(state, 0,
2015 "rpccli_drsuapi_DsCrackNames_out_memory");
2016 if (tevent_req_nomem(state->out_mem_ctx, req)) {
2017 return tevent_req_post(req, ev);
2020 /* make a temporary copy, that we pass to the dispatch function */
2021 state->tmp = state->orig;
2023 subreq = cli->dispatch_send(state, ev, cli,
2025 NDR_DRSUAPI_DSCRACKNAMES,
2027 if (tevent_req_nomem(subreq, req)) {
2028 return tevent_req_post(req, ev);
2030 tevent_req_set_callback(subreq, rpccli_drsuapi_DsCrackNames_done, req);
2034 static void rpccli_drsuapi_DsCrackNames_done(struct tevent_req *subreq)
2036 struct tevent_req *req = tevent_req_callback_data(
2037 subreq, struct tevent_req);
2038 struct rpccli_drsuapi_DsCrackNames_state *state = tevent_req_data(
2039 req, struct rpccli_drsuapi_DsCrackNames_state);
2041 TALLOC_CTX *mem_ctx;
2043 if (state->out_mem_ctx) {
2044 mem_ctx = state->out_mem_ctx;
2049 status = state->dispatch_recv(subreq, mem_ctx);
2050 TALLOC_FREE(subreq);
2051 if (!NT_STATUS_IS_OK(status)) {
2052 tevent_req_nterror(req, status);
2056 /* Copy out parameters */
2057 *state->orig.out.level_out = *state->tmp.out.level_out;
2058 *state->orig.out.ctr = *state->tmp.out.ctr;
2061 state->orig.out.result = state->tmp.out.result;
2063 /* Reset temporary structure */
2064 ZERO_STRUCT(state->tmp);
2066 if (DEBUGLEVEL >= 10) {
2067 NDR_PRINT_OUT_DEBUG(drsuapi_DsCrackNames, &state->orig);
2070 tevent_req_done(req);
2073 NTSTATUS rpccli_drsuapi_DsCrackNames_recv(struct tevent_req *req,
2074 TALLOC_CTX *mem_ctx,
2077 struct rpccli_drsuapi_DsCrackNames_state *state = tevent_req_data(
2078 req, struct rpccli_drsuapi_DsCrackNames_state);
2081 if (tevent_req_is_nterror(req, &status)) {
2082 tevent_req_received(req);
2086 /* Steal possbile out parameters to the callers context */
2087 talloc_steal(mem_ctx, state->out_mem_ctx);
2090 *result = state->orig.out.result;
2092 tevent_req_received(req);
2093 return NT_STATUS_OK;
2096 NTSTATUS rpccli_drsuapi_DsCrackNames(struct rpc_pipe_client *cli,
2097 TALLOC_CTX *mem_ctx,
2098 struct policy_handle *bind_handle /* [in] [ref] */,
2099 int32_t level /* [in] */,
2100 union drsuapi_DsNameRequest *req /* [in] [ref,switch_is(level)] */,
2101 int32_t *level_out /* [out] [ref] */,
2102 union drsuapi_DsNameCtr *ctr /* [out] [ref,switch_is(*level_out)] */,
2105 struct drsuapi_DsCrackNames r;
2109 r.in.bind_handle = bind_handle;
2113 if (DEBUGLEVEL >= 10) {
2114 NDR_PRINT_IN_DEBUG(drsuapi_DsCrackNames, &r);
2117 status = cli->dispatch(cli,
2120 NDR_DRSUAPI_DSCRACKNAMES,
2123 if (!NT_STATUS_IS_OK(status)) {
2127 if (DEBUGLEVEL >= 10) {
2128 NDR_PRINT_OUT_DEBUG(drsuapi_DsCrackNames, &r);
2131 if (NT_STATUS_IS_ERR(status)) {
2135 /* Return variables */
2136 *level_out = *r.out.level_out;
2141 *werror = r.out.result;
2144 return werror_to_ntstatus(r.out.result);
2147 struct rpccli_drsuapi_DsWriteAccountSpn_state {
2148 struct drsuapi_DsWriteAccountSpn orig;
2149 struct drsuapi_DsWriteAccountSpn tmp;
2150 TALLOC_CTX *out_mem_ctx;
2151 NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx);
2154 static void rpccli_drsuapi_DsWriteAccountSpn_done(struct tevent_req *subreq);
2156 struct tevent_req *rpccli_drsuapi_DsWriteAccountSpn_send(TALLOC_CTX *mem_ctx,
2157 struct tevent_context *ev,
2158 struct rpc_pipe_client *cli,
2159 struct policy_handle *_bind_handle /* [in] [ref] */,
2160 int32_t _level /* [in] */,
2161 union drsuapi_DsWriteAccountSpnRequest *_req /* [in] [ref,switch_is(level)] */,
2162 int32_t *_level_out /* [out] [ref] */,
2163 union drsuapi_DsWriteAccountSpnResult *_res /* [out] [ref,switch_is(*level_out)] */)
2165 struct tevent_req *req;
2166 struct rpccli_drsuapi_DsWriteAccountSpn_state *state;
2167 struct tevent_req *subreq;
2169 req = tevent_req_create(mem_ctx, &state,
2170 struct rpccli_drsuapi_DsWriteAccountSpn_state);
2174 state->out_mem_ctx = NULL;
2175 state->dispatch_recv = cli->dispatch_recv;
2178 state->orig.in.bind_handle = _bind_handle;
2179 state->orig.in.level = _level;
2180 state->orig.in.req = _req;
2182 /* Out parameters */
2183 state->orig.out.level_out = _level_out;
2184 state->orig.out.res = _res;
2187 ZERO_STRUCT(state->orig.out.result);
2189 if (DEBUGLEVEL >= 10) {
2190 NDR_PRINT_IN_DEBUG(drsuapi_DsWriteAccountSpn, &state->orig);
2193 state->out_mem_ctx = talloc_named_const(state, 0,
2194 "rpccli_drsuapi_DsWriteAccountSpn_out_memory");
2195 if (tevent_req_nomem(state->out_mem_ctx, req)) {
2196 return tevent_req_post(req, ev);
2199 /* make a temporary copy, that we pass to the dispatch function */
2200 state->tmp = state->orig;
2202 subreq = cli->dispatch_send(state, ev, cli,
2204 NDR_DRSUAPI_DSWRITEACCOUNTSPN,
2206 if (tevent_req_nomem(subreq, req)) {
2207 return tevent_req_post(req, ev);
2209 tevent_req_set_callback(subreq, rpccli_drsuapi_DsWriteAccountSpn_done, req);
2213 static void rpccli_drsuapi_DsWriteAccountSpn_done(struct tevent_req *subreq)
2215 struct tevent_req *req = tevent_req_callback_data(
2216 subreq, struct tevent_req);
2217 struct rpccli_drsuapi_DsWriteAccountSpn_state *state = tevent_req_data(
2218 req, struct rpccli_drsuapi_DsWriteAccountSpn_state);
2220 TALLOC_CTX *mem_ctx;
2222 if (state->out_mem_ctx) {
2223 mem_ctx = state->out_mem_ctx;
2228 status = state->dispatch_recv(subreq, mem_ctx);
2229 TALLOC_FREE(subreq);
2230 if (!NT_STATUS_IS_OK(status)) {
2231 tevent_req_nterror(req, status);
2235 /* Copy out parameters */
2236 *state->orig.out.level_out = *state->tmp.out.level_out;
2237 *state->orig.out.res = *state->tmp.out.res;
2240 state->orig.out.result = state->tmp.out.result;
2242 /* Reset temporary structure */
2243 ZERO_STRUCT(state->tmp);
2245 if (DEBUGLEVEL >= 10) {
2246 NDR_PRINT_OUT_DEBUG(drsuapi_DsWriteAccountSpn, &state->orig);
2249 tevent_req_done(req);
2252 NTSTATUS rpccli_drsuapi_DsWriteAccountSpn_recv(struct tevent_req *req,
2253 TALLOC_CTX *mem_ctx,
2256 struct rpccli_drsuapi_DsWriteAccountSpn_state *state = tevent_req_data(
2257 req, struct rpccli_drsuapi_DsWriteAccountSpn_state);
2260 if (tevent_req_is_nterror(req, &status)) {
2261 tevent_req_received(req);
2265 /* Steal possbile out parameters to the callers context */
2266 talloc_steal(mem_ctx, state->out_mem_ctx);
2269 *result = state->orig.out.result;
2271 tevent_req_received(req);
2272 return NT_STATUS_OK;
2275 NTSTATUS rpccli_drsuapi_DsWriteAccountSpn(struct rpc_pipe_client *cli,
2276 TALLOC_CTX *mem_ctx,
2277 struct policy_handle *bind_handle /* [in] [ref] */,
2278 int32_t level /* [in] */,
2279 union drsuapi_DsWriteAccountSpnRequest *req /* [in] [ref,switch_is(level)] */,
2280 int32_t *level_out /* [out] [ref] */,
2281 union drsuapi_DsWriteAccountSpnResult *res /* [out] [ref,switch_is(*level_out)] */,
2284 struct drsuapi_DsWriteAccountSpn r;
2288 r.in.bind_handle = bind_handle;
2292 if (DEBUGLEVEL >= 10) {
2293 NDR_PRINT_IN_DEBUG(drsuapi_DsWriteAccountSpn, &r);
2296 status = cli->dispatch(cli,
2299 NDR_DRSUAPI_DSWRITEACCOUNTSPN,
2302 if (!NT_STATUS_IS_OK(status)) {
2306 if (DEBUGLEVEL >= 10) {
2307 NDR_PRINT_OUT_DEBUG(drsuapi_DsWriteAccountSpn, &r);
2310 if (NT_STATUS_IS_ERR(status)) {
2314 /* Return variables */
2315 *level_out = *r.out.level_out;
2320 *werror = r.out.result;
2323 return werror_to_ntstatus(r.out.result);
2326 struct rpccli_drsuapi_DsRemoveDSServer_state {
2327 struct drsuapi_DsRemoveDSServer orig;
2328 struct drsuapi_DsRemoveDSServer tmp;
2329 TALLOC_CTX *out_mem_ctx;
2330 NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx);
2333 static void rpccli_drsuapi_DsRemoveDSServer_done(struct tevent_req *subreq);
2335 struct tevent_req *rpccli_drsuapi_DsRemoveDSServer_send(TALLOC_CTX *mem_ctx,
2336 struct tevent_context *ev,
2337 struct rpc_pipe_client *cli,
2338 struct policy_handle *_bind_handle /* [in] [ref] */,
2339 int32_t _level /* [in] */,
2340 union drsuapi_DsRemoveDSServerRequest *_req /* [in] [ref,switch_is(level)] */,
2341 int32_t *_level_out /* [out] [ref] */,
2342 union drsuapi_DsRemoveDSServerResult *_res /* [out] [ref,switch_is(*level_out)] */)
2344 struct tevent_req *req;
2345 struct rpccli_drsuapi_DsRemoveDSServer_state *state;
2346 struct tevent_req *subreq;
2348 req = tevent_req_create(mem_ctx, &state,
2349 struct rpccli_drsuapi_DsRemoveDSServer_state);
2353 state->out_mem_ctx = NULL;
2354 state->dispatch_recv = cli->dispatch_recv;
2357 state->orig.in.bind_handle = _bind_handle;
2358 state->orig.in.level = _level;
2359 state->orig.in.req = _req;
2361 /* Out parameters */
2362 state->orig.out.level_out = _level_out;
2363 state->orig.out.res = _res;
2366 ZERO_STRUCT(state->orig.out.result);
2368 if (DEBUGLEVEL >= 10) {
2369 NDR_PRINT_IN_DEBUG(drsuapi_DsRemoveDSServer, &state->orig);
2372 state->out_mem_ctx = talloc_named_const(state, 0,
2373 "rpccli_drsuapi_DsRemoveDSServer_out_memory");
2374 if (tevent_req_nomem(state->out_mem_ctx, req)) {
2375 return tevent_req_post(req, ev);
2378 /* make a temporary copy, that we pass to the dispatch function */
2379 state->tmp = state->orig;
2381 subreq = cli->dispatch_send(state, ev, cli,
2383 NDR_DRSUAPI_DSREMOVEDSSERVER,
2385 if (tevent_req_nomem(subreq, req)) {
2386 return tevent_req_post(req, ev);
2388 tevent_req_set_callback(subreq, rpccli_drsuapi_DsRemoveDSServer_done, req);
2392 static void rpccli_drsuapi_DsRemoveDSServer_done(struct tevent_req *subreq)
2394 struct tevent_req *req = tevent_req_callback_data(
2395 subreq, struct tevent_req);
2396 struct rpccli_drsuapi_DsRemoveDSServer_state *state = tevent_req_data(
2397 req, struct rpccli_drsuapi_DsRemoveDSServer_state);
2399 TALLOC_CTX *mem_ctx;
2401 if (state->out_mem_ctx) {
2402 mem_ctx = state->out_mem_ctx;
2407 status = state->dispatch_recv(subreq, mem_ctx);
2408 TALLOC_FREE(subreq);
2409 if (!NT_STATUS_IS_OK(status)) {
2410 tevent_req_nterror(req, status);
2414 /* Copy out parameters */
2415 *state->orig.out.level_out = *state->tmp.out.level_out;
2416 *state->orig.out.res = *state->tmp.out.res;
2419 state->orig.out.result = state->tmp.out.result;
2421 /* Reset temporary structure */
2422 ZERO_STRUCT(state->tmp);
2424 if (DEBUGLEVEL >= 10) {
2425 NDR_PRINT_OUT_DEBUG(drsuapi_DsRemoveDSServer, &state->orig);
2428 tevent_req_done(req);
2431 NTSTATUS rpccli_drsuapi_DsRemoveDSServer_recv(struct tevent_req *req,
2432 TALLOC_CTX *mem_ctx,
2435 struct rpccli_drsuapi_DsRemoveDSServer_state *state = tevent_req_data(
2436 req, struct rpccli_drsuapi_DsRemoveDSServer_state);
2439 if (tevent_req_is_nterror(req, &status)) {
2440 tevent_req_received(req);
2444 /* Steal possbile out parameters to the callers context */
2445 talloc_steal(mem_ctx, state->out_mem_ctx);
2448 *result = state->orig.out.result;
2450 tevent_req_received(req);
2451 return NT_STATUS_OK;
2454 NTSTATUS rpccli_drsuapi_DsRemoveDSServer(struct rpc_pipe_client *cli,
2455 TALLOC_CTX *mem_ctx,
2456 struct policy_handle *bind_handle /* [in] [ref] */,
2457 int32_t level /* [in] */,
2458 union drsuapi_DsRemoveDSServerRequest *req /* [in] [ref,switch_is(level)] */,
2459 int32_t *level_out /* [out] [ref] */,
2460 union drsuapi_DsRemoveDSServerResult *res /* [out] [ref,switch_is(*level_out)] */,
2463 struct drsuapi_DsRemoveDSServer r;
2467 r.in.bind_handle = bind_handle;
2471 if (DEBUGLEVEL >= 10) {
2472 NDR_PRINT_IN_DEBUG(drsuapi_DsRemoveDSServer, &r);
2475 status = cli->dispatch(cli,
2478 NDR_DRSUAPI_DSREMOVEDSSERVER,
2481 if (!NT_STATUS_IS_OK(status)) {
2485 if (DEBUGLEVEL >= 10) {
2486 NDR_PRINT_OUT_DEBUG(drsuapi_DsRemoveDSServer, &r);
2489 if (NT_STATUS_IS_ERR(status)) {
2493 /* Return variables */
2494 *level_out = *r.out.level_out;
2499 *werror = r.out.result;
2502 return werror_to_ntstatus(r.out.result);
2505 struct rpccli_DRSUAPI_REMOVE_DS_DOMAIN_state {
2506 struct DRSUAPI_REMOVE_DS_DOMAIN orig;
2507 struct DRSUAPI_REMOVE_DS_DOMAIN tmp;
2508 TALLOC_CTX *out_mem_ctx;
2509 NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx);
2512 static void rpccli_DRSUAPI_REMOVE_DS_DOMAIN_done(struct tevent_req *subreq);
2514 struct tevent_req *rpccli_DRSUAPI_REMOVE_DS_DOMAIN_send(TALLOC_CTX *mem_ctx,
2515 struct tevent_context *ev,
2516 struct rpc_pipe_client *cli)
2518 struct tevent_req *req;
2519 struct rpccli_DRSUAPI_REMOVE_DS_DOMAIN_state *state;
2520 struct tevent_req *subreq;
2522 req = tevent_req_create(mem_ctx, &state,
2523 struct rpccli_DRSUAPI_REMOVE_DS_DOMAIN_state);
2527 state->out_mem_ctx = NULL;
2528 state->dispatch_recv = cli->dispatch_recv;
2532 /* Out parameters */
2535 ZERO_STRUCT(state->orig.out.result);
2537 if (DEBUGLEVEL >= 10) {
2538 NDR_PRINT_IN_DEBUG(DRSUAPI_REMOVE_DS_DOMAIN, &state->orig);
2541 /* make a temporary copy, that we pass to the dispatch function */
2542 state->tmp = state->orig;
2544 subreq = cli->dispatch_send(state, ev, cli,
2546 NDR_DRSUAPI_REMOVE_DS_DOMAIN,
2548 if (tevent_req_nomem(subreq, req)) {
2549 return tevent_req_post(req, ev);
2551 tevent_req_set_callback(subreq, rpccli_DRSUAPI_REMOVE_DS_DOMAIN_done, req);
2555 static void rpccli_DRSUAPI_REMOVE_DS_DOMAIN_done(struct tevent_req *subreq)
2557 struct tevent_req *req = tevent_req_callback_data(
2558 subreq, struct tevent_req);
2559 struct rpccli_DRSUAPI_REMOVE_DS_DOMAIN_state *state = tevent_req_data(
2560 req, struct rpccli_DRSUAPI_REMOVE_DS_DOMAIN_state);
2562 TALLOC_CTX *mem_ctx;
2564 if (state->out_mem_ctx) {
2565 mem_ctx = state->out_mem_ctx;
2570 status = state->dispatch_recv(subreq, mem_ctx);
2571 TALLOC_FREE(subreq);
2572 if (!NT_STATUS_IS_OK(status)) {
2573 tevent_req_nterror(req, status);
2577 /* Copy out parameters */
2580 state->orig.out.result = state->tmp.out.result;
2582 /* Reset temporary structure */
2583 ZERO_STRUCT(state->tmp);
2585 if (DEBUGLEVEL >= 10) {
2586 NDR_PRINT_OUT_DEBUG(DRSUAPI_REMOVE_DS_DOMAIN, &state->orig);
2589 tevent_req_done(req);
2592 NTSTATUS rpccli_DRSUAPI_REMOVE_DS_DOMAIN_recv(struct tevent_req *req,
2593 TALLOC_CTX *mem_ctx,
2596 struct rpccli_DRSUAPI_REMOVE_DS_DOMAIN_state *state = tevent_req_data(
2597 req, struct rpccli_DRSUAPI_REMOVE_DS_DOMAIN_state);
2600 if (tevent_req_is_nterror(req, &status)) {
2601 tevent_req_received(req);
2605 /* Steal possbile out parameters to the callers context */
2606 talloc_steal(mem_ctx, state->out_mem_ctx);
2609 *result = state->orig.out.result;
2611 tevent_req_received(req);
2612 return NT_STATUS_OK;
2615 NTSTATUS rpccli_DRSUAPI_REMOVE_DS_DOMAIN(struct rpc_pipe_client *cli,
2616 TALLOC_CTX *mem_ctx,
2619 struct DRSUAPI_REMOVE_DS_DOMAIN r;
2624 if (DEBUGLEVEL >= 10) {
2625 NDR_PRINT_IN_DEBUG(DRSUAPI_REMOVE_DS_DOMAIN, &r);
2628 status = cli->dispatch(cli,
2631 NDR_DRSUAPI_REMOVE_DS_DOMAIN,
2634 if (!NT_STATUS_IS_OK(status)) {
2638 if (DEBUGLEVEL >= 10) {
2639 NDR_PRINT_OUT_DEBUG(DRSUAPI_REMOVE_DS_DOMAIN, &r);
2642 if (NT_STATUS_IS_ERR(status)) {
2646 /* Return variables */
2650 *werror = r.out.result;
2653 return werror_to_ntstatus(r.out.result);
2656 struct rpccli_drsuapi_DsGetDomainControllerInfo_state {
2657 struct drsuapi_DsGetDomainControllerInfo orig;
2658 struct drsuapi_DsGetDomainControllerInfo tmp;
2659 TALLOC_CTX *out_mem_ctx;
2660 NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx);
2663 static void rpccli_drsuapi_DsGetDomainControllerInfo_done(struct tevent_req *subreq);
2665 struct tevent_req *rpccli_drsuapi_DsGetDomainControllerInfo_send(TALLOC_CTX *mem_ctx,
2666 struct tevent_context *ev,
2667 struct rpc_pipe_client *cli,
2668 struct policy_handle *_bind_handle /* [in] [ref] */,
2669 int32_t _level /* [in] */,
2670 union drsuapi_DsGetDCInfoRequest *_req /* [in] [ref,switch_is(level)] */,
2671 int32_t *_level_out /* [out] [ref] */,
2672 union drsuapi_DsGetDCInfoCtr *_ctr /* [out] [ref,switch_is(*level_out)] */)
2674 struct tevent_req *req;
2675 struct rpccli_drsuapi_DsGetDomainControllerInfo_state *state;
2676 struct tevent_req *subreq;
2678 req = tevent_req_create(mem_ctx, &state,
2679 struct rpccli_drsuapi_DsGetDomainControllerInfo_state);
2683 state->out_mem_ctx = NULL;
2684 state->dispatch_recv = cli->dispatch_recv;
2687 state->orig.in.bind_handle = _bind_handle;
2688 state->orig.in.level = _level;
2689 state->orig.in.req = _req;
2691 /* Out parameters */
2692 state->orig.out.level_out = _level_out;
2693 state->orig.out.ctr = _ctr;
2696 ZERO_STRUCT(state->orig.out.result);
2698 if (DEBUGLEVEL >= 10) {
2699 NDR_PRINT_IN_DEBUG(drsuapi_DsGetDomainControllerInfo, &state->orig);
2702 state->out_mem_ctx = talloc_named_const(state, 0,
2703 "rpccli_drsuapi_DsGetDomainControllerInfo_out_memory");
2704 if (tevent_req_nomem(state->out_mem_ctx, req)) {
2705 return tevent_req_post(req, ev);
2708 /* make a temporary copy, that we pass to the dispatch function */
2709 state->tmp = state->orig;
2711 subreq = cli->dispatch_send(state, ev, cli,
2713 NDR_DRSUAPI_DSGETDOMAINCONTROLLERINFO,
2715 if (tevent_req_nomem(subreq, req)) {
2716 return tevent_req_post(req, ev);
2718 tevent_req_set_callback(subreq, rpccli_drsuapi_DsGetDomainControllerInfo_done, req);
2722 static void rpccli_drsuapi_DsGetDomainControllerInfo_done(struct tevent_req *subreq)
2724 struct tevent_req *req = tevent_req_callback_data(
2725 subreq, struct tevent_req);
2726 struct rpccli_drsuapi_DsGetDomainControllerInfo_state *state = tevent_req_data(
2727 req, struct rpccli_drsuapi_DsGetDomainControllerInfo_state);
2729 TALLOC_CTX *mem_ctx;
2731 if (state->out_mem_ctx) {
2732 mem_ctx = state->out_mem_ctx;
2737 status = state->dispatch_recv(subreq, mem_ctx);
2738 TALLOC_FREE(subreq);
2739 if (!NT_STATUS_IS_OK(status)) {
2740 tevent_req_nterror(req, status);
2744 /* Copy out parameters */
2745 *state->orig.out.level_out = *state->tmp.out.level_out;
2746 *state->orig.out.ctr = *state->tmp.out.ctr;
2749 state->orig.out.result = state->tmp.out.result;
2751 /* Reset temporary structure */
2752 ZERO_STRUCT(state->tmp);
2754 if (DEBUGLEVEL >= 10) {
2755 NDR_PRINT_OUT_DEBUG(drsuapi_DsGetDomainControllerInfo, &state->orig);
2758 tevent_req_done(req);
2761 NTSTATUS rpccli_drsuapi_DsGetDomainControllerInfo_recv(struct tevent_req *req,
2762 TALLOC_CTX *mem_ctx,
2765 struct rpccli_drsuapi_DsGetDomainControllerInfo_state *state = tevent_req_data(
2766 req, struct rpccli_drsuapi_DsGetDomainControllerInfo_state);
2769 if (tevent_req_is_nterror(req, &status)) {
2770 tevent_req_received(req);
2774 /* Steal possbile out parameters to the callers context */
2775 talloc_steal(mem_ctx, state->out_mem_ctx);
2778 *result = state->orig.out.result;
2780 tevent_req_received(req);
2781 return NT_STATUS_OK;
2784 NTSTATUS rpccli_drsuapi_DsGetDomainControllerInfo(struct rpc_pipe_client *cli,
2785 TALLOC_CTX *mem_ctx,
2786 struct policy_handle *bind_handle /* [in] [ref] */,
2787 int32_t level /* [in] */,
2788 union drsuapi_DsGetDCInfoRequest *req /* [in] [ref,switch_is(level)] */,
2789 int32_t *level_out /* [out] [ref] */,
2790 union drsuapi_DsGetDCInfoCtr *ctr /* [out] [ref,switch_is(*level_out)] */,
2793 struct drsuapi_DsGetDomainControllerInfo r;
2797 r.in.bind_handle = bind_handle;
2801 if (DEBUGLEVEL >= 10) {
2802 NDR_PRINT_IN_DEBUG(drsuapi_DsGetDomainControllerInfo, &r);
2805 status = cli->dispatch(cli,
2808 NDR_DRSUAPI_DSGETDOMAINCONTROLLERINFO,
2811 if (!NT_STATUS_IS_OK(status)) {
2815 if (DEBUGLEVEL >= 10) {
2816 NDR_PRINT_OUT_DEBUG(drsuapi_DsGetDomainControllerInfo, &r);
2819 if (NT_STATUS_IS_ERR(status)) {
2823 /* Return variables */
2824 *level_out = *r.out.level_out;
2829 *werror = r.out.result;
2832 return werror_to_ntstatus(r.out.result);
2835 struct rpccli_drsuapi_DsAddEntry_state {
2836 struct drsuapi_DsAddEntry orig;
2837 struct drsuapi_DsAddEntry tmp;
2838 TALLOC_CTX *out_mem_ctx;
2839 NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx);
2842 static void rpccli_drsuapi_DsAddEntry_done(struct tevent_req *subreq);
2844 struct tevent_req *rpccli_drsuapi_DsAddEntry_send(TALLOC_CTX *mem_ctx,
2845 struct tevent_context *ev,
2846 struct rpc_pipe_client *cli,
2847 struct policy_handle *_bind_handle /* [in] [ref] */,
2848 int32_t _level /* [in] */,
2849 union drsuapi_DsAddEntryRequest *_req /* [in] [ref,switch_is(level)] */,
2850 int32_t *_level_out /* [out] [ref] */,
2851 union drsuapi_DsAddEntryCtr *_ctr /* [out] [ref,switch_is(*level_out)] */)
2853 struct tevent_req *req;
2854 struct rpccli_drsuapi_DsAddEntry_state *state;
2855 struct tevent_req *subreq;
2857 req = tevent_req_create(mem_ctx, &state,
2858 struct rpccli_drsuapi_DsAddEntry_state);
2862 state->out_mem_ctx = NULL;
2863 state->dispatch_recv = cli->dispatch_recv;
2866 state->orig.in.bind_handle = _bind_handle;
2867 state->orig.in.level = _level;
2868 state->orig.in.req = _req;
2870 /* Out parameters */
2871 state->orig.out.level_out = _level_out;
2872 state->orig.out.ctr = _ctr;
2875 ZERO_STRUCT(state->orig.out.result);
2877 if (DEBUGLEVEL >= 10) {
2878 NDR_PRINT_IN_DEBUG(drsuapi_DsAddEntry, &state->orig);
2881 state->out_mem_ctx = talloc_named_const(state, 0,
2882 "rpccli_drsuapi_DsAddEntry_out_memory");
2883 if (tevent_req_nomem(state->out_mem_ctx, req)) {
2884 return tevent_req_post(req, ev);
2887 /* make a temporary copy, that we pass to the dispatch function */
2888 state->tmp = state->orig;
2890 subreq = cli->dispatch_send(state, ev, cli,
2892 NDR_DRSUAPI_DSADDENTRY,
2894 if (tevent_req_nomem(subreq, req)) {
2895 return tevent_req_post(req, ev);
2897 tevent_req_set_callback(subreq, rpccli_drsuapi_DsAddEntry_done, req);
2901 static void rpccli_drsuapi_DsAddEntry_done(struct tevent_req *subreq)
2903 struct tevent_req *req = tevent_req_callback_data(
2904 subreq, struct tevent_req);
2905 struct rpccli_drsuapi_DsAddEntry_state *state = tevent_req_data(
2906 req, struct rpccli_drsuapi_DsAddEntry_state);
2908 TALLOC_CTX *mem_ctx;
2910 if (state->out_mem_ctx) {
2911 mem_ctx = state->out_mem_ctx;
2916 status = state->dispatch_recv(subreq, mem_ctx);
2917 TALLOC_FREE(subreq);
2918 if (!NT_STATUS_IS_OK(status)) {
2919 tevent_req_nterror(req, status);
2923 /* Copy out parameters */
2924 *state->orig.out.level_out = *state->tmp.out.level_out;
2925 *state->orig.out.ctr = *state->tmp.out.ctr;
2928 state->orig.out.result = state->tmp.out.result;
2930 /* Reset temporary structure */
2931 ZERO_STRUCT(state->tmp);
2933 if (DEBUGLEVEL >= 10) {
2934 NDR_PRINT_OUT_DEBUG(drsuapi_DsAddEntry, &state->orig);
2937 tevent_req_done(req);
2940 NTSTATUS rpccli_drsuapi_DsAddEntry_recv(struct tevent_req *req,
2941 TALLOC_CTX *mem_ctx,
2944 struct rpccli_drsuapi_DsAddEntry_state *state = tevent_req_data(
2945 req, struct rpccli_drsuapi_DsAddEntry_state);
2948 if (tevent_req_is_nterror(req, &status)) {
2949 tevent_req_received(req);
2953 /* Steal possbile out parameters to the callers context */
2954 talloc_steal(mem_ctx, state->out_mem_ctx);
2957 *result = state->orig.out.result;
2959 tevent_req_received(req);
2960 return NT_STATUS_OK;
2963 NTSTATUS rpccli_drsuapi_DsAddEntry(struct rpc_pipe_client *cli,
2964 TALLOC_CTX *mem_ctx,
2965 struct policy_handle *bind_handle /* [in] [ref] */,
2966 int32_t level /* [in] */,
2967 union drsuapi_DsAddEntryRequest *req /* [in] [ref,switch_is(level)] */,
2968 int32_t *level_out /* [out] [ref] */,
2969 union drsuapi_DsAddEntryCtr *ctr /* [out] [ref,switch_is(*level_out)] */,
2972 struct drsuapi_DsAddEntry r;
2976 r.in.bind_handle = bind_handle;
2980 if (DEBUGLEVEL >= 10) {
2981 NDR_PRINT_IN_DEBUG(drsuapi_DsAddEntry, &r);
2984 status = cli->dispatch(cli,
2987 NDR_DRSUAPI_DSADDENTRY,
2990 if (!NT_STATUS_IS_OK(status)) {
2994 if (DEBUGLEVEL >= 10) {
2995 NDR_PRINT_OUT_DEBUG(drsuapi_DsAddEntry, &r);
2998 if (NT_STATUS_IS_ERR(status)) {
3002 /* Return variables */
3003 *level_out = *r.out.level_out;
3008 *werror = r.out.result;
3011 return werror_to_ntstatus(r.out.result);
3014 struct rpccli_DRSUAPI_EXECUTE_KCC_state {
3015 struct DRSUAPI_EXECUTE_KCC orig;
3016 struct DRSUAPI_EXECUTE_KCC tmp;
3017 TALLOC_CTX *out_mem_ctx;
3018 NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx);
3021 static void rpccli_DRSUAPI_EXECUTE_KCC_done(struct tevent_req *subreq);
3023 struct tevent_req *rpccli_DRSUAPI_EXECUTE_KCC_send(TALLOC_CTX *mem_ctx,
3024 struct tevent_context *ev,
3025 struct rpc_pipe_client *cli)
3027 struct tevent_req *req;
3028 struct rpccli_DRSUAPI_EXECUTE_KCC_state *state;
3029 struct tevent_req *subreq;
3031 req = tevent_req_create(mem_ctx, &state,
3032 struct rpccli_DRSUAPI_EXECUTE_KCC_state);
3036 state->out_mem_ctx = NULL;
3037 state->dispatch_recv = cli->dispatch_recv;
3041 /* Out parameters */
3044 ZERO_STRUCT(state->orig.out.result);
3046 if (DEBUGLEVEL >= 10) {
3047 NDR_PRINT_IN_DEBUG(DRSUAPI_EXECUTE_KCC, &state->orig);
3050 /* make a temporary copy, that we pass to the dispatch function */
3051 state->tmp = state->orig;
3053 subreq = cli->dispatch_send(state, ev, cli,
3055 NDR_DRSUAPI_EXECUTE_KCC,
3057 if (tevent_req_nomem(subreq, req)) {
3058 return tevent_req_post(req, ev);
3060 tevent_req_set_callback(subreq, rpccli_DRSUAPI_EXECUTE_KCC_done, req);
3064 static void rpccli_DRSUAPI_EXECUTE_KCC_done(struct tevent_req *subreq)
3066 struct tevent_req *req = tevent_req_callback_data(
3067 subreq, struct tevent_req);
3068 struct rpccli_DRSUAPI_EXECUTE_KCC_state *state = tevent_req_data(
3069 req, struct rpccli_DRSUAPI_EXECUTE_KCC_state);
3071 TALLOC_CTX *mem_ctx;
3073 if (state->out_mem_ctx) {
3074 mem_ctx = state->out_mem_ctx;
3079 status = state->dispatch_recv(subreq, mem_ctx);
3080 TALLOC_FREE(subreq);
3081 if (!NT_STATUS_IS_OK(status)) {
3082 tevent_req_nterror(req, status);
3086 /* Copy out parameters */
3089 state->orig.out.result = state->tmp.out.result;
3091 /* Reset temporary structure */
3092 ZERO_STRUCT(state->tmp);
3094 if (DEBUGLEVEL >= 10) {
3095 NDR_PRINT_OUT_DEBUG(DRSUAPI_EXECUTE_KCC, &state->orig);
3098 tevent_req_done(req);
3101 NTSTATUS rpccli_DRSUAPI_EXECUTE_KCC_recv(struct tevent_req *req,
3102 TALLOC_CTX *mem_ctx,
3105 struct rpccli_DRSUAPI_EXECUTE_KCC_state *state = tevent_req_data(
3106 req, struct rpccli_DRSUAPI_EXECUTE_KCC_state);
3109 if (tevent_req_is_nterror(req, &status)) {
3110 tevent_req_received(req);
3114 /* Steal possbile out parameters to the callers context */
3115 talloc_steal(mem_ctx, state->out_mem_ctx);
3118 *result = state->orig.out.result;
3120 tevent_req_received(req);
3121 return NT_STATUS_OK;
3124 NTSTATUS rpccli_DRSUAPI_EXECUTE_KCC(struct rpc_pipe_client *cli,
3125 TALLOC_CTX *mem_ctx,
3128 struct DRSUAPI_EXECUTE_KCC r;
3133 if (DEBUGLEVEL >= 10) {
3134 NDR_PRINT_IN_DEBUG(DRSUAPI_EXECUTE_KCC, &r);
3137 status = cli->dispatch(cli,
3140 NDR_DRSUAPI_EXECUTE_KCC,
3143 if (!NT_STATUS_IS_OK(status)) {
3147 if (DEBUGLEVEL >= 10) {
3148 NDR_PRINT_OUT_DEBUG(DRSUAPI_EXECUTE_KCC, &r);
3151 if (NT_STATUS_IS_ERR(status)) {
3155 /* Return variables */
3159 *werror = r.out.result;
3162 return werror_to_ntstatus(r.out.result);
3165 struct rpccli_drsuapi_DsReplicaGetInfo_state {
3166 struct drsuapi_DsReplicaGetInfo orig;
3167 struct drsuapi_DsReplicaGetInfo tmp;
3168 TALLOC_CTX *out_mem_ctx;
3169 NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx);
3172 static void rpccli_drsuapi_DsReplicaGetInfo_done(struct tevent_req *subreq);
3174 struct tevent_req *rpccli_drsuapi_DsReplicaGetInfo_send(TALLOC_CTX *mem_ctx,
3175 struct tevent_context *ev,
3176 struct rpc_pipe_client *cli,
3177 struct policy_handle *_bind_handle /* [in] [ref] */,
3178 enum drsuapi_DsReplicaGetInfoLevel _level /* [in] */,
3179 union drsuapi_DsReplicaGetInfoRequest *_req /* [in] [ref,switch_is(level)] */,
3180 enum drsuapi_DsReplicaInfoType *_info_type /* [out] [ref] */,
3181 union drsuapi_DsReplicaInfo *_info /* [out] [ref,switch_is(*info_type)] */)
3183 struct tevent_req *req;
3184 struct rpccli_drsuapi_DsReplicaGetInfo_state *state;
3185 struct tevent_req *subreq;
3187 req = tevent_req_create(mem_ctx, &state,
3188 struct rpccli_drsuapi_DsReplicaGetInfo_state);
3192 state->out_mem_ctx = NULL;
3193 state->dispatch_recv = cli->dispatch_recv;
3196 state->orig.in.bind_handle = _bind_handle;
3197 state->orig.in.level = _level;
3198 state->orig.in.req = _req;
3200 /* Out parameters */
3201 state->orig.out.info_type = _info_type;
3202 state->orig.out.info = _info;
3205 ZERO_STRUCT(state->orig.out.result);
3207 if (DEBUGLEVEL >= 10) {
3208 NDR_PRINT_IN_DEBUG(drsuapi_DsReplicaGetInfo, &state->orig);
3211 state->out_mem_ctx = talloc_named_const(state, 0,
3212 "rpccli_drsuapi_DsReplicaGetInfo_out_memory");
3213 if (tevent_req_nomem(state->out_mem_ctx, req)) {
3214 return tevent_req_post(req, ev);
3217 /* make a temporary copy, that we pass to the dispatch function */
3218 state->tmp = state->orig;
3220 subreq = cli->dispatch_send(state, ev, cli,
3222 NDR_DRSUAPI_DSREPLICAGETINFO,
3224 if (tevent_req_nomem(subreq, req)) {
3225 return tevent_req_post(req, ev);
3227 tevent_req_set_callback(subreq, rpccli_drsuapi_DsReplicaGetInfo_done, req);
3231 static void rpccli_drsuapi_DsReplicaGetInfo_done(struct tevent_req *subreq)
3233 struct tevent_req *req = tevent_req_callback_data(
3234 subreq, struct tevent_req);
3235 struct rpccli_drsuapi_DsReplicaGetInfo_state *state = tevent_req_data(
3236 req, struct rpccli_drsuapi_DsReplicaGetInfo_state);
3238 TALLOC_CTX *mem_ctx;
3240 if (state->out_mem_ctx) {
3241 mem_ctx = state->out_mem_ctx;
3246 status = state->dispatch_recv(subreq, mem_ctx);
3247 TALLOC_FREE(subreq);
3248 if (!NT_STATUS_IS_OK(status)) {
3249 tevent_req_nterror(req, status);
3253 /* Copy out parameters */
3254 *state->orig.out.info_type = *state->tmp.out.info_type;
3255 *state->orig.out.info = *state->tmp.out.info;
3258 state->orig.out.result = state->tmp.out.result;
3260 /* Reset temporary structure */
3261 ZERO_STRUCT(state->tmp);
3263 if (DEBUGLEVEL >= 10) {
3264 NDR_PRINT_OUT_DEBUG(drsuapi_DsReplicaGetInfo, &state->orig);
3267 tevent_req_done(req);
3270 NTSTATUS rpccli_drsuapi_DsReplicaGetInfo_recv(struct tevent_req *req,
3271 TALLOC_CTX *mem_ctx,
3274 struct rpccli_drsuapi_DsReplicaGetInfo_state *state = tevent_req_data(
3275 req, struct rpccli_drsuapi_DsReplicaGetInfo_state);
3278 if (tevent_req_is_nterror(req, &status)) {
3279 tevent_req_received(req);
3283 /* Steal possbile out parameters to the callers context */
3284 talloc_steal(mem_ctx, state->out_mem_ctx);
3287 *result = state->orig.out.result;
3289 tevent_req_received(req);
3290 return NT_STATUS_OK;
3293 NTSTATUS rpccli_drsuapi_DsReplicaGetInfo(struct rpc_pipe_client *cli,
3294 TALLOC_CTX *mem_ctx,
3295 struct policy_handle *bind_handle /* [in] [ref] */,
3296 enum drsuapi_DsReplicaGetInfoLevel level /* [in] */,
3297 union drsuapi_DsReplicaGetInfoRequest *req /* [in] [ref,switch_is(level)] */,
3298 enum drsuapi_DsReplicaInfoType *info_type /* [out] [ref] */,
3299 union drsuapi_DsReplicaInfo *info /* [out] [ref,switch_is(*info_type)] */,
3302 struct drsuapi_DsReplicaGetInfo r;
3306 r.in.bind_handle = bind_handle;
3310 if (DEBUGLEVEL >= 10) {
3311 NDR_PRINT_IN_DEBUG(drsuapi_DsReplicaGetInfo, &r);
3314 status = cli->dispatch(cli,
3317 NDR_DRSUAPI_DSREPLICAGETINFO,
3320 if (!NT_STATUS_IS_OK(status)) {
3324 if (DEBUGLEVEL >= 10) {
3325 NDR_PRINT_OUT_DEBUG(drsuapi_DsReplicaGetInfo, &r);
3328 if (NT_STATUS_IS_ERR(status)) {
3332 /* Return variables */
3333 *info_type = *r.out.info_type;
3334 *info = *r.out.info;
3338 *werror = r.out.result;
3341 return werror_to_ntstatus(r.out.result);
3344 struct rpccli_DRSUAPI_ADD_SID_HISTORY_state {
3345 struct DRSUAPI_ADD_SID_HISTORY orig;
3346 struct DRSUAPI_ADD_SID_HISTORY tmp;
3347 TALLOC_CTX *out_mem_ctx;
3348 NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx);
3351 static void rpccli_DRSUAPI_ADD_SID_HISTORY_done(struct tevent_req *subreq);
3353 struct tevent_req *rpccli_DRSUAPI_ADD_SID_HISTORY_send(TALLOC_CTX *mem_ctx,
3354 struct tevent_context *ev,
3355 struct rpc_pipe_client *cli)
3357 struct tevent_req *req;
3358 struct rpccli_DRSUAPI_ADD_SID_HISTORY_state *state;
3359 struct tevent_req *subreq;
3361 req = tevent_req_create(mem_ctx, &state,
3362 struct rpccli_DRSUAPI_ADD_SID_HISTORY_state);
3366 state->out_mem_ctx = NULL;
3367 state->dispatch_recv = cli->dispatch_recv;
3371 /* Out parameters */
3374 ZERO_STRUCT(state->orig.out.result);
3376 if (DEBUGLEVEL >= 10) {
3377 NDR_PRINT_IN_DEBUG(DRSUAPI_ADD_SID_HISTORY, &state->orig);
3380 /* make a temporary copy, that we pass to the dispatch function */
3381 state->tmp = state->orig;
3383 subreq = cli->dispatch_send(state, ev, cli,
3385 NDR_DRSUAPI_ADD_SID_HISTORY,
3387 if (tevent_req_nomem(subreq, req)) {
3388 return tevent_req_post(req, ev);
3390 tevent_req_set_callback(subreq, rpccli_DRSUAPI_ADD_SID_HISTORY_done, req);
3394 static void rpccli_DRSUAPI_ADD_SID_HISTORY_done(struct tevent_req *subreq)
3396 struct tevent_req *req = tevent_req_callback_data(
3397 subreq, struct tevent_req);
3398 struct rpccli_DRSUAPI_ADD_SID_HISTORY_state *state = tevent_req_data(
3399 req, struct rpccli_DRSUAPI_ADD_SID_HISTORY_state);
3401 TALLOC_CTX *mem_ctx;
3403 if (state->out_mem_ctx) {
3404 mem_ctx = state->out_mem_ctx;
3409 status = state->dispatch_recv(subreq, mem_ctx);
3410 TALLOC_FREE(subreq);
3411 if (!NT_STATUS_IS_OK(status)) {
3412 tevent_req_nterror(req, status);
3416 /* Copy out parameters */
3419 state->orig.out.result = state->tmp.out.result;
3421 /* Reset temporary structure */
3422 ZERO_STRUCT(state->tmp);
3424 if (DEBUGLEVEL >= 10) {
3425 NDR_PRINT_OUT_DEBUG(DRSUAPI_ADD_SID_HISTORY, &state->orig);
3428 tevent_req_done(req);
3431 NTSTATUS rpccli_DRSUAPI_ADD_SID_HISTORY_recv(struct tevent_req *req,
3432 TALLOC_CTX *mem_ctx,
3435 struct rpccli_DRSUAPI_ADD_SID_HISTORY_state *state = tevent_req_data(
3436 req, struct rpccli_DRSUAPI_ADD_SID_HISTORY_state);
3439 if (tevent_req_is_nterror(req, &status)) {
3440 tevent_req_received(req);
3444 /* Steal possbile out parameters to the callers context */
3445 talloc_steal(mem_ctx, state->out_mem_ctx);
3448 *result = state->orig.out.result;
3450 tevent_req_received(req);
3451 return NT_STATUS_OK;
3454 NTSTATUS rpccli_DRSUAPI_ADD_SID_HISTORY(struct rpc_pipe_client *cli,
3455 TALLOC_CTX *mem_ctx,
3458 struct DRSUAPI_ADD_SID_HISTORY r;
3463 if (DEBUGLEVEL >= 10) {
3464 NDR_PRINT_IN_DEBUG(DRSUAPI_ADD_SID_HISTORY, &r);
3467 status = cli->dispatch(cli,
3470 NDR_DRSUAPI_ADD_SID_HISTORY,
3473 if (!NT_STATUS_IS_OK(status)) {
3477 if (DEBUGLEVEL >= 10) {
3478 NDR_PRINT_OUT_DEBUG(DRSUAPI_ADD_SID_HISTORY, &r);
3481 if (NT_STATUS_IS_ERR(status)) {
3485 /* Return variables */
3489 *werror = r.out.result;
3492 return werror_to_ntstatus(r.out.result);
3495 struct rpccli_drsuapi_DsGetMemberships2_state {
3496 struct drsuapi_DsGetMemberships2 orig;
3497 struct drsuapi_DsGetMemberships2 tmp;
3498 TALLOC_CTX *out_mem_ctx;
3499 NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx);
3502 static void rpccli_drsuapi_DsGetMemberships2_done(struct tevent_req *subreq);
3504 struct tevent_req *rpccli_drsuapi_DsGetMemberships2_send(TALLOC_CTX *mem_ctx,
3505 struct tevent_context *ev,
3506 struct rpc_pipe_client *cli,
3507 struct policy_handle *_bind_handle /* [in] [ref] */,
3508 int32_t _level /* [in] */,
3509 union drsuapi_DsGetMemberships2Request *_req /* [in] [ref,switch_is(level)] */,
3510 int32_t *_level_out /* [out] [ref] */,
3511 union drsuapi_DsGetMemberships2Ctr *_ctr /* [out] [ref,switch_is(*level_out)] */)
3513 struct tevent_req *req;
3514 struct rpccli_drsuapi_DsGetMemberships2_state *state;
3515 struct tevent_req *subreq;
3517 req = tevent_req_create(mem_ctx, &state,
3518 struct rpccli_drsuapi_DsGetMemberships2_state);
3522 state->out_mem_ctx = NULL;
3523 state->dispatch_recv = cli->dispatch_recv;
3526 state->orig.in.bind_handle = _bind_handle;
3527 state->orig.in.level = _level;
3528 state->orig.in.req = _req;
3530 /* Out parameters */
3531 state->orig.out.level_out = _level_out;
3532 state->orig.out.ctr = _ctr;
3535 ZERO_STRUCT(state->orig.out.result);
3537 if (DEBUGLEVEL >= 10) {
3538 NDR_PRINT_IN_DEBUG(drsuapi_DsGetMemberships2, &state->orig);
3541 state->out_mem_ctx = talloc_named_const(state, 0,
3542 "rpccli_drsuapi_DsGetMemberships2_out_memory");
3543 if (tevent_req_nomem(state->out_mem_ctx, req)) {
3544 return tevent_req_post(req, ev);
3547 /* make a temporary copy, that we pass to the dispatch function */
3548 state->tmp = state->orig;
3550 subreq = cli->dispatch_send(state, ev, cli,
3552 NDR_DRSUAPI_DSGETMEMBERSHIPS2,
3554 if (tevent_req_nomem(subreq, req)) {
3555 return tevent_req_post(req, ev);
3557 tevent_req_set_callback(subreq, rpccli_drsuapi_DsGetMemberships2_done, req);
3561 static void rpccli_drsuapi_DsGetMemberships2_done(struct tevent_req *subreq)
3563 struct tevent_req *req = tevent_req_callback_data(
3564 subreq, struct tevent_req);
3565 struct rpccli_drsuapi_DsGetMemberships2_state *state = tevent_req_data(
3566 req, struct rpccli_drsuapi_DsGetMemberships2_state);
3568 TALLOC_CTX *mem_ctx;
3570 if (state->out_mem_ctx) {
3571 mem_ctx = state->out_mem_ctx;
3576 status = state->dispatch_recv(subreq, mem_ctx);
3577 TALLOC_FREE(subreq);
3578 if (!NT_STATUS_IS_OK(status)) {
3579 tevent_req_nterror(req, status);
3583 /* Copy out parameters */
3584 *state->orig.out.level_out = *state->tmp.out.level_out;
3585 *state->orig.out.ctr = *state->tmp.out.ctr;
3588 state->orig.out.result = state->tmp.out.result;
3590 /* Reset temporary structure */
3591 ZERO_STRUCT(state->tmp);
3593 if (DEBUGLEVEL >= 10) {
3594 NDR_PRINT_OUT_DEBUG(drsuapi_DsGetMemberships2, &state->orig);
3597 tevent_req_done(req);
3600 NTSTATUS rpccli_drsuapi_DsGetMemberships2_recv(struct tevent_req *req,
3601 TALLOC_CTX *mem_ctx,
3604 struct rpccli_drsuapi_DsGetMemberships2_state *state = tevent_req_data(
3605 req, struct rpccli_drsuapi_DsGetMemberships2_state);
3608 if (tevent_req_is_nterror(req, &status)) {
3609 tevent_req_received(req);
3613 /* Steal possbile out parameters to the callers context */
3614 talloc_steal(mem_ctx, state->out_mem_ctx);
3617 *result = state->orig.out.result;
3619 tevent_req_received(req);
3620 return NT_STATUS_OK;
3623 NTSTATUS rpccli_drsuapi_DsGetMemberships2(struct rpc_pipe_client *cli,
3624 TALLOC_CTX *mem_ctx,
3625 struct policy_handle *bind_handle /* [in] [ref] */,
3626 int32_t level /* [in] */,
3627 union drsuapi_DsGetMemberships2Request *req /* [in] [ref,switch_is(level)] */,
3628 int32_t *level_out /* [out] [ref] */,
3629 union drsuapi_DsGetMemberships2Ctr *ctr /* [out] [ref,switch_is(*level_out)] */,
3632 struct drsuapi_DsGetMemberships2 r;
3636 r.in.bind_handle = bind_handle;
3640 if (DEBUGLEVEL >= 10) {
3641 NDR_PRINT_IN_DEBUG(drsuapi_DsGetMemberships2, &r);
3644 status = cli->dispatch(cli,
3647 NDR_DRSUAPI_DSGETMEMBERSHIPS2,
3650 if (!NT_STATUS_IS_OK(status)) {
3654 if (DEBUGLEVEL >= 10) {
3655 NDR_PRINT_OUT_DEBUG(drsuapi_DsGetMemberships2, &r);
3658 if (NT_STATUS_IS_ERR(status)) {
3662 /* Return variables */
3663 *level_out = *r.out.level_out;
3668 *werror = r.out.result;
3671 return werror_to_ntstatus(r.out.result);
3674 struct rpccli_DRSUAPI_REPLICA_VERIFY_OBJECTS_state {
3675 struct DRSUAPI_REPLICA_VERIFY_OBJECTS orig;
3676 struct DRSUAPI_REPLICA_VERIFY_OBJECTS tmp;
3677 TALLOC_CTX *out_mem_ctx;
3678 NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx);
3681 static void rpccli_DRSUAPI_REPLICA_VERIFY_OBJECTS_done(struct tevent_req *subreq);
3683 struct tevent_req *rpccli_DRSUAPI_REPLICA_VERIFY_OBJECTS_send(TALLOC_CTX *mem_ctx,
3684 struct tevent_context *ev,
3685 struct rpc_pipe_client *cli)
3687 struct tevent_req *req;
3688 struct rpccli_DRSUAPI_REPLICA_VERIFY_OBJECTS_state *state;
3689 struct tevent_req *subreq;
3691 req = tevent_req_create(mem_ctx, &state,
3692 struct rpccli_DRSUAPI_REPLICA_VERIFY_OBJECTS_state);
3696 state->out_mem_ctx = NULL;
3697 state->dispatch_recv = cli->dispatch_recv;
3701 /* Out parameters */
3704 ZERO_STRUCT(state->orig.out.result);
3706 if (DEBUGLEVEL >= 10) {
3707 NDR_PRINT_IN_DEBUG(DRSUAPI_REPLICA_VERIFY_OBJECTS, &state->orig);
3710 /* make a temporary copy, that we pass to the dispatch function */
3711 state->tmp = state->orig;
3713 subreq = cli->dispatch_send(state, ev, cli,
3715 NDR_DRSUAPI_REPLICA_VERIFY_OBJECTS,
3717 if (tevent_req_nomem(subreq, req)) {
3718 return tevent_req_post(req, ev);
3720 tevent_req_set_callback(subreq, rpccli_DRSUAPI_REPLICA_VERIFY_OBJECTS_done, req);
3724 static void rpccli_DRSUAPI_REPLICA_VERIFY_OBJECTS_done(struct tevent_req *subreq)
3726 struct tevent_req *req = tevent_req_callback_data(
3727 subreq, struct tevent_req);
3728 struct rpccli_DRSUAPI_REPLICA_VERIFY_OBJECTS_state *state = tevent_req_data(
3729 req, struct rpccli_DRSUAPI_REPLICA_VERIFY_OBJECTS_state);
3731 TALLOC_CTX *mem_ctx;
3733 if (state->out_mem_ctx) {
3734 mem_ctx = state->out_mem_ctx;
3739 status = state->dispatch_recv(subreq, mem_ctx);
3740 TALLOC_FREE(subreq);
3741 if (!NT_STATUS_IS_OK(status)) {
3742 tevent_req_nterror(req, status);
3746 /* Copy out parameters */
3749 state->orig.out.result = state->tmp.out.result;
3751 /* Reset temporary structure */
3752 ZERO_STRUCT(state->tmp);
3754 if (DEBUGLEVEL >= 10) {
3755 NDR_PRINT_OUT_DEBUG(DRSUAPI_REPLICA_VERIFY_OBJECTS, &state->orig);
3758 tevent_req_done(req);
3761 NTSTATUS rpccli_DRSUAPI_REPLICA_VERIFY_OBJECTS_recv(struct tevent_req *req,
3762 TALLOC_CTX *mem_ctx,
3765 struct rpccli_DRSUAPI_REPLICA_VERIFY_OBJECTS_state *state = tevent_req_data(
3766 req, struct rpccli_DRSUAPI_REPLICA_VERIFY_OBJECTS_state);
3769 if (tevent_req_is_nterror(req, &status)) {
3770 tevent_req_received(req);
3774 /* Steal possbile out parameters to the callers context */
3775 talloc_steal(mem_ctx, state->out_mem_ctx);
3778 *result = state->orig.out.result;
3780 tevent_req_received(req);
3781 return NT_STATUS_OK;
3784 NTSTATUS rpccli_DRSUAPI_REPLICA_VERIFY_OBJECTS(struct rpc_pipe_client *cli,
3785 TALLOC_CTX *mem_ctx,
3788 struct DRSUAPI_REPLICA_VERIFY_OBJECTS r;
3793 if (DEBUGLEVEL >= 10) {
3794 NDR_PRINT_IN_DEBUG(DRSUAPI_REPLICA_VERIFY_OBJECTS, &r);
3797 status = cli->dispatch(cli,
3800 NDR_DRSUAPI_REPLICA_VERIFY_OBJECTS,
3803 if (!NT_STATUS_IS_OK(status)) {
3807 if (DEBUGLEVEL >= 10) {
3808 NDR_PRINT_OUT_DEBUG(DRSUAPI_REPLICA_VERIFY_OBJECTS, &r);
3811 if (NT_STATUS_IS_ERR(status)) {
3815 /* Return variables */
3819 *werror = r.out.result;
3822 return werror_to_ntstatus(r.out.result);
3825 struct rpccli_DRSUAPI_GET_OBJECT_EXISTENCE_state {
3826 struct DRSUAPI_GET_OBJECT_EXISTENCE orig;
3827 struct DRSUAPI_GET_OBJECT_EXISTENCE tmp;
3828 TALLOC_CTX *out_mem_ctx;
3829 NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx);
3832 static void rpccli_DRSUAPI_GET_OBJECT_EXISTENCE_done(struct tevent_req *subreq);
3834 struct tevent_req *rpccli_DRSUAPI_GET_OBJECT_EXISTENCE_send(TALLOC_CTX *mem_ctx,
3835 struct tevent_context *ev,
3836 struct rpc_pipe_client *cli)
3838 struct tevent_req *req;
3839 struct rpccli_DRSUAPI_GET_OBJECT_EXISTENCE_state *state;
3840 struct tevent_req *subreq;
3842 req = tevent_req_create(mem_ctx, &state,
3843 struct rpccli_DRSUAPI_GET_OBJECT_EXISTENCE_state);
3847 state->out_mem_ctx = NULL;
3848 state->dispatch_recv = cli->dispatch_recv;
3852 /* Out parameters */
3855 ZERO_STRUCT(state->orig.out.result);
3857 if (DEBUGLEVEL >= 10) {
3858 NDR_PRINT_IN_DEBUG(DRSUAPI_GET_OBJECT_EXISTENCE, &state->orig);
3861 /* make a temporary copy, that we pass to the dispatch function */
3862 state->tmp = state->orig;
3864 subreq = cli->dispatch_send(state, ev, cli,
3866 NDR_DRSUAPI_GET_OBJECT_EXISTENCE,
3868 if (tevent_req_nomem(subreq, req)) {
3869 return tevent_req_post(req, ev);
3871 tevent_req_set_callback(subreq, rpccli_DRSUAPI_GET_OBJECT_EXISTENCE_done, req);
3875 static void rpccli_DRSUAPI_GET_OBJECT_EXISTENCE_done(struct tevent_req *subreq)
3877 struct tevent_req *req = tevent_req_callback_data(
3878 subreq, struct tevent_req);
3879 struct rpccli_DRSUAPI_GET_OBJECT_EXISTENCE_state *state = tevent_req_data(
3880 req, struct rpccli_DRSUAPI_GET_OBJECT_EXISTENCE_state);
3882 TALLOC_CTX *mem_ctx;
3884 if (state->out_mem_ctx) {
3885 mem_ctx = state->out_mem_ctx;
3890 status = state->dispatch_recv(subreq, mem_ctx);
3891 TALLOC_FREE(subreq);
3892 if (!NT_STATUS_IS_OK(status)) {
3893 tevent_req_nterror(req, status);
3897 /* Copy out parameters */
3900 state->orig.out.result = state->tmp.out.result;
3902 /* Reset temporary structure */
3903 ZERO_STRUCT(state->tmp);
3905 if (DEBUGLEVEL >= 10) {
3906 NDR_PRINT_OUT_DEBUG(DRSUAPI_GET_OBJECT_EXISTENCE, &state->orig);
3909 tevent_req_done(req);
3912 NTSTATUS rpccli_DRSUAPI_GET_OBJECT_EXISTENCE_recv(struct tevent_req *req,
3913 TALLOC_CTX *mem_ctx,
3916 struct rpccli_DRSUAPI_GET_OBJECT_EXISTENCE_state *state = tevent_req_data(
3917 req, struct rpccli_DRSUAPI_GET_OBJECT_EXISTENCE_state);
3920 if (tevent_req_is_nterror(req, &status)) {
3921 tevent_req_received(req);
3925 /* Steal possbile out parameters to the callers context */
3926 talloc_steal(mem_ctx, state->out_mem_ctx);
3929 *result = state->orig.out.result;
3931 tevent_req_received(req);
3932 return NT_STATUS_OK;
3935 NTSTATUS rpccli_DRSUAPI_GET_OBJECT_EXISTENCE(struct rpc_pipe_client *cli,
3936 TALLOC_CTX *mem_ctx,
3939 struct DRSUAPI_GET_OBJECT_EXISTENCE r;
3944 if (DEBUGLEVEL >= 10) {
3945 NDR_PRINT_IN_DEBUG(DRSUAPI_GET_OBJECT_EXISTENCE, &r);
3948 status = cli->dispatch(cli,
3951 NDR_DRSUAPI_GET_OBJECT_EXISTENCE,
3954 if (!NT_STATUS_IS_OK(status)) {
3958 if (DEBUGLEVEL >= 10) {
3959 NDR_PRINT_OUT_DEBUG(DRSUAPI_GET_OBJECT_EXISTENCE, &r);
3962 if (NT_STATUS_IS_ERR(status)) {
3966 /* Return variables */
3970 *werror = r.out.result;
3973 return werror_to_ntstatus(r.out.result);
3976 struct rpccli_drsuapi_QuerySitesByCost_state {
3977 struct drsuapi_QuerySitesByCost orig;
3978 struct drsuapi_QuerySitesByCost tmp;
3979 TALLOC_CTX *out_mem_ctx;
3980 NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx);
3983 static void rpccli_drsuapi_QuerySitesByCost_done(struct tevent_req *subreq);
3985 struct tevent_req *rpccli_drsuapi_QuerySitesByCost_send(TALLOC_CTX *mem_ctx,
3986 struct tevent_context *ev,
3987 struct rpc_pipe_client *cli,
3988 struct policy_handle *_bind_handle /* [in] [ref] */,
3989 int32_t _level /* [in] */,
3990 union drsuapi_QuerySitesByCostRequest *_req /* [in] [ref,switch_is(level)] */,
3991 int32_t *_level_out /* [out] [ref] */,
3992 union drsuapi_QuerySitesByCostCtr *_ctr /* [out] [ref,switch_is(*level_out)] */)
3994 struct tevent_req *req;
3995 struct rpccli_drsuapi_QuerySitesByCost_state *state;
3996 struct tevent_req *subreq;
3998 req = tevent_req_create(mem_ctx, &state,
3999 struct rpccli_drsuapi_QuerySitesByCost_state);
4003 state->out_mem_ctx = NULL;
4004 state->dispatch_recv = cli->dispatch_recv;
4007 state->orig.in.bind_handle = _bind_handle;
4008 state->orig.in.level = _level;
4009 state->orig.in.req = _req;
4011 /* Out parameters */
4012 state->orig.out.level_out = _level_out;
4013 state->orig.out.ctr = _ctr;
4016 ZERO_STRUCT(state->orig.out.result);
4018 if (DEBUGLEVEL >= 10) {
4019 NDR_PRINT_IN_DEBUG(drsuapi_QuerySitesByCost, &state->orig);
4022 state->out_mem_ctx = talloc_named_const(state, 0,
4023 "rpccli_drsuapi_QuerySitesByCost_out_memory");
4024 if (tevent_req_nomem(state->out_mem_ctx, req)) {
4025 return tevent_req_post(req, ev);
4028 /* make a temporary copy, that we pass to the dispatch function */
4029 state->tmp = state->orig;
4031 subreq = cli->dispatch_send(state, ev, cli,
4033 NDR_DRSUAPI_QUERYSITESBYCOST,
4035 if (tevent_req_nomem(subreq, req)) {
4036 return tevent_req_post(req, ev);
4038 tevent_req_set_callback(subreq, rpccli_drsuapi_QuerySitesByCost_done, req);
4042 static void rpccli_drsuapi_QuerySitesByCost_done(struct tevent_req *subreq)
4044 struct tevent_req *req = tevent_req_callback_data(
4045 subreq, struct tevent_req);
4046 struct rpccli_drsuapi_QuerySitesByCost_state *state = tevent_req_data(
4047 req, struct rpccli_drsuapi_QuerySitesByCost_state);
4049 TALLOC_CTX *mem_ctx;
4051 if (state->out_mem_ctx) {
4052 mem_ctx = state->out_mem_ctx;
4057 status = state->dispatch_recv(subreq, mem_ctx);
4058 TALLOC_FREE(subreq);
4059 if (!NT_STATUS_IS_OK(status)) {
4060 tevent_req_nterror(req, status);
4064 /* Copy out parameters */
4065 *state->orig.out.level_out = *state->tmp.out.level_out;
4066 *state->orig.out.ctr = *state->tmp.out.ctr;
4069 state->orig.out.result = state->tmp.out.result;
4071 /* Reset temporary structure */
4072 ZERO_STRUCT(state->tmp);
4074 if (DEBUGLEVEL >= 10) {
4075 NDR_PRINT_OUT_DEBUG(drsuapi_QuerySitesByCost, &state->orig);
4078 tevent_req_done(req);
4081 NTSTATUS rpccli_drsuapi_QuerySitesByCost_recv(struct tevent_req *req,
4082 TALLOC_CTX *mem_ctx,
4085 struct rpccli_drsuapi_QuerySitesByCost_state *state = tevent_req_data(
4086 req, struct rpccli_drsuapi_QuerySitesByCost_state);
4089 if (tevent_req_is_nterror(req, &status)) {
4090 tevent_req_received(req);
4094 /* Steal possbile out parameters to the callers context */
4095 talloc_steal(mem_ctx, state->out_mem_ctx);
4098 *result = state->orig.out.result;
4100 tevent_req_received(req);
4101 return NT_STATUS_OK;
4104 NTSTATUS rpccli_drsuapi_QuerySitesByCost(struct rpc_pipe_client *cli,
4105 TALLOC_CTX *mem_ctx,
4106 struct policy_handle *bind_handle /* [in] [ref] */,
4107 int32_t level /* [in] */,
4108 union drsuapi_QuerySitesByCostRequest *req /* [in] [ref,switch_is(level)] */,
4109 int32_t *level_out /* [out] [ref] */,
4110 union drsuapi_QuerySitesByCostCtr *ctr /* [out] [ref,switch_is(*level_out)] */,
4113 struct drsuapi_QuerySitesByCost r;
4117 r.in.bind_handle = bind_handle;
4121 if (DEBUGLEVEL >= 10) {
4122 NDR_PRINT_IN_DEBUG(drsuapi_QuerySitesByCost, &r);
4125 status = cli->dispatch(cli,
4128 NDR_DRSUAPI_QUERYSITESBYCOST,
4131 if (!NT_STATUS_IS_OK(status)) {
4135 if (DEBUGLEVEL >= 10) {
4136 NDR_PRINT_OUT_DEBUG(drsuapi_QuerySitesByCost, &r);
4139 if (NT_STATUS_IS_ERR(status)) {
4143 /* Return variables */
4144 *level_out = *r.out.level_out;
4149 *werror = r.out.result;
4152 return werror_to_ntstatus(r.out.result);