libwbclient: add wbcBlob and wbcNamedBlob.
[Samba.git] / source / librpc / gen_ndr / srv_lsa.c
blob41d1c9716c7bf64444caa380af7114840d121ef3
1 /*
2 * Unix SMB/CIFS implementation.
3 * server auto-generated by pidl. DO NOT MODIFY!
4 */
6 #include "includes.h"
7 #include "librpc/gen_ndr/srv_lsa.h"
9 static bool api_lsa_Close(pipes_struct *p)
11 const struct ndr_interface_call *call;
12 struct ndr_pull *pull;
13 struct ndr_push *push;
14 enum ndr_err_code ndr_err;
15 DATA_BLOB blob;
16 struct lsa_Close *r;
18 call = &ndr_table_lsarpc.calls[NDR_LSA_CLOSE];
20 r = talloc(talloc_tos(), struct lsa_Close);
21 if (r == NULL) {
22 return false;
25 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
26 talloc_free(r);
27 return false;
30 pull = ndr_pull_init_blob(&blob, r);
31 if (pull == NULL) {
32 talloc_free(r);
33 return false;
36 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
37 ndr_err = call->ndr_pull(pull, NDR_IN, r);
38 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
39 talloc_free(r);
40 return false;
43 if (DEBUGLEVEL >= 10) {
44 NDR_PRINT_IN_DEBUG(lsa_Close, r);
47 ZERO_STRUCT(r->out);
48 r->out.handle = r->in.handle;
49 r->out.result = _lsa_Close(p, r);
51 if (p->rng_fault_state) {
52 talloc_free(r);
53 /* Return true here, srv_pipe_hnd.c will take care */
54 return true;
57 if (DEBUGLEVEL >= 10) {
58 NDR_PRINT_OUT_DEBUG(lsa_Close, r);
61 push = ndr_push_init_ctx(r);
62 if (push == NULL) {
63 talloc_free(r);
64 return false;
67 ndr_err = call->ndr_push(push, NDR_OUT, r);
68 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
69 talloc_free(r);
70 return false;
73 blob = ndr_push_blob(push);
74 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
75 talloc_free(r);
76 return false;
79 talloc_free(r);
81 return true;
84 static bool api_lsa_Delete(pipes_struct *p)
86 const struct ndr_interface_call *call;
87 struct ndr_pull *pull;
88 struct ndr_push *push;
89 enum ndr_err_code ndr_err;
90 DATA_BLOB blob;
91 struct lsa_Delete *r;
93 call = &ndr_table_lsarpc.calls[NDR_LSA_DELETE];
95 r = talloc(talloc_tos(), struct lsa_Delete);
96 if (r == NULL) {
97 return false;
100 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
101 talloc_free(r);
102 return false;
105 pull = ndr_pull_init_blob(&blob, r);
106 if (pull == NULL) {
107 talloc_free(r);
108 return false;
111 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
112 ndr_err = call->ndr_pull(pull, NDR_IN, r);
113 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
114 talloc_free(r);
115 return false;
118 if (DEBUGLEVEL >= 10) {
119 NDR_PRINT_IN_DEBUG(lsa_Delete, r);
122 r->out.result = _lsa_Delete(p, r);
124 if (p->rng_fault_state) {
125 talloc_free(r);
126 /* Return true here, srv_pipe_hnd.c will take care */
127 return true;
130 if (DEBUGLEVEL >= 10) {
131 NDR_PRINT_OUT_DEBUG(lsa_Delete, r);
134 push = ndr_push_init_ctx(r);
135 if (push == NULL) {
136 talloc_free(r);
137 return false;
140 ndr_err = call->ndr_push(push, NDR_OUT, r);
141 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
142 talloc_free(r);
143 return false;
146 blob = ndr_push_blob(push);
147 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
148 talloc_free(r);
149 return false;
152 talloc_free(r);
154 return true;
157 static bool api_lsa_EnumPrivs(pipes_struct *p)
159 const struct ndr_interface_call *call;
160 struct ndr_pull *pull;
161 struct ndr_push *push;
162 enum ndr_err_code ndr_err;
163 DATA_BLOB blob;
164 struct lsa_EnumPrivs *r;
166 call = &ndr_table_lsarpc.calls[NDR_LSA_ENUMPRIVS];
168 r = talloc(talloc_tos(), struct lsa_EnumPrivs);
169 if (r == NULL) {
170 return false;
173 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
174 talloc_free(r);
175 return false;
178 pull = ndr_pull_init_blob(&blob, r);
179 if (pull == NULL) {
180 talloc_free(r);
181 return false;
184 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
185 ndr_err = call->ndr_pull(pull, NDR_IN, r);
186 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
187 talloc_free(r);
188 return false;
191 if (DEBUGLEVEL >= 10) {
192 NDR_PRINT_IN_DEBUG(lsa_EnumPrivs, r);
195 ZERO_STRUCT(r->out);
196 r->out.resume_handle = r->in.resume_handle;
197 r->out.privs = talloc_zero(r, struct lsa_PrivArray);
198 if (r->out.privs == NULL) {
199 talloc_free(r);
200 return false;
203 r->out.result = _lsa_EnumPrivs(p, r);
205 if (p->rng_fault_state) {
206 talloc_free(r);
207 /* Return true here, srv_pipe_hnd.c will take care */
208 return true;
211 if (DEBUGLEVEL >= 10) {
212 NDR_PRINT_OUT_DEBUG(lsa_EnumPrivs, r);
215 push = ndr_push_init_ctx(r);
216 if (push == NULL) {
217 talloc_free(r);
218 return false;
221 ndr_err = call->ndr_push(push, NDR_OUT, r);
222 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
223 talloc_free(r);
224 return false;
227 blob = ndr_push_blob(push);
228 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
229 talloc_free(r);
230 return false;
233 talloc_free(r);
235 return true;
238 static bool api_lsa_QuerySecurity(pipes_struct *p)
240 const struct ndr_interface_call *call;
241 struct ndr_pull *pull;
242 struct ndr_push *push;
243 enum ndr_err_code ndr_err;
244 DATA_BLOB blob;
245 struct lsa_QuerySecurity *r;
247 call = &ndr_table_lsarpc.calls[NDR_LSA_QUERYSECURITY];
249 r = talloc(talloc_tos(), struct lsa_QuerySecurity);
250 if (r == NULL) {
251 return false;
254 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
255 talloc_free(r);
256 return false;
259 pull = ndr_pull_init_blob(&blob, r);
260 if (pull == NULL) {
261 talloc_free(r);
262 return false;
265 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
266 ndr_err = call->ndr_pull(pull, NDR_IN, r);
267 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
268 talloc_free(r);
269 return false;
272 if (DEBUGLEVEL >= 10) {
273 NDR_PRINT_IN_DEBUG(lsa_QuerySecurity, r);
276 ZERO_STRUCT(r->out);
277 r->out.sdbuf = talloc_zero(r, struct sec_desc_buf *);
278 if (r->out.sdbuf == NULL) {
279 talloc_free(r);
280 return false;
283 r->out.result = _lsa_QuerySecurity(p, r);
285 if (p->rng_fault_state) {
286 talloc_free(r);
287 /* Return true here, srv_pipe_hnd.c will take care */
288 return true;
291 if (DEBUGLEVEL >= 10) {
292 NDR_PRINT_OUT_DEBUG(lsa_QuerySecurity, r);
295 push = ndr_push_init_ctx(r);
296 if (push == NULL) {
297 talloc_free(r);
298 return false;
301 ndr_err = call->ndr_push(push, NDR_OUT, r);
302 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
303 talloc_free(r);
304 return false;
307 blob = ndr_push_blob(push);
308 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
309 talloc_free(r);
310 return false;
313 talloc_free(r);
315 return true;
318 static bool api_lsa_SetSecObj(pipes_struct *p)
320 const struct ndr_interface_call *call;
321 struct ndr_pull *pull;
322 struct ndr_push *push;
323 enum ndr_err_code ndr_err;
324 DATA_BLOB blob;
325 struct lsa_SetSecObj *r;
327 call = &ndr_table_lsarpc.calls[NDR_LSA_SETSECOBJ];
329 r = talloc(talloc_tos(), struct lsa_SetSecObj);
330 if (r == NULL) {
331 return false;
334 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
335 talloc_free(r);
336 return false;
339 pull = ndr_pull_init_blob(&blob, r);
340 if (pull == NULL) {
341 talloc_free(r);
342 return false;
345 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
346 ndr_err = call->ndr_pull(pull, NDR_IN, r);
347 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
348 talloc_free(r);
349 return false;
352 if (DEBUGLEVEL >= 10) {
353 NDR_PRINT_IN_DEBUG(lsa_SetSecObj, r);
356 r->out.result = _lsa_SetSecObj(p, r);
358 if (p->rng_fault_state) {
359 talloc_free(r);
360 /* Return true here, srv_pipe_hnd.c will take care */
361 return true;
364 if (DEBUGLEVEL >= 10) {
365 NDR_PRINT_OUT_DEBUG(lsa_SetSecObj, r);
368 push = ndr_push_init_ctx(r);
369 if (push == NULL) {
370 talloc_free(r);
371 return false;
374 ndr_err = call->ndr_push(push, NDR_OUT, r);
375 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
376 talloc_free(r);
377 return false;
380 blob = ndr_push_blob(push);
381 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
382 talloc_free(r);
383 return false;
386 talloc_free(r);
388 return true;
391 static bool api_lsa_ChangePassword(pipes_struct *p)
393 const struct ndr_interface_call *call;
394 struct ndr_pull *pull;
395 struct ndr_push *push;
396 enum ndr_err_code ndr_err;
397 DATA_BLOB blob;
398 struct lsa_ChangePassword *r;
400 call = &ndr_table_lsarpc.calls[NDR_LSA_CHANGEPASSWORD];
402 r = talloc(talloc_tos(), struct lsa_ChangePassword);
403 if (r == NULL) {
404 return false;
407 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
408 talloc_free(r);
409 return false;
412 pull = ndr_pull_init_blob(&blob, r);
413 if (pull == NULL) {
414 talloc_free(r);
415 return false;
418 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
419 ndr_err = call->ndr_pull(pull, NDR_IN, r);
420 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
421 talloc_free(r);
422 return false;
425 if (DEBUGLEVEL >= 10) {
426 NDR_PRINT_IN_DEBUG(lsa_ChangePassword, r);
429 r->out.result = _lsa_ChangePassword(p, r);
431 if (p->rng_fault_state) {
432 talloc_free(r);
433 /* Return true here, srv_pipe_hnd.c will take care */
434 return true;
437 if (DEBUGLEVEL >= 10) {
438 NDR_PRINT_OUT_DEBUG(lsa_ChangePassword, r);
441 push = ndr_push_init_ctx(r);
442 if (push == NULL) {
443 talloc_free(r);
444 return false;
447 ndr_err = call->ndr_push(push, NDR_OUT, r);
448 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
449 talloc_free(r);
450 return false;
453 blob = ndr_push_blob(push);
454 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
455 talloc_free(r);
456 return false;
459 talloc_free(r);
461 return true;
464 static bool api_lsa_OpenPolicy(pipes_struct *p)
466 const struct ndr_interface_call *call;
467 struct ndr_pull *pull;
468 struct ndr_push *push;
469 enum ndr_err_code ndr_err;
470 DATA_BLOB blob;
471 struct lsa_OpenPolicy *r;
473 call = &ndr_table_lsarpc.calls[NDR_LSA_OPENPOLICY];
475 r = talloc(talloc_tos(), struct lsa_OpenPolicy);
476 if (r == NULL) {
477 return false;
480 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
481 talloc_free(r);
482 return false;
485 pull = ndr_pull_init_blob(&blob, r);
486 if (pull == NULL) {
487 talloc_free(r);
488 return false;
491 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
492 ndr_err = call->ndr_pull(pull, NDR_IN, r);
493 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
494 talloc_free(r);
495 return false;
498 if (DEBUGLEVEL >= 10) {
499 NDR_PRINT_IN_DEBUG(lsa_OpenPolicy, r);
502 ZERO_STRUCT(r->out);
503 r->out.handle = talloc_zero(r, struct policy_handle);
504 if (r->out.handle == NULL) {
505 talloc_free(r);
506 return false;
509 r->out.result = _lsa_OpenPolicy(p, r);
511 if (p->rng_fault_state) {
512 talloc_free(r);
513 /* Return true here, srv_pipe_hnd.c will take care */
514 return true;
517 if (DEBUGLEVEL >= 10) {
518 NDR_PRINT_OUT_DEBUG(lsa_OpenPolicy, r);
521 push = ndr_push_init_ctx(r);
522 if (push == NULL) {
523 talloc_free(r);
524 return false;
527 ndr_err = call->ndr_push(push, NDR_OUT, r);
528 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
529 talloc_free(r);
530 return false;
533 blob = ndr_push_blob(push);
534 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
535 talloc_free(r);
536 return false;
539 talloc_free(r);
541 return true;
544 static bool api_lsa_QueryInfoPolicy(pipes_struct *p)
546 const struct ndr_interface_call *call;
547 struct ndr_pull *pull;
548 struct ndr_push *push;
549 enum ndr_err_code ndr_err;
550 DATA_BLOB blob;
551 struct lsa_QueryInfoPolicy *r;
553 call = &ndr_table_lsarpc.calls[NDR_LSA_QUERYINFOPOLICY];
555 r = talloc(talloc_tos(), struct lsa_QueryInfoPolicy);
556 if (r == NULL) {
557 return false;
560 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
561 talloc_free(r);
562 return false;
565 pull = ndr_pull_init_blob(&blob, r);
566 if (pull == NULL) {
567 talloc_free(r);
568 return false;
571 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
572 ndr_err = call->ndr_pull(pull, NDR_IN, r);
573 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
574 talloc_free(r);
575 return false;
578 if (DEBUGLEVEL >= 10) {
579 NDR_PRINT_IN_DEBUG(lsa_QueryInfoPolicy, r);
582 ZERO_STRUCT(r->out);
583 r->out.info = talloc_zero(r, union lsa_PolicyInformation *);
584 if (r->out.info == NULL) {
585 talloc_free(r);
586 return false;
589 r->out.result = _lsa_QueryInfoPolicy(p, r);
591 if (p->rng_fault_state) {
592 talloc_free(r);
593 /* Return true here, srv_pipe_hnd.c will take care */
594 return true;
597 if (DEBUGLEVEL >= 10) {
598 NDR_PRINT_OUT_DEBUG(lsa_QueryInfoPolicy, r);
601 push = ndr_push_init_ctx(r);
602 if (push == NULL) {
603 talloc_free(r);
604 return false;
607 ndr_err = call->ndr_push(push, NDR_OUT, r);
608 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
609 talloc_free(r);
610 return false;
613 blob = ndr_push_blob(push);
614 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
615 talloc_free(r);
616 return false;
619 talloc_free(r);
621 return true;
624 static bool api_lsa_SetInfoPolicy(pipes_struct *p)
626 const struct ndr_interface_call *call;
627 struct ndr_pull *pull;
628 struct ndr_push *push;
629 enum ndr_err_code ndr_err;
630 DATA_BLOB blob;
631 struct lsa_SetInfoPolicy *r;
633 call = &ndr_table_lsarpc.calls[NDR_LSA_SETINFOPOLICY];
635 r = talloc(talloc_tos(), struct lsa_SetInfoPolicy);
636 if (r == NULL) {
637 return false;
640 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
641 talloc_free(r);
642 return false;
645 pull = ndr_pull_init_blob(&blob, r);
646 if (pull == NULL) {
647 talloc_free(r);
648 return false;
651 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
652 ndr_err = call->ndr_pull(pull, NDR_IN, r);
653 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
654 talloc_free(r);
655 return false;
658 if (DEBUGLEVEL >= 10) {
659 NDR_PRINT_IN_DEBUG(lsa_SetInfoPolicy, r);
662 r->out.result = _lsa_SetInfoPolicy(p, r);
664 if (p->rng_fault_state) {
665 talloc_free(r);
666 /* Return true here, srv_pipe_hnd.c will take care */
667 return true;
670 if (DEBUGLEVEL >= 10) {
671 NDR_PRINT_OUT_DEBUG(lsa_SetInfoPolicy, r);
674 push = ndr_push_init_ctx(r);
675 if (push == NULL) {
676 talloc_free(r);
677 return false;
680 ndr_err = call->ndr_push(push, NDR_OUT, r);
681 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
682 talloc_free(r);
683 return false;
686 blob = ndr_push_blob(push);
687 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
688 talloc_free(r);
689 return false;
692 talloc_free(r);
694 return true;
697 static bool api_lsa_ClearAuditLog(pipes_struct *p)
699 const struct ndr_interface_call *call;
700 struct ndr_pull *pull;
701 struct ndr_push *push;
702 enum ndr_err_code ndr_err;
703 DATA_BLOB blob;
704 struct lsa_ClearAuditLog *r;
706 call = &ndr_table_lsarpc.calls[NDR_LSA_CLEARAUDITLOG];
708 r = talloc(talloc_tos(), struct lsa_ClearAuditLog);
709 if (r == NULL) {
710 return false;
713 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
714 talloc_free(r);
715 return false;
718 pull = ndr_pull_init_blob(&blob, r);
719 if (pull == NULL) {
720 talloc_free(r);
721 return false;
724 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
725 ndr_err = call->ndr_pull(pull, NDR_IN, r);
726 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
727 talloc_free(r);
728 return false;
731 if (DEBUGLEVEL >= 10) {
732 NDR_PRINT_IN_DEBUG(lsa_ClearAuditLog, r);
735 r->out.result = _lsa_ClearAuditLog(p, r);
737 if (p->rng_fault_state) {
738 talloc_free(r);
739 /* Return true here, srv_pipe_hnd.c will take care */
740 return true;
743 if (DEBUGLEVEL >= 10) {
744 NDR_PRINT_OUT_DEBUG(lsa_ClearAuditLog, r);
747 push = ndr_push_init_ctx(r);
748 if (push == NULL) {
749 talloc_free(r);
750 return false;
753 ndr_err = call->ndr_push(push, NDR_OUT, r);
754 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
755 talloc_free(r);
756 return false;
759 blob = ndr_push_blob(push);
760 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
761 talloc_free(r);
762 return false;
765 talloc_free(r);
767 return true;
770 static bool api_lsa_CreateAccount(pipes_struct *p)
772 const struct ndr_interface_call *call;
773 struct ndr_pull *pull;
774 struct ndr_push *push;
775 enum ndr_err_code ndr_err;
776 DATA_BLOB blob;
777 struct lsa_CreateAccount *r;
779 call = &ndr_table_lsarpc.calls[NDR_LSA_CREATEACCOUNT];
781 r = talloc(talloc_tos(), struct lsa_CreateAccount);
782 if (r == NULL) {
783 return false;
786 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
787 talloc_free(r);
788 return false;
791 pull = ndr_pull_init_blob(&blob, r);
792 if (pull == NULL) {
793 talloc_free(r);
794 return false;
797 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
798 ndr_err = call->ndr_pull(pull, NDR_IN, r);
799 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
800 talloc_free(r);
801 return false;
804 if (DEBUGLEVEL >= 10) {
805 NDR_PRINT_IN_DEBUG(lsa_CreateAccount, r);
808 ZERO_STRUCT(r->out);
809 r->out.acct_handle = talloc_zero(r, struct policy_handle);
810 if (r->out.acct_handle == NULL) {
811 talloc_free(r);
812 return false;
815 r->out.result = _lsa_CreateAccount(p, r);
817 if (p->rng_fault_state) {
818 talloc_free(r);
819 /* Return true here, srv_pipe_hnd.c will take care */
820 return true;
823 if (DEBUGLEVEL >= 10) {
824 NDR_PRINT_OUT_DEBUG(lsa_CreateAccount, r);
827 push = ndr_push_init_ctx(r);
828 if (push == NULL) {
829 talloc_free(r);
830 return false;
833 ndr_err = call->ndr_push(push, NDR_OUT, r);
834 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
835 talloc_free(r);
836 return false;
839 blob = ndr_push_blob(push);
840 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
841 talloc_free(r);
842 return false;
845 talloc_free(r);
847 return true;
850 static bool api_lsa_EnumAccounts(pipes_struct *p)
852 const struct ndr_interface_call *call;
853 struct ndr_pull *pull;
854 struct ndr_push *push;
855 enum ndr_err_code ndr_err;
856 DATA_BLOB blob;
857 struct lsa_EnumAccounts *r;
859 call = &ndr_table_lsarpc.calls[NDR_LSA_ENUMACCOUNTS];
861 r = talloc(talloc_tos(), struct lsa_EnumAccounts);
862 if (r == NULL) {
863 return false;
866 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
867 talloc_free(r);
868 return false;
871 pull = ndr_pull_init_blob(&blob, r);
872 if (pull == NULL) {
873 talloc_free(r);
874 return false;
877 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
878 ndr_err = call->ndr_pull(pull, NDR_IN, r);
879 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
880 talloc_free(r);
881 return false;
884 if (DEBUGLEVEL >= 10) {
885 NDR_PRINT_IN_DEBUG(lsa_EnumAccounts, r);
888 ZERO_STRUCT(r->out);
889 r->out.resume_handle = r->in.resume_handle;
890 r->out.sids = talloc_zero(r, struct lsa_SidArray);
891 if (r->out.sids == NULL) {
892 talloc_free(r);
893 return false;
896 r->out.result = _lsa_EnumAccounts(p, r);
898 if (p->rng_fault_state) {
899 talloc_free(r);
900 /* Return true here, srv_pipe_hnd.c will take care */
901 return true;
904 if (DEBUGLEVEL >= 10) {
905 NDR_PRINT_OUT_DEBUG(lsa_EnumAccounts, r);
908 push = ndr_push_init_ctx(r);
909 if (push == NULL) {
910 talloc_free(r);
911 return false;
914 ndr_err = call->ndr_push(push, NDR_OUT, r);
915 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
916 talloc_free(r);
917 return false;
920 blob = ndr_push_blob(push);
921 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
922 talloc_free(r);
923 return false;
926 talloc_free(r);
928 return true;
931 static bool api_lsa_CreateTrustedDomain(pipes_struct *p)
933 const struct ndr_interface_call *call;
934 struct ndr_pull *pull;
935 struct ndr_push *push;
936 enum ndr_err_code ndr_err;
937 DATA_BLOB blob;
938 struct lsa_CreateTrustedDomain *r;
940 call = &ndr_table_lsarpc.calls[NDR_LSA_CREATETRUSTEDDOMAIN];
942 r = talloc(talloc_tos(), struct lsa_CreateTrustedDomain);
943 if (r == NULL) {
944 return false;
947 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
948 talloc_free(r);
949 return false;
952 pull = ndr_pull_init_blob(&blob, r);
953 if (pull == NULL) {
954 talloc_free(r);
955 return false;
958 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
959 ndr_err = call->ndr_pull(pull, NDR_IN, r);
960 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
961 talloc_free(r);
962 return false;
965 if (DEBUGLEVEL >= 10) {
966 NDR_PRINT_IN_DEBUG(lsa_CreateTrustedDomain, r);
969 ZERO_STRUCT(r->out);
970 r->out.trustdom_handle = talloc_zero(r, struct policy_handle);
971 if (r->out.trustdom_handle == NULL) {
972 talloc_free(r);
973 return false;
976 r->out.result = _lsa_CreateTrustedDomain(p, r);
978 if (p->rng_fault_state) {
979 talloc_free(r);
980 /* Return true here, srv_pipe_hnd.c will take care */
981 return true;
984 if (DEBUGLEVEL >= 10) {
985 NDR_PRINT_OUT_DEBUG(lsa_CreateTrustedDomain, r);
988 push = ndr_push_init_ctx(r);
989 if (push == NULL) {
990 talloc_free(r);
991 return false;
994 ndr_err = call->ndr_push(push, NDR_OUT, r);
995 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
996 talloc_free(r);
997 return false;
1000 blob = ndr_push_blob(push);
1001 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
1002 talloc_free(r);
1003 return false;
1006 talloc_free(r);
1008 return true;
1011 static bool api_lsa_EnumTrustDom(pipes_struct *p)
1013 const struct ndr_interface_call *call;
1014 struct ndr_pull *pull;
1015 struct ndr_push *push;
1016 enum ndr_err_code ndr_err;
1017 DATA_BLOB blob;
1018 struct lsa_EnumTrustDom *r;
1020 call = &ndr_table_lsarpc.calls[NDR_LSA_ENUMTRUSTDOM];
1022 r = talloc(talloc_tos(), struct lsa_EnumTrustDom);
1023 if (r == NULL) {
1024 return false;
1027 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
1028 talloc_free(r);
1029 return false;
1032 pull = ndr_pull_init_blob(&blob, r);
1033 if (pull == NULL) {
1034 talloc_free(r);
1035 return false;
1038 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
1039 ndr_err = call->ndr_pull(pull, NDR_IN, r);
1040 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1041 talloc_free(r);
1042 return false;
1045 if (DEBUGLEVEL >= 10) {
1046 NDR_PRINT_IN_DEBUG(lsa_EnumTrustDom, r);
1049 ZERO_STRUCT(r->out);
1050 r->out.resume_handle = r->in.resume_handle;
1051 r->out.domains = talloc_zero(r, struct lsa_DomainList);
1052 if (r->out.domains == NULL) {
1053 talloc_free(r);
1054 return false;
1057 r->out.result = _lsa_EnumTrustDom(p, r);
1059 if (p->rng_fault_state) {
1060 talloc_free(r);
1061 /* Return true here, srv_pipe_hnd.c will take care */
1062 return true;
1065 if (DEBUGLEVEL >= 10) {
1066 NDR_PRINT_OUT_DEBUG(lsa_EnumTrustDom, r);
1069 push = ndr_push_init_ctx(r);
1070 if (push == NULL) {
1071 talloc_free(r);
1072 return false;
1075 ndr_err = call->ndr_push(push, NDR_OUT, r);
1076 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1077 talloc_free(r);
1078 return false;
1081 blob = ndr_push_blob(push);
1082 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
1083 talloc_free(r);
1084 return false;
1087 talloc_free(r);
1089 return true;
1092 static bool api_lsa_LookupNames(pipes_struct *p)
1094 const struct ndr_interface_call *call;
1095 struct ndr_pull *pull;
1096 struct ndr_push *push;
1097 enum ndr_err_code ndr_err;
1098 DATA_BLOB blob;
1099 struct lsa_LookupNames *r;
1101 call = &ndr_table_lsarpc.calls[NDR_LSA_LOOKUPNAMES];
1103 r = talloc(talloc_tos(), struct lsa_LookupNames);
1104 if (r == NULL) {
1105 return false;
1108 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
1109 talloc_free(r);
1110 return false;
1113 pull = ndr_pull_init_blob(&blob, r);
1114 if (pull == NULL) {
1115 talloc_free(r);
1116 return false;
1119 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
1120 ndr_err = call->ndr_pull(pull, NDR_IN, r);
1121 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1122 talloc_free(r);
1123 return false;
1126 if (DEBUGLEVEL >= 10) {
1127 NDR_PRINT_IN_DEBUG(lsa_LookupNames, r);
1130 ZERO_STRUCT(r->out);
1131 r->out.domains = talloc_zero(r, struct lsa_RefDomainList *);
1132 if (r->out.domains == NULL) {
1133 talloc_free(r);
1134 return false;
1137 r->out.sids = r->in.sids;
1138 r->out.count = r->in.count;
1139 r->out.result = _lsa_LookupNames(p, r);
1141 if (p->rng_fault_state) {
1142 talloc_free(r);
1143 /* Return true here, srv_pipe_hnd.c will take care */
1144 return true;
1147 if (DEBUGLEVEL >= 10) {
1148 NDR_PRINT_OUT_DEBUG(lsa_LookupNames, r);
1151 push = ndr_push_init_ctx(r);
1152 if (push == NULL) {
1153 talloc_free(r);
1154 return false;
1157 ndr_err = call->ndr_push(push, NDR_OUT, r);
1158 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1159 talloc_free(r);
1160 return false;
1163 blob = ndr_push_blob(push);
1164 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
1165 talloc_free(r);
1166 return false;
1169 talloc_free(r);
1171 return true;
1174 static bool api_lsa_LookupSids(pipes_struct *p)
1176 const struct ndr_interface_call *call;
1177 struct ndr_pull *pull;
1178 struct ndr_push *push;
1179 enum ndr_err_code ndr_err;
1180 DATA_BLOB blob;
1181 struct lsa_LookupSids *r;
1183 call = &ndr_table_lsarpc.calls[NDR_LSA_LOOKUPSIDS];
1185 r = talloc(talloc_tos(), struct lsa_LookupSids);
1186 if (r == NULL) {
1187 return false;
1190 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
1191 talloc_free(r);
1192 return false;
1195 pull = ndr_pull_init_blob(&blob, r);
1196 if (pull == NULL) {
1197 talloc_free(r);
1198 return false;
1201 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
1202 ndr_err = call->ndr_pull(pull, NDR_IN, r);
1203 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1204 talloc_free(r);
1205 return false;
1208 if (DEBUGLEVEL >= 10) {
1209 NDR_PRINT_IN_DEBUG(lsa_LookupSids, r);
1212 ZERO_STRUCT(r->out);
1213 r->out.domains = talloc_zero(r, struct lsa_RefDomainList *);
1214 if (r->out.domains == NULL) {
1215 talloc_free(r);
1216 return false;
1219 r->out.names = r->in.names;
1220 r->out.count = r->in.count;
1221 r->out.result = _lsa_LookupSids(p, r);
1223 if (p->rng_fault_state) {
1224 talloc_free(r);
1225 /* Return true here, srv_pipe_hnd.c will take care */
1226 return true;
1229 if (DEBUGLEVEL >= 10) {
1230 NDR_PRINT_OUT_DEBUG(lsa_LookupSids, r);
1233 push = ndr_push_init_ctx(r);
1234 if (push == NULL) {
1235 talloc_free(r);
1236 return false;
1239 ndr_err = call->ndr_push(push, NDR_OUT, r);
1240 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1241 talloc_free(r);
1242 return false;
1245 blob = ndr_push_blob(push);
1246 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
1247 talloc_free(r);
1248 return false;
1251 talloc_free(r);
1253 return true;
1256 static bool api_lsa_CreateSecret(pipes_struct *p)
1258 const struct ndr_interface_call *call;
1259 struct ndr_pull *pull;
1260 struct ndr_push *push;
1261 enum ndr_err_code ndr_err;
1262 DATA_BLOB blob;
1263 struct lsa_CreateSecret *r;
1265 call = &ndr_table_lsarpc.calls[NDR_LSA_CREATESECRET];
1267 r = talloc(talloc_tos(), struct lsa_CreateSecret);
1268 if (r == NULL) {
1269 return false;
1272 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
1273 talloc_free(r);
1274 return false;
1277 pull = ndr_pull_init_blob(&blob, r);
1278 if (pull == NULL) {
1279 talloc_free(r);
1280 return false;
1283 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
1284 ndr_err = call->ndr_pull(pull, NDR_IN, r);
1285 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1286 talloc_free(r);
1287 return false;
1290 if (DEBUGLEVEL >= 10) {
1291 NDR_PRINT_IN_DEBUG(lsa_CreateSecret, r);
1294 ZERO_STRUCT(r->out);
1295 r->out.sec_handle = talloc_zero(r, struct policy_handle);
1296 if (r->out.sec_handle == NULL) {
1297 talloc_free(r);
1298 return false;
1301 r->out.result = _lsa_CreateSecret(p, r);
1303 if (p->rng_fault_state) {
1304 talloc_free(r);
1305 /* Return true here, srv_pipe_hnd.c will take care */
1306 return true;
1309 if (DEBUGLEVEL >= 10) {
1310 NDR_PRINT_OUT_DEBUG(lsa_CreateSecret, r);
1313 push = ndr_push_init_ctx(r);
1314 if (push == NULL) {
1315 talloc_free(r);
1316 return false;
1319 ndr_err = call->ndr_push(push, NDR_OUT, r);
1320 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1321 talloc_free(r);
1322 return false;
1325 blob = ndr_push_blob(push);
1326 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
1327 talloc_free(r);
1328 return false;
1331 talloc_free(r);
1333 return true;
1336 static bool api_lsa_OpenAccount(pipes_struct *p)
1338 const struct ndr_interface_call *call;
1339 struct ndr_pull *pull;
1340 struct ndr_push *push;
1341 enum ndr_err_code ndr_err;
1342 DATA_BLOB blob;
1343 struct lsa_OpenAccount *r;
1345 call = &ndr_table_lsarpc.calls[NDR_LSA_OPENACCOUNT];
1347 r = talloc(talloc_tos(), struct lsa_OpenAccount);
1348 if (r == NULL) {
1349 return false;
1352 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
1353 talloc_free(r);
1354 return false;
1357 pull = ndr_pull_init_blob(&blob, r);
1358 if (pull == NULL) {
1359 talloc_free(r);
1360 return false;
1363 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
1364 ndr_err = call->ndr_pull(pull, NDR_IN, r);
1365 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1366 talloc_free(r);
1367 return false;
1370 if (DEBUGLEVEL >= 10) {
1371 NDR_PRINT_IN_DEBUG(lsa_OpenAccount, r);
1374 ZERO_STRUCT(r->out);
1375 r->out.acct_handle = talloc_zero(r, struct policy_handle);
1376 if (r->out.acct_handle == NULL) {
1377 talloc_free(r);
1378 return false;
1381 r->out.result = _lsa_OpenAccount(p, r);
1383 if (p->rng_fault_state) {
1384 talloc_free(r);
1385 /* Return true here, srv_pipe_hnd.c will take care */
1386 return true;
1389 if (DEBUGLEVEL >= 10) {
1390 NDR_PRINT_OUT_DEBUG(lsa_OpenAccount, r);
1393 push = ndr_push_init_ctx(r);
1394 if (push == NULL) {
1395 talloc_free(r);
1396 return false;
1399 ndr_err = call->ndr_push(push, NDR_OUT, r);
1400 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1401 talloc_free(r);
1402 return false;
1405 blob = ndr_push_blob(push);
1406 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
1407 talloc_free(r);
1408 return false;
1411 talloc_free(r);
1413 return true;
1416 static bool api_lsa_EnumPrivsAccount(pipes_struct *p)
1418 const struct ndr_interface_call *call;
1419 struct ndr_pull *pull;
1420 struct ndr_push *push;
1421 enum ndr_err_code ndr_err;
1422 DATA_BLOB blob;
1423 struct lsa_EnumPrivsAccount *r;
1425 call = &ndr_table_lsarpc.calls[NDR_LSA_ENUMPRIVSACCOUNT];
1427 r = talloc(talloc_tos(), struct lsa_EnumPrivsAccount);
1428 if (r == NULL) {
1429 return false;
1432 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
1433 talloc_free(r);
1434 return false;
1437 pull = ndr_pull_init_blob(&blob, r);
1438 if (pull == NULL) {
1439 talloc_free(r);
1440 return false;
1443 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
1444 ndr_err = call->ndr_pull(pull, NDR_IN, r);
1445 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1446 talloc_free(r);
1447 return false;
1450 if (DEBUGLEVEL >= 10) {
1451 NDR_PRINT_IN_DEBUG(lsa_EnumPrivsAccount, r);
1454 ZERO_STRUCT(r->out);
1455 r->out.privs = talloc_zero(r, struct lsa_PrivilegeSet *);
1456 if (r->out.privs == NULL) {
1457 talloc_free(r);
1458 return false;
1461 r->out.result = _lsa_EnumPrivsAccount(p, r);
1463 if (p->rng_fault_state) {
1464 talloc_free(r);
1465 /* Return true here, srv_pipe_hnd.c will take care */
1466 return true;
1469 if (DEBUGLEVEL >= 10) {
1470 NDR_PRINT_OUT_DEBUG(lsa_EnumPrivsAccount, r);
1473 push = ndr_push_init_ctx(r);
1474 if (push == NULL) {
1475 talloc_free(r);
1476 return false;
1479 ndr_err = call->ndr_push(push, NDR_OUT, r);
1480 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1481 talloc_free(r);
1482 return false;
1485 blob = ndr_push_blob(push);
1486 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
1487 talloc_free(r);
1488 return false;
1491 talloc_free(r);
1493 return true;
1496 static bool api_lsa_AddPrivilegesToAccount(pipes_struct *p)
1498 const struct ndr_interface_call *call;
1499 struct ndr_pull *pull;
1500 struct ndr_push *push;
1501 enum ndr_err_code ndr_err;
1502 DATA_BLOB blob;
1503 struct lsa_AddPrivilegesToAccount *r;
1505 call = &ndr_table_lsarpc.calls[NDR_LSA_ADDPRIVILEGESTOACCOUNT];
1507 r = talloc(talloc_tos(), struct lsa_AddPrivilegesToAccount);
1508 if (r == NULL) {
1509 return false;
1512 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
1513 talloc_free(r);
1514 return false;
1517 pull = ndr_pull_init_blob(&blob, r);
1518 if (pull == NULL) {
1519 talloc_free(r);
1520 return false;
1523 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
1524 ndr_err = call->ndr_pull(pull, NDR_IN, r);
1525 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1526 talloc_free(r);
1527 return false;
1530 if (DEBUGLEVEL >= 10) {
1531 NDR_PRINT_IN_DEBUG(lsa_AddPrivilegesToAccount, r);
1534 r->out.result = _lsa_AddPrivilegesToAccount(p, r);
1536 if (p->rng_fault_state) {
1537 talloc_free(r);
1538 /* Return true here, srv_pipe_hnd.c will take care */
1539 return true;
1542 if (DEBUGLEVEL >= 10) {
1543 NDR_PRINT_OUT_DEBUG(lsa_AddPrivilegesToAccount, r);
1546 push = ndr_push_init_ctx(r);
1547 if (push == NULL) {
1548 talloc_free(r);
1549 return false;
1552 ndr_err = call->ndr_push(push, NDR_OUT, r);
1553 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1554 talloc_free(r);
1555 return false;
1558 blob = ndr_push_blob(push);
1559 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
1560 talloc_free(r);
1561 return false;
1564 talloc_free(r);
1566 return true;
1569 static bool api_lsa_RemovePrivilegesFromAccount(pipes_struct *p)
1571 const struct ndr_interface_call *call;
1572 struct ndr_pull *pull;
1573 struct ndr_push *push;
1574 enum ndr_err_code ndr_err;
1575 DATA_BLOB blob;
1576 struct lsa_RemovePrivilegesFromAccount *r;
1578 call = &ndr_table_lsarpc.calls[NDR_LSA_REMOVEPRIVILEGESFROMACCOUNT];
1580 r = talloc(talloc_tos(), struct lsa_RemovePrivilegesFromAccount);
1581 if (r == NULL) {
1582 return false;
1585 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
1586 talloc_free(r);
1587 return false;
1590 pull = ndr_pull_init_blob(&blob, r);
1591 if (pull == NULL) {
1592 talloc_free(r);
1593 return false;
1596 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
1597 ndr_err = call->ndr_pull(pull, NDR_IN, r);
1598 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1599 talloc_free(r);
1600 return false;
1603 if (DEBUGLEVEL >= 10) {
1604 NDR_PRINT_IN_DEBUG(lsa_RemovePrivilegesFromAccount, r);
1607 r->out.result = _lsa_RemovePrivilegesFromAccount(p, r);
1609 if (p->rng_fault_state) {
1610 talloc_free(r);
1611 /* Return true here, srv_pipe_hnd.c will take care */
1612 return true;
1615 if (DEBUGLEVEL >= 10) {
1616 NDR_PRINT_OUT_DEBUG(lsa_RemovePrivilegesFromAccount, r);
1619 push = ndr_push_init_ctx(r);
1620 if (push == NULL) {
1621 talloc_free(r);
1622 return false;
1625 ndr_err = call->ndr_push(push, NDR_OUT, r);
1626 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1627 talloc_free(r);
1628 return false;
1631 blob = ndr_push_blob(push);
1632 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
1633 talloc_free(r);
1634 return false;
1637 talloc_free(r);
1639 return true;
1642 static bool api_lsa_GetQuotasForAccount(pipes_struct *p)
1644 const struct ndr_interface_call *call;
1645 struct ndr_pull *pull;
1646 struct ndr_push *push;
1647 enum ndr_err_code ndr_err;
1648 DATA_BLOB blob;
1649 struct lsa_GetQuotasForAccount *r;
1651 call = &ndr_table_lsarpc.calls[NDR_LSA_GETQUOTASFORACCOUNT];
1653 r = talloc(talloc_tos(), struct lsa_GetQuotasForAccount);
1654 if (r == NULL) {
1655 return false;
1658 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
1659 talloc_free(r);
1660 return false;
1663 pull = ndr_pull_init_blob(&blob, r);
1664 if (pull == NULL) {
1665 talloc_free(r);
1666 return false;
1669 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
1670 ndr_err = call->ndr_pull(pull, NDR_IN, r);
1671 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1672 talloc_free(r);
1673 return false;
1676 if (DEBUGLEVEL >= 10) {
1677 NDR_PRINT_IN_DEBUG(lsa_GetQuotasForAccount, r);
1680 r->out.result = _lsa_GetQuotasForAccount(p, r);
1682 if (p->rng_fault_state) {
1683 talloc_free(r);
1684 /* Return true here, srv_pipe_hnd.c will take care */
1685 return true;
1688 if (DEBUGLEVEL >= 10) {
1689 NDR_PRINT_OUT_DEBUG(lsa_GetQuotasForAccount, r);
1692 push = ndr_push_init_ctx(r);
1693 if (push == NULL) {
1694 talloc_free(r);
1695 return false;
1698 ndr_err = call->ndr_push(push, NDR_OUT, r);
1699 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1700 talloc_free(r);
1701 return false;
1704 blob = ndr_push_blob(push);
1705 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
1706 talloc_free(r);
1707 return false;
1710 talloc_free(r);
1712 return true;
1715 static bool api_lsa_SetQuotasForAccount(pipes_struct *p)
1717 const struct ndr_interface_call *call;
1718 struct ndr_pull *pull;
1719 struct ndr_push *push;
1720 enum ndr_err_code ndr_err;
1721 DATA_BLOB blob;
1722 struct lsa_SetQuotasForAccount *r;
1724 call = &ndr_table_lsarpc.calls[NDR_LSA_SETQUOTASFORACCOUNT];
1726 r = talloc(talloc_tos(), struct lsa_SetQuotasForAccount);
1727 if (r == NULL) {
1728 return false;
1731 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
1732 talloc_free(r);
1733 return false;
1736 pull = ndr_pull_init_blob(&blob, r);
1737 if (pull == NULL) {
1738 talloc_free(r);
1739 return false;
1742 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
1743 ndr_err = call->ndr_pull(pull, NDR_IN, r);
1744 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1745 talloc_free(r);
1746 return false;
1749 if (DEBUGLEVEL >= 10) {
1750 NDR_PRINT_IN_DEBUG(lsa_SetQuotasForAccount, r);
1753 r->out.result = _lsa_SetQuotasForAccount(p, r);
1755 if (p->rng_fault_state) {
1756 talloc_free(r);
1757 /* Return true here, srv_pipe_hnd.c will take care */
1758 return true;
1761 if (DEBUGLEVEL >= 10) {
1762 NDR_PRINT_OUT_DEBUG(lsa_SetQuotasForAccount, r);
1765 push = ndr_push_init_ctx(r);
1766 if (push == NULL) {
1767 talloc_free(r);
1768 return false;
1771 ndr_err = call->ndr_push(push, NDR_OUT, r);
1772 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1773 talloc_free(r);
1774 return false;
1777 blob = ndr_push_blob(push);
1778 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
1779 talloc_free(r);
1780 return false;
1783 talloc_free(r);
1785 return true;
1788 static bool api_lsa_GetSystemAccessAccount(pipes_struct *p)
1790 const struct ndr_interface_call *call;
1791 struct ndr_pull *pull;
1792 struct ndr_push *push;
1793 enum ndr_err_code ndr_err;
1794 DATA_BLOB blob;
1795 struct lsa_GetSystemAccessAccount *r;
1797 call = &ndr_table_lsarpc.calls[NDR_LSA_GETSYSTEMACCESSACCOUNT];
1799 r = talloc(talloc_tos(), struct lsa_GetSystemAccessAccount);
1800 if (r == NULL) {
1801 return false;
1804 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
1805 talloc_free(r);
1806 return false;
1809 pull = ndr_pull_init_blob(&blob, r);
1810 if (pull == NULL) {
1811 talloc_free(r);
1812 return false;
1815 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
1816 ndr_err = call->ndr_pull(pull, NDR_IN, r);
1817 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1818 talloc_free(r);
1819 return false;
1822 if (DEBUGLEVEL >= 10) {
1823 NDR_PRINT_IN_DEBUG(lsa_GetSystemAccessAccount, r);
1826 ZERO_STRUCT(r->out);
1827 r->out.access_mask = talloc_zero(r, uint32_t);
1828 if (r->out.access_mask == NULL) {
1829 talloc_free(r);
1830 return false;
1833 r->out.result = _lsa_GetSystemAccessAccount(p, r);
1835 if (p->rng_fault_state) {
1836 talloc_free(r);
1837 /* Return true here, srv_pipe_hnd.c will take care */
1838 return true;
1841 if (DEBUGLEVEL >= 10) {
1842 NDR_PRINT_OUT_DEBUG(lsa_GetSystemAccessAccount, r);
1845 push = ndr_push_init_ctx(r);
1846 if (push == NULL) {
1847 talloc_free(r);
1848 return false;
1851 ndr_err = call->ndr_push(push, NDR_OUT, r);
1852 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1853 talloc_free(r);
1854 return false;
1857 blob = ndr_push_blob(push);
1858 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
1859 talloc_free(r);
1860 return false;
1863 talloc_free(r);
1865 return true;
1868 static bool api_lsa_SetSystemAccessAccount(pipes_struct *p)
1870 const struct ndr_interface_call *call;
1871 struct ndr_pull *pull;
1872 struct ndr_push *push;
1873 enum ndr_err_code ndr_err;
1874 DATA_BLOB blob;
1875 struct lsa_SetSystemAccessAccount *r;
1877 call = &ndr_table_lsarpc.calls[NDR_LSA_SETSYSTEMACCESSACCOUNT];
1879 r = talloc(talloc_tos(), struct lsa_SetSystemAccessAccount);
1880 if (r == NULL) {
1881 return false;
1884 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
1885 talloc_free(r);
1886 return false;
1889 pull = ndr_pull_init_blob(&blob, r);
1890 if (pull == NULL) {
1891 talloc_free(r);
1892 return false;
1895 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
1896 ndr_err = call->ndr_pull(pull, NDR_IN, r);
1897 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1898 talloc_free(r);
1899 return false;
1902 if (DEBUGLEVEL >= 10) {
1903 NDR_PRINT_IN_DEBUG(lsa_SetSystemAccessAccount, r);
1906 r->out.result = _lsa_SetSystemAccessAccount(p, r);
1908 if (p->rng_fault_state) {
1909 talloc_free(r);
1910 /* Return true here, srv_pipe_hnd.c will take care */
1911 return true;
1914 if (DEBUGLEVEL >= 10) {
1915 NDR_PRINT_OUT_DEBUG(lsa_SetSystemAccessAccount, r);
1918 push = ndr_push_init_ctx(r);
1919 if (push == NULL) {
1920 talloc_free(r);
1921 return false;
1924 ndr_err = call->ndr_push(push, NDR_OUT, r);
1925 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1926 talloc_free(r);
1927 return false;
1930 blob = ndr_push_blob(push);
1931 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
1932 talloc_free(r);
1933 return false;
1936 talloc_free(r);
1938 return true;
1941 static bool api_lsa_OpenTrustedDomain(pipes_struct *p)
1943 const struct ndr_interface_call *call;
1944 struct ndr_pull *pull;
1945 struct ndr_push *push;
1946 enum ndr_err_code ndr_err;
1947 DATA_BLOB blob;
1948 struct lsa_OpenTrustedDomain *r;
1950 call = &ndr_table_lsarpc.calls[NDR_LSA_OPENTRUSTEDDOMAIN];
1952 r = talloc(talloc_tos(), struct lsa_OpenTrustedDomain);
1953 if (r == NULL) {
1954 return false;
1957 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
1958 talloc_free(r);
1959 return false;
1962 pull = ndr_pull_init_blob(&blob, r);
1963 if (pull == NULL) {
1964 talloc_free(r);
1965 return false;
1968 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
1969 ndr_err = call->ndr_pull(pull, NDR_IN, r);
1970 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1971 talloc_free(r);
1972 return false;
1975 if (DEBUGLEVEL >= 10) {
1976 NDR_PRINT_IN_DEBUG(lsa_OpenTrustedDomain, r);
1979 ZERO_STRUCT(r->out);
1980 r->out.trustdom_handle = talloc_zero(r, struct policy_handle);
1981 if (r->out.trustdom_handle == NULL) {
1982 talloc_free(r);
1983 return false;
1986 r->out.result = _lsa_OpenTrustedDomain(p, r);
1988 if (p->rng_fault_state) {
1989 talloc_free(r);
1990 /* Return true here, srv_pipe_hnd.c will take care */
1991 return true;
1994 if (DEBUGLEVEL >= 10) {
1995 NDR_PRINT_OUT_DEBUG(lsa_OpenTrustedDomain, r);
1998 push = ndr_push_init_ctx(r);
1999 if (push == NULL) {
2000 talloc_free(r);
2001 return false;
2004 ndr_err = call->ndr_push(push, NDR_OUT, r);
2005 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2006 talloc_free(r);
2007 return false;
2010 blob = ndr_push_blob(push);
2011 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
2012 talloc_free(r);
2013 return false;
2016 talloc_free(r);
2018 return true;
2021 static bool api_lsa_QueryTrustedDomainInfo(pipes_struct *p)
2023 const struct ndr_interface_call *call;
2024 struct ndr_pull *pull;
2025 struct ndr_push *push;
2026 enum ndr_err_code ndr_err;
2027 DATA_BLOB blob;
2028 struct lsa_QueryTrustedDomainInfo *r;
2030 call = &ndr_table_lsarpc.calls[NDR_LSA_QUERYTRUSTEDDOMAININFO];
2032 r = talloc(talloc_tos(), struct lsa_QueryTrustedDomainInfo);
2033 if (r == NULL) {
2034 return false;
2037 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
2038 talloc_free(r);
2039 return false;
2042 pull = ndr_pull_init_blob(&blob, r);
2043 if (pull == NULL) {
2044 talloc_free(r);
2045 return false;
2048 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
2049 ndr_err = call->ndr_pull(pull, NDR_IN, r);
2050 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2051 talloc_free(r);
2052 return false;
2055 if (DEBUGLEVEL >= 10) {
2056 NDR_PRINT_IN_DEBUG(lsa_QueryTrustedDomainInfo, r);
2059 ZERO_STRUCT(r->out);
2060 r->out.info = talloc_zero(r, union lsa_TrustedDomainInfo *);
2061 if (r->out.info == NULL) {
2062 talloc_free(r);
2063 return false;
2066 r->out.result = _lsa_QueryTrustedDomainInfo(p, r);
2068 if (p->rng_fault_state) {
2069 talloc_free(r);
2070 /* Return true here, srv_pipe_hnd.c will take care */
2071 return true;
2074 if (DEBUGLEVEL >= 10) {
2075 NDR_PRINT_OUT_DEBUG(lsa_QueryTrustedDomainInfo, r);
2078 push = ndr_push_init_ctx(r);
2079 if (push == NULL) {
2080 talloc_free(r);
2081 return false;
2084 ndr_err = call->ndr_push(push, NDR_OUT, r);
2085 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2086 talloc_free(r);
2087 return false;
2090 blob = ndr_push_blob(push);
2091 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
2092 talloc_free(r);
2093 return false;
2096 talloc_free(r);
2098 return true;
2101 static bool api_lsa_SetInformationTrustedDomain(pipes_struct *p)
2103 const struct ndr_interface_call *call;
2104 struct ndr_pull *pull;
2105 struct ndr_push *push;
2106 enum ndr_err_code ndr_err;
2107 DATA_BLOB blob;
2108 struct lsa_SetInformationTrustedDomain *r;
2110 call = &ndr_table_lsarpc.calls[NDR_LSA_SETINFORMATIONTRUSTEDDOMAIN];
2112 r = talloc(talloc_tos(), struct lsa_SetInformationTrustedDomain);
2113 if (r == NULL) {
2114 return false;
2117 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
2118 talloc_free(r);
2119 return false;
2122 pull = ndr_pull_init_blob(&blob, r);
2123 if (pull == NULL) {
2124 talloc_free(r);
2125 return false;
2128 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
2129 ndr_err = call->ndr_pull(pull, NDR_IN, r);
2130 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2131 talloc_free(r);
2132 return false;
2135 if (DEBUGLEVEL >= 10) {
2136 NDR_PRINT_IN_DEBUG(lsa_SetInformationTrustedDomain, r);
2139 r->out.result = _lsa_SetInformationTrustedDomain(p, r);
2141 if (p->rng_fault_state) {
2142 talloc_free(r);
2143 /* Return true here, srv_pipe_hnd.c will take care */
2144 return true;
2147 if (DEBUGLEVEL >= 10) {
2148 NDR_PRINT_OUT_DEBUG(lsa_SetInformationTrustedDomain, r);
2151 push = ndr_push_init_ctx(r);
2152 if (push == NULL) {
2153 talloc_free(r);
2154 return false;
2157 ndr_err = call->ndr_push(push, NDR_OUT, r);
2158 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2159 talloc_free(r);
2160 return false;
2163 blob = ndr_push_blob(push);
2164 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
2165 talloc_free(r);
2166 return false;
2169 talloc_free(r);
2171 return true;
2174 static bool api_lsa_OpenSecret(pipes_struct *p)
2176 const struct ndr_interface_call *call;
2177 struct ndr_pull *pull;
2178 struct ndr_push *push;
2179 enum ndr_err_code ndr_err;
2180 DATA_BLOB blob;
2181 struct lsa_OpenSecret *r;
2183 call = &ndr_table_lsarpc.calls[NDR_LSA_OPENSECRET];
2185 r = talloc(talloc_tos(), struct lsa_OpenSecret);
2186 if (r == NULL) {
2187 return false;
2190 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
2191 talloc_free(r);
2192 return false;
2195 pull = ndr_pull_init_blob(&blob, r);
2196 if (pull == NULL) {
2197 talloc_free(r);
2198 return false;
2201 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
2202 ndr_err = call->ndr_pull(pull, NDR_IN, r);
2203 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2204 talloc_free(r);
2205 return false;
2208 if (DEBUGLEVEL >= 10) {
2209 NDR_PRINT_IN_DEBUG(lsa_OpenSecret, r);
2212 ZERO_STRUCT(r->out);
2213 r->out.sec_handle = talloc_zero(r, struct policy_handle);
2214 if (r->out.sec_handle == NULL) {
2215 talloc_free(r);
2216 return false;
2219 r->out.result = _lsa_OpenSecret(p, r);
2221 if (p->rng_fault_state) {
2222 talloc_free(r);
2223 /* Return true here, srv_pipe_hnd.c will take care */
2224 return true;
2227 if (DEBUGLEVEL >= 10) {
2228 NDR_PRINT_OUT_DEBUG(lsa_OpenSecret, r);
2231 push = ndr_push_init_ctx(r);
2232 if (push == NULL) {
2233 talloc_free(r);
2234 return false;
2237 ndr_err = call->ndr_push(push, NDR_OUT, r);
2238 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2239 talloc_free(r);
2240 return false;
2243 blob = ndr_push_blob(push);
2244 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
2245 talloc_free(r);
2246 return false;
2249 talloc_free(r);
2251 return true;
2254 static bool api_lsa_SetSecret(pipes_struct *p)
2256 const struct ndr_interface_call *call;
2257 struct ndr_pull *pull;
2258 struct ndr_push *push;
2259 enum ndr_err_code ndr_err;
2260 DATA_BLOB blob;
2261 struct lsa_SetSecret *r;
2263 call = &ndr_table_lsarpc.calls[NDR_LSA_SETSECRET];
2265 r = talloc(talloc_tos(), struct lsa_SetSecret);
2266 if (r == NULL) {
2267 return false;
2270 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
2271 talloc_free(r);
2272 return false;
2275 pull = ndr_pull_init_blob(&blob, r);
2276 if (pull == NULL) {
2277 talloc_free(r);
2278 return false;
2281 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
2282 ndr_err = call->ndr_pull(pull, NDR_IN, r);
2283 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2284 talloc_free(r);
2285 return false;
2288 if (DEBUGLEVEL >= 10) {
2289 NDR_PRINT_IN_DEBUG(lsa_SetSecret, r);
2292 r->out.result = _lsa_SetSecret(p, r);
2294 if (p->rng_fault_state) {
2295 talloc_free(r);
2296 /* Return true here, srv_pipe_hnd.c will take care */
2297 return true;
2300 if (DEBUGLEVEL >= 10) {
2301 NDR_PRINT_OUT_DEBUG(lsa_SetSecret, r);
2304 push = ndr_push_init_ctx(r);
2305 if (push == NULL) {
2306 talloc_free(r);
2307 return false;
2310 ndr_err = call->ndr_push(push, NDR_OUT, r);
2311 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2312 talloc_free(r);
2313 return false;
2316 blob = ndr_push_blob(push);
2317 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
2318 talloc_free(r);
2319 return false;
2322 talloc_free(r);
2324 return true;
2327 static bool api_lsa_QuerySecret(pipes_struct *p)
2329 const struct ndr_interface_call *call;
2330 struct ndr_pull *pull;
2331 struct ndr_push *push;
2332 enum ndr_err_code ndr_err;
2333 DATA_BLOB blob;
2334 struct lsa_QuerySecret *r;
2336 call = &ndr_table_lsarpc.calls[NDR_LSA_QUERYSECRET];
2338 r = talloc(talloc_tos(), struct lsa_QuerySecret);
2339 if (r == NULL) {
2340 return false;
2343 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
2344 talloc_free(r);
2345 return false;
2348 pull = ndr_pull_init_blob(&blob, r);
2349 if (pull == NULL) {
2350 talloc_free(r);
2351 return false;
2354 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
2355 ndr_err = call->ndr_pull(pull, NDR_IN, r);
2356 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2357 talloc_free(r);
2358 return false;
2361 if (DEBUGLEVEL >= 10) {
2362 NDR_PRINT_IN_DEBUG(lsa_QuerySecret, r);
2365 ZERO_STRUCT(r->out);
2366 r->out.new_val = r->in.new_val;
2367 r->out.new_mtime = r->in.new_mtime;
2368 r->out.old_val = r->in.old_val;
2369 r->out.old_mtime = r->in.old_mtime;
2370 r->out.result = _lsa_QuerySecret(p, r);
2372 if (p->rng_fault_state) {
2373 talloc_free(r);
2374 /* Return true here, srv_pipe_hnd.c will take care */
2375 return true;
2378 if (DEBUGLEVEL >= 10) {
2379 NDR_PRINT_OUT_DEBUG(lsa_QuerySecret, r);
2382 push = ndr_push_init_ctx(r);
2383 if (push == NULL) {
2384 talloc_free(r);
2385 return false;
2388 ndr_err = call->ndr_push(push, NDR_OUT, r);
2389 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2390 talloc_free(r);
2391 return false;
2394 blob = ndr_push_blob(push);
2395 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
2396 talloc_free(r);
2397 return false;
2400 talloc_free(r);
2402 return true;
2405 static bool api_lsa_LookupPrivValue(pipes_struct *p)
2407 const struct ndr_interface_call *call;
2408 struct ndr_pull *pull;
2409 struct ndr_push *push;
2410 enum ndr_err_code ndr_err;
2411 DATA_BLOB blob;
2412 struct lsa_LookupPrivValue *r;
2414 call = &ndr_table_lsarpc.calls[NDR_LSA_LOOKUPPRIVVALUE];
2416 r = talloc(talloc_tos(), struct lsa_LookupPrivValue);
2417 if (r == NULL) {
2418 return false;
2421 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
2422 talloc_free(r);
2423 return false;
2426 pull = ndr_pull_init_blob(&blob, r);
2427 if (pull == NULL) {
2428 talloc_free(r);
2429 return false;
2432 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
2433 ndr_err = call->ndr_pull(pull, NDR_IN, r);
2434 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2435 talloc_free(r);
2436 return false;
2439 if (DEBUGLEVEL >= 10) {
2440 NDR_PRINT_IN_DEBUG(lsa_LookupPrivValue, r);
2443 ZERO_STRUCT(r->out);
2444 r->out.luid = talloc_zero(r, struct lsa_LUID);
2445 if (r->out.luid == NULL) {
2446 talloc_free(r);
2447 return false;
2450 r->out.result = _lsa_LookupPrivValue(p, r);
2452 if (p->rng_fault_state) {
2453 talloc_free(r);
2454 /* Return true here, srv_pipe_hnd.c will take care */
2455 return true;
2458 if (DEBUGLEVEL >= 10) {
2459 NDR_PRINT_OUT_DEBUG(lsa_LookupPrivValue, r);
2462 push = ndr_push_init_ctx(r);
2463 if (push == NULL) {
2464 talloc_free(r);
2465 return false;
2468 ndr_err = call->ndr_push(push, NDR_OUT, r);
2469 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2470 talloc_free(r);
2471 return false;
2474 blob = ndr_push_blob(push);
2475 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
2476 talloc_free(r);
2477 return false;
2480 talloc_free(r);
2482 return true;
2485 static bool api_lsa_LookupPrivName(pipes_struct *p)
2487 const struct ndr_interface_call *call;
2488 struct ndr_pull *pull;
2489 struct ndr_push *push;
2490 enum ndr_err_code ndr_err;
2491 DATA_BLOB blob;
2492 struct lsa_LookupPrivName *r;
2494 call = &ndr_table_lsarpc.calls[NDR_LSA_LOOKUPPRIVNAME];
2496 r = talloc(talloc_tos(), struct lsa_LookupPrivName);
2497 if (r == NULL) {
2498 return false;
2501 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
2502 talloc_free(r);
2503 return false;
2506 pull = ndr_pull_init_blob(&blob, r);
2507 if (pull == NULL) {
2508 talloc_free(r);
2509 return false;
2512 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
2513 ndr_err = call->ndr_pull(pull, NDR_IN, r);
2514 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2515 talloc_free(r);
2516 return false;
2519 if (DEBUGLEVEL >= 10) {
2520 NDR_PRINT_IN_DEBUG(lsa_LookupPrivName, r);
2523 ZERO_STRUCT(r->out);
2524 r->out.name = talloc_zero(r, struct lsa_StringLarge *);
2525 if (r->out.name == NULL) {
2526 talloc_free(r);
2527 return false;
2530 r->out.result = _lsa_LookupPrivName(p, r);
2532 if (p->rng_fault_state) {
2533 talloc_free(r);
2534 /* Return true here, srv_pipe_hnd.c will take care */
2535 return true;
2538 if (DEBUGLEVEL >= 10) {
2539 NDR_PRINT_OUT_DEBUG(lsa_LookupPrivName, r);
2542 push = ndr_push_init_ctx(r);
2543 if (push == NULL) {
2544 talloc_free(r);
2545 return false;
2548 ndr_err = call->ndr_push(push, NDR_OUT, r);
2549 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2550 talloc_free(r);
2551 return false;
2554 blob = ndr_push_blob(push);
2555 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
2556 talloc_free(r);
2557 return false;
2560 talloc_free(r);
2562 return true;
2565 static bool api_lsa_LookupPrivDisplayName(pipes_struct *p)
2567 const struct ndr_interface_call *call;
2568 struct ndr_pull *pull;
2569 struct ndr_push *push;
2570 enum ndr_err_code ndr_err;
2571 DATA_BLOB blob;
2572 struct lsa_LookupPrivDisplayName *r;
2574 call = &ndr_table_lsarpc.calls[NDR_LSA_LOOKUPPRIVDISPLAYNAME];
2576 r = talloc(talloc_tos(), struct lsa_LookupPrivDisplayName);
2577 if (r == NULL) {
2578 return false;
2581 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
2582 talloc_free(r);
2583 return false;
2586 pull = ndr_pull_init_blob(&blob, r);
2587 if (pull == NULL) {
2588 talloc_free(r);
2589 return false;
2592 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
2593 ndr_err = call->ndr_pull(pull, NDR_IN, r);
2594 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2595 talloc_free(r);
2596 return false;
2599 if (DEBUGLEVEL >= 10) {
2600 NDR_PRINT_IN_DEBUG(lsa_LookupPrivDisplayName, r);
2603 ZERO_STRUCT(r->out);
2604 r->out.disp_name = talloc_zero(r, struct lsa_StringLarge *);
2605 if (r->out.disp_name == NULL) {
2606 talloc_free(r);
2607 return false;
2610 r->out.returned_language_id = talloc_zero(r, uint16_t);
2611 if (r->out.returned_language_id == NULL) {
2612 talloc_free(r);
2613 return false;
2616 r->out.result = _lsa_LookupPrivDisplayName(p, r);
2618 if (p->rng_fault_state) {
2619 talloc_free(r);
2620 /* Return true here, srv_pipe_hnd.c will take care */
2621 return true;
2624 if (DEBUGLEVEL >= 10) {
2625 NDR_PRINT_OUT_DEBUG(lsa_LookupPrivDisplayName, r);
2628 push = ndr_push_init_ctx(r);
2629 if (push == NULL) {
2630 talloc_free(r);
2631 return false;
2634 ndr_err = call->ndr_push(push, NDR_OUT, r);
2635 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2636 talloc_free(r);
2637 return false;
2640 blob = ndr_push_blob(push);
2641 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
2642 talloc_free(r);
2643 return false;
2646 talloc_free(r);
2648 return true;
2651 static bool api_lsa_DeleteObject(pipes_struct *p)
2653 const struct ndr_interface_call *call;
2654 struct ndr_pull *pull;
2655 struct ndr_push *push;
2656 enum ndr_err_code ndr_err;
2657 DATA_BLOB blob;
2658 struct lsa_DeleteObject *r;
2660 call = &ndr_table_lsarpc.calls[NDR_LSA_DELETEOBJECT];
2662 r = talloc(talloc_tos(), struct lsa_DeleteObject);
2663 if (r == NULL) {
2664 return false;
2667 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
2668 talloc_free(r);
2669 return false;
2672 pull = ndr_pull_init_blob(&blob, r);
2673 if (pull == NULL) {
2674 talloc_free(r);
2675 return false;
2678 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
2679 ndr_err = call->ndr_pull(pull, NDR_IN, r);
2680 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2681 talloc_free(r);
2682 return false;
2685 if (DEBUGLEVEL >= 10) {
2686 NDR_PRINT_IN_DEBUG(lsa_DeleteObject, r);
2689 ZERO_STRUCT(r->out);
2690 r->out.handle = r->in.handle;
2691 r->out.result = _lsa_DeleteObject(p, r);
2693 if (p->rng_fault_state) {
2694 talloc_free(r);
2695 /* Return true here, srv_pipe_hnd.c will take care */
2696 return true;
2699 if (DEBUGLEVEL >= 10) {
2700 NDR_PRINT_OUT_DEBUG(lsa_DeleteObject, r);
2703 push = ndr_push_init_ctx(r);
2704 if (push == NULL) {
2705 talloc_free(r);
2706 return false;
2709 ndr_err = call->ndr_push(push, NDR_OUT, r);
2710 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2711 talloc_free(r);
2712 return false;
2715 blob = ndr_push_blob(push);
2716 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
2717 talloc_free(r);
2718 return false;
2721 talloc_free(r);
2723 return true;
2726 static bool api_lsa_EnumAccountsWithUserRight(pipes_struct *p)
2728 const struct ndr_interface_call *call;
2729 struct ndr_pull *pull;
2730 struct ndr_push *push;
2731 enum ndr_err_code ndr_err;
2732 DATA_BLOB blob;
2733 struct lsa_EnumAccountsWithUserRight *r;
2735 call = &ndr_table_lsarpc.calls[NDR_LSA_ENUMACCOUNTSWITHUSERRIGHT];
2737 r = talloc(talloc_tos(), struct lsa_EnumAccountsWithUserRight);
2738 if (r == NULL) {
2739 return false;
2742 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
2743 talloc_free(r);
2744 return false;
2747 pull = ndr_pull_init_blob(&blob, r);
2748 if (pull == NULL) {
2749 talloc_free(r);
2750 return false;
2753 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
2754 ndr_err = call->ndr_pull(pull, NDR_IN, r);
2755 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2756 talloc_free(r);
2757 return false;
2760 if (DEBUGLEVEL >= 10) {
2761 NDR_PRINT_IN_DEBUG(lsa_EnumAccountsWithUserRight, r);
2764 ZERO_STRUCT(r->out);
2765 r->out.sids = talloc_zero(r, struct lsa_SidArray);
2766 if (r->out.sids == NULL) {
2767 talloc_free(r);
2768 return false;
2771 r->out.result = _lsa_EnumAccountsWithUserRight(p, r);
2773 if (p->rng_fault_state) {
2774 talloc_free(r);
2775 /* Return true here, srv_pipe_hnd.c will take care */
2776 return true;
2779 if (DEBUGLEVEL >= 10) {
2780 NDR_PRINT_OUT_DEBUG(lsa_EnumAccountsWithUserRight, r);
2783 push = ndr_push_init_ctx(r);
2784 if (push == NULL) {
2785 talloc_free(r);
2786 return false;
2789 ndr_err = call->ndr_push(push, NDR_OUT, r);
2790 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2791 talloc_free(r);
2792 return false;
2795 blob = ndr_push_blob(push);
2796 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
2797 talloc_free(r);
2798 return false;
2801 talloc_free(r);
2803 return true;
2806 static bool api_lsa_EnumAccountRights(pipes_struct *p)
2808 const struct ndr_interface_call *call;
2809 struct ndr_pull *pull;
2810 struct ndr_push *push;
2811 enum ndr_err_code ndr_err;
2812 DATA_BLOB blob;
2813 struct lsa_EnumAccountRights *r;
2815 call = &ndr_table_lsarpc.calls[NDR_LSA_ENUMACCOUNTRIGHTS];
2817 r = talloc(talloc_tos(), struct lsa_EnumAccountRights);
2818 if (r == NULL) {
2819 return false;
2822 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
2823 talloc_free(r);
2824 return false;
2827 pull = ndr_pull_init_blob(&blob, r);
2828 if (pull == NULL) {
2829 talloc_free(r);
2830 return false;
2833 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
2834 ndr_err = call->ndr_pull(pull, NDR_IN, r);
2835 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2836 talloc_free(r);
2837 return false;
2840 if (DEBUGLEVEL >= 10) {
2841 NDR_PRINT_IN_DEBUG(lsa_EnumAccountRights, r);
2844 ZERO_STRUCT(r->out);
2845 r->out.rights = talloc_zero(r, struct lsa_RightSet);
2846 if (r->out.rights == NULL) {
2847 talloc_free(r);
2848 return false;
2851 r->out.result = _lsa_EnumAccountRights(p, r);
2853 if (p->rng_fault_state) {
2854 talloc_free(r);
2855 /* Return true here, srv_pipe_hnd.c will take care */
2856 return true;
2859 if (DEBUGLEVEL >= 10) {
2860 NDR_PRINT_OUT_DEBUG(lsa_EnumAccountRights, r);
2863 push = ndr_push_init_ctx(r);
2864 if (push == NULL) {
2865 talloc_free(r);
2866 return false;
2869 ndr_err = call->ndr_push(push, NDR_OUT, r);
2870 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2871 talloc_free(r);
2872 return false;
2875 blob = ndr_push_blob(push);
2876 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
2877 talloc_free(r);
2878 return false;
2881 talloc_free(r);
2883 return true;
2886 static bool api_lsa_AddAccountRights(pipes_struct *p)
2888 const struct ndr_interface_call *call;
2889 struct ndr_pull *pull;
2890 struct ndr_push *push;
2891 enum ndr_err_code ndr_err;
2892 DATA_BLOB blob;
2893 struct lsa_AddAccountRights *r;
2895 call = &ndr_table_lsarpc.calls[NDR_LSA_ADDACCOUNTRIGHTS];
2897 r = talloc(talloc_tos(), struct lsa_AddAccountRights);
2898 if (r == NULL) {
2899 return false;
2902 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
2903 talloc_free(r);
2904 return false;
2907 pull = ndr_pull_init_blob(&blob, r);
2908 if (pull == NULL) {
2909 talloc_free(r);
2910 return false;
2913 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
2914 ndr_err = call->ndr_pull(pull, NDR_IN, r);
2915 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2916 talloc_free(r);
2917 return false;
2920 if (DEBUGLEVEL >= 10) {
2921 NDR_PRINT_IN_DEBUG(lsa_AddAccountRights, r);
2924 r->out.result = _lsa_AddAccountRights(p, r);
2926 if (p->rng_fault_state) {
2927 talloc_free(r);
2928 /* Return true here, srv_pipe_hnd.c will take care */
2929 return true;
2932 if (DEBUGLEVEL >= 10) {
2933 NDR_PRINT_OUT_DEBUG(lsa_AddAccountRights, r);
2936 push = ndr_push_init_ctx(r);
2937 if (push == NULL) {
2938 talloc_free(r);
2939 return false;
2942 ndr_err = call->ndr_push(push, NDR_OUT, r);
2943 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2944 talloc_free(r);
2945 return false;
2948 blob = ndr_push_blob(push);
2949 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
2950 talloc_free(r);
2951 return false;
2954 talloc_free(r);
2956 return true;
2959 static bool api_lsa_RemoveAccountRights(pipes_struct *p)
2961 const struct ndr_interface_call *call;
2962 struct ndr_pull *pull;
2963 struct ndr_push *push;
2964 enum ndr_err_code ndr_err;
2965 DATA_BLOB blob;
2966 struct lsa_RemoveAccountRights *r;
2968 call = &ndr_table_lsarpc.calls[NDR_LSA_REMOVEACCOUNTRIGHTS];
2970 r = talloc(talloc_tos(), struct lsa_RemoveAccountRights);
2971 if (r == NULL) {
2972 return false;
2975 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
2976 talloc_free(r);
2977 return false;
2980 pull = ndr_pull_init_blob(&blob, r);
2981 if (pull == NULL) {
2982 talloc_free(r);
2983 return false;
2986 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
2987 ndr_err = call->ndr_pull(pull, NDR_IN, r);
2988 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2989 talloc_free(r);
2990 return false;
2993 if (DEBUGLEVEL >= 10) {
2994 NDR_PRINT_IN_DEBUG(lsa_RemoveAccountRights, r);
2997 r->out.result = _lsa_RemoveAccountRights(p, r);
2999 if (p->rng_fault_state) {
3000 talloc_free(r);
3001 /* Return true here, srv_pipe_hnd.c will take care */
3002 return true;
3005 if (DEBUGLEVEL >= 10) {
3006 NDR_PRINT_OUT_DEBUG(lsa_RemoveAccountRights, r);
3009 push = ndr_push_init_ctx(r);
3010 if (push == NULL) {
3011 talloc_free(r);
3012 return false;
3015 ndr_err = call->ndr_push(push, NDR_OUT, r);
3016 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3017 talloc_free(r);
3018 return false;
3021 blob = ndr_push_blob(push);
3022 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
3023 talloc_free(r);
3024 return false;
3027 talloc_free(r);
3029 return true;
3032 static bool api_lsa_QueryTrustedDomainInfoBySid(pipes_struct *p)
3034 const struct ndr_interface_call *call;
3035 struct ndr_pull *pull;
3036 struct ndr_push *push;
3037 enum ndr_err_code ndr_err;
3038 DATA_BLOB blob;
3039 struct lsa_QueryTrustedDomainInfoBySid *r;
3041 call = &ndr_table_lsarpc.calls[NDR_LSA_QUERYTRUSTEDDOMAININFOBYSID];
3043 r = talloc(talloc_tos(), struct lsa_QueryTrustedDomainInfoBySid);
3044 if (r == NULL) {
3045 return false;
3048 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
3049 talloc_free(r);
3050 return false;
3053 pull = ndr_pull_init_blob(&blob, r);
3054 if (pull == NULL) {
3055 talloc_free(r);
3056 return false;
3059 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
3060 ndr_err = call->ndr_pull(pull, NDR_IN, r);
3061 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3062 talloc_free(r);
3063 return false;
3066 if (DEBUGLEVEL >= 10) {
3067 NDR_PRINT_IN_DEBUG(lsa_QueryTrustedDomainInfoBySid, r);
3070 ZERO_STRUCT(r->out);
3071 r->out.info = talloc_zero(r, union lsa_TrustedDomainInfo *);
3072 if (r->out.info == NULL) {
3073 talloc_free(r);
3074 return false;
3077 r->out.result = _lsa_QueryTrustedDomainInfoBySid(p, r);
3079 if (p->rng_fault_state) {
3080 talloc_free(r);
3081 /* Return true here, srv_pipe_hnd.c will take care */
3082 return true;
3085 if (DEBUGLEVEL >= 10) {
3086 NDR_PRINT_OUT_DEBUG(lsa_QueryTrustedDomainInfoBySid, r);
3089 push = ndr_push_init_ctx(r);
3090 if (push == NULL) {
3091 talloc_free(r);
3092 return false;
3095 ndr_err = call->ndr_push(push, NDR_OUT, r);
3096 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3097 talloc_free(r);
3098 return false;
3101 blob = ndr_push_blob(push);
3102 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
3103 talloc_free(r);
3104 return false;
3107 talloc_free(r);
3109 return true;
3112 static bool api_lsa_SetTrustedDomainInfo(pipes_struct *p)
3114 const struct ndr_interface_call *call;
3115 struct ndr_pull *pull;
3116 struct ndr_push *push;
3117 enum ndr_err_code ndr_err;
3118 DATA_BLOB blob;
3119 struct lsa_SetTrustedDomainInfo *r;
3121 call = &ndr_table_lsarpc.calls[NDR_LSA_SETTRUSTEDDOMAININFO];
3123 r = talloc(talloc_tos(), struct lsa_SetTrustedDomainInfo);
3124 if (r == NULL) {
3125 return false;
3128 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
3129 talloc_free(r);
3130 return false;
3133 pull = ndr_pull_init_blob(&blob, r);
3134 if (pull == NULL) {
3135 talloc_free(r);
3136 return false;
3139 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
3140 ndr_err = call->ndr_pull(pull, NDR_IN, r);
3141 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3142 talloc_free(r);
3143 return false;
3146 if (DEBUGLEVEL >= 10) {
3147 NDR_PRINT_IN_DEBUG(lsa_SetTrustedDomainInfo, r);
3150 r->out.result = _lsa_SetTrustedDomainInfo(p, r);
3152 if (p->rng_fault_state) {
3153 talloc_free(r);
3154 /* Return true here, srv_pipe_hnd.c will take care */
3155 return true;
3158 if (DEBUGLEVEL >= 10) {
3159 NDR_PRINT_OUT_DEBUG(lsa_SetTrustedDomainInfo, r);
3162 push = ndr_push_init_ctx(r);
3163 if (push == NULL) {
3164 talloc_free(r);
3165 return false;
3168 ndr_err = call->ndr_push(push, NDR_OUT, r);
3169 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3170 talloc_free(r);
3171 return false;
3174 blob = ndr_push_blob(push);
3175 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
3176 talloc_free(r);
3177 return false;
3180 talloc_free(r);
3182 return true;
3185 static bool api_lsa_DeleteTrustedDomain(pipes_struct *p)
3187 const struct ndr_interface_call *call;
3188 struct ndr_pull *pull;
3189 struct ndr_push *push;
3190 enum ndr_err_code ndr_err;
3191 DATA_BLOB blob;
3192 struct lsa_DeleteTrustedDomain *r;
3194 call = &ndr_table_lsarpc.calls[NDR_LSA_DELETETRUSTEDDOMAIN];
3196 r = talloc(talloc_tos(), struct lsa_DeleteTrustedDomain);
3197 if (r == NULL) {
3198 return false;
3201 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
3202 talloc_free(r);
3203 return false;
3206 pull = ndr_pull_init_blob(&blob, r);
3207 if (pull == NULL) {
3208 talloc_free(r);
3209 return false;
3212 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
3213 ndr_err = call->ndr_pull(pull, NDR_IN, r);
3214 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3215 talloc_free(r);
3216 return false;
3219 if (DEBUGLEVEL >= 10) {
3220 NDR_PRINT_IN_DEBUG(lsa_DeleteTrustedDomain, r);
3223 r->out.result = _lsa_DeleteTrustedDomain(p, r);
3225 if (p->rng_fault_state) {
3226 talloc_free(r);
3227 /* Return true here, srv_pipe_hnd.c will take care */
3228 return true;
3231 if (DEBUGLEVEL >= 10) {
3232 NDR_PRINT_OUT_DEBUG(lsa_DeleteTrustedDomain, r);
3235 push = ndr_push_init_ctx(r);
3236 if (push == NULL) {
3237 talloc_free(r);
3238 return false;
3241 ndr_err = call->ndr_push(push, NDR_OUT, r);
3242 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3243 talloc_free(r);
3244 return false;
3247 blob = ndr_push_blob(push);
3248 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
3249 talloc_free(r);
3250 return false;
3253 talloc_free(r);
3255 return true;
3258 static bool api_lsa_StorePrivateData(pipes_struct *p)
3260 const struct ndr_interface_call *call;
3261 struct ndr_pull *pull;
3262 struct ndr_push *push;
3263 enum ndr_err_code ndr_err;
3264 DATA_BLOB blob;
3265 struct lsa_StorePrivateData *r;
3267 call = &ndr_table_lsarpc.calls[NDR_LSA_STOREPRIVATEDATA];
3269 r = talloc(talloc_tos(), struct lsa_StorePrivateData);
3270 if (r == NULL) {
3271 return false;
3274 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
3275 talloc_free(r);
3276 return false;
3279 pull = ndr_pull_init_blob(&blob, r);
3280 if (pull == NULL) {
3281 talloc_free(r);
3282 return false;
3285 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
3286 ndr_err = call->ndr_pull(pull, NDR_IN, r);
3287 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3288 talloc_free(r);
3289 return false;
3292 if (DEBUGLEVEL >= 10) {
3293 NDR_PRINT_IN_DEBUG(lsa_StorePrivateData, r);
3296 r->out.result = _lsa_StorePrivateData(p, r);
3298 if (p->rng_fault_state) {
3299 talloc_free(r);
3300 /* Return true here, srv_pipe_hnd.c will take care */
3301 return true;
3304 if (DEBUGLEVEL >= 10) {
3305 NDR_PRINT_OUT_DEBUG(lsa_StorePrivateData, r);
3308 push = ndr_push_init_ctx(r);
3309 if (push == NULL) {
3310 talloc_free(r);
3311 return false;
3314 ndr_err = call->ndr_push(push, NDR_OUT, r);
3315 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3316 talloc_free(r);
3317 return false;
3320 blob = ndr_push_blob(push);
3321 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
3322 talloc_free(r);
3323 return false;
3326 talloc_free(r);
3328 return true;
3331 static bool api_lsa_RetrievePrivateData(pipes_struct *p)
3333 const struct ndr_interface_call *call;
3334 struct ndr_pull *pull;
3335 struct ndr_push *push;
3336 enum ndr_err_code ndr_err;
3337 DATA_BLOB blob;
3338 struct lsa_RetrievePrivateData *r;
3340 call = &ndr_table_lsarpc.calls[NDR_LSA_RETRIEVEPRIVATEDATA];
3342 r = talloc(talloc_tos(), struct lsa_RetrievePrivateData);
3343 if (r == NULL) {
3344 return false;
3347 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
3348 talloc_free(r);
3349 return false;
3352 pull = ndr_pull_init_blob(&blob, r);
3353 if (pull == NULL) {
3354 talloc_free(r);
3355 return false;
3358 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
3359 ndr_err = call->ndr_pull(pull, NDR_IN, r);
3360 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3361 talloc_free(r);
3362 return false;
3365 if (DEBUGLEVEL >= 10) {
3366 NDR_PRINT_IN_DEBUG(lsa_RetrievePrivateData, r);
3369 r->out.result = _lsa_RetrievePrivateData(p, r);
3371 if (p->rng_fault_state) {
3372 talloc_free(r);
3373 /* Return true here, srv_pipe_hnd.c will take care */
3374 return true;
3377 if (DEBUGLEVEL >= 10) {
3378 NDR_PRINT_OUT_DEBUG(lsa_RetrievePrivateData, r);
3381 push = ndr_push_init_ctx(r);
3382 if (push == NULL) {
3383 talloc_free(r);
3384 return false;
3387 ndr_err = call->ndr_push(push, NDR_OUT, r);
3388 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3389 talloc_free(r);
3390 return false;
3393 blob = ndr_push_blob(push);
3394 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
3395 talloc_free(r);
3396 return false;
3399 talloc_free(r);
3401 return true;
3404 static bool api_lsa_OpenPolicy2(pipes_struct *p)
3406 const struct ndr_interface_call *call;
3407 struct ndr_pull *pull;
3408 struct ndr_push *push;
3409 enum ndr_err_code ndr_err;
3410 DATA_BLOB blob;
3411 struct lsa_OpenPolicy2 *r;
3413 call = &ndr_table_lsarpc.calls[NDR_LSA_OPENPOLICY2];
3415 r = talloc(talloc_tos(), struct lsa_OpenPolicy2);
3416 if (r == NULL) {
3417 return false;
3420 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
3421 talloc_free(r);
3422 return false;
3425 pull = ndr_pull_init_blob(&blob, r);
3426 if (pull == NULL) {
3427 talloc_free(r);
3428 return false;
3431 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
3432 ndr_err = call->ndr_pull(pull, NDR_IN, r);
3433 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3434 talloc_free(r);
3435 return false;
3438 if (DEBUGLEVEL >= 10) {
3439 NDR_PRINT_IN_DEBUG(lsa_OpenPolicy2, r);
3442 ZERO_STRUCT(r->out);
3443 r->out.handle = talloc_zero(r, struct policy_handle);
3444 if (r->out.handle == NULL) {
3445 talloc_free(r);
3446 return false;
3449 r->out.result = _lsa_OpenPolicy2(p, r);
3451 if (p->rng_fault_state) {
3452 talloc_free(r);
3453 /* Return true here, srv_pipe_hnd.c will take care */
3454 return true;
3457 if (DEBUGLEVEL >= 10) {
3458 NDR_PRINT_OUT_DEBUG(lsa_OpenPolicy2, r);
3461 push = ndr_push_init_ctx(r);
3462 if (push == NULL) {
3463 talloc_free(r);
3464 return false;
3467 ndr_err = call->ndr_push(push, NDR_OUT, r);
3468 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3469 talloc_free(r);
3470 return false;
3473 blob = ndr_push_blob(push);
3474 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
3475 talloc_free(r);
3476 return false;
3479 talloc_free(r);
3481 return true;
3484 static bool api_lsa_GetUserName(pipes_struct *p)
3486 const struct ndr_interface_call *call;
3487 struct ndr_pull *pull;
3488 struct ndr_push *push;
3489 enum ndr_err_code ndr_err;
3490 DATA_BLOB blob;
3491 struct lsa_GetUserName *r;
3493 call = &ndr_table_lsarpc.calls[NDR_LSA_GETUSERNAME];
3495 r = talloc(talloc_tos(), struct lsa_GetUserName);
3496 if (r == NULL) {
3497 return false;
3500 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
3501 talloc_free(r);
3502 return false;
3505 pull = ndr_pull_init_blob(&blob, r);
3506 if (pull == NULL) {
3507 talloc_free(r);
3508 return false;
3511 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
3512 ndr_err = call->ndr_pull(pull, NDR_IN, r);
3513 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3514 talloc_free(r);
3515 return false;
3518 if (DEBUGLEVEL >= 10) {
3519 NDR_PRINT_IN_DEBUG(lsa_GetUserName, r);
3522 ZERO_STRUCT(r->out);
3523 r->out.account_name = r->in.account_name;
3524 r->out.authority_name = r->in.authority_name;
3525 r->out.result = _lsa_GetUserName(p, r);
3527 if (p->rng_fault_state) {
3528 talloc_free(r);
3529 /* Return true here, srv_pipe_hnd.c will take care */
3530 return true;
3533 if (DEBUGLEVEL >= 10) {
3534 NDR_PRINT_OUT_DEBUG(lsa_GetUserName, r);
3537 push = ndr_push_init_ctx(r);
3538 if (push == NULL) {
3539 talloc_free(r);
3540 return false;
3543 ndr_err = call->ndr_push(push, NDR_OUT, r);
3544 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3545 talloc_free(r);
3546 return false;
3549 blob = ndr_push_blob(push);
3550 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
3551 talloc_free(r);
3552 return false;
3555 talloc_free(r);
3557 return true;
3560 static bool api_lsa_QueryInfoPolicy2(pipes_struct *p)
3562 const struct ndr_interface_call *call;
3563 struct ndr_pull *pull;
3564 struct ndr_push *push;
3565 enum ndr_err_code ndr_err;
3566 DATA_BLOB blob;
3567 struct lsa_QueryInfoPolicy2 *r;
3569 call = &ndr_table_lsarpc.calls[NDR_LSA_QUERYINFOPOLICY2];
3571 r = talloc(talloc_tos(), struct lsa_QueryInfoPolicy2);
3572 if (r == NULL) {
3573 return false;
3576 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
3577 talloc_free(r);
3578 return false;
3581 pull = ndr_pull_init_blob(&blob, r);
3582 if (pull == NULL) {
3583 talloc_free(r);
3584 return false;
3587 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
3588 ndr_err = call->ndr_pull(pull, NDR_IN, r);
3589 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3590 talloc_free(r);
3591 return false;
3594 if (DEBUGLEVEL >= 10) {
3595 NDR_PRINT_IN_DEBUG(lsa_QueryInfoPolicy2, r);
3598 ZERO_STRUCT(r->out);
3599 r->out.info = talloc_zero(r, union lsa_PolicyInformation *);
3600 if (r->out.info == NULL) {
3601 talloc_free(r);
3602 return false;
3605 r->out.result = _lsa_QueryInfoPolicy2(p, r);
3607 if (p->rng_fault_state) {
3608 talloc_free(r);
3609 /* Return true here, srv_pipe_hnd.c will take care */
3610 return true;
3613 if (DEBUGLEVEL >= 10) {
3614 NDR_PRINT_OUT_DEBUG(lsa_QueryInfoPolicy2, r);
3617 push = ndr_push_init_ctx(r);
3618 if (push == NULL) {
3619 talloc_free(r);
3620 return false;
3623 ndr_err = call->ndr_push(push, NDR_OUT, r);
3624 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3625 talloc_free(r);
3626 return false;
3629 blob = ndr_push_blob(push);
3630 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
3631 talloc_free(r);
3632 return false;
3635 talloc_free(r);
3637 return true;
3640 static bool api_lsa_SetInfoPolicy2(pipes_struct *p)
3642 const struct ndr_interface_call *call;
3643 struct ndr_pull *pull;
3644 struct ndr_push *push;
3645 enum ndr_err_code ndr_err;
3646 DATA_BLOB blob;
3647 struct lsa_SetInfoPolicy2 *r;
3649 call = &ndr_table_lsarpc.calls[NDR_LSA_SETINFOPOLICY2];
3651 r = talloc(talloc_tos(), struct lsa_SetInfoPolicy2);
3652 if (r == NULL) {
3653 return false;
3656 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
3657 talloc_free(r);
3658 return false;
3661 pull = ndr_pull_init_blob(&blob, r);
3662 if (pull == NULL) {
3663 talloc_free(r);
3664 return false;
3667 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
3668 ndr_err = call->ndr_pull(pull, NDR_IN, r);
3669 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3670 talloc_free(r);
3671 return false;
3674 if (DEBUGLEVEL >= 10) {
3675 NDR_PRINT_IN_DEBUG(lsa_SetInfoPolicy2, r);
3678 r->out.result = _lsa_SetInfoPolicy2(p, r);
3680 if (p->rng_fault_state) {
3681 talloc_free(r);
3682 /* Return true here, srv_pipe_hnd.c will take care */
3683 return true;
3686 if (DEBUGLEVEL >= 10) {
3687 NDR_PRINT_OUT_DEBUG(lsa_SetInfoPolicy2, r);
3690 push = ndr_push_init_ctx(r);
3691 if (push == NULL) {
3692 talloc_free(r);
3693 return false;
3696 ndr_err = call->ndr_push(push, NDR_OUT, r);
3697 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3698 talloc_free(r);
3699 return false;
3702 blob = ndr_push_blob(push);
3703 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
3704 talloc_free(r);
3705 return false;
3708 talloc_free(r);
3710 return true;
3713 static bool api_lsa_QueryTrustedDomainInfoByName(pipes_struct *p)
3715 const struct ndr_interface_call *call;
3716 struct ndr_pull *pull;
3717 struct ndr_push *push;
3718 enum ndr_err_code ndr_err;
3719 DATA_BLOB blob;
3720 struct lsa_QueryTrustedDomainInfoByName *r;
3722 call = &ndr_table_lsarpc.calls[NDR_LSA_QUERYTRUSTEDDOMAININFOBYNAME];
3724 r = talloc(talloc_tos(), struct lsa_QueryTrustedDomainInfoByName);
3725 if (r == NULL) {
3726 return false;
3729 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
3730 talloc_free(r);
3731 return false;
3734 pull = ndr_pull_init_blob(&blob, r);
3735 if (pull == NULL) {
3736 talloc_free(r);
3737 return false;
3740 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
3741 ndr_err = call->ndr_pull(pull, NDR_IN, r);
3742 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3743 talloc_free(r);
3744 return false;
3747 if (DEBUGLEVEL >= 10) {
3748 NDR_PRINT_IN_DEBUG(lsa_QueryTrustedDomainInfoByName, r);
3751 ZERO_STRUCT(r->out);
3752 r->out.info = talloc_zero(r, union lsa_TrustedDomainInfo *);
3753 if (r->out.info == NULL) {
3754 talloc_free(r);
3755 return false;
3758 r->out.result = _lsa_QueryTrustedDomainInfoByName(p, r);
3760 if (p->rng_fault_state) {
3761 talloc_free(r);
3762 /* Return true here, srv_pipe_hnd.c will take care */
3763 return true;
3766 if (DEBUGLEVEL >= 10) {
3767 NDR_PRINT_OUT_DEBUG(lsa_QueryTrustedDomainInfoByName, r);
3770 push = ndr_push_init_ctx(r);
3771 if (push == NULL) {
3772 talloc_free(r);
3773 return false;
3776 ndr_err = call->ndr_push(push, NDR_OUT, r);
3777 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3778 talloc_free(r);
3779 return false;
3782 blob = ndr_push_blob(push);
3783 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
3784 talloc_free(r);
3785 return false;
3788 talloc_free(r);
3790 return true;
3793 static bool api_lsa_SetTrustedDomainInfoByName(pipes_struct *p)
3795 const struct ndr_interface_call *call;
3796 struct ndr_pull *pull;
3797 struct ndr_push *push;
3798 enum ndr_err_code ndr_err;
3799 DATA_BLOB blob;
3800 struct lsa_SetTrustedDomainInfoByName *r;
3802 call = &ndr_table_lsarpc.calls[NDR_LSA_SETTRUSTEDDOMAININFOBYNAME];
3804 r = talloc(talloc_tos(), struct lsa_SetTrustedDomainInfoByName);
3805 if (r == NULL) {
3806 return false;
3809 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
3810 talloc_free(r);
3811 return false;
3814 pull = ndr_pull_init_blob(&blob, r);
3815 if (pull == NULL) {
3816 talloc_free(r);
3817 return false;
3820 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
3821 ndr_err = call->ndr_pull(pull, NDR_IN, r);
3822 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3823 talloc_free(r);
3824 return false;
3827 if (DEBUGLEVEL >= 10) {
3828 NDR_PRINT_IN_DEBUG(lsa_SetTrustedDomainInfoByName, r);
3831 r->out.result = _lsa_SetTrustedDomainInfoByName(p, r);
3833 if (p->rng_fault_state) {
3834 talloc_free(r);
3835 /* Return true here, srv_pipe_hnd.c will take care */
3836 return true;
3839 if (DEBUGLEVEL >= 10) {
3840 NDR_PRINT_OUT_DEBUG(lsa_SetTrustedDomainInfoByName, r);
3843 push = ndr_push_init_ctx(r);
3844 if (push == NULL) {
3845 talloc_free(r);
3846 return false;
3849 ndr_err = call->ndr_push(push, NDR_OUT, r);
3850 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3851 talloc_free(r);
3852 return false;
3855 blob = ndr_push_blob(push);
3856 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
3857 talloc_free(r);
3858 return false;
3861 talloc_free(r);
3863 return true;
3866 static bool api_lsa_EnumTrustedDomainsEx(pipes_struct *p)
3868 const struct ndr_interface_call *call;
3869 struct ndr_pull *pull;
3870 struct ndr_push *push;
3871 enum ndr_err_code ndr_err;
3872 DATA_BLOB blob;
3873 struct lsa_EnumTrustedDomainsEx *r;
3875 call = &ndr_table_lsarpc.calls[NDR_LSA_ENUMTRUSTEDDOMAINSEX];
3877 r = talloc(talloc_tos(), struct lsa_EnumTrustedDomainsEx);
3878 if (r == NULL) {
3879 return false;
3882 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
3883 talloc_free(r);
3884 return false;
3887 pull = ndr_pull_init_blob(&blob, r);
3888 if (pull == NULL) {
3889 talloc_free(r);
3890 return false;
3893 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
3894 ndr_err = call->ndr_pull(pull, NDR_IN, r);
3895 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3896 talloc_free(r);
3897 return false;
3900 if (DEBUGLEVEL >= 10) {
3901 NDR_PRINT_IN_DEBUG(lsa_EnumTrustedDomainsEx, r);
3904 ZERO_STRUCT(r->out);
3905 r->out.resume_handle = r->in.resume_handle;
3906 r->out.domains = talloc_zero(r, struct lsa_DomainListEx);
3907 if (r->out.domains == NULL) {
3908 talloc_free(r);
3909 return false;
3912 r->out.result = _lsa_EnumTrustedDomainsEx(p, r);
3914 if (p->rng_fault_state) {
3915 talloc_free(r);
3916 /* Return true here, srv_pipe_hnd.c will take care */
3917 return true;
3920 if (DEBUGLEVEL >= 10) {
3921 NDR_PRINT_OUT_DEBUG(lsa_EnumTrustedDomainsEx, r);
3924 push = ndr_push_init_ctx(r);
3925 if (push == NULL) {
3926 talloc_free(r);
3927 return false;
3930 ndr_err = call->ndr_push(push, NDR_OUT, r);
3931 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3932 talloc_free(r);
3933 return false;
3936 blob = ndr_push_blob(push);
3937 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
3938 talloc_free(r);
3939 return false;
3942 talloc_free(r);
3944 return true;
3947 static bool api_lsa_CreateTrustedDomainEx(pipes_struct *p)
3949 const struct ndr_interface_call *call;
3950 struct ndr_pull *pull;
3951 struct ndr_push *push;
3952 enum ndr_err_code ndr_err;
3953 DATA_BLOB blob;
3954 struct lsa_CreateTrustedDomainEx *r;
3956 call = &ndr_table_lsarpc.calls[NDR_LSA_CREATETRUSTEDDOMAINEX];
3958 r = talloc(talloc_tos(), struct lsa_CreateTrustedDomainEx);
3959 if (r == NULL) {
3960 return false;
3963 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
3964 talloc_free(r);
3965 return false;
3968 pull = ndr_pull_init_blob(&blob, r);
3969 if (pull == NULL) {
3970 talloc_free(r);
3971 return false;
3974 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
3975 ndr_err = call->ndr_pull(pull, NDR_IN, r);
3976 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3977 talloc_free(r);
3978 return false;
3981 if (DEBUGLEVEL >= 10) {
3982 NDR_PRINT_IN_DEBUG(lsa_CreateTrustedDomainEx, r);
3985 r->out.result = _lsa_CreateTrustedDomainEx(p, r);
3987 if (p->rng_fault_state) {
3988 talloc_free(r);
3989 /* Return true here, srv_pipe_hnd.c will take care */
3990 return true;
3993 if (DEBUGLEVEL >= 10) {
3994 NDR_PRINT_OUT_DEBUG(lsa_CreateTrustedDomainEx, r);
3997 push = ndr_push_init_ctx(r);
3998 if (push == NULL) {
3999 talloc_free(r);
4000 return false;
4003 ndr_err = call->ndr_push(push, NDR_OUT, r);
4004 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
4005 talloc_free(r);
4006 return false;
4009 blob = ndr_push_blob(push);
4010 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
4011 talloc_free(r);
4012 return false;
4015 talloc_free(r);
4017 return true;
4020 static bool api_lsa_CloseTrustedDomainEx(pipes_struct *p)
4022 const struct ndr_interface_call *call;
4023 struct ndr_pull *pull;
4024 struct ndr_push *push;
4025 enum ndr_err_code ndr_err;
4026 DATA_BLOB blob;
4027 struct lsa_CloseTrustedDomainEx *r;
4029 call = &ndr_table_lsarpc.calls[NDR_LSA_CLOSETRUSTEDDOMAINEX];
4031 r = talloc(talloc_tos(), struct lsa_CloseTrustedDomainEx);
4032 if (r == NULL) {
4033 return false;
4036 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
4037 talloc_free(r);
4038 return false;
4041 pull = ndr_pull_init_blob(&blob, r);
4042 if (pull == NULL) {
4043 talloc_free(r);
4044 return false;
4047 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
4048 ndr_err = call->ndr_pull(pull, NDR_IN, r);
4049 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
4050 talloc_free(r);
4051 return false;
4054 if (DEBUGLEVEL >= 10) {
4055 NDR_PRINT_IN_DEBUG(lsa_CloseTrustedDomainEx, r);
4058 ZERO_STRUCT(r->out);
4059 r->out.handle = r->in.handle;
4060 r->out.result = _lsa_CloseTrustedDomainEx(p, r);
4062 if (p->rng_fault_state) {
4063 talloc_free(r);
4064 /* Return true here, srv_pipe_hnd.c will take care */
4065 return true;
4068 if (DEBUGLEVEL >= 10) {
4069 NDR_PRINT_OUT_DEBUG(lsa_CloseTrustedDomainEx, r);
4072 push = ndr_push_init_ctx(r);
4073 if (push == NULL) {
4074 talloc_free(r);
4075 return false;
4078 ndr_err = call->ndr_push(push, NDR_OUT, r);
4079 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
4080 talloc_free(r);
4081 return false;
4084 blob = ndr_push_blob(push);
4085 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
4086 talloc_free(r);
4087 return false;
4090 talloc_free(r);
4092 return true;
4095 static bool api_lsa_QueryDomainInformationPolicy(pipes_struct *p)
4097 const struct ndr_interface_call *call;
4098 struct ndr_pull *pull;
4099 struct ndr_push *push;
4100 enum ndr_err_code ndr_err;
4101 DATA_BLOB blob;
4102 struct lsa_QueryDomainInformationPolicy *r;
4104 call = &ndr_table_lsarpc.calls[NDR_LSA_QUERYDOMAININFORMATIONPOLICY];
4106 r = talloc(talloc_tos(), struct lsa_QueryDomainInformationPolicy);
4107 if (r == NULL) {
4108 return false;
4111 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
4112 talloc_free(r);
4113 return false;
4116 pull = ndr_pull_init_blob(&blob, r);
4117 if (pull == NULL) {
4118 talloc_free(r);
4119 return false;
4122 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
4123 ndr_err = call->ndr_pull(pull, NDR_IN, r);
4124 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
4125 talloc_free(r);
4126 return false;
4129 if (DEBUGLEVEL >= 10) {
4130 NDR_PRINT_IN_DEBUG(lsa_QueryDomainInformationPolicy, r);
4133 ZERO_STRUCT(r->out);
4134 r->out.info = talloc_zero(r, union lsa_DomainInformationPolicy *);
4135 if (r->out.info == NULL) {
4136 talloc_free(r);
4137 return false;
4140 r->out.result = _lsa_QueryDomainInformationPolicy(p, r);
4142 if (p->rng_fault_state) {
4143 talloc_free(r);
4144 /* Return true here, srv_pipe_hnd.c will take care */
4145 return true;
4148 if (DEBUGLEVEL >= 10) {
4149 NDR_PRINT_OUT_DEBUG(lsa_QueryDomainInformationPolicy, r);
4152 push = ndr_push_init_ctx(r);
4153 if (push == NULL) {
4154 talloc_free(r);
4155 return false;
4158 ndr_err = call->ndr_push(push, NDR_OUT, r);
4159 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
4160 talloc_free(r);
4161 return false;
4164 blob = ndr_push_blob(push);
4165 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
4166 talloc_free(r);
4167 return false;
4170 talloc_free(r);
4172 return true;
4175 static bool api_lsa_SetDomainInformationPolicy(pipes_struct *p)
4177 const struct ndr_interface_call *call;
4178 struct ndr_pull *pull;
4179 struct ndr_push *push;
4180 enum ndr_err_code ndr_err;
4181 DATA_BLOB blob;
4182 struct lsa_SetDomainInformationPolicy *r;
4184 call = &ndr_table_lsarpc.calls[NDR_LSA_SETDOMAININFORMATIONPOLICY];
4186 r = talloc(talloc_tos(), struct lsa_SetDomainInformationPolicy);
4187 if (r == NULL) {
4188 return false;
4191 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
4192 talloc_free(r);
4193 return false;
4196 pull = ndr_pull_init_blob(&blob, r);
4197 if (pull == NULL) {
4198 talloc_free(r);
4199 return false;
4202 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
4203 ndr_err = call->ndr_pull(pull, NDR_IN, r);
4204 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
4205 talloc_free(r);
4206 return false;
4209 if (DEBUGLEVEL >= 10) {
4210 NDR_PRINT_IN_DEBUG(lsa_SetDomainInformationPolicy, r);
4213 r->out.result = _lsa_SetDomainInformationPolicy(p, r);
4215 if (p->rng_fault_state) {
4216 talloc_free(r);
4217 /* Return true here, srv_pipe_hnd.c will take care */
4218 return true;
4221 if (DEBUGLEVEL >= 10) {
4222 NDR_PRINT_OUT_DEBUG(lsa_SetDomainInformationPolicy, r);
4225 push = ndr_push_init_ctx(r);
4226 if (push == NULL) {
4227 talloc_free(r);
4228 return false;
4231 ndr_err = call->ndr_push(push, NDR_OUT, r);
4232 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
4233 talloc_free(r);
4234 return false;
4237 blob = ndr_push_blob(push);
4238 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
4239 talloc_free(r);
4240 return false;
4243 talloc_free(r);
4245 return true;
4248 static bool api_lsa_OpenTrustedDomainByName(pipes_struct *p)
4250 const struct ndr_interface_call *call;
4251 struct ndr_pull *pull;
4252 struct ndr_push *push;
4253 enum ndr_err_code ndr_err;
4254 DATA_BLOB blob;
4255 struct lsa_OpenTrustedDomainByName *r;
4257 call = &ndr_table_lsarpc.calls[NDR_LSA_OPENTRUSTEDDOMAINBYNAME];
4259 r = talloc(talloc_tos(), struct lsa_OpenTrustedDomainByName);
4260 if (r == NULL) {
4261 return false;
4264 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
4265 talloc_free(r);
4266 return false;
4269 pull = ndr_pull_init_blob(&blob, r);
4270 if (pull == NULL) {
4271 talloc_free(r);
4272 return false;
4275 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
4276 ndr_err = call->ndr_pull(pull, NDR_IN, r);
4277 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
4278 talloc_free(r);
4279 return false;
4282 if (DEBUGLEVEL >= 10) {
4283 NDR_PRINT_IN_DEBUG(lsa_OpenTrustedDomainByName, r);
4286 ZERO_STRUCT(r->out);
4287 r->out.trustdom_handle = talloc_zero(r, struct policy_handle);
4288 if (r->out.trustdom_handle == NULL) {
4289 talloc_free(r);
4290 return false;
4293 r->out.result = _lsa_OpenTrustedDomainByName(p, r);
4295 if (p->rng_fault_state) {
4296 talloc_free(r);
4297 /* Return true here, srv_pipe_hnd.c will take care */
4298 return true;
4301 if (DEBUGLEVEL >= 10) {
4302 NDR_PRINT_OUT_DEBUG(lsa_OpenTrustedDomainByName, r);
4305 push = ndr_push_init_ctx(r);
4306 if (push == NULL) {
4307 talloc_free(r);
4308 return false;
4311 ndr_err = call->ndr_push(push, NDR_OUT, r);
4312 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
4313 talloc_free(r);
4314 return false;
4317 blob = ndr_push_blob(push);
4318 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
4319 talloc_free(r);
4320 return false;
4323 talloc_free(r);
4325 return true;
4328 static bool api_lsa_TestCall(pipes_struct *p)
4330 const struct ndr_interface_call *call;
4331 struct ndr_pull *pull;
4332 struct ndr_push *push;
4333 enum ndr_err_code ndr_err;
4334 DATA_BLOB blob;
4335 struct lsa_TestCall *r;
4337 call = &ndr_table_lsarpc.calls[NDR_LSA_TESTCALL];
4339 r = talloc(talloc_tos(), struct lsa_TestCall);
4340 if (r == NULL) {
4341 return false;
4344 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
4345 talloc_free(r);
4346 return false;
4349 pull = ndr_pull_init_blob(&blob, r);
4350 if (pull == NULL) {
4351 talloc_free(r);
4352 return false;
4355 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
4356 ndr_err = call->ndr_pull(pull, NDR_IN, r);
4357 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
4358 talloc_free(r);
4359 return false;
4362 if (DEBUGLEVEL >= 10) {
4363 NDR_PRINT_IN_DEBUG(lsa_TestCall, r);
4366 r->out.result = _lsa_TestCall(p, r);
4368 if (p->rng_fault_state) {
4369 talloc_free(r);
4370 /* Return true here, srv_pipe_hnd.c will take care */
4371 return true;
4374 if (DEBUGLEVEL >= 10) {
4375 NDR_PRINT_OUT_DEBUG(lsa_TestCall, r);
4378 push = ndr_push_init_ctx(r);
4379 if (push == NULL) {
4380 talloc_free(r);
4381 return false;
4384 ndr_err = call->ndr_push(push, NDR_OUT, r);
4385 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
4386 talloc_free(r);
4387 return false;
4390 blob = ndr_push_blob(push);
4391 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
4392 talloc_free(r);
4393 return false;
4396 talloc_free(r);
4398 return true;
4401 static bool api_lsa_LookupSids2(pipes_struct *p)
4403 const struct ndr_interface_call *call;
4404 struct ndr_pull *pull;
4405 struct ndr_push *push;
4406 enum ndr_err_code ndr_err;
4407 DATA_BLOB blob;
4408 struct lsa_LookupSids2 *r;
4410 call = &ndr_table_lsarpc.calls[NDR_LSA_LOOKUPSIDS2];
4412 r = talloc(talloc_tos(), struct lsa_LookupSids2);
4413 if (r == NULL) {
4414 return false;
4417 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
4418 talloc_free(r);
4419 return false;
4422 pull = ndr_pull_init_blob(&blob, r);
4423 if (pull == NULL) {
4424 talloc_free(r);
4425 return false;
4428 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
4429 ndr_err = call->ndr_pull(pull, NDR_IN, r);
4430 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
4431 talloc_free(r);
4432 return false;
4435 if (DEBUGLEVEL >= 10) {
4436 NDR_PRINT_IN_DEBUG(lsa_LookupSids2, r);
4439 ZERO_STRUCT(r->out);
4440 r->out.domains = talloc_zero(r, struct lsa_RefDomainList *);
4441 if (r->out.domains == NULL) {
4442 talloc_free(r);
4443 return false;
4446 r->out.names = r->in.names;
4447 r->out.count = r->in.count;
4448 r->out.result = _lsa_LookupSids2(p, r);
4450 if (p->rng_fault_state) {
4451 talloc_free(r);
4452 /* Return true here, srv_pipe_hnd.c will take care */
4453 return true;
4456 if (DEBUGLEVEL >= 10) {
4457 NDR_PRINT_OUT_DEBUG(lsa_LookupSids2, r);
4460 push = ndr_push_init_ctx(r);
4461 if (push == NULL) {
4462 talloc_free(r);
4463 return false;
4466 ndr_err = call->ndr_push(push, NDR_OUT, r);
4467 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
4468 talloc_free(r);
4469 return false;
4472 blob = ndr_push_blob(push);
4473 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
4474 talloc_free(r);
4475 return false;
4478 talloc_free(r);
4480 return true;
4483 static bool api_lsa_LookupNames2(pipes_struct *p)
4485 const struct ndr_interface_call *call;
4486 struct ndr_pull *pull;
4487 struct ndr_push *push;
4488 enum ndr_err_code ndr_err;
4489 DATA_BLOB blob;
4490 struct lsa_LookupNames2 *r;
4492 call = &ndr_table_lsarpc.calls[NDR_LSA_LOOKUPNAMES2];
4494 r = talloc(talloc_tos(), struct lsa_LookupNames2);
4495 if (r == NULL) {
4496 return false;
4499 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
4500 talloc_free(r);
4501 return false;
4504 pull = ndr_pull_init_blob(&blob, r);
4505 if (pull == NULL) {
4506 talloc_free(r);
4507 return false;
4510 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
4511 ndr_err = call->ndr_pull(pull, NDR_IN, r);
4512 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
4513 talloc_free(r);
4514 return false;
4517 if (DEBUGLEVEL >= 10) {
4518 NDR_PRINT_IN_DEBUG(lsa_LookupNames2, r);
4521 ZERO_STRUCT(r->out);
4522 r->out.domains = talloc_zero(r, struct lsa_RefDomainList *);
4523 if (r->out.domains == NULL) {
4524 talloc_free(r);
4525 return false;
4528 r->out.sids = r->in.sids;
4529 r->out.count = r->in.count;
4530 r->out.result = _lsa_LookupNames2(p, r);
4532 if (p->rng_fault_state) {
4533 talloc_free(r);
4534 /* Return true here, srv_pipe_hnd.c will take care */
4535 return true;
4538 if (DEBUGLEVEL >= 10) {
4539 NDR_PRINT_OUT_DEBUG(lsa_LookupNames2, r);
4542 push = ndr_push_init_ctx(r);
4543 if (push == NULL) {
4544 talloc_free(r);
4545 return false;
4548 ndr_err = call->ndr_push(push, NDR_OUT, r);
4549 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
4550 talloc_free(r);
4551 return false;
4554 blob = ndr_push_blob(push);
4555 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
4556 talloc_free(r);
4557 return false;
4560 talloc_free(r);
4562 return true;
4565 static bool api_lsa_CreateTrustedDomainEx2(pipes_struct *p)
4567 const struct ndr_interface_call *call;
4568 struct ndr_pull *pull;
4569 struct ndr_push *push;
4570 enum ndr_err_code ndr_err;
4571 DATA_BLOB blob;
4572 struct lsa_CreateTrustedDomainEx2 *r;
4574 call = &ndr_table_lsarpc.calls[NDR_LSA_CREATETRUSTEDDOMAINEX2];
4576 r = talloc(talloc_tos(), struct lsa_CreateTrustedDomainEx2);
4577 if (r == NULL) {
4578 return false;
4581 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
4582 talloc_free(r);
4583 return false;
4586 pull = ndr_pull_init_blob(&blob, r);
4587 if (pull == NULL) {
4588 talloc_free(r);
4589 return false;
4592 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
4593 ndr_err = call->ndr_pull(pull, NDR_IN, r);
4594 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
4595 talloc_free(r);
4596 return false;
4599 if (DEBUGLEVEL >= 10) {
4600 NDR_PRINT_IN_DEBUG(lsa_CreateTrustedDomainEx2, r);
4603 r->out.result = _lsa_CreateTrustedDomainEx2(p, r);
4605 if (p->rng_fault_state) {
4606 talloc_free(r);
4607 /* Return true here, srv_pipe_hnd.c will take care */
4608 return true;
4611 if (DEBUGLEVEL >= 10) {
4612 NDR_PRINT_OUT_DEBUG(lsa_CreateTrustedDomainEx2, r);
4615 push = ndr_push_init_ctx(r);
4616 if (push == NULL) {
4617 talloc_free(r);
4618 return false;
4621 ndr_err = call->ndr_push(push, NDR_OUT, r);
4622 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
4623 talloc_free(r);
4624 return false;
4627 blob = ndr_push_blob(push);
4628 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
4629 talloc_free(r);
4630 return false;
4633 talloc_free(r);
4635 return true;
4638 static bool api_lsa_CREDRWRITE(pipes_struct *p)
4640 const struct ndr_interface_call *call;
4641 struct ndr_pull *pull;
4642 struct ndr_push *push;
4643 enum ndr_err_code ndr_err;
4644 DATA_BLOB blob;
4645 struct lsa_CREDRWRITE *r;
4647 call = &ndr_table_lsarpc.calls[NDR_LSA_CREDRWRITE];
4649 r = talloc(talloc_tos(), struct lsa_CREDRWRITE);
4650 if (r == NULL) {
4651 return false;
4654 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
4655 talloc_free(r);
4656 return false;
4659 pull = ndr_pull_init_blob(&blob, r);
4660 if (pull == NULL) {
4661 talloc_free(r);
4662 return false;
4665 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
4666 ndr_err = call->ndr_pull(pull, NDR_IN, r);
4667 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
4668 talloc_free(r);
4669 return false;
4672 if (DEBUGLEVEL >= 10) {
4673 NDR_PRINT_IN_DEBUG(lsa_CREDRWRITE, r);
4676 r->out.result = _lsa_CREDRWRITE(p, r);
4678 if (p->rng_fault_state) {
4679 talloc_free(r);
4680 /* Return true here, srv_pipe_hnd.c will take care */
4681 return true;
4684 if (DEBUGLEVEL >= 10) {
4685 NDR_PRINT_OUT_DEBUG(lsa_CREDRWRITE, r);
4688 push = ndr_push_init_ctx(r);
4689 if (push == NULL) {
4690 talloc_free(r);
4691 return false;
4694 ndr_err = call->ndr_push(push, NDR_OUT, r);
4695 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
4696 talloc_free(r);
4697 return false;
4700 blob = ndr_push_blob(push);
4701 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
4702 talloc_free(r);
4703 return false;
4706 talloc_free(r);
4708 return true;
4711 static bool api_lsa_CREDRREAD(pipes_struct *p)
4713 const struct ndr_interface_call *call;
4714 struct ndr_pull *pull;
4715 struct ndr_push *push;
4716 enum ndr_err_code ndr_err;
4717 DATA_BLOB blob;
4718 struct lsa_CREDRREAD *r;
4720 call = &ndr_table_lsarpc.calls[NDR_LSA_CREDRREAD];
4722 r = talloc(talloc_tos(), struct lsa_CREDRREAD);
4723 if (r == NULL) {
4724 return false;
4727 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
4728 talloc_free(r);
4729 return false;
4732 pull = ndr_pull_init_blob(&blob, r);
4733 if (pull == NULL) {
4734 talloc_free(r);
4735 return false;
4738 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
4739 ndr_err = call->ndr_pull(pull, NDR_IN, r);
4740 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
4741 talloc_free(r);
4742 return false;
4745 if (DEBUGLEVEL >= 10) {
4746 NDR_PRINT_IN_DEBUG(lsa_CREDRREAD, r);
4749 r->out.result = _lsa_CREDRREAD(p, r);
4751 if (p->rng_fault_state) {
4752 talloc_free(r);
4753 /* Return true here, srv_pipe_hnd.c will take care */
4754 return true;
4757 if (DEBUGLEVEL >= 10) {
4758 NDR_PRINT_OUT_DEBUG(lsa_CREDRREAD, r);
4761 push = ndr_push_init_ctx(r);
4762 if (push == NULL) {
4763 talloc_free(r);
4764 return false;
4767 ndr_err = call->ndr_push(push, NDR_OUT, r);
4768 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
4769 talloc_free(r);
4770 return false;
4773 blob = ndr_push_blob(push);
4774 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
4775 talloc_free(r);
4776 return false;
4779 talloc_free(r);
4781 return true;
4784 static bool api_lsa_CREDRENUMERATE(pipes_struct *p)
4786 const struct ndr_interface_call *call;
4787 struct ndr_pull *pull;
4788 struct ndr_push *push;
4789 enum ndr_err_code ndr_err;
4790 DATA_BLOB blob;
4791 struct lsa_CREDRENUMERATE *r;
4793 call = &ndr_table_lsarpc.calls[NDR_LSA_CREDRENUMERATE];
4795 r = talloc(talloc_tos(), struct lsa_CREDRENUMERATE);
4796 if (r == NULL) {
4797 return false;
4800 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
4801 talloc_free(r);
4802 return false;
4805 pull = ndr_pull_init_blob(&blob, r);
4806 if (pull == NULL) {
4807 talloc_free(r);
4808 return false;
4811 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
4812 ndr_err = call->ndr_pull(pull, NDR_IN, r);
4813 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
4814 talloc_free(r);
4815 return false;
4818 if (DEBUGLEVEL >= 10) {
4819 NDR_PRINT_IN_DEBUG(lsa_CREDRENUMERATE, r);
4822 r->out.result = _lsa_CREDRENUMERATE(p, r);
4824 if (p->rng_fault_state) {
4825 talloc_free(r);
4826 /* Return true here, srv_pipe_hnd.c will take care */
4827 return true;
4830 if (DEBUGLEVEL >= 10) {
4831 NDR_PRINT_OUT_DEBUG(lsa_CREDRENUMERATE, r);
4834 push = ndr_push_init_ctx(r);
4835 if (push == NULL) {
4836 talloc_free(r);
4837 return false;
4840 ndr_err = call->ndr_push(push, NDR_OUT, r);
4841 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
4842 talloc_free(r);
4843 return false;
4846 blob = ndr_push_blob(push);
4847 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
4848 talloc_free(r);
4849 return false;
4852 talloc_free(r);
4854 return true;
4857 static bool api_lsa_CREDRWRITEDOMAINCREDENTIALS(pipes_struct *p)
4859 const struct ndr_interface_call *call;
4860 struct ndr_pull *pull;
4861 struct ndr_push *push;
4862 enum ndr_err_code ndr_err;
4863 DATA_BLOB blob;
4864 struct lsa_CREDRWRITEDOMAINCREDENTIALS *r;
4866 call = &ndr_table_lsarpc.calls[NDR_LSA_CREDRWRITEDOMAINCREDENTIALS];
4868 r = talloc(talloc_tos(), struct lsa_CREDRWRITEDOMAINCREDENTIALS);
4869 if (r == NULL) {
4870 return false;
4873 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
4874 talloc_free(r);
4875 return false;
4878 pull = ndr_pull_init_blob(&blob, r);
4879 if (pull == NULL) {
4880 talloc_free(r);
4881 return false;
4884 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
4885 ndr_err = call->ndr_pull(pull, NDR_IN, r);
4886 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
4887 talloc_free(r);
4888 return false;
4891 if (DEBUGLEVEL >= 10) {
4892 NDR_PRINT_IN_DEBUG(lsa_CREDRWRITEDOMAINCREDENTIALS, r);
4895 r->out.result = _lsa_CREDRWRITEDOMAINCREDENTIALS(p, r);
4897 if (p->rng_fault_state) {
4898 talloc_free(r);
4899 /* Return true here, srv_pipe_hnd.c will take care */
4900 return true;
4903 if (DEBUGLEVEL >= 10) {
4904 NDR_PRINT_OUT_DEBUG(lsa_CREDRWRITEDOMAINCREDENTIALS, r);
4907 push = ndr_push_init_ctx(r);
4908 if (push == NULL) {
4909 talloc_free(r);
4910 return false;
4913 ndr_err = call->ndr_push(push, NDR_OUT, r);
4914 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
4915 talloc_free(r);
4916 return false;
4919 blob = ndr_push_blob(push);
4920 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
4921 talloc_free(r);
4922 return false;
4925 talloc_free(r);
4927 return true;
4930 static bool api_lsa_CREDRREADDOMAINCREDENTIALS(pipes_struct *p)
4932 const struct ndr_interface_call *call;
4933 struct ndr_pull *pull;
4934 struct ndr_push *push;
4935 enum ndr_err_code ndr_err;
4936 DATA_BLOB blob;
4937 struct lsa_CREDRREADDOMAINCREDENTIALS *r;
4939 call = &ndr_table_lsarpc.calls[NDR_LSA_CREDRREADDOMAINCREDENTIALS];
4941 r = talloc(talloc_tos(), struct lsa_CREDRREADDOMAINCREDENTIALS);
4942 if (r == NULL) {
4943 return false;
4946 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
4947 talloc_free(r);
4948 return false;
4951 pull = ndr_pull_init_blob(&blob, r);
4952 if (pull == NULL) {
4953 talloc_free(r);
4954 return false;
4957 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
4958 ndr_err = call->ndr_pull(pull, NDR_IN, r);
4959 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
4960 talloc_free(r);
4961 return false;
4964 if (DEBUGLEVEL >= 10) {
4965 NDR_PRINT_IN_DEBUG(lsa_CREDRREADDOMAINCREDENTIALS, r);
4968 r->out.result = _lsa_CREDRREADDOMAINCREDENTIALS(p, r);
4970 if (p->rng_fault_state) {
4971 talloc_free(r);
4972 /* Return true here, srv_pipe_hnd.c will take care */
4973 return true;
4976 if (DEBUGLEVEL >= 10) {
4977 NDR_PRINT_OUT_DEBUG(lsa_CREDRREADDOMAINCREDENTIALS, r);
4980 push = ndr_push_init_ctx(r);
4981 if (push == NULL) {
4982 talloc_free(r);
4983 return false;
4986 ndr_err = call->ndr_push(push, NDR_OUT, r);
4987 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
4988 talloc_free(r);
4989 return false;
4992 blob = ndr_push_blob(push);
4993 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
4994 talloc_free(r);
4995 return false;
4998 talloc_free(r);
5000 return true;
5003 static bool api_lsa_CREDRDELETE(pipes_struct *p)
5005 const struct ndr_interface_call *call;
5006 struct ndr_pull *pull;
5007 struct ndr_push *push;
5008 enum ndr_err_code ndr_err;
5009 DATA_BLOB blob;
5010 struct lsa_CREDRDELETE *r;
5012 call = &ndr_table_lsarpc.calls[NDR_LSA_CREDRDELETE];
5014 r = talloc(talloc_tos(), struct lsa_CREDRDELETE);
5015 if (r == NULL) {
5016 return false;
5019 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
5020 talloc_free(r);
5021 return false;
5024 pull = ndr_pull_init_blob(&blob, r);
5025 if (pull == NULL) {
5026 talloc_free(r);
5027 return false;
5030 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
5031 ndr_err = call->ndr_pull(pull, NDR_IN, r);
5032 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
5033 talloc_free(r);
5034 return false;
5037 if (DEBUGLEVEL >= 10) {
5038 NDR_PRINT_IN_DEBUG(lsa_CREDRDELETE, r);
5041 r->out.result = _lsa_CREDRDELETE(p, r);
5043 if (p->rng_fault_state) {
5044 talloc_free(r);
5045 /* Return true here, srv_pipe_hnd.c will take care */
5046 return true;
5049 if (DEBUGLEVEL >= 10) {
5050 NDR_PRINT_OUT_DEBUG(lsa_CREDRDELETE, r);
5053 push = ndr_push_init_ctx(r);
5054 if (push == NULL) {
5055 talloc_free(r);
5056 return false;
5059 ndr_err = call->ndr_push(push, NDR_OUT, r);
5060 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
5061 talloc_free(r);
5062 return false;
5065 blob = ndr_push_blob(push);
5066 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
5067 talloc_free(r);
5068 return false;
5071 talloc_free(r);
5073 return true;
5076 static bool api_lsa_CREDRGETTARGETINFO(pipes_struct *p)
5078 const struct ndr_interface_call *call;
5079 struct ndr_pull *pull;
5080 struct ndr_push *push;
5081 enum ndr_err_code ndr_err;
5082 DATA_BLOB blob;
5083 struct lsa_CREDRGETTARGETINFO *r;
5085 call = &ndr_table_lsarpc.calls[NDR_LSA_CREDRGETTARGETINFO];
5087 r = talloc(talloc_tos(), struct lsa_CREDRGETTARGETINFO);
5088 if (r == NULL) {
5089 return false;
5092 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
5093 talloc_free(r);
5094 return false;
5097 pull = ndr_pull_init_blob(&blob, r);
5098 if (pull == NULL) {
5099 talloc_free(r);
5100 return false;
5103 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
5104 ndr_err = call->ndr_pull(pull, NDR_IN, r);
5105 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
5106 talloc_free(r);
5107 return false;
5110 if (DEBUGLEVEL >= 10) {
5111 NDR_PRINT_IN_DEBUG(lsa_CREDRGETTARGETINFO, r);
5114 r->out.result = _lsa_CREDRGETTARGETINFO(p, r);
5116 if (p->rng_fault_state) {
5117 talloc_free(r);
5118 /* Return true here, srv_pipe_hnd.c will take care */
5119 return true;
5122 if (DEBUGLEVEL >= 10) {
5123 NDR_PRINT_OUT_DEBUG(lsa_CREDRGETTARGETINFO, r);
5126 push = ndr_push_init_ctx(r);
5127 if (push == NULL) {
5128 talloc_free(r);
5129 return false;
5132 ndr_err = call->ndr_push(push, NDR_OUT, r);
5133 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
5134 talloc_free(r);
5135 return false;
5138 blob = ndr_push_blob(push);
5139 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
5140 talloc_free(r);
5141 return false;
5144 talloc_free(r);
5146 return true;
5149 static bool api_lsa_CREDRPROFILELOADED(pipes_struct *p)
5151 const struct ndr_interface_call *call;
5152 struct ndr_pull *pull;
5153 struct ndr_push *push;
5154 enum ndr_err_code ndr_err;
5155 DATA_BLOB blob;
5156 struct lsa_CREDRPROFILELOADED *r;
5158 call = &ndr_table_lsarpc.calls[NDR_LSA_CREDRPROFILELOADED];
5160 r = talloc(talloc_tos(), struct lsa_CREDRPROFILELOADED);
5161 if (r == NULL) {
5162 return false;
5165 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
5166 talloc_free(r);
5167 return false;
5170 pull = ndr_pull_init_blob(&blob, r);
5171 if (pull == NULL) {
5172 talloc_free(r);
5173 return false;
5176 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
5177 ndr_err = call->ndr_pull(pull, NDR_IN, r);
5178 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
5179 talloc_free(r);
5180 return false;
5183 if (DEBUGLEVEL >= 10) {
5184 NDR_PRINT_IN_DEBUG(lsa_CREDRPROFILELOADED, r);
5187 r->out.result = _lsa_CREDRPROFILELOADED(p, r);
5189 if (p->rng_fault_state) {
5190 talloc_free(r);
5191 /* Return true here, srv_pipe_hnd.c will take care */
5192 return true;
5195 if (DEBUGLEVEL >= 10) {
5196 NDR_PRINT_OUT_DEBUG(lsa_CREDRPROFILELOADED, r);
5199 push = ndr_push_init_ctx(r);
5200 if (push == NULL) {
5201 talloc_free(r);
5202 return false;
5205 ndr_err = call->ndr_push(push, NDR_OUT, r);
5206 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
5207 talloc_free(r);
5208 return false;
5211 blob = ndr_push_blob(push);
5212 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
5213 talloc_free(r);
5214 return false;
5217 talloc_free(r);
5219 return true;
5222 static bool api_lsa_LookupNames3(pipes_struct *p)
5224 const struct ndr_interface_call *call;
5225 struct ndr_pull *pull;
5226 struct ndr_push *push;
5227 enum ndr_err_code ndr_err;
5228 DATA_BLOB blob;
5229 struct lsa_LookupNames3 *r;
5231 call = &ndr_table_lsarpc.calls[NDR_LSA_LOOKUPNAMES3];
5233 r = talloc(talloc_tos(), struct lsa_LookupNames3);
5234 if (r == NULL) {
5235 return false;
5238 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
5239 talloc_free(r);
5240 return false;
5243 pull = ndr_pull_init_blob(&blob, r);
5244 if (pull == NULL) {
5245 talloc_free(r);
5246 return false;
5249 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
5250 ndr_err = call->ndr_pull(pull, NDR_IN, r);
5251 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
5252 talloc_free(r);
5253 return false;
5256 if (DEBUGLEVEL >= 10) {
5257 NDR_PRINT_IN_DEBUG(lsa_LookupNames3, r);
5260 ZERO_STRUCT(r->out);
5261 r->out.domains = talloc_zero(r, struct lsa_RefDomainList *);
5262 if (r->out.domains == NULL) {
5263 talloc_free(r);
5264 return false;
5267 r->out.sids = r->in.sids;
5268 r->out.count = r->in.count;
5269 r->out.result = _lsa_LookupNames3(p, r);
5271 if (p->rng_fault_state) {
5272 talloc_free(r);
5273 /* Return true here, srv_pipe_hnd.c will take care */
5274 return true;
5277 if (DEBUGLEVEL >= 10) {
5278 NDR_PRINT_OUT_DEBUG(lsa_LookupNames3, r);
5281 push = ndr_push_init_ctx(r);
5282 if (push == NULL) {
5283 talloc_free(r);
5284 return false;
5287 ndr_err = call->ndr_push(push, NDR_OUT, r);
5288 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
5289 talloc_free(r);
5290 return false;
5293 blob = ndr_push_blob(push);
5294 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
5295 talloc_free(r);
5296 return false;
5299 talloc_free(r);
5301 return true;
5304 static bool api_lsa_CREDRGETSESSIONTYPES(pipes_struct *p)
5306 const struct ndr_interface_call *call;
5307 struct ndr_pull *pull;
5308 struct ndr_push *push;
5309 enum ndr_err_code ndr_err;
5310 DATA_BLOB blob;
5311 struct lsa_CREDRGETSESSIONTYPES *r;
5313 call = &ndr_table_lsarpc.calls[NDR_LSA_CREDRGETSESSIONTYPES];
5315 r = talloc(talloc_tos(), struct lsa_CREDRGETSESSIONTYPES);
5316 if (r == NULL) {
5317 return false;
5320 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
5321 talloc_free(r);
5322 return false;
5325 pull = ndr_pull_init_blob(&blob, r);
5326 if (pull == NULL) {
5327 talloc_free(r);
5328 return false;
5331 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
5332 ndr_err = call->ndr_pull(pull, NDR_IN, r);
5333 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
5334 talloc_free(r);
5335 return false;
5338 if (DEBUGLEVEL >= 10) {
5339 NDR_PRINT_IN_DEBUG(lsa_CREDRGETSESSIONTYPES, r);
5342 r->out.result = _lsa_CREDRGETSESSIONTYPES(p, r);
5344 if (p->rng_fault_state) {
5345 talloc_free(r);
5346 /* Return true here, srv_pipe_hnd.c will take care */
5347 return true;
5350 if (DEBUGLEVEL >= 10) {
5351 NDR_PRINT_OUT_DEBUG(lsa_CREDRGETSESSIONTYPES, r);
5354 push = ndr_push_init_ctx(r);
5355 if (push == NULL) {
5356 talloc_free(r);
5357 return false;
5360 ndr_err = call->ndr_push(push, NDR_OUT, r);
5361 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
5362 talloc_free(r);
5363 return false;
5366 blob = ndr_push_blob(push);
5367 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
5368 talloc_free(r);
5369 return false;
5372 talloc_free(r);
5374 return true;
5377 static bool api_lsa_LSARREGISTERAUDITEVENT(pipes_struct *p)
5379 const struct ndr_interface_call *call;
5380 struct ndr_pull *pull;
5381 struct ndr_push *push;
5382 enum ndr_err_code ndr_err;
5383 DATA_BLOB blob;
5384 struct lsa_LSARREGISTERAUDITEVENT *r;
5386 call = &ndr_table_lsarpc.calls[NDR_LSA_LSARREGISTERAUDITEVENT];
5388 r = talloc(talloc_tos(), struct lsa_LSARREGISTERAUDITEVENT);
5389 if (r == NULL) {
5390 return false;
5393 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
5394 talloc_free(r);
5395 return false;
5398 pull = ndr_pull_init_blob(&blob, r);
5399 if (pull == NULL) {
5400 talloc_free(r);
5401 return false;
5404 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
5405 ndr_err = call->ndr_pull(pull, NDR_IN, r);
5406 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
5407 talloc_free(r);
5408 return false;
5411 if (DEBUGLEVEL >= 10) {
5412 NDR_PRINT_IN_DEBUG(lsa_LSARREGISTERAUDITEVENT, r);
5415 r->out.result = _lsa_LSARREGISTERAUDITEVENT(p, r);
5417 if (p->rng_fault_state) {
5418 talloc_free(r);
5419 /* Return true here, srv_pipe_hnd.c will take care */
5420 return true;
5423 if (DEBUGLEVEL >= 10) {
5424 NDR_PRINT_OUT_DEBUG(lsa_LSARREGISTERAUDITEVENT, r);
5427 push = ndr_push_init_ctx(r);
5428 if (push == NULL) {
5429 talloc_free(r);
5430 return false;
5433 ndr_err = call->ndr_push(push, NDR_OUT, r);
5434 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
5435 talloc_free(r);
5436 return false;
5439 blob = ndr_push_blob(push);
5440 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
5441 talloc_free(r);
5442 return false;
5445 talloc_free(r);
5447 return true;
5450 static bool api_lsa_LSARGENAUDITEVENT(pipes_struct *p)
5452 const struct ndr_interface_call *call;
5453 struct ndr_pull *pull;
5454 struct ndr_push *push;
5455 enum ndr_err_code ndr_err;
5456 DATA_BLOB blob;
5457 struct lsa_LSARGENAUDITEVENT *r;
5459 call = &ndr_table_lsarpc.calls[NDR_LSA_LSARGENAUDITEVENT];
5461 r = talloc(talloc_tos(), struct lsa_LSARGENAUDITEVENT);
5462 if (r == NULL) {
5463 return false;
5466 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
5467 talloc_free(r);
5468 return false;
5471 pull = ndr_pull_init_blob(&blob, r);
5472 if (pull == NULL) {
5473 talloc_free(r);
5474 return false;
5477 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
5478 ndr_err = call->ndr_pull(pull, NDR_IN, r);
5479 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
5480 talloc_free(r);
5481 return false;
5484 if (DEBUGLEVEL >= 10) {
5485 NDR_PRINT_IN_DEBUG(lsa_LSARGENAUDITEVENT, r);
5488 r->out.result = _lsa_LSARGENAUDITEVENT(p, r);
5490 if (p->rng_fault_state) {
5491 talloc_free(r);
5492 /* Return true here, srv_pipe_hnd.c will take care */
5493 return true;
5496 if (DEBUGLEVEL >= 10) {
5497 NDR_PRINT_OUT_DEBUG(lsa_LSARGENAUDITEVENT, r);
5500 push = ndr_push_init_ctx(r);
5501 if (push == NULL) {
5502 talloc_free(r);
5503 return false;
5506 ndr_err = call->ndr_push(push, NDR_OUT, r);
5507 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
5508 talloc_free(r);
5509 return false;
5512 blob = ndr_push_blob(push);
5513 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
5514 talloc_free(r);
5515 return false;
5518 talloc_free(r);
5520 return true;
5523 static bool api_lsa_LSARUNREGISTERAUDITEVENT(pipes_struct *p)
5525 const struct ndr_interface_call *call;
5526 struct ndr_pull *pull;
5527 struct ndr_push *push;
5528 enum ndr_err_code ndr_err;
5529 DATA_BLOB blob;
5530 struct lsa_LSARUNREGISTERAUDITEVENT *r;
5532 call = &ndr_table_lsarpc.calls[NDR_LSA_LSARUNREGISTERAUDITEVENT];
5534 r = talloc(talloc_tos(), struct lsa_LSARUNREGISTERAUDITEVENT);
5535 if (r == NULL) {
5536 return false;
5539 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
5540 talloc_free(r);
5541 return false;
5544 pull = ndr_pull_init_blob(&blob, r);
5545 if (pull == NULL) {
5546 talloc_free(r);
5547 return false;
5550 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
5551 ndr_err = call->ndr_pull(pull, NDR_IN, r);
5552 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
5553 talloc_free(r);
5554 return false;
5557 if (DEBUGLEVEL >= 10) {
5558 NDR_PRINT_IN_DEBUG(lsa_LSARUNREGISTERAUDITEVENT, r);
5561 r->out.result = _lsa_LSARUNREGISTERAUDITEVENT(p, r);
5563 if (p->rng_fault_state) {
5564 talloc_free(r);
5565 /* Return true here, srv_pipe_hnd.c will take care */
5566 return true;
5569 if (DEBUGLEVEL >= 10) {
5570 NDR_PRINT_OUT_DEBUG(lsa_LSARUNREGISTERAUDITEVENT, r);
5573 push = ndr_push_init_ctx(r);
5574 if (push == NULL) {
5575 talloc_free(r);
5576 return false;
5579 ndr_err = call->ndr_push(push, NDR_OUT, r);
5580 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
5581 talloc_free(r);
5582 return false;
5585 blob = ndr_push_blob(push);
5586 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
5587 talloc_free(r);
5588 return false;
5591 talloc_free(r);
5593 return true;
5596 static bool api_lsa_lsaRQueryForestTrustInformation(pipes_struct *p)
5598 const struct ndr_interface_call *call;
5599 struct ndr_pull *pull;
5600 struct ndr_push *push;
5601 enum ndr_err_code ndr_err;
5602 DATA_BLOB blob;
5603 struct lsa_lsaRQueryForestTrustInformation *r;
5605 call = &ndr_table_lsarpc.calls[NDR_LSA_LSARQUERYFORESTTRUSTINFORMATION];
5607 r = talloc(talloc_tos(), struct lsa_lsaRQueryForestTrustInformation);
5608 if (r == NULL) {
5609 return false;
5612 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
5613 talloc_free(r);
5614 return false;
5617 pull = ndr_pull_init_blob(&blob, r);
5618 if (pull == NULL) {
5619 talloc_free(r);
5620 return false;
5623 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
5624 ndr_err = call->ndr_pull(pull, NDR_IN, r);
5625 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
5626 talloc_free(r);
5627 return false;
5630 if (DEBUGLEVEL >= 10) {
5631 NDR_PRINT_IN_DEBUG(lsa_lsaRQueryForestTrustInformation, r);
5634 ZERO_STRUCT(r->out);
5635 r->out.forest_trust_info = talloc_zero(r, struct lsa_ForestTrustInformation *);
5636 if (r->out.forest_trust_info == NULL) {
5637 talloc_free(r);
5638 return false;
5641 r->out.result = _lsa_lsaRQueryForestTrustInformation(p, r);
5643 if (p->rng_fault_state) {
5644 talloc_free(r);
5645 /* Return true here, srv_pipe_hnd.c will take care */
5646 return true;
5649 if (DEBUGLEVEL >= 10) {
5650 NDR_PRINT_OUT_DEBUG(lsa_lsaRQueryForestTrustInformation, r);
5653 push = ndr_push_init_ctx(r);
5654 if (push == NULL) {
5655 talloc_free(r);
5656 return false;
5659 ndr_err = call->ndr_push(push, NDR_OUT, r);
5660 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
5661 talloc_free(r);
5662 return false;
5665 blob = ndr_push_blob(push);
5666 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
5667 talloc_free(r);
5668 return false;
5671 talloc_free(r);
5673 return true;
5676 static bool api_lsa_LSARSETFORESTTRUSTINFORMATION(pipes_struct *p)
5678 const struct ndr_interface_call *call;
5679 struct ndr_pull *pull;
5680 struct ndr_push *push;
5681 enum ndr_err_code ndr_err;
5682 DATA_BLOB blob;
5683 struct lsa_LSARSETFORESTTRUSTINFORMATION *r;
5685 call = &ndr_table_lsarpc.calls[NDR_LSA_LSARSETFORESTTRUSTINFORMATION];
5687 r = talloc(talloc_tos(), struct lsa_LSARSETFORESTTRUSTINFORMATION);
5688 if (r == NULL) {
5689 return false;
5692 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
5693 talloc_free(r);
5694 return false;
5697 pull = ndr_pull_init_blob(&blob, r);
5698 if (pull == NULL) {
5699 talloc_free(r);
5700 return false;
5703 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
5704 ndr_err = call->ndr_pull(pull, NDR_IN, r);
5705 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
5706 talloc_free(r);
5707 return false;
5710 if (DEBUGLEVEL >= 10) {
5711 NDR_PRINT_IN_DEBUG(lsa_LSARSETFORESTTRUSTINFORMATION, r);
5714 r->out.result = _lsa_LSARSETFORESTTRUSTINFORMATION(p, r);
5716 if (p->rng_fault_state) {
5717 talloc_free(r);
5718 /* Return true here, srv_pipe_hnd.c will take care */
5719 return true;
5722 if (DEBUGLEVEL >= 10) {
5723 NDR_PRINT_OUT_DEBUG(lsa_LSARSETFORESTTRUSTINFORMATION, r);
5726 push = ndr_push_init_ctx(r);
5727 if (push == NULL) {
5728 talloc_free(r);
5729 return false;
5732 ndr_err = call->ndr_push(push, NDR_OUT, r);
5733 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
5734 talloc_free(r);
5735 return false;
5738 blob = ndr_push_blob(push);
5739 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
5740 talloc_free(r);
5741 return false;
5744 talloc_free(r);
5746 return true;
5749 static bool api_lsa_CREDRRENAME(pipes_struct *p)
5751 const struct ndr_interface_call *call;
5752 struct ndr_pull *pull;
5753 struct ndr_push *push;
5754 enum ndr_err_code ndr_err;
5755 DATA_BLOB blob;
5756 struct lsa_CREDRRENAME *r;
5758 call = &ndr_table_lsarpc.calls[NDR_LSA_CREDRRENAME];
5760 r = talloc(talloc_tos(), struct lsa_CREDRRENAME);
5761 if (r == NULL) {
5762 return false;
5765 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
5766 talloc_free(r);
5767 return false;
5770 pull = ndr_pull_init_blob(&blob, r);
5771 if (pull == NULL) {
5772 talloc_free(r);
5773 return false;
5776 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
5777 ndr_err = call->ndr_pull(pull, NDR_IN, r);
5778 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
5779 talloc_free(r);
5780 return false;
5783 if (DEBUGLEVEL >= 10) {
5784 NDR_PRINT_IN_DEBUG(lsa_CREDRRENAME, r);
5787 r->out.result = _lsa_CREDRRENAME(p, r);
5789 if (p->rng_fault_state) {
5790 talloc_free(r);
5791 /* Return true here, srv_pipe_hnd.c will take care */
5792 return true;
5795 if (DEBUGLEVEL >= 10) {
5796 NDR_PRINT_OUT_DEBUG(lsa_CREDRRENAME, r);
5799 push = ndr_push_init_ctx(r);
5800 if (push == NULL) {
5801 talloc_free(r);
5802 return false;
5805 ndr_err = call->ndr_push(push, NDR_OUT, r);
5806 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
5807 talloc_free(r);
5808 return false;
5811 blob = ndr_push_blob(push);
5812 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
5813 talloc_free(r);
5814 return false;
5817 talloc_free(r);
5819 return true;
5822 static bool api_lsa_LookupSids3(pipes_struct *p)
5824 const struct ndr_interface_call *call;
5825 struct ndr_pull *pull;
5826 struct ndr_push *push;
5827 enum ndr_err_code ndr_err;
5828 DATA_BLOB blob;
5829 struct lsa_LookupSids3 *r;
5831 call = &ndr_table_lsarpc.calls[NDR_LSA_LOOKUPSIDS3];
5833 r = talloc(talloc_tos(), struct lsa_LookupSids3);
5834 if (r == NULL) {
5835 return false;
5838 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
5839 talloc_free(r);
5840 return false;
5843 pull = ndr_pull_init_blob(&blob, r);
5844 if (pull == NULL) {
5845 talloc_free(r);
5846 return false;
5849 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
5850 ndr_err = call->ndr_pull(pull, NDR_IN, r);
5851 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
5852 talloc_free(r);
5853 return false;
5856 if (DEBUGLEVEL >= 10) {
5857 NDR_PRINT_IN_DEBUG(lsa_LookupSids3, r);
5860 ZERO_STRUCT(r->out);
5861 r->out.domains = talloc_zero(r, struct lsa_RefDomainList *);
5862 if (r->out.domains == NULL) {
5863 talloc_free(r);
5864 return false;
5867 r->out.names = r->in.names;
5868 r->out.count = r->in.count;
5869 r->out.result = _lsa_LookupSids3(p, r);
5871 if (p->rng_fault_state) {
5872 talloc_free(r);
5873 /* Return true here, srv_pipe_hnd.c will take care */
5874 return true;
5877 if (DEBUGLEVEL >= 10) {
5878 NDR_PRINT_OUT_DEBUG(lsa_LookupSids3, r);
5881 push = ndr_push_init_ctx(r);
5882 if (push == NULL) {
5883 talloc_free(r);
5884 return false;
5887 ndr_err = call->ndr_push(push, NDR_OUT, r);
5888 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
5889 talloc_free(r);
5890 return false;
5893 blob = ndr_push_blob(push);
5894 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
5895 talloc_free(r);
5896 return false;
5899 talloc_free(r);
5901 return true;
5904 static bool api_lsa_LookupNames4(pipes_struct *p)
5906 const struct ndr_interface_call *call;
5907 struct ndr_pull *pull;
5908 struct ndr_push *push;
5909 enum ndr_err_code ndr_err;
5910 DATA_BLOB blob;
5911 struct lsa_LookupNames4 *r;
5913 call = &ndr_table_lsarpc.calls[NDR_LSA_LOOKUPNAMES4];
5915 r = talloc(talloc_tos(), struct lsa_LookupNames4);
5916 if (r == NULL) {
5917 return false;
5920 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
5921 talloc_free(r);
5922 return false;
5925 pull = ndr_pull_init_blob(&blob, r);
5926 if (pull == NULL) {
5927 talloc_free(r);
5928 return false;
5931 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
5932 ndr_err = call->ndr_pull(pull, NDR_IN, r);
5933 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
5934 talloc_free(r);
5935 return false;
5938 if (DEBUGLEVEL >= 10) {
5939 NDR_PRINT_IN_DEBUG(lsa_LookupNames4, r);
5942 ZERO_STRUCT(r->out);
5943 r->out.domains = talloc_zero(r, struct lsa_RefDomainList *);
5944 if (r->out.domains == NULL) {
5945 talloc_free(r);
5946 return false;
5949 r->out.sids = r->in.sids;
5950 r->out.count = r->in.count;
5951 r->out.result = _lsa_LookupNames4(p, r);
5953 if (p->rng_fault_state) {
5954 talloc_free(r);
5955 /* Return true here, srv_pipe_hnd.c will take care */
5956 return true;
5959 if (DEBUGLEVEL >= 10) {
5960 NDR_PRINT_OUT_DEBUG(lsa_LookupNames4, r);
5963 push = ndr_push_init_ctx(r);
5964 if (push == NULL) {
5965 talloc_free(r);
5966 return false;
5969 ndr_err = call->ndr_push(push, NDR_OUT, r);
5970 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
5971 talloc_free(r);
5972 return false;
5975 blob = ndr_push_blob(push);
5976 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
5977 talloc_free(r);
5978 return false;
5981 talloc_free(r);
5983 return true;
5986 static bool api_lsa_LSAROPENPOLICYSCE(pipes_struct *p)
5988 const struct ndr_interface_call *call;
5989 struct ndr_pull *pull;
5990 struct ndr_push *push;
5991 enum ndr_err_code ndr_err;
5992 DATA_BLOB blob;
5993 struct lsa_LSAROPENPOLICYSCE *r;
5995 call = &ndr_table_lsarpc.calls[NDR_LSA_LSAROPENPOLICYSCE];
5997 r = talloc(talloc_tos(), struct lsa_LSAROPENPOLICYSCE);
5998 if (r == NULL) {
5999 return false;
6002 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
6003 talloc_free(r);
6004 return false;
6007 pull = ndr_pull_init_blob(&blob, r);
6008 if (pull == NULL) {
6009 talloc_free(r);
6010 return false;
6013 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
6014 ndr_err = call->ndr_pull(pull, NDR_IN, r);
6015 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
6016 talloc_free(r);
6017 return false;
6020 if (DEBUGLEVEL >= 10) {
6021 NDR_PRINT_IN_DEBUG(lsa_LSAROPENPOLICYSCE, r);
6024 r->out.result = _lsa_LSAROPENPOLICYSCE(p, r);
6026 if (p->rng_fault_state) {
6027 talloc_free(r);
6028 /* Return true here, srv_pipe_hnd.c will take care */
6029 return true;
6032 if (DEBUGLEVEL >= 10) {
6033 NDR_PRINT_OUT_DEBUG(lsa_LSAROPENPOLICYSCE, r);
6036 push = ndr_push_init_ctx(r);
6037 if (push == NULL) {
6038 talloc_free(r);
6039 return false;
6042 ndr_err = call->ndr_push(push, NDR_OUT, r);
6043 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
6044 talloc_free(r);
6045 return false;
6048 blob = ndr_push_blob(push);
6049 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
6050 talloc_free(r);
6051 return false;
6054 talloc_free(r);
6056 return true;
6059 static bool api_lsa_LSARADTREGISTERSECURITYEVENTSOURCE(pipes_struct *p)
6061 const struct ndr_interface_call *call;
6062 struct ndr_pull *pull;
6063 struct ndr_push *push;
6064 enum ndr_err_code ndr_err;
6065 DATA_BLOB blob;
6066 struct lsa_LSARADTREGISTERSECURITYEVENTSOURCE *r;
6068 call = &ndr_table_lsarpc.calls[NDR_LSA_LSARADTREGISTERSECURITYEVENTSOURCE];
6070 r = talloc(talloc_tos(), struct lsa_LSARADTREGISTERSECURITYEVENTSOURCE);
6071 if (r == NULL) {
6072 return false;
6075 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
6076 talloc_free(r);
6077 return false;
6080 pull = ndr_pull_init_blob(&blob, r);
6081 if (pull == NULL) {
6082 talloc_free(r);
6083 return false;
6086 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
6087 ndr_err = call->ndr_pull(pull, NDR_IN, r);
6088 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
6089 talloc_free(r);
6090 return false;
6093 if (DEBUGLEVEL >= 10) {
6094 NDR_PRINT_IN_DEBUG(lsa_LSARADTREGISTERSECURITYEVENTSOURCE, r);
6097 r->out.result = _lsa_LSARADTREGISTERSECURITYEVENTSOURCE(p, r);
6099 if (p->rng_fault_state) {
6100 talloc_free(r);
6101 /* Return true here, srv_pipe_hnd.c will take care */
6102 return true;
6105 if (DEBUGLEVEL >= 10) {
6106 NDR_PRINT_OUT_DEBUG(lsa_LSARADTREGISTERSECURITYEVENTSOURCE, r);
6109 push = ndr_push_init_ctx(r);
6110 if (push == NULL) {
6111 talloc_free(r);
6112 return false;
6115 ndr_err = call->ndr_push(push, NDR_OUT, r);
6116 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
6117 talloc_free(r);
6118 return false;
6121 blob = ndr_push_blob(push);
6122 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
6123 talloc_free(r);
6124 return false;
6127 talloc_free(r);
6129 return true;
6132 static bool api_lsa_LSARADTUNREGISTERSECURITYEVENTSOURCE(pipes_struct *p)
6134 const struct ndr_interface_call *call;
6135 struct ndr_pull *pull;
6136 struct ndr_push *push;
6137 enum ndr_err_code ndr_err;
6138 DATA_BLOB blob;
6139 struct lsa_LSARADTUNREGISTERSECURITYEVENTSOURCE *r;
6141 call = &ndr_table_lsarpc.calls[NDR_LSA_LSARADTUNREGISTERSECURITYEVENTSOURCE];
6143 r = talloc(talloc_tos(), struct lsa_LSARADTUNREGISTERSECURITYEVENTSOURCE);
6144 if (r == NULL) {
6145 return false;
6148 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
6149 talloc_free(r);
6150 return false;
6153 pull = ndr_pull_init_blob(&blob, r);
6154 if (pull == NULL) {
6155 talloc_free(r);
6156 return false;
6159 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
6160 ndr_err = call->ndr_pull(pull, NDR_IN, r);
6161 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
6162 talloc_free(r);
6163 return false;
6166 if (DEBUGLEVEL >= 10) {
6167 NDR_PRINT_IN_DEBUG(lsa_LSARADTUNREGISTERSECURITYEVENTSOURCE, r);
6170 r->out.result = _lsa_LSARADTUNREGISTERSECURITYEVENTSOURCE(p, r);
6172 if (p->rng_fault_state) {
6173 talloc_free(r);
6174 /* Return true here, srv_pipe_hnd.c will take care */
6175 return true;
6178 if (DEBUGLEVEL >= 10) {
6179 NDR_PRINT_OUT_DEBUG(lsa_LSARADTUNREGISTERSECURITYEVENTSOURCE, r);
6182 push = ndr_push_init_ctx(r);
6183 if (push == NULL) {
6184 talloc_free(r);
6185 return false;
6188 ndr_err = call->ndr_push(push, NDR_OUT, r);
6189 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
6190 talloc_free(r);
6191 return false;
6194 blob = ndr_push_blob(push);
6195 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
6196 talloc_free(r);
6197 return false;
6200 talloc_free(r);
6202 return true;
6205 static bool api_lsa_LSARADTREPORTSECURITYEVENT(pipes_struct *p)
6207 const struct ndr_interface_call *call;
6208 struct ndr_pull *pull;
6209 struct ndr_push *push;
6210 enum ndr_err_code ndr_err;
6211 DATA_BLOB blob;
6212 struct lsa_LSARADTREPORTSECURITYEVENT *r;
6214 call = &ndr_table_lsarpc.calls[NDR_LSA_LSARADTREPORTSECURITYEVENT];
6216 r = talloc(talloc_tos(), struct lsa_LSARADTREPORTSECURITYEVENT);
6217 if (r == NULL) {
6218 return false;
6221 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
6222 talloc_free(r);
6223 return false;
6226 pull = ndr_pull_init_blob(&blob, r);
6227 if (pull == NULL) {
6228 talloc_free(r);
6229 return false;
6232 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
6233 ndr_err = call->ndr_pull(pull, NDR_IN, r);
6234 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
6235 talloc_free(r);
6236 return false;
6239 if (DEBUGLEVEL >= 10) {
6240 NDR_PRINT_IN_DEBUG(lsa_LSARADTREPORTSECURITYEVENT, r);
6243 r->out.result = _lsa_LSARADTREPORTSECURITYEVENT(p, r);
6245 if (p->rng_fault_state) {
6246 talloc_free(r);
6247 /* Return true here, srv_pipe_hnd.c will take care */
6248 return true;
6251 if (DEBUGLEVEL >= 10) {
6252 NDR_PRINT_OUT_DEBUG(lsa_LSARADTREPORTSECURITYEVENT, r);
6255 push = ndr_push_init_ctx(r);
6256 if (push == NULL) {
6257 talloc_free(r);
6258 return false;
6261 ndr_err = call->ndr_push(push, NDR_OUT, r);
6262 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
6263 talloc_free(r);
6264 return false;
6267 blob = ndr_push_blob(push);
6268 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
6269 talloc_free(r);
6270 return false;
6273 talloc_free(r);
6275 return true;
6279 /* Tables */
6280 static struct api_struct api_lsarpc_cmds[] =
6282 {"LSA_CLOSE", NDR_LSA_CLOSE, api_lsa_Close},
6283 {"LSA_DELETE", NDR_LSA_DELETE, api_lsa_Delete},
6284 {"LSA_ENUMPRIVS", NDR_LSA_ENUMPRIVS, api_lsa_EnumPrivs},
6285 {"LSA_QUERYSECURITY", NDR_LSA_QUERYSECURITY, api_lsa_QuerySecurity},
6286 {"LSA_SETSECOBJ", NDR_LSA_SETSECOBJ, api_lsa_SetSecObj},
6287 {"LSA_CHANGEPASSWORD", NDR_LSA_CHANGEPASSWORD, api_lsa_ChangePassword},
6288 {"LSA_OPENPOLICY", NDR_LSA_OPENPOLICY, api_lsa_OpenPolicy},
6289 {"LSA_QUERYINFOPOLICY", NDR_LSA_QUERYINFOPOLICY, api_lsa_QueryInfoPolicy},
6290 {"LSA_SETINFOPOLICY", NDR_LSA_SETINFOPOLICY, api_lsa_SetInfoPolicy},
6291 {"LSA_CLEARAUDITLOG", NDR_LSA_CLEARAUDITLOG, api_lsa_ClearAuditLog},
6292 {"LSA_CREATEACCOUNT", NDR_LSA_CREATEACCOUNT, api_lsa_CreateAccount},
6293 {"LSA_ENUMACCOUNTS", NDR_LSA_ENUMACCOUNTS, api_lsa_EnumAccounts},
6294 {"LSA_CREATETRUSTEDDOMAIN", NDR_LSA_CREATETRUSTEDDOMAIN, api_lsa_CreateTrustedDomain},
6295 {"LSA_ENUMTRUSTDOM", NDR_LSA_ENUMTRUSTDOM, api_lsa_EnumTrustDom},
6296 {"LSA_LOOKUPNAMES", NDR_LSA_LOOKUPNAMES, api_lsa_LookupNames},
6297 {"LSA_LOOKUPSIDS", NDR_LSA_LOOKUPSIDS, api_lsa_LookupSids},
6298 {"LSA_CREATESECRET", NDR_LSA_CREATESECRET, api_lsa_CreateSecret},
6299 {"LSA_OPENACCOUNT", NDR_LSA_OPENACCOUNT, api_lsa_OpenAccount},
6300 {"LSA_ENUMPRIVSACCOUNT", NDR_LSA_ENUMPRIVSACCOUNT, api_lsa_EnumPrivsAccount},
6301 {"LSA_ADDPRIVILEGESTOACCOUNT", NDR_LSA_ADDPRIVILEGESTOACCOUNT, api_lsa_AddPrivilegesToAccount},
6302 {"LSA_REMOVEPRIVILEGESFROMACCOUNT", NDR_LSA_REMOVEPRIVILEGESFROMACCOUNT, api_lsa_RemovePrivilegesFromAccount},
6303 {"LSA_GETQUOTASFORACCOUNT", NDR_LSA_GETQUOTASFORACCOUNT, api_lsa_GetQuotasForAccount},
6304 {"LSA_SETQUOTASFORACCOUNT", NDR_LSA_SETQUOTASFORACCOUNT, api_lsa_SetQuotasForAccount},
6305 {"LSA_GETSYSTEMACCESSACCOUNT", NDR_LSA_GETSYSTEMACCESSACCOUNT, api_lsa_GetSystemAccessAccount},
6306 {"LSA_SETSYSTEMACCESSACCOUNT", NDR_LSA_SETSYSTEMACCESSACCOUNT, api_lsa_SetSystemAccessAccount},
6307 {"LSA_OPENTRUSTEDDOMAIN", NDR_LSA_OPENTRUSTEDDOMAIN, api_lsa_OpenTrustedDomain},
6308 {"LSA_QUERYTRUSTEDDOMAININFO", NDR_LSA_QUERYTRUSTEDDOMAININFO, api_lsa_QueryTrustedDomainInfo},
6309 {"LSA_SETINFORMATIONTRUSTEDDOMAIN", NDR_LSA_SETINFORMATIONTRUSTEDDOMAIN, api_lsa_SetInformationTrustedDomain},
6310 {"LSA_OPENSECRET", NDR_LSA_OPENSECRET, api_lsa_OpenSecret},
6311 {"LSA_SETSECRET", NDR_LSA_SETSECRET, api_lsa_SetSecret},
6312 {"LSA_QUERYSECRET", NDR_LSA_QUERYSECRET, api_lsa_QuerySecret},
6313 {"LSA_LOOKUPPRIVVALUE", NDR_LSA_LOOKUPPRIVVALUE, api_lsa_LookupPrivValue},
6314 {"LSA_LOOKUPPRIVNAME", NDR_LSA_LOOKUPPRIVNAME, api_lsa_LookupPrivName},
6315 {"LSA_LOOKUPPRIVDISPLAYNAME", NDR_LSA_LOOKUPPRIVDISPLAYNAME, api_lsa_LookupPrivDisplayName},
6316 {"LSA_DELETEOBJECT", NDR_LSA_DELETEOBJECT, api_lsa_DeleteObject},
6317 {"LSA_ENUMACCOUNTSWITHUSERRIGHT", NDR_LSA_ENUMACCOUNTSWITHUSERRIGHT, api_lsa_EnumAccountsWithUserRight},
6318 {"LSA_ENUMACCOUNTRIGHTS", NDR_LSA_ENUMACCOUNTRIGHTS, api_lsa_EnumAccountRights},
6319 {"LSA_ADDACCOUNTRIGHTS", NDR_LSA_ADDACCOUNTRIGHTS, api_lsa_AddAccountRights},
6320 {"LSA_REMOVEACCOUNTRIGHTS", NDR_LSA_REMOVEACCOUNTRIGHTS, api_lsa_RemoveAccountRights},
6321 {"LSA_QUERYTRUSTEDDOMAININFOBYSID", NDR_LSA_QUERYTRUSTEDDOMAININFOBYSID, api_lsa_QueryTrustedDomainInfoBySid},
6322 {"LSA_SETTRUSTEDDOMAININFO", NDR_LSA_SETTRUSTEDDOMAININFO, api_lsa_SetTrustedDomainInfo},
6323 {"LSA_DELETETRUSTEDDOMAIN", NDR_LSA_DELETETRUSTEDDOMAIN, api_lsa_DeleteTrustedDomain},
6324 {"LSA_STOREPRIVATEDATA", NDR_LSA_STOREPRIVATEDATA, api_lsa_StorePrivateData},
6325 {"LSA_RETRIEVEPRIVATEDATA", NDR_LSA_RETRIEVEPRIVATEDATA, api_lsa_RetrievePrivateData},
6326 {"LSA_OPENPOLICY2", NDR_LSA_OPENPOLICY2, api_lsa_OpenPolicy2},
6327 {"LSA_GETUSERNAME", NDR_LSA_GETUSERNAME, api_lsa_GetUserName},
6328 {"LSA_QUERYINFOPOLICY2", NDR_LSA_QUERYINFOPOLICY2, api_lsa_QueryInfoPolicy2},
6329 {"LSA_SETINFOPOLICY2", NDR_LSA_SETINFOPOLICY2, api_lsa_SetInfoPolicy2},
6330 {"LSA_QUERYTRUSTEDDOMAININFOBYNAME", NDR_LSA_QUERYTRUSTEDDOMAININFOBYNAME, api_lsa_QueryTrustedDomainInfoByName},
6331 {"LSA_SETTRUSTEDDOMAININFOBYNAME", NDR_LSA_SETTRUSTEDDOMAININFOBYNAME, api_lsa_SetTrustedDomainInfoByName},
6332 {"LSA_ENUMTRUSTEDDOMAINSEX", NDR_LSA_ENUMTRUSTEDDOMAINSEX, api_lsa_EnumTrustedDomainsEx},
6333 {"LSA_CREATETRUSTEDDOMAINEX", NDR_LSA_CREATETRUSTEDDOMAINEX, api_lsa_CreateTrustedDomainEx},
6334 {"LSA_CLOSETRUSTEDDOMAINEX", NDR_LSA_CLOSETRUSTEDDOMAINEX, api_lsa_CloseTrustedDomainEx},
6335 {"LSA_QUERYDOMAININFORMATIONPOLICY", NDR_LSA_QUERYDOMAININFORMATIONPOLICY, api_lsa_QueryDomainInformationPolicy},
6336 {"LSA_SETDOMAININFORMATIONPOLICY", NDR_LSA_SETDOMAININFORMATIONPOLICY, api_lsa_SetDomainInformationPolicy},
6337 {"LSA_OPENTRUSTEDDOMAINBYNAME", NDR_LSA_OPENTRUSTEDDOMAINBYNAME, api_lsa_OpenTrustedDomainByName},
6338 {"LSA_TESTCALL", NDR_LSA_TESTCALL, api_lsa_TestCall},
6339 {"LSA_LOOKUPSIDS2", NDR_LSA_LOOKUPSIDS2, api_lsa_LookupSids2},
6340 {"LSA_LOOKUPNAMES2", NDR_LSA_LOOKUPNAMES2, api_lsa_LookupNames2},
6341 {"LSA_CREATETRUSTEDDOMAINEX2", NDR_LSA_CREATETRUSTEDDOMAINEX2, api_lsa_CreateTrustedDomainEx2},
6342 {"LSA_CREDRWRITE", NDR_LSA_CREDRWRITE, api_lsa_CREDRWRITE},
6343 {"LSA_CREDRREAD", NDR_LSA_CREDRREAD, api_lsa_CREDRREAD},
6344 {"LSA_CREDRENUMERATE", NDR_LSA_CREDRENUMERATE, api_lsa_CREDRENUMERATE},
6345 {"LSA_CREDRWRITEDOMAINCREDENTIALS", NDR_LSA_CREDRWRITEDOMAINCREDENTIALS, api_lsa_CREDRWRITEDOMAINCREDENTIALS},
6346 {"LSA_CREDRREADDOMAINCREDENTIALS", NDR_LSA_CREDRREADDOMAINCREDENTIALS, api_lsa_CREDRREADDOMAINCREDENTIALS},
6347 {"LSA_CREDRDELETE", NDR_LSA_CREDRDELETE, api_lsa_CREDRDELETE},
6348 {"LSA_CREDRGETTARGETINFO", NDR_LSA_CREDRGETTARGETINFO, api_lsa_CREDRGETTARGETINFO},
6349 {"LSA_CREDRPROFILELOADED", NDR_LSA_CREDRPROFILELOADED, api_lsa_CREDRPROFILELOADED},
6350 {"LSA_LOOKUPNAMES3", NDR_LSA_LOOKUPNAMES3, api_lsa_LookupNames3},
6351 {"LSA_CREDRGETSESSIONTYPES", NDR_LSA_CREDRGETSESSIONTYPES, api_lsa_CREDRGETSESSIONTYPES},
6352 {"LSA_LSARREGISTERAUDITEVENT", NDR_LSA_LSARREGISTERAUDITEVENT, api_lsa_LSARREGISTERAUDITEVENT},
6353 {"LSA_LSARGENAUDITEVENT", NDR_LSA_LSARGENAUDITEVENT, api_lsa_LSARGENAUDITEVENT},
6354 {"LSA_LSARUNREGISTERAUDITEVENT", NDR_LSA_LSARUNREGISTERAUDITEVENT, api_lsa_LSARUNREGISTERAUDITEVENT},
6355 {"LSA_LSARQUERYFORESTTRUSTINFORMATION", NDR_LSA_LSARQUERYFORESTTRUSTINFORMATION, api_lsa_lsaRQueryForestTrustInformation},
6356 {"LSA_LSARSETFORESTTRUSTINFORMATION", NDR_LSA_LSARSETFORESTTRUSTINFORMATION, api_lsa_LSARSETFORESTTRUSTINFORMATION},
6357 {"LSA_CREDRRENAME", NDR_LSA_CREDRRENAME, api_lsa_CREDRRENAME},
6358 {"LSA_LOOKUPSIDS3", NDR_LSA_LOOKUPSIDS3, api_lsa_LookupSids3},
6359 {"LSA_LOOKUPNAMES4", NDR_LSA_LOOKUPNAMES4, api_lsa_LookupNames4},
6360 {"LSA_LSAROPENPOLICYSCE", NDR_LSA_LSAROPENPOLICYSCE, api_lsa_LSAROPENPOLICYSCE},
6361 {"LSA_LSARADTREGISTERSECURITYEVENTSOURCE", NDR_LSA_LSARADTREGISTERSECURITYEVENTSOURCE, api_lsa_LSARADTREGISTERSECURITYEVENTSOURCE},
6362 {"LSA_LSARADTUNREGISTERSECURITYEVENTSOURCE", NDR_LSA_LSARADTUNREGISTERSECURITYEVENTSOURCE, api_lsa_LSARADTUNREGISTERSECURITYEVENTSOURCE},
6363 {"LSA_LSARADTREPORTSECURITYEVENT", NDR_LSA_LSARADTREPORTSECURITYEVENT, api_lsa_LSARADTREPORTSECURITYEVENT},
6366 void lsarpc_get_pipe_fns(struct api_struct **fns, int *n_fns)
6368 *fns = api_lsarpc_cmds;
6369 *n_fns = sizeof(api_lsarpc_cmds) / sizeof(struct api_struct);
6372 NTSTATUS rpc_lsarpc_init(void)
6374 return rpc_pipe_register_commands(SMB_RPC_INTERFACE_VERSION, "lsarpc", "lsarpc", &ndr_table_lsarpc.syntax_id, api_lsarpc_cmds, sizeof(api_lsarpc_cmds) / sizeof(struct api_struct));