LCOV - code coverage report
Current view: top level - bin/default/librpc/gen_ndr - ndr_samr_c.c (source / functions) Hit Total Coverage
Test: coverage report for fix-15632 9995c5c2 Lines: 960 6801 14.1 %
Date: 2024-04-13 12:30:31 Functions: 149 552 27.0 %

          Line data    Source code
       1             : /* client functions auto-generated by pidl */
       2             : 
       3             : #include "includes.h"
       4             : #include <tevent.h>
       5             : #include "lib/util/tevent_ntstatus.h"
       6             : #include "bin/default/librpc/gen_ndr/ndr_samr.h"
       7             : #include "bin/default/librpc/gen_ndr/ndr_samr_c.h"
       8             : 
       9             : /* samr - client functions generated by pidl */
      10             : 
      11             : struct dcerpc_samr_Connect_r_state {
      12             :         TALLOC_CTX *out_mem_ctx;
      13             : };
      14             : 
      15             : static void dcerpc_samr_Connect_r_done(struct tevent_req *subreq);
      16             : 
      17          12 : struct tevent_req *dcerpc_samr_Connect_r_send(TALLOC_CTX *mem_ctx,
      18             :         struct tevent_context *ev,
      19             :         struct dcerpc_binding_handle *h,
      20             :         struct samr_Connect *r)
      21             : {
      22           0 :         struct tevent_req *req;
      23           0 :         struct dcerpc_samr_Connect_r_state *state;
      24           0 :         struct tevent_req *subreq;
      25             : 
      26          12 :         req = tevent_req_create(mem_ctx, &state,
      27             :                                 struct dcerpc_samr_Connect_r_state);
      28          12 :         if (req == NULL) {
      29           0 :                 return NULL;
      30             :         }
      31             : 
      32          12 :         state->out_mem_ctx = talloc_new(state);
      33          12 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
      34           0 :                 return tevent_req_post(req, ev);
      35             :         }
      36             : 
      37          12 :         subreq = dcerpc_binding_handle_call_send(state, ev, h,
      38             :                         NULL, &ndr_table_samr,
      39          12 :                         NDR_SAMR_CONNECT, state->out_mem_ctx, r);
      40          12 :         if (tevent_req_nomem(subreq, req)) {
      41           0 :                 return tevent_req_post(req, ev);
      42             :         }
      43          12 :         tevent_req_set_callback(subreq, dcerpc_samr_Connect_r_done, req);
      44             : 
      45          12 :         return req;
      46             : }
      47             : 
      48          12 : static void dcerpc_samr_Connect_r_done(struct tevent_req *subreq)
      49             : {
      50           0 :         struct tevent_req *req =
      51          12 :                 tevent_req_callback_data(subreq,
      52             :                 struct tevent_req);
      53           0 :         NTSTATUS status;
      54             : 
      55          12 :         status = dcerpc_binding_handle_call_recv(subreq);
      56          12 :         TALLOC_FREE(subreq);
      57          12 :         if (tevent_req_nterror(req, status)) {
      58           0 :                 return;
      59             :         }
      60             : 
      61          12 :         tevent_req_done(req);
      62             : }
      63             : 
      64          12 : NTSTATUS dcerpc_samr_Connect_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
      65             : {
      66           0 :         struct dcerpc_samr_Connect_r_state *state =
      67          12 :                 tevent_req_data(req,
      68             :                 struct dcerpc_samr_Connect_r_state);
      69           0 :         NTSTATUS status;
      70             : 
      71          12 :         if (tevent_req_is_nterror(req, &status)) {
      72           0 :                 tevent_req_received(req);
      73           0 :                 return status;
      74             :         }
      75             : 
      76          12 :         talloc_steal(mem_ctx, state->out_mem_ctx);
      77             : 
      78          12 :         tevent_req_received(req);
      79          12 :         return NT_STATUS_OK;
      80             : }
      81             : 
      82        1627 : NTSTATUS dcerpc_samr_Connect_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct samr_Connect *r)
      83             : {
      84         174 :         NTSTATUS status;
      85             : 
      86        1627 :         status = dcerpc_binding_handle_call(h,
      87             :                         NULL, &ndr_table_samr,
      88             :                         NDR_SAMR_CONNECT, mem_ctx, r);
      89             : 
      90        1627 :         return status;
      91             : }
      92             : 
      93             : struct dcerpc_samr_Connect_state {
      94             :         struct samr_Connect orig;
      95             :         struct samr_Connect tmp;
      96             :         TALLOC_CTX *out_mem_ctx;
      97             : };
      98             : 
      99             : static void dcerpc_samr_Connect_done(struct tevent_req *subreq);
     100             : 
     101           0 : struct tevent_req *dcerpc_samr_Connect_send(TALLOC_CTX *mem_ctx,
     102             :                                             struct tevent_context *ev,
     103             :                                             struct dcerpc_binding_handle *h,
     104             :                                             uint16_t *_system_name /* [in] [unique] */,
     105             :                                             uint32_t _access_mask /* [in]  */,
     106             :                                             struct policy_handle *_connect_handle /* [out] [ref] */)
     107             : {
     108           0 :         struct tevent_req *req;
     109           0 :         struct dcerpc_samr_Connect_state *state;
     110           0 :         struct tevent_req *subreq;
     111             : 
     112           0 :         req = tevent_req_create(mem_ctx, &state,
     113             :                                 struct dcerpc_samr_Connect_state);
     114           0 :         if (req == NULL) {
     115           0 :                 return NULL;
     116             :         }
     117           0 :         state->out_mem_ctx = NULL;
     118             : 
     119             :         /* In parameters */
     120           0 :         state->orig.in.system_name = _system_name;
     121           0 :         state->orig.in.access_mask = _access_mask;
     122             : 
     123             :         /* Out parameters */
     124           0 :         state->orig.out.connect_handle = _connect_handle;
     125             : 
     126             :         /* Result */
     127           0 :         NDR_ZERO_STRUCT(state->orig.out.result);
     128             : 
     129           0 :         state->out_mem_ctx = talloc_named_const(state, 0,
     130             :                              "dcerpc_samr_Connect_out_memory");
     131           0 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
     132           0 :                 return tevent_req_post(req, ev);
     133             :         }
     134             : 
     135             :         /* make a temporary copy, that we pass to the dispatch function */
     136           0 :         state->tmp = state->orig;
     137             : 
     138           0 :         subreq = dcerpc_samr_Connect_r_send(state, ev, h, &state->tmp);
     139           0 :         if (tevent_req_nomem(subreq, req)) {
     140           0 :                 return tevent_req_post(req, ev);
     141             :         }
     142           0 :         tevent_req_set_callback(subreq, dcerpc_samr_Connect_done, req);
     143           0 :         return req;
     144             : }
     145             : 
     146           0 : static void dcerpc_samr_Connect_done(struct tevent_req *subreq)
     147             : {
     148           0 :         struct tevent_req *req = tevent_req_callback_data(
     149             :                 subreq, struct tevent_req);
     150           0 :         struct dcerpc_samr_Connect_state *state = tevent_req_data(
     151             :                 req, struct dcerpc_samr_Connect_state);
     152           0 :         NTSTATUS status;
     153           0 :         TALLOC_CTX *mem_ctx;
     154             : 
     155           0 :         if (state->out_mem_ctx) {
     156           0 :                 mem_ctx = state->out_mem_ctx;
     157             :         } else {
     158           0 :                 mem_ctx = state;
     159             :         }
     160             : 
     161           0 :         status = dcerpc_samr_Connect_r_recv(subreq, mem_ctx);
     162           0 :         TALLOC_FREE(subreq);
     163           0 :         if (tevent_req_nterror(req, status)) {
     164           0 :                 return;
     165             :         }
     166             : 
     167             :         /* Copy out parameters */
     168           0 :         *state->orig.out.connect_handle = *state->tmp.out.connect_handle;
     169             : 
     170             :         /* Copy result */
     171           0 :         state->orig.out.result = state->tmp.out.result;
     172             : 
     173             :         /* Reset temporary structure */
     174           0 :         NDR_ZERO_STRUCT(state->tmp);
     175             : 
     176           0 :         tevent_req_done(req);
     177             : }
     178             : 
     179           0 : NTSTATUS dcerpc_samr_Connect_recv(struct tevent_req *req,
     180             :                                   TALLOC_CTX *mem_ctx,
     181             :                                   NTSTATUS *result)
     182             : {
     183           0 :         struct dcerpc_samr_Connect_state *state = tevent_req_data(
     184             :                 req, struct dcerpc_samr_Connect_state);
     185           0 :         NTSTATUS status;
     186             : 
     187           0 :         if (tevent_req_is_nterror(req, &status)) {
     188           0 :                 tevent_req_received(req);
     189           0 :                 return status;
     190             :         }
     191             : 
     192             :         /* Steal possible out parameters to the callers context */
     193           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
     194             : 
     195             :         /* Return result */
     196           0 :         *result = state->orig.out.result;
     197             : 
     198           0 :         tevent_req_received(req);
     199           0 :         return NT_STATUS_OK;
     200             : }
     201             : 
     202           0 : NTSTATUS dcerpc_samr_Connect(struct dcerpc_binding_handle *h,
     203             :                              TALLOC_CTX *mem_ctx,
     204             :                              uint16_t *_system_name /* [in] [unique] */,
     205             :                              uint32_t _access_mask /* [in]  */,
     206             :                              struct policy_handle *_connect_handle /* [out] [ref] */,
     207             :                              NTSTATUS *result)
     208             : {
     209           0 :         struct samr_Connect r;
     210           0 :         NTSTATUS status;
     211             : 
     212             :         /* In parameters */
     213           0 :         r.in.system_name = _system_name;
     214           0 :         r.in.access_mask = _access_mask;
     215             : 
     216             :         /* Out parameters */
     217           0 :         r.out.connect_handle = _connect_handle;
     218             : 
     219             :         /* Result */
     220           0 :         NDR_ZERO_STRUCT(r.out.result);
     221             : 
     222           0 :         status = dcerpc_samr_Connect_r(h, mem_ctx, &r);
     223           0 :         if (!NT_STATUS_IS_OK(status)) {
     224           0 :                 return status;
     225             :         }
     226             : 
     227             :         /* Return variables */
     228           0 :         *_connect_handle = *r.out.connect_handle;
     229             : 
     230             :         /* Return result */
     231           0 :         *result = r.out.result;
     232             : 
     233           0 :         return NT_STATUS_OK;
     234             : }
     235             : 
     236             : struct dcerpc_samr_Close_r_state {
     237             :         TALLOC_CTX *out_mem_ctx;
     238             : };
     239             : 
     240             : static void dcerpc_samr_Close_r_done(struct tevent_req *subreq);
     241             : 
     242          41 : struct tevent_req *dcerpc_samr_Close_r_send(TALLOC_CTX *mem_ctx,
     243             :         struct tevent_context *ev,
     244             :         struct dcerpc_binding_handle *h,
     245             :         struct samr_Close *r)
     246             : {
     247           0 :         struct tevent_req *req;
     248           0 :         struct dcerpc_samr_Close_r_state *state;
     249           0 :         struct tevent_req *subreq;
     250             : 
     251          41 :         req = tevent_req_create(mem_ctx, &state,
     252             :                                 struct dcerpc_samr_Close_r_state);
     253          41 :         if (req == NULL) {
     254           0 :                 return NULL;
     255             :         }
     256             : 
     257          41 :         state->out_mem_ctx = talloc_new(state);
     258          41 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
     259           0 :                 return tevent_req_post(req, ev);
     260             :         }
     261             : 
     262          41 :         subreq = dcerpc_binding_handle_call_send(state, ev, h,
     263             :                         NULL, &ndr_table_samr,
     264          41 :                         NDR_SAMR_CLOSE, state->out_mem_ctx, r);
     265          41 :         if (tevent_req_nomem(subreq, req)) {
     266           0 :                 return tevent_req_post(req, ev);
     267             :         }
     268          41 :         tevent_req_set_callback(subreq, dcerpc_samr_Close_r_done, req);
     269             : 
     270          41 :         return req;
     271             : }
     272             : 
     273          41 : static void dcerpc_samr_Close_r_done(struct tevent_req *subreq)
     274             : {
     275           0 :         struct tevent_req *req =
     276          41 :                 tevent_req_callback_data(subreq,
     277             :                 struct tevent_req);
     278           0 :         NTSTATUS status;
     279             : 
     280          41 :         status = dcerpc_binding_handle_call_recv(subreq);
     281          41 :         TALLOC_FREE(subreq);
     282          41 :         if (tevent_req_nterror(req, status)) {
     283           0 :                 return;
     284             :         }
     285             : 
     286          41 :         tevent_req_done(req);
     287             : }
     288             : 
     289          41 : NTSTATUS dcerpc_samr_Close_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
     290             : {
     291           0 :         struct dcerpc_samr_Close_r_state *state =
     292          41 :                 tevent_req_data(req,
     293             :                 struct dcerpc_samr_Close_r_state);
     294           0 :         NTSTATUS status;
     295             : 
     296          41 :         if (tevent_req_is_nterror(req, &status)) {
     297           0 :                 tevent_req_received(req);
     298           0 :                 return status;
     299             :         }
     300             : 
     301          41 :         talloc_steal(mem_ctx, state->out_mem_ctx);
     302             : 
     303          41 :         tevent_req_received(req);
     304          41 :         return NT_STATUS_OK;
     305             : }
     306             : 
     307        6472 : NTSTATUS dcerpc_samr_Close_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct samr_Close *r)
     308             : {
     309          12 :         NTSTATUS status;
     310             : 
     311        6472 :         status = dcerpc_binding_handle_call(h,
     312             :                         NULL, &ndr_table_samr,
     313             :                         NDR_SAMR_CLOSE, mem_ctx, r);
     314             : 
     315        6472 :         return status;
     316             : }
     317             : 
     318             : struct dcerpc_samr_Close_state {
     319             :         struct samr_Close orig;
     320             :         struct samr_Close tmp;
     321             :         TALLOC_CTX *out_mem_ctx;
     322             : };
     323             : 
     324             : static void dcerpc_samr_Close_done(struct tevent_req *subreq);
     325             : 
     326           0 : struct tevent_req *dcerpc_samr_Close_send(TALLOC_CTX *mem_ctx,
     327             :                                           struct tevent_context *ev,
     328             :                                           struct dcerpc_binding_handle *h,
     329             :                                           struct policy_handle *_handle /* [in,out] [ref] */)
     330             : {
     331           0 :         struct tevent_req *req;
     332           0 :         struct dcerpc_samr_Close_state *state;
     333           0 :         struct tevent_req *subreq;
     334             : 
     335           0 :         req = tevent_req_create(mem_ctx, &state,
     336             :                                 struct dcerpc_samr_Close_state);
     337           0 :         if (req == NULL) {
     338           0 :                 return NULL;
     339             :         }
     340           0 :         state->out_mem_ctx = NULL;
     341             : 
     342             :         /* In parameters */
     343           0 :         state->orig.in.handle = _handle;
     344             : 
     345             :         /* Out parameters */
     346           0 :         state->orig.out.handle = _handle;
     347             : 
     348             :         /* Result */
     349           0 :         NDR_ZERO_STRUCT(state->orig.out.result);
     350             : 
     351           0 :         state->out_mem_ctx = talloc_named_const(state, 0,
     352             :                              "dcerpc_samr_Close_out_memory");
     353           0 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
     354           0 :                 return tevent_req_post(req, ev);
     355             :         }
     356             : 
     357             :         /* make a temporary copy, that we pass to the dispatch function */
     358           0 :         state->tmp = state->orig;
     359             : 
     360           0 :         subreq = dcerpc_samr_Close_r_send(state, ev, h, &state->tmp);
     361           0 :         if (tevent_req_nomem(subreq, req)) {
     362           0 :                 return tevent_req_post(req, ev);
     363             :         }
     364           0 :         tevent_req_set_callback(subreq, dcerpc_samr_Close_done, req);
     365           0 :         return req;
     366             : }
     367             : 
     368           0 : static void dcerpc_samr_Close_done(struct tevent_req *subreq)
     369             : {
     370           0 :         struct tevent_req *req = tevent_req_callback_data(
     371             :                 subreq, struct tevent_req);
     372           0 :         struct dcerpc_samr_Close_state *state = tevent_req_data(
     373             :                 req, struct dcerpc_samr_Close_state);
     374           0 :         NTSTATUS status;
     375           0 :         TALLOC_CTX *mem_ctx;
     376             : 
     377           0 :         if (state->out_mem_ctx) {
     378           0 :                 mem_ctx = state->out_mem_ctx;
     379             :         } else {
     380           0 :                 mem_ctx = state;
     381             :         }
     382             : 
     383           0 :         status = dcerpc_samr_Close_r_recv(subreq, mem_ctx);
     384           0 :         TALLOC_FREE(subreq);
     385           0 :         if (tevent_req_nterror(req, status)) {
     386           0 :                 return;
     387             :         }
     388             : 
     389             :         /* Copy out parameters */
     390           0 :         *state->orig.out.handle = *state->tmp.out.handle;
     391             : 
     392             :         /* Copy result */
     393           0 :         state->orig.out.result = state->tmp.out.result;
     394             : 
     395             :         /* Reset temporary structure */
     396           0 :         NDR_ZERO_STRUCT(state->tmp);
     397             : 
     398           0 :         tevent_req_done(req);
     399             : }
     400             : 
     401           0 : NTSTATUS dcerpc_samr_Close_recv(struct tevent_req *req,
     402             :                                 TALLOC_CTX *mem_ctx,
     403             :                                 NTSTATUS *result)
     404             : {
     405           0 :         struct dcerpc_samr_Close_state *state = tevent_req_data(
     406             :                 req, struct dcerpc_samr_Close_state);
     407           0 :         NTSTATUS status;
     408             : 
     409           0 :         if (tevent_req_is_nterror(req, &status)) {
     410           0 :                 tevent_req_received(req);
     411           0 :                 return status;
     412             :         }
     413             : 
     414             :         /* Steal possible out parameters to the callers context */
     415           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
     416             : 
     417             :         /* Return result */
     418           0 :         *result = state->orig.out.result;
     419             : 
     420           0 :         tevent_req_received(req);
     421           0 :         return NT_STATUS_OK;
     422             : }
     423             : 
     424        2096 : NTSTATUS dcerpc_samr_Close(struct dcerpc_binding_handle *h,
     425             :                            TALLOC_CTX *mem_ctx,
     426             :                            struct policy_handle *_handle /* [in,out] [ref] */,
     427             :                            NTSTATUS *result)
     428             : {
     429           0 :         struct samr_Close r;
     430           0 :         NTSTATUS status;
     431             : 
     432             :         /* In parameters */
     433        2096 :         r.in.handle = _handle;
     434             : 
     435             :         /* Out parameters */
     436        2096 :         r.out.handle = _handle;
     437             : 
     438             :         /* Result */
     439        2096 :         NDR_ZERO_STRUCT(r.out.result);
     440             : 
     441        2096 :         status = dcerpc_samr_Close_r(h, mem_ctx, &r);
     442        2096 :         if (!NT_STATUS_IS_OK(status)) {
     443           0 :                 return status;
     444             :         }
     445             : 
     446             :         /* Return variables */
     447        2096 :         *_handle = *r.out.handle;
     448             : 
     449             :         /* Return result */
     450        2096 :         *result = r.out.result;
     451             : 
     452        2096 :         return NT_STATUS_OK;
     453             : }
     454             : 
     455             : struct dcerpc_samr_SetSecurity_r_state {
     456             :         TALLOC_CTX *out_mem_ctx;
     457             : };
     458             : 
     459             : static void dcerpc_samr_SetSecurity_r_done(struct tevent_req *subreq);
     460             : 
     461           0 : struct tevent_req *dcerpc_samr_SetSecurity_r_send(TALLOC_CTX *mem_ctx,
     462             :         struct tevent_context *ev,
     463             :         struct dcerpc_binding_handle *h,
     464             :         struct samr_SetSecurity *r)
     465             : {
     466           0 :         struct tevent_req *req;
     467           0 :         struct dcerpc_samr_SetSecurity_r_state *state;
     468           0 :         struct tevent_req *subreq;
     469             : 
     470           0 :         req = tevent_req_create(mem_ctx, &state,
     471             :                                 struct dcerpc_samr_SetSecurity_r_state);
     472           0 :         if (req == NULL) {
     473           0 :                 return NULL;
     474             :         }
     475             : 
     476           0 :         state->out_mem_ctx = NULL;
     477             : 
     478           0 :         subreq = dcerpc_binding_handle_call_send(state, ev, h,
     479             :                         NULL, &ndr_table_samr,
     480             :                         NDR_SAMR_SETSECURITY, state, r);
     481           0 :         if (tevent_req_nomem(subreq, req)) {
     482           0 :                 return tevent_req_post(req, ev);
     483             :         }
     484           0 :         tevent_req_set_callback(subreq, dcerpc_samr_SetSecurity_r_done, req);
     485             : 
     486           0 :         return req;
     487             : }
     488             : 
     489           0 : static void dcerpc_samr_SetSecurity_r_done(struct tevent_req *subreq)
     490             : {
     491           0 :         struct tevent_req *req =
     492           0 :                 tevent_req_callback_data(subreq,
     493             :                 struct tevent_req);
     494           0 :         NTSTATUS status;
     495             : 
     496           0 :         status = dcerpc_binding_handle_call_recv(subreq);
     497           0 :         TALLOC_FREE(subreq);
     498           0 :         if (tevent_req_nterror(req, status)) {
     499           0 :                 return;
     500             :         }
     501             : 
     502           0 :         tevent_req_done(req);
     503             : }
     504             : 
     505           0 : NTSTATUS dcerpc_samr_SetSecurity_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
     506             : {
     507           0 :         struct dcerpc_samr_SetSecurity_r_state *state =
     508           0 :                 tevent_req_data(req,
     509             :                 struct dcerpc_samr_SetSecurity_r_state);
     510           0 :         NTSTATUS status;
     511             : 
     512           0 :         if (tevent_req_is_nterror(req, &status)) {
     513           0 :                 tevent_req_received(req);
     514           0 :                 return status;
     515             :         }
     516             : 
     517           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
     518             : 
     519           0 :         tevent_req_received(req);
     520           0 :         return NT_STATUS_OK;
     521             : }
     522             : 
     523           4 : NTSTATUS dcerpc_samr_SetSecurity_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct samr_SetSecurity *r)
     524             : {
     525           0 :         NTSTATUS status;
     526             : 
     527           4 :         status = dcerpc_binding_handle_call(h,
     528             :                         NULL, &ndr_table_samr,
     529             :                         NDR_SAMR_SETSECURITY, mem_ctx, r);
     530             : 
     531           4 :         return status;
     532             : }
     533             : 
     534             : struct dcerpc_samr_SetSecurity_state {
     535             :         struct samr_SetSecurity orig;
     536             :         struct samr_SetSecurity tmp;
     537             :         TALLOC_CTX *out_mem_ctx;
     538             : };
     539             : 
     540             : static void dcerpc_samr_SetSecurity_done(struct tevent_req *subreq);
     541             : 
     542           0 : struct tevent_req *dcerpc_samr_SetSecurity_send(TALLOC_CTX *mem_ctx,
     543             :                                                 struct tevent_context *ev,
     544             :                                                 struct dcerpc_binding_handle *h,
     545             :                                                 struct policy_handle *_handle /* [in] [ref] */,
     546             :                                                 uint32_t _sec_info /* [in]  */,
     547             :                                                 struct sec_desc_buf *_sdbuf /* [in] [ref] */)
     548             : {
     549           0 :         struct tevent_req *req;
     550           0 :         struct dcerpc_samr_SetSecurity_state *state;
     551           0 :         struct tevent_req *subreq;
     552             : 
     553           0 :         req = tevent_req_create(mem_ctx, &state,
     554             :                                 struct dcerpc_samr_SetSecurity_state);
     555           0 :         if (req == NULL) {
     556           0 :                 return NULL;
     557             :         }
     558           0 :         state->out_mem_ctx = NULL;
     559             : 
     560             :         /* In parameters */
     561           0 :         state->orig.in.handle = _handle;
     562           0 :         state->orig.in.sec_info = _sec_info;
     563           0 :         state->orig.in.sdbuf = _sdbuf;
     564             : 
     565             :         /* Out parameters */
     566             : 
     567             :         /* Result */
     568           0 :         NDR_ZERO_STRUCT(state->orig.out.result);
     569             : 
     570             :         /* make a temporary copy, that we pass to the dispatch function */
     571           0 :         state->tmp = state->orig;
     572             : 
     573           0 :         subreq = dcerpc_samr_SetSecurity_r_send(state, ev, h, &state->tmp);
     574           0 :         if (tevent_req_nomem(subreq, req)) {
     575           0 :                 return tevent_req_post(req, ev);
     576             :         }
     577           0 :         tevent_req_set_callback(subreq, dcerpc_samr_SetSecurity_done, req);
     578           0 :         return req;
     579             : }
     580             : 
     581           0 : static void dcerpc_samr_SetSecurity_done(struct tevent_req *subreq)
     582             : {
     583           0 :         struct tevent_req *req = tevent_req_callback_data(
     584             :                 subreq, struct tevent_req);
     585           0 :         struct dcerpc_samr_SetSecurity_state *state = tevent_req_data(
     586             :                 req, struct dcerpc_samr_SetSecurity_state);
     587           0 :         NTSTATUS status;
     588           0 :         TALLOC_CTX *mem_ctx;
     589             : 
     590           0 :         if (state->out_mem_ctx) {
     591           0 :                 mem_ctx = state->out_mem_ctx;
     592             :         } else {
     593           0 :                 mem_ctx = state;
     594             :         }
     595             : 
     596           0 :         status = dcerpc_samr_SetSecurity_r_recv(subreq, mem_ctx);
     597           0 :         TALLOC_FREE(subreq);
     598           0 :         if (tevent_req_nterror(req, status)) {
     599           0 :                 return;
     600             :         }
     601             : 
     602             :         /* Copy out parameters */
     603             : 
     604             :         /* Copy result */
     605           0 :         state->orig.out.result = state->tmp.out.result;
     606             : 
     607             :         /* Reset temporary structure */
     608           0 :         NDR_ZERO_STRUCT(state->tmp);
     609             : 
     610           0 :         tevent_req_done(req);
     611             : }
     612             : 
     613           0 : NTSTATUS dcerpc_samr_SetSecurity_recv(struct tevent_req *req,
     614             :                                       TALLOC_CTX *mem_ctx,
     615             :                                       NTSTATUS *result)
     616             : {
     617           0 :         struct dcerpc_samr_SetSecurity_state *state = tevent_req_data(
     618             :                 req, struct dcerpc_samr_SetSecurity_state);
     619           0 :         NTSTATUS status;
     620             : 
     621           0 :         if (tevent_req_is_nterror(req, &status)) {
     622           0 :                 tevent_req_received(req);
     623           0 :                 return status;
     624             :         }
     625             : 
     626             :         /* Steal possible out parameters to the callers context */
     627           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
     628             : 
     629             :         /* Return result */
     630           0 :         *result = state->orig.out.result;
     631             : 
     632           0 :         tevent_req_received(req);
     633           0 :         return NT_STATUS_OK;
     634             : }
     635             : 
     636           0 : NTSTATUS dcerpc_samr_SetSecurity(struct dcerpc_binding_handle *h,
     637             :                                  TALLOC_CTX *mem_ctx,
     638             :                                  struct policy_handle *_handle /* [in] [ref] */,
     639             :                                  uint32_t _sec_info /* [in]  */,
     640             :                                  struct sec_desc_buf *_sdbuf /* [in] [ref] */,
     641             :                                  NTSTATUS *result)
     642             : {
     643           0 :         struct samr_SetSecurity r;
     644           0 :         NTSTATUS status;
     645             : 
     646             :         /* In parameters */
     647           0 :         r.in.handle = _handle;
     648           0 :         r.in.sec_info = _sec_info;
     649           0 :         r.in.sdbuf = _sdbuf;
     650             : 
     651             :         /* Out parameters */
     652             : 
     653             :         /* Result */
     654           0 :         NDR_ZERO_STRUCT(r.out.result);
     655             : 
     656           0 :         status = dcerpc_samr_SetSecurity_r(h, mem_ctx, &r);
     657           0 :         if (!NT_STATUS_IS_OK(status)) {
     658           0 :                 return status;
     659             :         }
     660             : 
     661             :         /* Return variables */
     662             : 
     663             :         /* Return result */
     664           0 :         *result = r.out.result;
     665             : 
     666           0 :         return NT_STATUS_OK;
     667             : }
     668             : 
     669             : struct dcerpc_samr_QuerySecurity_r_state {
     670             :         TALLOC_CTX *out_mem_ctx;
     671             : };
     672             : 
     673             : static void dcerpc_samr_QuerySecurity_r_done(struct tevent_req *subreq);
     674             : 
     675           0 : struct tevent_req *dcerpc_samr_QuerySecurity_r_send(TALLOC_CTX *mem_ctx,
     676             :         struct tevent_context *ev,
     677             :         struct dcerpc_binding_handle *h,
     678             :         struct samr_QuerySecurity *r)
     679             : {
     680           0 :         struct tevent_req *req;
     681           0 :         struct dcerpc_samr_QuerySecurity_r_state *state;
     682           0 :         struct tevent_req *subreq;
     683             : 
     684           0 :         req = tevent_req_create(mem_ctx, &state,
     685             :                                 struct dcerpc_samr_QuerySecurity_r_state);
     686           0 :         if (req == NULL) {
     687           0 :                 return NULL;
     688             :         }
     689             : 
     690           0 :         state->out_mem_ctx = talloc_new(state);
     691           0 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
     692           0 :                 return tevent_req_post(req, ev);
     693             :         }
     694             : 
     695           0 :         subreq = dcerpc_binding_handle_call_send(state, ev, h,
     696             :                         NULL, &ndr_table_samr,
     697           0 :                         NDR_SAMR_QUERYSECURITY, state->out_mem_ctx, r);
     698           0 :         if (tevent_req_nomem(subreq, req)) {
     699           0 :                 return tevent_req_post(req, ev);
     700             :         }
     701           0 :         tevent_req_set_callback(subreq, dcerpc_samr_QuerySecurity_r_done, req);
     702             : 
     703           0 :         return req;
     704             : }
     705             : 
     706           0 : static void dcerpc_samr_QuerySecurity_r_done(struct tevent_req *subreq)
     707             : {
     708           0 :         struct tevent_req *req =
     709           0 :                 tevent_req_callback_data(subreq,
     710             :                 struct tevent_req);
     711           0 :         NTSTATUS status;
     712             : 
     713           0 :         status = dcerpc_binding_handle_call_recv(subreq);
     714           0 :         TALLOC_FREE(subreq);
     715           0 :         if (tevent_req_nterror(req, status)) {
     716           0 :                 return;
     717             :         }
     718             : 
     719           0 :         tevent_req_done(req);
     720             : }
     721             : 
     722           0 : NTSTATUS dcerpc_samr_QuerySecurity_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
     723             : {
     724           0 :         struct dcerpc_samr_QuerySecurity_r_state *state =
     725           0 :                 tevent_req_data(req,
     726             :                 struct dcerpc_samr_QuerySecurity_r_state);
     727           0 :         NTSTATUS status;
     728             : 
     729           0 :         if (tevent_req_is_nterror(req, &status)) {
     730           0 :                 tevent_req_received(req);
     731           0 :                 return status;
     732             :         }
     733             : 
     734           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
     735             : 
     736           0 :         tevent_req_received(req);
     737           0 :         return NT_STATUS_OK;
     738             : }
     739             : 
     740         330 : NTSTATUS dcerpc_samr_QuerySecurity_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct samr_QuerySecurity *r)
     741             : {
     742           0 :         NTSTATUS status;
     743             : 
     744         330 :         status = dcerpc_binding_handle_call(h,
     745             :                         NULL, &ndr_table_samr,
     746             :                         NDR_SAMR_QUERYSECURITY, mem_ctx, r);
     747             : 
     748         330 :         return status;
     749             : }
     750             : 
     751             : struct dcerpc_samr_QuerySecurity_state {
     752             :         struct samr_QuerySecurity orig;
     753             :         struct samr_QuerySecurity tmp;
     754             :         TALLOC_CTX *out_mem_ctx;
     755             : };
     756             : 
     757             : static void dcerpc_samr_QuerySecurity_done(struct tevent_req *subreq);
     758             : 
     759           0 : struct tevent_req *dcerpc_samr_QuerySecurity_send(TALLOC_CTX *mem_ctx,
     760             :                                                   struct tevent_context *ev,
     761             :                                                   struct dcerpc_binding_handle *h,
     762             :                                                   struct policy_handle *_handle /* [in] [ref] */,
     763             :                                                   uint32_t _sec_info /* [in]  */,
     764             :                                                   struct sec_desc_buf **_sdbuf /* [out] [ref] */)
     765             : {
     766           0 :         struct tevent_req *req;
     767           0 :         struct dcerpc_samr_QuerySecurity_state *state;
     768           0 :         struct tevent_req *subreq;
     769             : 
     770           0 :         req = tevent_req_create(mem_ctx, &state,
     771             :                                 struct dcerpc_samr_QuerySecurity_state);
     772           0 :         if (req == NULL) {
     773           0 :                 return NULL;
     774             :         }
     775           0 :         state->out_mem_ctx = NULL;
     776             : 
     777             :         /* In parameters */
     778           0 :         state->orig.in.handle = _handle;
     779           0 :         state->orig.in.sec_info = _sec_info;
     780             : 
     781             :         /* Out parameters */
     782           0 :         state->orig.out.sdbuf = _sdbuf;
     783             : 
     784             :         /* Result */
     785           0 :         NDR_ZERO_STRUCT(state->orig.out.result);
     786             : 
     787           0 :         state->out_mem_ctx = talloc_named_const(state, 0,
     788             :                              "dcerpc_samr_QuerySecurity_out_memory");
     789           0 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
     790           0 :                 return tevent_req_post(req, ev);
     791             :         }
     792             : 
     793             :         /* make a temporary copy, that we pass to the dispatch function */
     794           0 :         state->tmp = state->orig;
     795             : 
     796           0 :         subreq = dcerpc_samr_QuerySecurity_r_send(state, ev, h, &state->tmp);
     797           0 :         if (tevent_req_nomem(subreq, req)) {
     798           0 :                 return tevent_req_post(req, ev);
     799             :         }
     800           0 :         tevent_req_set_callback(subreq, dcerpc_samr_QuerySecurity_done, req);
     801           0 :         return req;
     802             : }
     803             : 
     804           0 : static void dcerpc_samr_QuerySecurity_done(struct tevent_req *subreq)
     805             : {
     806           0 :         struct tevent_req *req = tevent_req_callback_data(
     807             :                 subreq, struct tevent_req);
     808           0 :         struct dcerpc_samr_QuerySecurity_state *state = tevent_req_data(
     809             :                 req, struct dcerpc_samr_QuerySecurity_state);
     810           0 :         NTSTATUS status;
     811           0 :         TALLOC_CTX *mem_ctx;
     812             : 
     813           0 :         if (state->out_mem_ctx) {
     814           0 :                 mem_ctx = state->out_mem_ctx;
     815             :         } else {
     816           0 :                 mem_ctx = state;
     817             :         }
     818             : 
     819           0 :         status = dcerpc_samr_QuerySecurity_r_recv(subreq, mem_ctx);
     820           0 :         TALLOC_FREE(subreq);
     821           0 :         if (tevent_req_nterror(req, status)) {
     822           0 :                 return;
     823             :         }
     824             : 
     825             :         /* Copy out parameters */
     826           0 :         *state->orig.out.sdbuf = *state->tmp.out.sdbuf;
     827             : 
     828             :         /* Copy result */
     829           0 :         state->orig.out.result = state->tmp.out.result;
     830             : 
     831             :         /* Reset temporary structure */
     832           0 :         NDR_ZERO_STRUCT(state->tmp);
     833             : 
     834           0 :         tevent_req_done(req);
     835             : }
     836             : 
     837           0 : NTSTATUS dcerpc_samr_QuerySecurity_recv(struct tevent_req *req,
     838             :                                         TALLOC_CTX *mem_ctx,
     839             :                                         NTSTATUS *result)
     840             : {
     841           0 :         struct dcerpc_samr_QuerySecurity_state *state = tevent_req_data(
     842             :                 req, struct dcerpc_samr_QuerySecurity_state);
     843           0 :         NTSTATUS status;
     844             : 
     845           0 :         if (tevent_req_is_nterror(req, &status)) {
     846           0 :                 tevent_req_received(req);
     847           0 :                 return status;
     848             :         }
     849             : 
     850             :         /* Steal possible out parameters to the callers context */
     851           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
     852             : 
     853             :         /* Return result */
     854           0 :         *result = state->orig.out.result;
     855             : 
     856           0 :         tevent_req_received(req);
     857           0 :         return NT_STATUS_OK;
     858             : }
     859             : 
     860         136 : NTSTATUS dcerpc_samr_QuerySecurity(struct dcerpc_binding_handle *h,
     861             :                                    TALLOC_CTX *mem_ctx,
     862             :                                    struct policy_handle *_handle /* [in] [ref] */,
     863             :                                    uint32_t _sec_info /* [in]  */,
     864             :                                    struct sec_desc_buf **_sdbuf /* [out] [ref] */,
     865             :                                    NTSTATUS *result)
     866             : {
     867           0 :         struct samr_QuerySecurity r;
     868           0 :         NTSTATUS status;
     869             : 
     870             :         /* In parameters */
     871         136 :         r.in.handle = _handle;
     872         136 :         r.in.sec_info = _sec_info;
     873             : 
     874             :         /* Out parameters */
     875         136 :         r.out.sdbuf = _sdbuf;
     876             : 
     877             :         /* Result */
     878         136 :         NDR_ZERO_STRUCT(r.out.result);
     879             : 
     880         136 :         status = dcerpc_samr_QuerySecurity_r(h, mem_ctx, &r);
     881         136 :         if (!NT_STATUS_IS_OK(status)) {
     882           0 :                 return status;
     883             :         }
     884             : 
     885             :         /* Return variables */
     886         136 :         *_sdbuf = *r.out.sdbuf;
     887             : 
     888             :         /* Return result */
     889         136 :         *result = r.out.result;
     890             : 
     891         136 :         return NT_STATUS_OK;
     892             : }
     893             : 
     894             : struct dcerpc_samr_Shutdown_r_state {
     895             :         TALLOC_CTX *out_mem_ctx;
     896             : };
     897             : 
     898             : static void dcerpc_samr_Shutdown_r_done(struct tevent_req *subreq);
     899             : 
     900           0 : struct tevent_req *dcerpc_samr_Shutdown_r_send(TALLOC_CTX *mem_ctx,
     901             :         struct tevent_context *ev,
     902             :         struct dcerpc_binding_handle *h,
     903             :         struct samr_Shutdown *r)
     904             : {
     905           0 :         struct tevent_req *req;
     906           0 :         struct dcerpc_samr_Shutdown_r_state *state;
     907           0 :         struct tevent_req *subreq;
     908             : 
     909           0 :         req = tevent_req_create(mem_ctx, &state,
     910             :                                 struct dcerpc_samr_Shutdown_r_state);
     911           0 :         if (req == NULL) {
     912           0 :                 return NULL;
     913             :         }
     914             : 
     915           0 :         state->out_mem_ctx = NULL;
     916             : 
     917           0 :         subreq = dcerpc_binding_handle_call_send(state, ev, h,
     918             :                         NULL, &ndr_table_samr,
     919             :                         NDR_SAMR_SHUTDOWN, state, r);
     920           0 :         if (tevent_req_nomem(subreq, req)) {
     921           0 :                 return tevent_req_post(req, ev);
     922             :         }
     923           0 :         tevent_req_set_callback(subreq, dcerpc_samr_Shutdown_r_done, req);
     924             : 
     925           0 :         return req;
     926             : }
     927             : 
     928           0 : static void dcerpc_samr_Shutdown_r_done(struct tevent_req *subreq)
     929             : {
     930           0 :         struct tevent_req *req =
     931           0 :                 tevent_req_callback_data(subreq,
     932             :                 struct tevent_req);
     933           0 :         NTSTATUS status;
     934             : 
     935           0 :         status = dcerpc_binding_handle_call_recv(subreq);
     936           0 :         TALLOC_FREE(subreq);
     937           0 :         if (tevent_req_nterror(req, status)) {
     938           0 :                 return;
     939             :         }
     940             : 
     941           0 :         tevent_req_done(req);
     942             : }
     943             : 
     944           0 : NTSTATUS dcerpc_samr_Shutdown_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
     945             : {
     946           0 :         struct dcerpc_samr_Shutdown_r_state *state =
     947           0 :                 tevent_req_data(req,
     948             :                 struct dcerpc_samr_Shutdown_r_state);
     949           0 :         NTSTATUS status;
     950             : 
     951           0 :         if (tevent_req_is_nterror(req, &status)) {
     952           0 :                 tevent_req_received(req);
     953           0 :                 return status;
     954             :         }
     955             : 
     956           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
     957             : 
     958           0 :         tevent_req_received(req);
     959           0 :         return NT_STATUS_OK;
     960             : }
     961             : 
     962           0 : NTSTATUS dcerpc_samr_Shutdown_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct samr_Shutdown *r)
     963             : {
     964           0 :         NTSTATUS status;
     965             : 
     966           0 :         status = dcerpc_binding_handle_call(h,
     967             :                         NULL, &ndr_table_samr,
     968             :                         NDR_SAMR_SHUTDOWN, mem_ctx, r);
     969             : 
     970           0 :         return status;
     971             : }
     972             : 
     973             : struct dcerpc_samr_Shutdown_state {
     974             :         struct samr_Shutdown orig;
     975             :         struct samr_Shutdown tmp;
     976             :         TALLOC_CTX *out_mem_ctx;
     977             : };
     978             : 
     979             : static void dcerpc_samr_Shutdown_done(struct tevent_req *subreq);
     980             : 
     981           0 : struct tevent_req *dcerpc_samr_Shutdown_send(TALLOC_CTX *mem_ctx,
     982             :                                              struct tevent_context *ev,
     983             :                                              struct dcerpc_binding_handle *h,
     984             :                                              struct policy_handle *_connect_handle /* [in] [ref] */)
     985             : {
     986           0 :         struct tevent_req *req;
     987           0 :         struct dcerpc_samr_Shutdown_state *state;
     988           0 :         struct tevent_req *subreq;
     989             : 
     990           0 :         req = tevent_req_create(mem_ctx, &state,
     991             :                                 struct dcerpc_samr_Shutdown_state);
     992           0 :         if (req == NULL) {
     993           0 :                 return NULL;
     994             :         }
     995           0 :         state->out_mem_ctx = NULL;
     996             : 
     997             :         /* In parameters */
     998           0 :         state->orig.in.connect_handle = _connect_handle;
     999             : 
    1000             :         /* Out parameters */
    1001             : 
    1002             :         /* Result */
    1003           0 :         NDR_ZERO_STRUCT(state->orig.out.result);
    1004             : 
    1005             :         /* make a temporary copy, that we pass to the dispatch function */
    1006           0 :         state->tmp = state->orig;
    1007             : 
    1008           0 :         subreq = dcerpc_samr_Shutdown_r_send(state, ev, h, &state->tmp);
    1009           0 :         if (tevent_req_nomem(subreq, req)) {
    1010           0 :                 return tevent_req_post(req, ev);
    1011             :         }
    1012           0 :         tevent_req_set_callback(subreq, dcerpc_samr_Shutdown_done, req);
    1013           0 :         return req;
    1014             : }
    1015             : 
    1016           0 : static void dcerpc_samr_Shutdown_done(struct tevent_req *subreq)
    1017             : {
    1018           0 :         struct tevent_req *req = tevent_req_callback_data(
    1019             :                 subreq, struct tevent_req);
    1020           0 :         struct dcerpc_samr_Shutdown_state *state = tevent_req_data(
    1021             :                 req, struct dcerpc_samr_Shutdown_state);
    1022           0 :         NTSTATUS status;
    1023           0 :         TALLOC_CTX *mem_ctx;
    1024             : 
    1025           0 :         if (state->out_mem_ctx) {
    1026           0 :                 mem_ctx = state->out_mem_ctx;
    1027             :         } else {
    1028           0 :                 mem_ctx = state;
    1029             :         }
    1030             : 
    1031           0 :         status = dcerpc_samr_Shutdown_r_recv(subreq, mem_ctx);
    1032           0 :         TALLOC_FREE(subreq);
    1033           0 :         if (tevent_req_nterror(req, status)) {
    1034           0 :                 return;
    1035             :         }
    1036             : 
    1037             :         /* Copy out parameters */
    1038             : 
    1039             :         /* Copy result */
    1040           0 :         state->orig.out.result = state->tmp.out.result;
    1041             : 
    1042             :         /* Reset temporary structure */
    1043           0 :         NDR_ZERO_STRUCT(state->tmp);
    1044             : 
    1045           0 :         tevent_req_done(req);
    1046             : }
    1047             : 
    1048           0 : NTSTATUS dcerpc_samr_Shutdown_recv(struct tevent_req *req,
    1049             :                                    TALLOC_CTX *mem_ctx,
    1050             :                                    NTSTATUS *result)
    1051             : {
    1052           0 :         struct dcerpc_samr_Shutdown_state *state = tevent_req_data(
    1053             :                 req, struct dcerpc_samr_Shutdown_state);
    1054           0 :         NTSTATUS status;
    1055             : 
    1056           0 :         if (tevent_req_is_nterror(req, &status)) {
    1057           0 :                 tevent_req_received(req);
    1058           0 :                 return status;
    1059             :         }
    1060             : 
    1061             :         /* Steal possible out parameters to the callers context */
    1062           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    1063             : 
    1064             :         /* Return result */
    1065           0 :         *result = state->orig.out.result;
    1066             : 
    1067           0 :         tevent_req_received(req);
    1068           0 :         return NT_STATUS_OK;
    1069             : }
    1070             : 
    1071           0 : NTSTATUS dcerpc_samr_Shutdown(struct dcerpc_binding_handle *h,
    1072             :                               TALLOC_CTX *mem_ctx,
    1073             :                               struct policy_handle *_connect_handle /* [in] [ref] */,
    1074             :                               NTSTATUS *result)
    1075             : {
    1076           0 :         struct samr_Shutdown r;
    1077           0 :         NTSTATUS status;
    1078             : 
    1079             :         /* In parameters */
    1080           0 :         r.in.connect_handle = _connect_handle;
    1081             : 
    1082             :         /* Out parameters */
    1083             : 
    1084             :         /* Result */
    1085           0 :         NDR_ZERO_STRUCT(r.out.result);
    1086             : 
    1087           0 :         status = dcerpc_samr_Shutdown_r(h, mem_ctx, &r);
    1088           0 :         if (!NT_STATUS_IS_OK(status)) {
    1089           0 :                 return status;
    1090             :         }
    1091             : 
    1092             :         /* Return variables */
    1093             : 
    1094             :         /* Return result */
    1095           0 :         *result = r.out.result;
    1096             : 
    1097           0 :         return NT_STATUS_OK;
    1098             : }
    1099             : 
    1100             : struct dcerpc_samr_LookupDomain_r_state {
    1101             :         TALLOC_CTX *out_mem_ctx;
    1102             : };
    1103             : 
    1104             : static void dcerpc_samr_LookupDomain_r_done(struct tevent_req *subreq);
    1105             : 
    1106          10 : struct tevent_req *dcerpc_samr_LookupDomain_r_send(TALLOC_CTX *mem_ctx,
    1107             :         struct tevent_context *ev,
    1108             :         struct dcerpc_binding_handle *h,
    1109             :         struct samr_LookupDomain *r)
    1110             : {
    1111           0 :         struct tevent_req *req;
    1112           0 :         struct dcerpc_samr_LookupDomain_r_state *state;
    1113           0 :         struct tevent_req *subreq;
    1114             : 
    1115          10 :         req = tevent_req_create(mem_ctx, &state,
    1116             :                                 struct dcerpc_samr_LookupDomain_r_state);
    1117          10 :         if (req == NULL) {
    1118           0 :                 return NULL;
    1119             :         }
    1120             : 
    1121          10 :         state->out_mem_ctx = talloc_new(state);
    1122          10 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
    1123           0 :                 return tevent_req_post(req, ev);
    1124             :         }
    1125             : 
    1126          10 :         subreq = dcerpc_binding_handle_call_send(state, ev, h,
    1127             :                         NULL, &ndr_table_samr,
    1128          10 :                         NDR_SAMR_LOOKUPDOMAIN, state->out_mem_ctx, r);
    1129          10 :         if (tevent_req_nomem(subreq, req)) {
    1130           0 :                 return tevent_req_post(req, ev);
    1131             :         }
    1132          10 :         tevent_req_set_callback(subreq, dcerpc_samr_LookupDomain_r_done, req);
    1133             : 
    1134          10 :         return req;
    1135             : }
    1136             : 
    1137          10 : static void dcerpc_samr_LookupDomain_r_done(struct tevent_req *subreq)
    1138             : {
    1139           0 :         struct tevent_req *req =
    1140          10 :                 tevent_req_callback_data(subreq,
    1141             :                 struct tevent_req);
    1142           0 :         NTSTATUS status;
    1143             : 
    1144          10 :         status = dcerpc_binding_handle_call_recv(subreq);
    1145          10 :         TALLOC_FREE(subreq);
    1146          10 :         if (tevent_req_nterror(req, status)) {
    1147           0 :                 return;
    1148             :         }
    1149             : 
    1150          10 :         tevent_req_done(req);
    1151             : }
    1152             : 
    1153          10 : NTSTATUS dcerpc_samr_LookupDomain_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
    1154             : {
    1155           0 :         struct dcerpc_samr_LookupDomain_r_state *state =
    1156          10 :                 tevent_req_data(req,
    1157             :                 struct dcerpc_samr_LookupDomain_r_state);
    1158           0 :         NTSTATUS status;
    1159             : 
    1160          10 :         if (tevent_req_is_nterror(req, &status)) {
    1161           0 :                 tevent_req_received(req);
    1162           0 :                 return status;
    1163             :         }
    1164             : 
    1165          10 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    1166             : 
    1167          10 :         tevent_req_received(req);
    1168          10 :         return NT_STATUS_OK;
    1169             : }
    1170             : 
    1171         862 : NTSTATUS dcerpc_samr_LookupDomain_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct samr_LookupDomain *r)
    1172             : {
    1173           0 :         NTSTATUS status;
    1174             : 
    1175         862 :         status = dcerpc_binding_handle_call(h,
    1176             :                         NULL, &ndr_table_samr,
    1177             :                         NDR_SAMR_LOOKUPDOMAIN, mem_ctx, r);
    1178             : 
    1179         862 :         return status;
    1180             : }
    1181             : 
    1182             : struct dcerpc_samr_LookupDomain_state {
    1183             :         struct samr_LookupDomain orig;
    1184             :         struct samr_LookupDomain tmp;
    1185             :         TALLOC_CTX *out_mem_ctx;
    1186             : };
    1187             : 
    1188             : static void dcerpc_samr_LookupDomain_done(struct tevent_req *subreq);
    1189             : 
    1190           0 : struct tevent_req *dcerpc_samr_LookupDomain_send(TALLOC_CTX *mem_ctx,
    1191             :                                                  struct tevent_context *ev,
    1192             :                                                  struct dcerpc_binding_handle *h,
    1193             :                                                  struct policy_handle *_connect_handle /* [in] [ref] */,
    1194             :                                                  struct lsa_String *_domain_name /* [in] [ref] */,
    1195             :                                                  struct dom_sid2 **_sid /* [out] [ref] */)
    1196             : {
    1197           0 :         struct tevent_req *req;
    1198           0 :         struct dcerpc_samr_LookupDomain_state *state;
    1199           0 :         struct tevent_req *subreq;
    1200             : 
    1201           0 :         req = tevent_req_create(mem_ctx, &state,
    1202             :                                 struct dcerpc_samr_LookupDomain_state);
    1203           0 :         if (req == NULL) {
    1204           0 :                 return NULL;
    1205             :         }
    1206           0 :         state->out_mem_ctx = NULL;
    1207             : 
    1208             :         /* In parameters */
    1209           0 :         state->orig.in.connect_handle = _connect_handle;
    1210           0 :         state->orig.in.domain_name = _domain_name;
    1211             : 
    1212             :         /* Out parameters */
    1213           0 :         state->orig.out.sid = _sid;
    1214             : 
    1215             :         /* Result */
    1216           0 :         NDR_ZERO_STRUCT(state->orig.out.result);
    1217             : 
    1218           0 :         state->out_mem_ctx = talloc_named_const(state, 0,
    1219             :                              "dcerpc_samr_LookupDomain_out_memory");
    1220           0 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
    1221           0 :                 return tevent_req_post(req, ev);
    1222             :         }
    1223             : 
    1224             :         /* make a temporary copy, that we pass to the dispatch function */
    1225           0 :         state->tmp = state->orig;
    1226             : 
    1227           0 :         subreq = dcerpc_samr_LookupDomain_r_send(state, ev, h, &state->tmp);
    1228           0 :         if (tevent_req_nomem(subreq, req)) {
    1229           0 :                 return tevent_req_post(req, ev);
    1230             :         }
    1231           0 :         tevent_req_set_callback(subreq, dcerpc_samr_LookupDomain_done, req);
    1232           0 :         return req;
    1233             : }
    1234             : 
    1235           0 : static void dcerpc_samr_LookupDomain_done(struct tevent_req *subreq)
    1236             : {
    1237           0 :         struct tevent_req *req = tevent_req_callback_data(
    1238             :                 subreq, struct tevent_req);
    1239           0 :         struct dcerpc_samr_LookupDomain_state *state = tevent_req_data(
    1240             :                 req, struct dcerpc_samr_LookupDomain_state);
    1241           0 :         NTSTATUS status;
    1242           0 :         TALLOC_CTX *mem_ctx;
    1243             : 
    1244           0 :         if (state->out_mem_ctx) {
    1245           0 :                 mem_ctx = state->out_mem_ctx;
    1246             :         } else {
    1247           0 :                 mem_ctx = state;
    1248             :         }
    1249             : 
    1250           0 :         status = dcerpc_samr_LookupDomain_r_recv(subreq, mem_ctx);
    1251           0 :         TALLOC_FREE(subreq);
    1252           0 :         if (tevent_req_nterror(req, status)) {
    1253           0 :                 return;
    1254             :         }
    1255             : 
    1256             :         /* Copy out parameters */
    1257           0 :         *state->orig.out.sid = *state->tmp.out.sid;
    1258             : 
    1259             :         /* Copy result */
    1260           0 :         state->orig.out.result = state->tmp.out.result;
    1261             : 
    1262             :         /* Reset temporary structure */
    1263           0 :         NDR_ZERO_STRUCT(state->tmp);
    1264             : 
    1265           0 :         tevent_req_done(req);
    1266             : }
    1267             : 
    1268           0 : NTSTATUS dcerpc_samr_LookupDomain_recv(struct tevent_req *req,
    1269             :                                        TALLOC_CTX *mem_ctx,
    1270             :                                        NTSTATUS *result)
    1271             : {
    1272           0 :         struct dcerpc_samr_LookupDomain_state *state = tevent_req_data(
    1273             :                 req, struct dcerpc_samr_LookupDomain_state);
    1274           0 :         NTSTATUS status;
    1275             : 
    1276           0 :         if (tevent_req_is_nterror(req, &status)) {
    1277           0 :                 tevent_req_received(req);
    1278           0 :                 return status;
    1279             :         }
    1280             : 
    1281             :         /* Steal possible out parameters to the callers context */
    1282           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    1283             : 
    1284             :         /* Return result */
    1285           0 :         *result = state->orig.out.result;
    1286             : 
    1287           0 :         tevent_req_received(req);
    1288           0 :         return NT_STATUS_OK;
    1289             : }
    1290             : 
    1291         170 : NTSTATUS dcerpc_samr_LookupDomain(struct dcerpc_binding_handle *h,
    1292             :                                   TALLOC_CTX *mem_ctx,
    1293             :                                   struct policy_handle *_connect_handle /* [in] [ref] */,
    1294             :                                   struct lsa_String *_domain_name /* [in] [ref] */,
    1295             :                                   struct dom_sid2 **_sid /* [out] [ref] */,
    1296             :                                   NTSTATUS *result)
    1297             : {
    1298           0 :         struct samr_LookupDomain r;
    1299           0 :         NTSTATUS status;
    1300             : 
    1301             :         /* In parameters */
    1302         170 :         r.in.connect_handle = _connect_handle;
    1303         170 :         r.in.domain_name = _domain_name;
    1304             : 
    1305             :         /* Out parameters */
    1306         170 :         r.out.sid = _sid;
    1307             : 
    1308             :         /* Result */
    1309         170 :         NDR_ZERO_STRUCT(r.out.result);
    1310             : 
    1311         170 :         status = dcerpc_samr_LookupDomain_r(h, mem_ctx, &r);
    1312         170 :         if (!NT_STATUS_IS_OK(status)) {
    1313           0 :                 return status;
    1314             :         }
    1315             : 
    1316             :         /* Return variables */
    1317         170 :         *_sid = *r.out.sid;
    1318             : 
    1319             :         /* Return result */
    1320         170 :         *result = r.out.result;
    1321             : 
    1322         170 :         return NT_STATUS_OK;
    1323             : }
    1324             : 
    1325             : struct dcerpc_samr_EnumDomains_r_state {
    1326             :         TALLOC_CTX *out_mem_ctx;
    1327             : };
    1328             : 
    1329             : static void dcerpc_samr_EnumDomains_r_done(struct tevent_req *subreq);
    1330             : 
    1331           2 : struct tevent_req *dcerpc_samr_EnumDomains_r_send(TALLOC_CTX *mem_ctx,
    1332             :         struct tevent_context *ev,
    1333             :         struct dcerpc_binding_handle *h,
    1334             :         struct samr_EnumDomains *r)
    1335             : {
    1336           0 :         struct tevent_req *req;
    1337           0 :         struct dcerpc_samr_EnumDomains_r_state *state;
    1338           0 :         struct tevent_req *subreq;
    1339             : 
    1340           2 :         req = tevent_req_create(mem_ctx, &state,
    1341             :                                 struct dcerpc_samr_EnumDomains_r_state);
    1342           2 :         if (req == NULL) {
    1343           0 :                 return NULL;
    1344             :         }
    1345             : 
    1346           2 :         state->out_mem_ctx = talloc_new(state);
    1347           2 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
    1348           0 :                 return tevent_req_post(req, ev);
    1349             :         }
    1350             : 
    1351           2 :         subreq = dcerpc_binding_handle_call_send(state, ev, h,
    1352             :                         NULL, &ndr_table_samr,
    1353           2 :                         NDR_SAMR_ENUMDOMAINS, state->out_mem_ctx, r);
    1354           2 :         if (tevent_req_nomem(subreq, req)) {
    1355           0 :                 return tevent_req_post(req, ev);
    1356             :         }
    1357           2 :         tevent_req_set_callback(subreq, dcerpc_samr_EnumDomains_r_done, req);
    1358             : 
    1359           2 :         return req;
    1360             : }
    1361             : 
    1362           2 : static void dcerpc_samr_EnumDomains_r_done(struct tevent_req *subreq)
    1363             : {
    1364           0 :         struct tevent_req *req =
    1365           2 :                 tevent_req_callback_data(subreq,
    1366             :                 struct tevent_req);
    1367           0 :         NTSTATUS status;
    1368             : 
    1369           2 :         status = dcerpc_binding_handle_call_recv(subreq);
    1370           2 :         TALLOC_FREE(subreq);
    1371           2 :         if (tevent_req_nterror(req, status)) {
    1372           0 :                 return;
    1373             :         }
    1374             : 
    1375           2 :         tevent_req_done(req);
    1376             : }
    1377             : 
    1378           2 : NTSTATUS dcerpc_samr_EnumDomains_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
    1379             : {
    1380           0 :         struct dcerpc_samr_EnumDomains_r_state *state =
    1381           2 :                 tevent_req_data(req,
    1382             :                 struct dcerpc_samr_EnumDomains_r_state);
    1383           0 :         NTSTATUS status;
    1384             : 
    1385           2 :         if (tevent_req_is_nterror(req, &status)) {
    1386           0 :                 tevent_req_received(req);
    1387           0 :                 return status;
    1388             :         }
    1389             : 
    1390           2 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    1391             : 
    1392           2 :         tevent_req_received(req);
    1393           2 :         return NT_STATUS_OK;
    1394             : }
    1395             : 
    1396         224 : NTSTATUS dcerpc_samr_EnumDomains_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct samr_EnumDomains *r)
    1397             : {
    1398           0 :         NTSTATUS status;
    1399             : 
    1400         224 :         status = dcerpc_binding_handle_call(h,
    1401             :                         NULL, &ndr_table_samr,
    1402             :                         NDR_SAMR_ENUMDOMAINS, mem_ctx, r);
    1403             : 
    1404         224 :         return status;
    1405             : }
    1406             : 
    1407             : struct dcerpc_samr_EnumDomains_state {
    1408             :         struct samr_EnumDomains orig;
    1409             :         struct samr_EnumDomains tmp;
    1410             :         TALLOC_CTX *out_mem_ctx;
    1411             : };
    1412             : 
    1413             : static void dcerpc_samr_EnumDomains_done(struct tevent_req *subreq);
    1414             : 
    1415           0 : struct tevent_req *dcerpc_samr_EnumDomains_send(TALLOC_CTX *mem_ctx,
    1416             :                                                 struct tevent_context *ev,
    1417             :                                                 struct dcerpc_binding_handle *h,
    1418             :                                                 struct policy_handle *_connect_handle /* [in] [ref] */,
    1419             :                                                 uint32_t *_resume_handle /* [in,out] [ref] */,
    1420             :                                                 struct samr_SamArray **_sam /* [out] [ref] */,
    1421             :                                                 uint32_t _buf_size /* [in]  */,
    1422             :                                                 uint32_t *_num_entries /* [out] [ref] */)
    1423             : {
    1424           0 :         struct tevent_req *req;
    1425           0 :         struct dcerpc_samr_EnumDomains_state *state;
    1426           0 :         struct tevent_req *subreq;
    1427             : 
    1428           0 :         req = tevent_req_create(mem_ctx, &state,
    1429             :                                 struct dcerpc_samr_EnumDomains_state);
    1430           0 :         if (req == NULL) {
    1431           0 :                 return NULL;
    1432             :         }
    1433           0 :         state->out_mem_ctx = NULL;
    1434             : 
    1435             :         /* In parameters */
    1436           0 :         state->orig.in.connect_handle = _connect_handle;
    1437           0 :         state->orig.in.resume_handle = _resume_handle;
    1438           0 :         state->orig.in.buf_size = _buf_size;
    1439             : 
    1440             :         /* Out parameters */
    1441           0 :         state->orig.out.resume_handle = _resume_handle;
    1442           0 :         state->orig.out.sam = _sam;
    1443           0 :         state->orig.out.num_entries = _num_entries;
    1444             : 
    1445             :         /* Result */
    1446           0 :         NDR_ZERO_STRUCT(state->orig.out.result);
    1447             : 
    1448           0 :         state->out_mem_ctx = talloc_named_const(state, 0,
    1449             :                              "dcerpc_samr_EnumDomains_out_memory");
    1450           0 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
    1451           0 :                 return tevent_req_post(req, ev);
    1452             :         }
    1453             : 
    1454             :         /* make a temporary copy, that we pass to the dispatch function */
    1455           0 :         state->tmp = state->orig;
    1456             : 
    1457           0 :         subreq = dcerpc_samr_EnumDomains_r_send(state, ev, h, &state->tmp);
    1458           0 :         if (tevent_req_nomem(subreq, req)) {
    1459           0 :                 return tevent_req_post(req, ev);
    1460             :         }
    1461           0 :         tevent_req_set_callback(subreq, dcerpc_samr_EnumDomains_done, req);
    1462           0 :         return req;
    1463             : }
    1464             : 
    1465           0 : static void dcerpc_samr_EnumDomains_done(struct tevent_req *subreq)
    1466             : {
    1467           0 :         struct tevent_req *req = tevent_req_callback_data(
    1468             :                 subreq, struct tevent_req);
    1469           0 :         struct dcerpc_samr_EnumDomains_state *state = tevent_req_data(
    1470             :                 req, struct dcerpc_samr_EnumDomains_state);
    1471           0 :         NTSTATUS status;
    1472           0 :         TALLOC_CTX *mem_ctx;
    1473             : 
    1474           0 :         if (state->out_mem_ctx) {
    1475           0 :                 mem_ctx = state->out_mem_ctx;
    1476             :         } else {
    1477           0 :                 mem_ctx = state;
    1478             :         }
    1479             : 
    1480           0 :         status = dcerpc_samr_EnumDomains_r_recv(subreq, mem_ctx);
    1481           0 :         TALLOC_FREE(subreq);
    1482           0 :         if (tevent_req_nterror(req, status)) {
    1483           0 :                 return;
    1484             :         }
    1485             : 
    1486             :         /* Copy out parameters */
    1487           0 :         *state->orig.out.resume_handle = *state->tmp.out.resume_handle;
    1488           0 :         *state->orig.out.sam = *state->tmp.out.sam;
    1489           0 :         *state->orig.out.num_entries = *state->tmp.out.num_entries;
    1490             : 
    1491             :         /* Copy result */
    1492           0 :         state->orig.out.result = state->tmp.out.result;
    1493             : 
    1494             :         /* Reset temporary structure */
    1495           0 :         NDR_ZERO_STRUCT(state->tmp);
    1496             : 
    1497           0 :         tevent_req_done(req);
    1498             : }
    1499             : 
    1500           0 : NTSTATUS dcerpc_samr_EnumDomains_recv(struct tevent_req *req,
    1501             :                                       TALLOC_CTX *mem_ctx,
    1502             :                                       NTSTATUS *result)
    1503             : {
    1504           0 :         struct dcerpc_samr_EnumDomains_state *state = tevent_req_data(
    1505             :                 req, struct dcerpc_samr_EnumDomains_state);
    1506           0 :         NTSTATUS status;
    1507             : 
    1508           0 :         if (tevent_req_is_nterror(req, &status)) {
    1509           0 :                 tevent_req_received(req);
    1510           0 :                 return status;
    1511             :         }
    1512             : 
    1513             :         /* Steal possible out parameters to the callers context */
    1514           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    1515             : 
    1516             :         /* Return result */
    1517           0 :         *result = state->orig.out.result;
    1518             : 
    1519           0 :         tevent_req_received(req);
    1520           0 :         return NT_STATUS_OK;
    1521             : }
    1522             : 
    1523          90 : NTSTATUS dcerpc_samr_EnumDomains(struct dcerpc_binding_handle *h,
    1524             :                                  TALLOC_CTX *mem_ctx,
    1525             :                                  struct policy_handle *_connect_handle /* [in] [ref] */,
    1526             :                                  uint32_t *_resume_handle /* [in,out] [ref] */,
    1527             :                                  struct samr_SamArray **_sam /* [out] [ref] */,
    1528             :                                  uint32_t _buf_size /* [in]  */,
    1529             :                                  uint32_t *_num_entries /* [out] [ref] */,
    1530             :                                  NTSTATUS *result)
    1531             : {
    1532           0 :         struct samr_EnumDomains r;
    1533           0 :         NTSTATUS status;
    1534             : 
    1535             :         /* In parameters */
    1536          90 :         r.in.connect_handle = _connect_handle;
    1537          90 :         r.in.resume_handle = _resume_handle;
    1538          90 :         r.in.buf_size = _buf_size;
    1539             : 
    1540             :         /* Out parameters */
    1541          90 :         r.out.resume_handle = _resume_handle;
    1542          90 :         r.out.sam = _sam;
    1543          90 :         r.out.num_entries = _num_entries;
    1544             : 
    1545             :         /* Result */
    1546          90 :         NDR_ZERO_STRUCT(r.out.result);
    1547             : 
    1548          90 :         status = dcerpc_samr_EnumDomains_r(h, mem_ctx, &r);
    1549          90 :         if (!NT_STATUS_IS_OK(status)) {
    1550           0 :                 return status;
    1551             :         }
    1552             : 
    1553             :         /* Return variables */
    1554          90 :         *_resume_handle = *r.out.resume_handle;
    1555          90 :         *_sam = *r.out.sam;
    1556          90 :         *_num_entries = *r.out.num_entries;
    1557             : 
    1558             :         /* Return result */
    1559          90 :         *result = r.out.result;
    1560             : 
    1561          90 :         return NT_STATUS_OK;
    1562             : }
    1563             : 
    1564             : struct dcerpc_samr_OpenDomain_r_state {
    1565             :         TALLOC_CTX *out_mem_ctx;
    1566             : };
    1567             : 
    1568             : static void dcerpc_samr_OpenDomain_r_done(struct tevent_req *subreq);
    1569             : 
    1570          10 : struct tevent_req *dcerpc_samr_OpenDomain_r_send(TALLOC_CTX *mem_ctx,
    1571             :         struct tevent_context *ev,
    1572             :         struct dcerpc_binding_handle *h,
    1573             :         struct samr_OpenDomain *r)
    1574             : {
    1575           0 :         struct tevent_req *req;
    1576           0 :         struct dcerpc_samr_OpenDomain_r_state *state;
    1577           0 :         struct tevent_req *subreq;
    1578             : 
    1579          10 :         req = tevent_req_create(mem_ctx, &state,
    1580             :                                 struct dcerpc_samr_OpenDomain_r_state);
    1581          10 :         if (req == NULL) {
    1582           0 :                 return NULL;
    1583             :         }
    1584             : 
    1585          10 :         state->out_mem_ctx = talloc_new(state);
    1586          10 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
    1587           0 :                 return tevent_req_post(req, ev);
    1588             :         }
    1589             : 
    1590          10 :         subreq = dcerpc_binding_handle_call_send(state, ev, h,
    1591             :                         NULL, &ndr_table_samr,
    1592          10 :                         NDR_SAMR_OPENDOMAIN, state->out_mem_ctx, r);
    1593          10 :         if (tevent_req_nomem(subreq, req)) {
    1594           0 :                 return tevent_req_post(req, ev);
    1595             :         }
    1596          10 :         tevent_req_set_callback(subreq, dcerpc_samr_OpenDomain_r_done, req);
    1597             : 
    1598          10 :         return req;
    1599             : }
    1600             : 
    1601          10 : static void dcerpc_samr_OpenDomain_r_done(struct tevent_req *subreq)
    1602             : {
    1603           0 :         struct tevent_req *req =
    1604          10 :                 tevent_req_callback_data(subreq,
    1605             :                 struct tevent_req);
    1606           0 :         NTSTATUS status;
    1607             : 
    1608          10 :         status = dcerpc_binding_handle_call_recv(subreq);
    1609          10 :         TALLOC_FREE(subreq);
    1610          10 :         if (tevent_req_nterror(req, status)) {
    1611           0 :                 return;
    1612             :         }
    1613             : 
    1614          10 :         tevent_req_done(req);
    1615             : }
    1616             : 
    1617          10 : NTSTATUS dcerpc_samr_OpenDomain_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
    1618             : {
    1619           0 :         struct dcerpc_samr_OpenDomain_r_state *state =
    1620          10 :                 tevent_req_data(req,
    1621             :                 struct dcerpc_samr_OpenDomain_r_state);
    1622           0 :         NTSTATUS status;
    1623             : 
    1624          10 :         if (tevent_req_is_nterror(req, &status)) {
    1625           0 :                 tevent_req_received(req);
    1626           0 :                 return status;
    1627             :         }
    1628             : 
    1629          10 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    1630             : 
    1631          10 :         tevent_req_received(req);
    1632          10 :         return NT_STATUS_OK;
    1633             : }
    1634             : 
    1635        2436 : NTSTATUS dcerpc_samr_OpenDomain_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct samr_OpenDomain *r)
    1636             : {
    1637         168 :         NTSTATUS status;
    1638             : 
    1639        2436 :         status = dcerpc_binding_handle_call(h,
    1640             :                         NULL, &ndr_table_samr,
    1641             :                         NDR_SAMR_OPENDOMAIN, mem_ctx, r);
    1642             : 
    1643        2436 :         return status;
    1644             : }
    1645             : 
    1646             : struct dcerpc_samr_OpenDomain_state {
    1647             :         struct samr_OpenDomain orig;
    1648             :         struct samr_OpenDomain tmp;
    1649             :         TALLOC_CTX *out_mem_ctx;
    1650             : };
    1651             : 
    1652             : static void dcerpc_samr_OpenDomain_done(struct tevent_req *subreq);
    1653             : 
    1654           0 : struct tevent_req *dcerpc_samr_OpenDomain_send(TALLOC_CTX *mem_ctx,
    1655             :                                                struct tevent_context *ev,
    1656             :                                                struct dcerpc_binding_handle *h,
    1657             :                                                struct policy_handle *_connect_handle /* [in] [ref] */,
    1658             :                                                uint32_t _access_mask /* [in]  */,
    1659             :                                                struct dom_sid2 *_sid /* [in] [ref] */,
    1660             :                                                struct policy_handle *_domain_handle /* [out] [ref] */)
    1661             : {
    1662           0 :         struct tevent_req *req;
    1663           0 :         struct dcerpc_samr_OpenDomain_state *state;
    1664           0 :         struct tevent_req *subreq;
    1665             : 
    1666           0 :         req = tevent_req_create(mem_ctx, &state,
    1667             :                                 struct dcerpc_samr_OpenDomain_state);
    1668           0 :         if (req == NULL) {
    1669           0 :                 return NULL;
    1670             :         }
    1671           0 :         state->out_mem_ctx = NULL;
    1672             : 
    1673             :         /* In parameters */
    1674           0 :         state->orig.in.connect_handle = _connect_handle;
    1675           0 :         state->orig.in.access_mask = _access_mask;
    1676           0 :         state->orig.in.sid = _sid;
    1677             : 
    1678             :         /* Out parameters */
    1679           0 :         state->orig.out.domain_handle = _domain_handle;
    1680             : 
    1681             :         /* Result */
    1682           0 :         NDR_ZERO_STRUCT(state->orig.out.result);
    1683             : 
    1684           0 :         state->out_mem_ctx = talloc_named_const(state, 0,
    1685             :                              "dcerpc_samr_OpenDomain_out_memory");
    1686           0 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
    1687           0 :                 return tevent_req_post(req, ev);
    1688             :         }
    1689             : 
    1690             :         /* make a temporary copy, that we pass to the dispatch function */
    1691           0 :         state->tmp = state->orig;
    1692             : 
    1693           0 :         subreq = dcerpc_samr_OpenDomain_r_send(state, ev, h, &state->tmp);
    1694           0 :         if (tevent_req_nomem(subreq, req)) {
    1695           0 :                 return tevent_req_post(req, ev);
    1696             :         }
    1697           0 :         tevent_req_set_callback(subreq, dcerpc_samr_OpenDomain_done, req);
    1698           0 :         return req;
    1699             : }
    1700             : 
    1701           0 : static void dcerpc_samr_OpenDomain_done(struct tevent_req *subreq)
    1702             : {
    1703           0 :         struct tevent_req *req = tevent_req_callback_data(
    1704             :                 subreq, struct tevent_req);
    1705           0 :         struct dcerpc_samr_OpenDomain_state *state = tevent_req_data(
    1706             :                 req, struct dcerpc_samr_OpenDomain_state);
    1707           0 :         NTSTATUS status;
    1708           0 :         TALLOC_CTX *mem_ctx;
    1709             : 
    1710           0 :         if (state->out_mem_ctx) {
    1711           0 :                 mem_ctx = state->out_mem_ctx;
    1712             :         } else {
    1713           0 :                 mem_ctx = state;
    1714             :         }
    1715             : 
    1716           0 :         status = dcerpc_samr_OpenDomain_r_recv(subreq, mem_ctx);
    1717           0 :         TALLOC_FREE(subreq);
    1718           0 :         if (tevent_req_nterror(req, status)) {
    1719           0 :                 return;
    1720             :         }
    1721             : 
    1722             :         /* Copy out parameters */
    1723           0 :         *state->orig.out.domain_handle = *state->tmp.out.domain_handle;
    1724             : 
    1725             :         /* Copy result */
    1726           0 :         state->orig.out.result = state->tmp.out.result;
    1727             : 
    1728             :         /* Reset temporary structure */
    1729           0 :         NDR_ZERO_STRUCT(state->tmp);
    1730             : 
    1731           0 :         tevent_req_done(req);
    1732             : }
    1733             : 
    1734           0 : NTSTATUS dcerpc_samr_OpenDomain_recv(struct tevent_req *req,
    1735             :                                      TALLOC_CTX *mem_ctx,
    1736             :                                      NTSTATUS *result)
    1737             : {
    1738           0 :         struct dcerpc_samr_OpenDomain_state *state = tevent_req_data(
    1739             :                 req, struct dcerpc_samr_OpenDomain_state);
    1740           0 :         NTSTATUS status;
    1741             : 
    1742           0 :         if (tevent_req_is_nterror(req, &status)) {
    1743           0 :                 tevent_req_received(req);
    1744           0 :                 return status;
    1745             :         }
    1746             : 
    1747             :         /* Steal possible out parameters to the callers context */
    1748           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    1749             : 
    1750             :         /* Return result */
    1751           0 :         *result = state->orig.out.result;
    1752             : 
    1753           0 :         tevent_req_received(req);
    1754           0 :         return NT_STATUS_OK;
    1755             : }
    1756             : 
    1757         359 : NTSTATUS dcerpc_samr_OpenDomain(struct dcerpc_binding_handle *h,
    1758             :                                 TALLOC_CTX *mem_ctx,
    1759             :                                 struct policy_handle *_connect_handle /* [in] [ref] */,
    1760             :                                 uint32_t _access_mask /* [in]  */,
    1761             :                                 struct dom_sid2 *_sid /* [in] [ref] */,
    1762             :                                 struct policy_handle *_domain_handle /* [out] [ref] */,
    1763             :                                 NTSTATUS *result)
    1764             : {
    1765           0 :         struct samr_OpenDomain r;
    1766           0 :         NTSTATUS status;
    1767             : 
    1768             :         /* In parameters */
    1769         359 :         r.in.connect_handle = _connect_handle;
    1770         359 :         r.in.access_mask = _access_mask;
    1771         359 :         r.in.sid = _sid;
    1772             : 
    1773             :         /* Out parameters */
    1774         359 :         r.out.domain_handle = _domain_handle;
    1775             : 
    1776             :         /* Result */
    1777         359 :         NDR_ZERO_STRUCT(r.out.result);
    1778             : 
    1779         359 :         status = dcerpc_samr_OpenDomain_r(h, mem_ctx, &r);
    1780         359 :         if (!NT_STATUS_IS_OK(status)) {
    1781           0 :                 return status;
    1782             :         }
    1783             : 
    1784             :         /* Return variables */
    1785         359 :         *_domain_handle = *r.out.domain_handle;
    1786             : 
    1787             :         /* Return result */
    1788         359 :         *result = r.out.result;
    1789             : 
    1790         359 :         return NT_STATUS_OK;
    1791             : }
    1792             : 
    1793             : struct dcerpc_samr_QueryDomainInfo_r_state {
    1794             :         TALLOC_CTX *out_mem_ctx;
    1795             : };
    1796             : 
    1797             : static void dcerpc_samr_QueryDomainInfo_r_done(struct tevent_req *subreq);
    1798             : 
    1799           0 : struct tevent_req *dcerpc_samr_QueryDomainInfo_r_send(TALLOC_CTX *mem_ctx,
    1800             :         struct tevent_context *ev,
    1801             :         struct dcerpc_binding_handle *h,
    1802             :         struct samr_QueryDomainInfo *r)
    1803             : {
    1804           0 :         struct tevent_req *req;
    1805           0 :         struct dcerpc_samr_QueryDomainInfo_r_state *state;
    1806           0 :         struct tevent_req *subreq;
    1807             : 
    1808           0 :         req = tevent_req_create(mem_ctx, &state,
    1809             :                                 struct dcerpc_samr_QueryDomainInfo_r_state);
    1810           0 :         if (req == NULL) {
    1811           0 :                 return NULL;
    1812             :         }
    1813             : 
    1814           0 :         state->out_mem_ctx = talloc_new(state);
    1815           0 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
    1816           0 :                 return tevent_req_post(req, ev);
    1817             :         }
    1818             : 
    1819           0 :         subreq = dcerpc_binding_handle_call_send(state, ev, h,
    1820             :                         NULL, &ndr_table_samr,
    1821           0 :                         NDR_SAMR_QUERYDOMAININFO, state->out_mem_ctx, r);
    1822           0 :         if (tevent_req_nomem(subreq, req)) {
    1823           0 :                 return tevent_req_post(req, ev);
    1824             :         }
    1825           0 :         tevent_req_set_callback(subreq, dcerpc_samr_QueryDomainInfo_r_done, req);
    1826             : 
    1827           0 :         return req;
    1828             : }
    1829             : 
    1830           0 : static void dcerpc_samr_QueryDomainInfo_r_done(struct tevent_req *subreq)
    1831             : {
    1832           0 :         struct tevent_req *req =
    1833           0 :                 tevent_req_callback_data(subreq,
    1834             :                 struct tevent_req);
    1835           0 :         NTSTATUS status;
    1836             : 
    1837           0 :         status = dcerpc_binding_handle_call_recv(subreq);
    1838           0 :         TALLOC_FREE(subreq);
    1839           0 :         if (tevent_req_nterror(req, status)) {
    1840           0 :                 return;
    1841             :         }
    1842             : 
    1843           0 :         tevent_req_done(req);
    1844             : }
    1845             : 
    1846           0 : NTSTATUS dcerpc_samr_QueryDomainInfo_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
    1847             : {
    1848           0 :         struct dcerpc_samr_QueryDomainInfo_r_state *state =
    1849           0 :                 tevent_req_data(req,
    1850             :                 struct dcerpc_samr_QueryDomainInfo_r_state);
    1851           0 :         NTSTATUS status;
    1852             : 
    1853           0 :         if (tevent_req_is_nterror(req, &status)) {
    1854           0 :                 tevent_req_received(req);
    1855           0 :                 return status;
    1856             :         }
    1857             : 
    1858           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    1859             : 
    1860           0 :         tevent_req_received(req);
    1861           0 :         return NT_STATUS_OK;
    1862             : }
    1863             : 
    1864         359 : NTSTATUS dcerpc_samr_QueryDomainInfo_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct samr_QueryDomainInfo *r)
    1865             : {
    1866           0 :         NTSTATUS status;
    1867             : 
    1868         359 :         status = dcerpc_binding_handle_call(h,
    1869             :                         NULL, &ndr_table_samr,
    1870             :                         NDR_SAMR_QUERYDOMAININFO, mem_ctx, r);
    1871             : 
    1872         359 :         return status;
    1873             : }
    1874             : 
    1875             : struct dcerpc_samr_QueryDomainInfo_state {
    1876             :         struct samr_QueryDomainInfo orig;
    1877             :         struct samr_QueryDomainInfo tmp;
    1878             :         TALLOC_CTX *out_mem_ctx;
    1879             : };
    1880             : 
    1881             : static void dcerpc_samr_QueryDomainInfo_done(struct tevent_req *subreq);
    1882             : 
    1883           0 : struct tevent_req *dcerpc_samr_QueryDomainInfo_send(TALLOC_CTX *mem_ctx,
    1884             :                                                     struct tevent_context *ev,
    1885             :                                                     struct dcerpc_binding_handle *h,
    1886             :                                                     struct policy_handle *_domain_handle /* [in] [ref] */,
    1887             :                                                     enum samr_DomainInfoClass _level /* [in]  */,
    1888             :                                                     union samr_DomainInfo **_info /* [out] [ref,switch_is(level)] */)
    1889             : {
    1890           0 :         struct tevent_req *req;
    1891           0 :         struct dcerpc_samr_QueryDomainInfo_state *state;
    1892           0 :         struct tevent_req *subreq;
    1893             : 
    1894           0 :         req = tevent_req_create(mem_ctx, &state,
    1895             :                                 struct dcerpc_samr_QueryDomainInfo_state);
    1896           0 :         if (req == NULL) {
    1897           0 :                 return NULL;
    1898             :         }
    1899           0 :         state->out_mem_ctx = NULL;
    1900             : 
    1901             :         /* In parameters */
    1902           0 :         state->orig.in.domain_handle = _domain_handle;
    1903           0 :         state->orig.in.level = _level;
    1904             : 
    1905             :         /* Out parameters */
    1906           0 :         state->orig.out.info = _info;
    1907             : 
    1908             :         /* Result */
    1909           0 :         NDR_ZERO_STRUCT(state->orig.out.result);
    1910             : 
    1911           0 :         state->out_mem_ctx = talloc_named_const(state, 0,
    1912             :                              "dcerpc_samr_QueryDomainInfo_out_memory");
    1913           0 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
    1914           0 :                 return tevent_req_post(req, ev);
    1915             :         }
    1916             : 
    1917             :         /* make a temporary copy, that we pass to the dispatch function */
    1918           0 :         state->tmp = state->orig;
    1919             : 
    1920           0 :         subreq = dcerpc_samr_QueryDomainInfo_r_send(state, ev, h, &state->tmp);
    1921           0 :         if (tevent_req_nomem(subreq, req)) {
    1922           0 :                 return tevent_req_post(req, ev);
    1923             :         }
    1924           0 :         tevent_req_set_callback(subreq, dcerpc_samr_QueryDomainInfo_done, req);
    1925           0 :         return req;
    1926             : }
    1927             : 
    1928           0 : static void dcerpc_samr_QueryDomainInfo_done(struct tevent_req *subreq)
    1929             : {
    1930           0 :         struct tevent_req *req = tevent_req_callback_data(
    1931             :                 subreq, struct tevent_req);
    1932           0 :         struct dcerpc_samr_QueryDomainInfo_state *state = tevent_req_data(
    1933             :                 req, struct dcerpc_samr_QueryDomainInfo_state);
    1934           0 :         NTSTATUS status;
    1935           0 :         TALLOC_CTX *mem_ctx;
    1936             : 
    1937           0 :         if (state->out_mem_ctx) {
    1938           0 :                 mem_ctx = state->out_mem_ctx;
    1939             :         } else {
    1940           0 :                 mem_ctx = state;
    1941             :         }
    1942             : 
    1943           0 :         status = dcerpc_samr_QueryDomainInfo_r_recv(subreq, mem_ctx);
    1944           0 :         TALLOC_FREE(subreq);
    1945           0 :         if (tevent_req_nterror(req, status)) {
    1946           0 :                 return;
    1947             :         }
    1948             : 
    1949             :         /* Copy out parameters */
    1950           0 :         *state->orig.out.info = *state->tmp.out.info;
    1951             : 
    1952             :         /* Copy result */
    1953           0 :         state->orig.out.result = state->tmp.out.result;
    1954             : 
    1955             :         /* Reset temporary structure */
    1956           0 :         NDR_ZERO_STRUCT(state->tmp);
    1957             : 
    1958           0 :         tevent_req_done(req);
    1959             : }
    1960             : 
    1961           0 : NTSTATUS dcerpc_samr_QueryDomainInfo_recv(struct tevent_req *req,
    1962             :                                           TALLOC_CTX *mem_ctx,
    1963             :                                           NTSTATUS *result)
    1964             : {
    1965           0 :         struct dcerpc_samr_QueryDomainInfo_state *state = tevent_req_data(
    1966             :                 req, struct dcerpc_samr_QueryDomainInfo_state);
    1967           0 :         NTSTATUS status;
    1968             : 
    1969           0 :         if (tevent_req_is_nterror(req, &status)) {
    1970           0 :                 tevent_req_received(req);
    1971           0 :                 return status;
    1972             :         }
    1973             : 
    1974             :         /* Steal possible out parameters to the callers context */
    1975           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    1976             : 
    1977             :         /* Return result */
    1978           0 :         *result = state->orig.out.result;
    1979             : 
    1980           0 :         tevent_req_received(req);
    1981           0 :         return NT_STATUS_OK;
    1982             : }
    1983             : 
    1984          15 : NTSTATUS dcerpc_samr_QueryDomainInfo(struct dcerpc_binding_handle *h,
    1985             :                                      TALLOC_CTX *mem_ctx,
    1986             :                                      struct policy_handle *_domain_handle /* [in] [ref] */,
    1987             :                                      enum samr_DomainInfoClass _level /* [in]  */,
    1988             :                                      union samr_DomainInfo **_info /* [out] [ref,switch_is(level)] */,
    1989             :                                      NTSTATUS *result)
    1990             : {
    1991           0 :         struct samr_QueryDomainInfo r;
    1992           0 :         NTSTATUS status;
    1993             : 
    1994             :         /* In parameters */
    1995          15 :         r.in.domain_handle = _domain_handle;
    1996          15 :         r.in.level = _level;
    1997             : 
    1998             :         /* Out parameters */
    1999          15 :         r.out.info = _info;
    2000             : 
    2001             :         /* Result */
    2002          15 :         NDR_ZERO_STRUCT(r.out.result);
    2003             : 
    2004          15 :         status = dcerpc_samr_QueryDomainInfo_r(h, mem_ctx, &r);
    2005          15 :         if (!NT_STATUS_IS_OK(status)) {
    2006           0 :                 return status;
    2007             :         }
    2008             : 
    2009             :         /* Return variables */
    2010          15 :         *_info = *r.out.info;
    2011             : 
    2012             :         /* Return result */
    2013          15 :         *result = r.out.result;
    2014             : 
    2015          15 :         return NT_STATUS_OK;
    2016             : }
    2017             : 
    2018             : struct dcerpc_samr_SetDomainInfo_r_state {
    2019             :         TALLOC_CTX *out_mem_ctx;
    2020             : };
    2021             : 
    2022             : static void dcerpc_samr_SetDomainInfo_r_done(struct tevent_req *subreq);
    2023             : 
    2024           0 : struct tevent_req *dcerpc_samr_SetDomainInfo_r_send(TALLOC_CTX *mem_ctx,
    2025             :         struct tevent_context *ev,
    2026             :         struct dcerpc_binding_handle *h,
    2027             :         struct samr_SetDomainInfo *r)
    2028             : {
    2029           0 :         struct tevent_req *req;
    2030           0 :         struct dcerpc_samr_SetDomainInfo_r_state *state;
    2031           0 :         struct tevent_req *subreq;
    2032             : 
    2033           0 :         req = tevent_req_create(mem_ctx, &state,
    2034             :                                 struct dcerpc_samr_SetDomainInfo_r_state);
    2035           0 :         if (req == NULL) {
    2036           0 :                 return NULL;
    2037             :         }
    2038             : 
    2039           0 :         state->out_mem_ctx = NULL;
    2040             : 
    2041           0 :         subreq = dcerpc_binding_handle_call_send(state, ev, h,
    2042             :                         NULL, &ndr_table_samr,
    2043             :                         NDR_SAMR_SETDOMAININFO, state, r);
    2044           0 :         if (tevent_req_nomem(subreq, req)) {
    2045           0 :                 return tevent_req_post(req, ev);
    2046             :         }
    2047           0 :         tevent_req_set_callback(subreq, dcerpc_samr_SetDomainInfo_r_done, req);
    2048             : 
    2049           0 :         return req;
    2050             : }
    2051             : 
    2052           0 : static void dcerpc_samr_SetDomainInfo_r_done(struct tevent_req *subreq)
    2053             : {
    2054           0 :         struct tevent_req *req =
    2055           0 :                 tevent_req_callback_data(subreq,
    2056             :                 struct tevent_req);
    2057           0 :         NTSTATUS status;
    2058             : 
    2059           0 :         status = dcerpc_binding_handle_call_recv(subreq);
    2060           0 :         TALLOC_FREE(subreq);
    2061           0 :         if (tevent_req_nterror(req, status)) {
    2062           0 :                 return;
    2063             :         }
    2064             : 
    2065           0 :         tevent_req_done(req);
    2066             : }
    2067             : 
    2068           0 : NTSTATUS dcerpc_samr_SetDomainInfo_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
    2069             : {
    2070           0 :         struct dcerpc_samr_SetDomainInfo_r_state *state =
    2071           0 :                 tevent_req_data(req,
    2072             :                 struct dcerpc_samr_SetDomainInfo_r_state);
    2073           0 :         NTSTATUS status;
    2074             : 
    2075           0 :         if (tevent_req_is_nterror(req, &status)) {
    2076           0 :                 tevent_req_received(req);
    2077           0 :                 return status;
    2078             :         }
    2079             : 
    2080           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    2081             : 
    2082           0 :         tevent_req_received(req);
    2083           0 :         return NT_STATUS_OK;
    2084             : }
    2085             : 
    2086         314 : NTSTATUS dcerpc_samr_SetDomainInfo_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct samr_SetDomainInfo *r)
    2087             : {
    2088           0 :         NTSTATUS status;
    2089             : 
    2090         314 :         status = dcerpc_binding_handle_call(h,
    2091             :                         NULL, &ndr_table_samr,
    2092             :                         NDR_SAMR_SETDOMAININFO, mem_ctx, r);
    2093             : 
    2094         314 :         return status;
    2095             : }
    2096             : 
    2097             : struct dcerpc_samr_SetDomainInfo_state {
    2098             :         struct samr_SetDomainInfo orig;
    2099             :         struct samr_SetDomainInfo tmp;
    2100             :         TALLOC_CTX *out_mem_ctx;
    2101             : };
    2102             : 
    2103             : static void dcerpc_samr_SetDomainInfo_done(struct tevent_req *subreq);
    2104             : 
    2105           0 : struct tevent_req *dcerpc_samr_SetDomainInfo_send(TALLOC_CTX *mem_ctx,
    2106             :                                                   struct tevent_context *ev,
    2107             :                                                   struct dcerpc_binding_handle *h,
    2108             :                                                   struct policy_handle *_domain_handle /* [in] [ref] */,
    2109             :                                                   enum samr_DomainInfoClass _level /* [in]  */,
    2110             :                                                   union samr_DomainInfo *_info /* [in] [ref,switch_is(level)] */)
    2111             : {
    2112           0 :         struct tevent_req *req;
    2113           0 :         struct dcerpc_samr_SetDomainInfo_state *state;
    2114           0 :         struct tevent_req *subreq;
    2115             : 
    2116           0 :         req = tevent_req_create(mem_ctx, &state,
    2117             :                                 struct dcerpc_samr_SetDomainInfo_state);
    2118           0 :         if (req == NULL) {
    2119           0 :                 return NULL;
    2120             :         }
    2121           0 :         state->out_mem_ctx = NULL;
    2122             : 
    2123             :         /* In parameters */
    2124           0 :         state->orig.in.domain_handle = _domain_handle;
    2125           0 :         state->orig.in.level = _level;
    2126           0 :         state->orig.in.info = _info;
    2127             : 
    2128             :         /* Out parameters */
    2129             : 
    2130             :         /* Result */
    2131           0 :         NDR_ZERO_STRUCT(state->orig.out.result);
    2132             : 
    2133             :         /* make a temporary copy, that we pass to the dispatch function */
    2134           0 :         state->tmp = state->orig;
    2135             : 
    2136           0 :         subreq = dcerpc_samr_SetDomainInfo_r_send(state, ev, h, &state->tmp);
    2137           0 :         if (tevent_req_nomem(subreq, req)) {
    2138           0 :                 return tevent_req_post(req, ev);
    2139             :         }
    2140           0 :         tevent_req_set_callback(subreq, dcerpc_samr_SetDomainInfo_done, req);
    2141           0 :         return req;
    2142             : }
    2143             : 
    2144           0 : static void dcerpc_samr_SetDomainInfo_done(struct tevent_req *subreq)
    2145             : {
    2146           0 :         struct tevent_req *req = tevent_req_callback_data(
    2147             :                 subreq, struct tevent_req);
    2148           0 :         struct dcerpc_samr_SetDomainInfo_state *state = tevent_req_data(
    2149             :                 req, struct dcerpc_samr_SetDomainInfo_state);
    2150           0 :         NTSTATUS status;
    2151           0 :         TALLOC_CTX *mem_ctx;
    2152             : 
    2153           0 :         if (state->out_mem_ctx) {
    2154           0 :                 mem_ctx = state->out_mem_ctx;
    2155             :         } else {
    2156           0 :                 mem_ctx = state;
    2157             :         }
    2158             : 
    2159           0 :         status = dcerpc_samr_SetDomainInfo_r_recv(subreq, mem_ctx);
    2160           0 :         TALLOC_FREE(subreq);
    2161           0 :         if (tevent_req_nterror(req, status)) {
    2162           0 :                 return;
    2163             :         }
    2164             : 
    2165             :         /* Copy out parameters */
    2166             : 
    2167             :         /* Copy result */
    2168           0 :         state->orig.out.result = state->tmp.out.result;
    2169             : 
    2170             :         /* Reset temporary structure */
    2171           0 :         NDR_ZERO_STRUCT(state->tmp);
    2172             : 
    2173           0 :         tevent_req_done(req);
    2174             : }
    2175             : 
    2176           0 : NTSTATUS dcerpc_samr_SetDomainInfo_recv(struct tevent_req *req,
    2177             :                                         TALLOC_CTX *mem_ctx,
    2178             :                                         NTSTATUS *result)
    2179             : {
    2180           0 :         struct dcerpc_samr_SetDomainInfo_state *state = tevent_req_data(
    2181             :                 req, struct dcerpc_samr_SetDomainInfo_state);
    2182           0 :         NTSTATUS status;
    2183             : 
    2184           0 :         if (tevent_req_is_nterror(req, &status)) {
    2185           0 :                 tevent_req_received(req);
    2186           0 :                 return status;
    2187             :         }
    2188             : 
    2189             :         /* Steal possible out parameters to the callers context */
    2190           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    2191             : 
    2192             :         /* Return result */
    2193           0 :         *result = state->orig.out.result;
    2194             : 
    2195           0 :         tevent_req_received(req);
    2196           0 :         return NT_STATUS_OK;
    2197             : }
    2198             : 
    2199           2 : NTSTATUS dcerpc_samr_SetDomainInfo(struct dcerpc_binding_handle *h,
    2200             :                                    TALLOC_CTX *mem_ctx,
    2201             :                                    struct policy_handle *_domain_handle /* [in] [ref] */,
    2202             :                                    enum samr_DomainInfoClass _level /* [in]  */,
    2203             :                                    union samr_DomainInfo *_info /* [in] [ref,switch_is(level)] */,
    2204             :                                    NTSTATUS *result)
    2205             : {
    2206           0 :         struct samr_SetDomainInfo r;
    2207           0 :         NTSTATUS status;
    2208             : 
    2209             :         /* In parameters */
    2210           2 :         r.in.domain_handle = _domain_handle;
    2211           2 :         r.in.level = _level;
    2212           2 :         r.in.info = _info;
    2213             : 
    2214             :         /* Out parameters */
    2215             : 
    2216             :         /* Result */
    2217           2 :         NDR_ZERO_STRUCT(r.out.result);
    2218             : 
    2219           2 :         status = dcerpc_samr_SetDomainInfo_r(h, mem_ctx, &r);
    2220           2 :         if (!NT_STATUS_IS_OK(status)) {
    2221           0 :                 return status;
    2222             :         }
    2223             : 
    2224             :         /* Return variables */
    2225             : 
    2226             :         /* Return result */
    2227           2 :         *result = r.out.result;
    2228             : 
    2229           2 :         return NT_STATUS_OK;
    2230             : }
    2231             : 
    2232             : struct dcerpc_samr_CreateDomainGroup_r_state {
    2233             :         TALLOC_CTX *out_mem_ctx;
    2234             : };
    2235             : 
    2236             : static void dcerpc_samr_CreateDomainGroup_r_done(struct tevent_req *subreq);
    2237             : 
    2238           2 : struct tevent_req *dcerpc_samr_CreateDomainGroup_r_send(TALLOC_CTX *mem_ctx,
    2239             :         struct tevent_context *ev,
    2240             :         struct dcerpc_binding_handle *h,
    2241             :         struct samr_CreateDomainGroup *r)
    2242             : {
    2243           0 :         struct tevent_req *req;
    2244           0 :         struct dcerpc_samr_CreateDomainGroup_r_state *state;
    2245           0 :         struct tevent_req *subreq;
    2246             : 
    2247           2 :         req = tevent_req_create(mem_ctx, &state,
    2248             :                                 struct dcerpc_samr_CreateDomainGroup_r_state);
    2249           2 :         if (req == NULL) {
    2250           0 :                 return NULL;
    2251             :         }
    2252             : 
    2253           2 :         state->out_mem_ctx = talloc_new(state);
    2254           2 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
    2255           0 :                 return tevent_req_post(req, ev);
    2256             :         }
    2257             : 
    2258           2 :         subreq = dcerpc_binding_handle_call_send(state, ev, h,
    2259             :                         NULL, &ndr_table_samr,
    2260           2 :                         NDR_SAMR_CREATEDOMAINGROUP, state->out_mem_ctx, r);
    2261           2 :         if (tevent_req_nomem(subreq, req)) {
    2262           0 :                 return tevent_req_post(req, ev);
    2263             :         }
    2264           2 :         tevent_req_set_callback(subreq, dcerpc_samr_CreateDomainGroup_r_done, req);
    2265             : 
    2266           2 :         return req;
    2267             : }
    2268             : 
    2269           2 : static void dcerpc_samr_CreateDomainGroup_r_done(struct tevent_req *subreq)
    2270             : {
    2271           0 :         struct tevent_req *req =
    2272           2 :                 tevent_req_callback_data(subreq,
    2273             :                 struct tevent_req);
    2274           0 :         NTSTATUS status;
    2275             : 
    2276           2 :         status = dcerpc_binding_handle_call_recv(subreq);
    2277           2 :         TALLOC_FREE(subreq);
    2278           2 :         if (tevent_req_nterror(req, status)) {
    2279           0 :                 return;
    2280             :         }
    2281             : 
    2282           2 :         tevent_req_done(req);
    2283             : }
    2284             : 
    2285           2 : NTSTATUS dcerpc_samr_CreateDomainGroup_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
    2286             : {
    2287           0 :         struct dcerpc_samr_CreateDomainGroup_r_state *state =
    2288           2 :                 tevent_req_data(req,
    2289             :                 struct dcerpc_samr_CreateDomainGroup_r_state);
    2290           0 :         NTSTATUS status;
    2291             : 
    2292           2 :         if (tevent_req_is_nterror(req, &status)) {
    2293           0 :                 tevent_req_received(req);
    2294           0 :                 return status;
    2295             :         }
    2296             : 
    2297           2 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    2298             : 
    2299           2 :         tevent_req_received(req);
    2300           2 :         return NT_STATUS_OK;
    2301             : }
    2302             : 
    2303        1584 : NTSTATUS dcerpc_samr_CreateDomainGroup_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct samr_CreateDomainGroup *r)
    2304             : {
    2305           0 :         NTSTATUS status;
    2306             : 
    2307        1584 :         status = dcerpc_binding_handle_call(h,
    2308             :                         NULL, &ndr_table_samr,
    2309             :                         NDR_SAMR_CREATEDOMAINGROUP, mem_ctx, r);
    2310             : 
    2311        1584 :         return status;
    2312             : }
    2313             : 
    2314             : struct dcerpc_samr_CreateDomainGroup_state {
    2315             :         struct samr_CreateDomainGroup orig;
    2316             :         struct samr_CreateDomainGroup tmp;
    2317             :         TALLOC_CTX *out_mem_ctx;
    2318             : };
    2319             : 
    2320             : static void dcerpc_samr_CreateDomainGroup_done(struct tevent_req *subreq);
    2321             : 
    2322           0 : struct tevent_req *dcerpc_samr_CreateDomainGroup_send(TALLOC_CTX *mem_ctx,
    2323             :                                                       struct tevent_context *ev,
    2324             :                                                       struct dcerpc_binding_handle *h,
    2325             :                                                       struct policy_handle *_domain_handle /* [in] [ref] */,
    2326             :                                                       struct lsa_String *_name /* [in] [ref] */,
    2327             :                                                       uint32_t _access_mask /* [in]  */,
    2328             :                                                       struct policy_handle *_group_handle /* [out] [ref] */,
    2329             :                                                       uint32_t *_rid /* [out] [ref] */)
    2330             : {
    2331           0 :         struct tevent_req *req;
    2332           0 :         struct dcerpc_samr_CreateDomainGroup_state *state;
    2333           0 :         struct tevent_req *subreq;
    2334             : 
    2335           0 :         req = tevent_req_create(mem_ctx, &state,
    2336             :                                 struct dcerpc_samr_CreateDomainGroup_state);
    2337           0 :         if (req == NULL) {
    2338           0 :                 return NULL;
    2339             :         }
    2340           0 :         state->out_mem_ctx = NULL;
    2341             : 
    2342             :         /* In parameters */
    2343           0 :         state->orig.in.domain_handle = _domain_handle;
    2344           0 :         state->orig.in.name = _name;
    2345           0 :         state->orig.in.access_mask = _access_mask;
    2346             : 
    2347             :         /* Out parameters */
    2348           0 :         state->orig.out.group_handle = _group_handle;
    2349           0 :         state->orig.out.rid = _rid;
    2350             : 
    2351             :         /* Result */
    2352           0 :         NDR_ZERO_STRUCT(state->orig.out.result);
    2353             : 
    2354           0 :         state->out_mem_ctx = talloc_named_const(state, 0,
    2355             :                              "dcerpc_samr_CreateDomainGroup_out_memory");
    2356           0 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
    2357           0 :                 return tevent_req_post(req, ev);
    2358             :         }
    2359             : 
    2360             :         /* make a temporary copy, that we pass to the dispatch function */
    2361           0 :         state->tmp = state->orig;
    2362             : 
    2363           0 :         subreq = dcerpc_samr_CreateDomainGroup_r_send(state, ev, h, &state->tmp);
    2364           0 :         if (tevent_req_nomem(subreq, req)) {
    2365           0 :                 return tevent_req_post(req, ev);
    2366             :         }
    2367           0 :         tevent_req_set_callback(subreq, dcerpc_samr_CreateDomainGroup_done, req);
    2368           0 :         return req;
    2369             : }
    2370             : 
    2371           0 : static void dcerpc_samr_CreateDomainGroup_done(struct tevent_req *subreq)
    2372             : {
    2373           0 :         struct tevent_req *req = tevent_req_callback_data(
    2374             :                 subreq, struct tevent_req);
    2375           0 :         struct dcerpc_samr_CreateDomainGroup_state *state = tevent_req_data(
    2376             :                 req, struct dcerpc_samr_CreateDomainGroup_state);
    2377           0 :         NTSTATUS status;
    2378           0 :         TALLOC_CTX *mem_ctx;
    2379             : 
    2380           0 :         if (state->out_mem_ctx) {
    2381           0 :                 mem_ctx = state->out_mem_ctx;
    2382             :         } else {
    2383           0 :                 mem_ctx = state;
    2384             :         }
    2385             : 
    2386           0 :         status = dcerpc_samr_CreateDomainGroup_r_recv(subreq, mem_ctx);
    2387           0 :         TALLOC_FREE(subreq);
    2388           0 :         if (tevent_req_nterror(req, status)) {
    2389           0 :                 return;
    2390             :         }
    2391             : 
    2392             :         /* Copy out parameters */
    2393           0 :         *state->orig.out.group_handle = *state->tmp.out.group_handle;
    2394           0 :         *state->orig.out.rid = *state->tmp.out.rid;
    2395             : 
    2396             :         /* Copy result */
    2397           0 :         state->orig.out.result = state->tmp.out.result;
    2398             : 
    2399             :         /* Reset temporary structure */
    2400           0 :         NDR_ZERO_STRUCT(state->tmp);
    2401             : 
    2402           0 :         tevent_req_done(req);
    2403             : }
    2404             : 
    2405           0 : NTSTATUS dcerpc_samr_CreateDomainGroup_recv(struct tevent_req *req,
    2406             :                                             TALLOC_CTX *mem_ctx,
    2407             :                                             NTSTATUS *result)
    2408             : {
    2409           0 :         struct dcerpc_samr_CreateDomainGroup_state *state = tevent_req_data(
    2410             :                 req, struct dcerpc_samr_CreateDomainGroup_state);
    2411           0 :         NTSTATUS status;
    2412             : 
    2413           0 :         if (tevent_req_is_nterror(req, &status)) {
    2414           0 :                 tevent_req_received(req);
    2415           0 :                 return status;
    2416             :         }
    2417             : 
    2418             :         /* Steal possible out parameters to the callers context */
    2419           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    2420             : 
    2421             :         /* Return result */
    2422           0 :         *result = state->orig.out.result;
    2423             : 
    2424           0 :         tevent_req_received(req);
    2425           0 :         return NT_STATUS_OK;
    2426             : }
    2427             : 
    2428          72 : NTSTATUS dcerpc_samr_CreateDomainGroup(struct dcerpc_binding_handle *h,
    2429             :                                        TALLOC_CTX *mem_ctx,
    2430             :                                        struct policy_handle *_domain_handle /* [in] [ref] */,
    2431             :                                        struct lsa_String *_name /* [in] [ref] */,
    2432             :                                        uint32_t _access_mask /* [in]  */,
    2433             :                                        struct policy_handle *_group_handle /* [out] [ref] */,
    2434             :                                        uint32_t *_rid /* [out] [ref] */,
    2435             :                                        NTSTATUS *result)
    2436             : {
    2437           0 :         struct samr_CreateDomainGroup r;
    2438           0 :         NTSTATUS status;
    2439             : 
    2440             :         /* In parameters */
    2441          72 :         r.in.domain_handle = _domain_handle;
    2442          72 :         r.in.name = _name;
    2443          72 :         r.in.access_mask = _access_mask;
    2444             : 
    2445             :         /* Out parameters */
    2446          72 :         r.out.group_handle = _group_handle;
    2447          72 :         r.out.rid = _rid;
    2448             : 
    2449             :         /* Result */
    2450          72 :         NDR_ZERO_STRUCT(r.out.result);
    2451             : 
    2452          72 :         status = dcerpc_samr_CreateDomainGroup_r(h, mem_ctx, &r);
    2453          72 :         if (!NT_STATUS_IS_OK(status)) {
    2454           0 :                 return status;
    2455             :         }
    2456             : 
    2457             :         /* Return variables */
    2458          72 :         *_group_handle = *r.out.group_handle;
    2459          72 :         *_rid = *r.out.rid;
    2460             : 
    2461             :         /* Return result */
    2462          72 :         *result = r.out.result;
    2463             : 
    2464          72 :         return NT_STATUS_OK;
    2465             : }
    2466             : 
    2467             : struct dcerpc_samr_EnumDomainGroups_r_state {
    2468             :         TALLOC_CTX *out_mem_ctx;
    2469             : };
    2470             : 
    2471             : static void dcerpc_samr_EnumDomainGroups_r_done(struct tevent_req *subreq);
    2472             : 
    2473           5 : struct tevent_req *dcerpc_samr_EnumDomainGroups_r_send(TALLOC_CTX *mem_ctx,
    2474             :         struct tevent_context *ev,
    2475             :         struct dcerpc_binding_handle *h,
    2476             :         struct samr_EnumDomainGroups *r)
    2477             : {
    2478           0 :         struct tevent_req *req;
    2479           0 :         struct dcerpc_samr_EnumDomainGroups_r_state *state;
    2480           0 :         struct tevent_req *subreq;
    2481             : 
    2482           5 :         req = tevent_req_create(mem_ctx, &state,
    2483             :                                 struct dcerpc_samr_EnumDomainGroups_r_state);
    2484           5 :         if (req == NULL) {
    2485           0 :                 return NULL;
    2486             :         }
    2487             : 
    2488           5 :         state->out_mem_ctx = talloc_new(state);
    2489           5 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
    2490           0 :                 return tevent_req_post(req, ev);
    2491             :         }
    2492             : 
    2493           5 :         subreq = dcerpc_binding_handle_call_send(state, ev, h,
    2494             :                         NULL, &ndr_table_samr,
    2495           5 :                         NDR_SAMR_ENUMDOMAINGROUPS, state->out_mem_ctx, r);
    2496           5 :         if (tevent_req_nomem(subreq, req)) {
    2497           0 :                 return tevent_req_post(req, ev);
    2498             :         }
    2499           5 :         tevent_req_set_callback(subreq, dcerpc_samr_EnumDomainGroups_r_done, req);
    2500             : 
    2501           5 :         return req;
    2502             : }
    2503             : 
    2504           5 : static void dcerpc_samr_EnumDomainGroups_r_done(struct tevent_req *subreq)
    2505             : {
    2506           0 :         struct tevent_req *req =
    2507           5 :                 tevent_req_callback_data(subreq,
    2508             :                 struct tevent_req);
    2509           0 :         NTSTATUS status;
    2510             : 
    2511           5 :         status = dcerpc_binding_handle_call_recv(subreq);
    2512           5 :         TALLOC_FREE(subreq);
    2513           5 :         if (tevent_req_nterror(req, status)) {
    2514           0 :                 return;
    2515             :         }
    2516             : 
    2517           5 :         tevent_req_done(req);
    2518             : }
    2519             : 
    2520           5 : NTSTATUS dcerpc_samr_EnumDomainGroups_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
    2521             : {
    2522           0 :         struct dcerpc_samr_EnumDomainGroups_r_state *state =
    2523           5 :                 tevent_req_data(req,
    2524             :                 struct dcerpc_samr_EnumDomainGroups_r_state);
    2525           0 :         NTSTATUS status;
    2526             : 
    2527           5 :         if (tevent_req_is_nterror(req, &status)) {
    2528           0 :                 tevent_req_received(req);
    2529           0 :                 return status;
    2530             :         }
    2531             : 
    2532           5 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    2533             : 
    2534           5 :         tevent_req_received(req);
    2535           5 :         return NT_STATUS_OK;
    2536             : }
    2537             : 
    2538         141 : NTSTATUS dcerpc_samr_EnumDomainGroups_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct samr_EnumDomainGroups *r)
    2539             : {
    2540           0 :         NTSTATUS status;
    2541             : 
    2542         141 :         status = dcerpc_binding_handle_call(h,
    2543             :                         NULL, &ndr_table_samr,
    2544             :                         NDR_SAMR_ENUMDOMAINGROUPS, mem_ctx, r);
    2545             : 
    2546         141 :         return status;
    2547             : }
    2548             : 
    2549             : struct dcerpc_samr_EnumDomainGroups_state {
    2550             :         struct samr_EnumDomainGroups orig;
    2551             :         struct samr_EnumDomainGroups tmp;
    2552             :         TALLOC_CTX *out_mem_ctx;
    2553             : };
    2554             : 
    2555             : static void dcerpc_samr_EnumDomainGroups_done(struct tevent_req *subreq);
    2556             : 
    2557           0 : struct tevent_req *dcerpc_samr_EnumDomainGroups_send(TALLOC_CTX *mem_ctx,
    2558             :                                                      struct tevent_context *ev,
    2559             :                                                      struct dcerpc_binding_handle *h,
    2560             :                                                      struct policy_handle *_domain_handle /* [in] [ref] */,
    2561             :                                                      uint32_t *_resume_handle /* [in,out] [ref] */,
    2562             :                                                      struct samr_SamArray **_sam /* [out] [ref] */,
    2563             :                                                      uint32_t _max_size /* [in]  */,
    2564             :                                                      uint32_t *_num_entries /* [out] [ref] */)
    2565             : {
    2566           0 :         struct tevent_req *req;
    2567           0 :         struct dcerpc_samr_EnumDomainGroups_state *state;
    2568           0 :         struct tevent_req *subreq;
    2569             : 
    2570           0 :         req = tevent_req_create(mem_ctx, &state,
    2571             :                                 struct dcerpc_samr_EnumDomainGroups_state);
    2572           0 :         if (req == NULL) {
    2573           0 :                 return NULL;
    2574             :         }
    2575           0 :         state->out_mem_ctx = NULL;
    2576             : 
    2577             :         /* In parameters */
    2578           0 :         state->orig.in.domain_handle = _domain_handle;
    2579           0 :         state->orig.in.resume_handle = _resume_handle;
    2580           0 :         state->orig.in.max_size = _max_size;
    2581             : 
    2582             :         /* Out parameters */
    2583           0 :         state->orig.out.resume_handle = _resume_handle;
    2584           0 :         state->orig.out.sam = _sam;
    2585           0 :         state->orig.out.num_entries = _num_entries;
    2586             : 
    2587             :         /* Result */
    2588           0 :         NDR_ZERO_STRUCT(state->orig.out.result);
    2589             : 
    2590           0 :         state->out_mem_ctx = talloc_named_const(state, 0,
    2591             :                              "dcerpc_samr_EnumDomainGroups_out_memory");
    2592           0 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
    2593           0 :                 return tevent_req_post(req, ev);
    2594             :         }
    2595             : 
    2596             :         /* make a temporary copy, that we pass to the dispatch function */
    2597           0 :         state->tmp = state->orig;
    2598             : 
    2599           0 :         subreq = dcerpc_samr_EnumDomainGroups_r_send(state, ev, h, &state->tmp);
    2600           0 :         if (tevent_req_nomem(subreq, req)) {
    2601           0 :                 return tevent_req_post(req, ev);
    2602             :         }
    2603           0 :         tevent_req_set_callback(subreq, dcerpc_samr_EnumDomainGroups_done, req);
    2604           0 :         return req;
    2605             : }
    2606             : 
    2607           0 : static void dcerpc_samr_EnumDomainGroups_done(struct tevent_req *subreq)
    2608             : {
    2609           0 :         struct tevent_req *req = tevent_req_callback_data(
    2610             :                 subreq, struct tevent_req);
    2611           0 :         struct dcerpc_samr_EnumDomainGroups_state *state = tevent_req_data(
    2612             :                 req, struct dcerpc_samr_EnumDomainGroups_state);
    2613           0 :         NTSTATUS status;
    2614           0 :         TALLOC_CTX *mem_ctx;
    2615             : 
    2616           0 :         if (state->out_mem_ctx) {
    2617           0 :                 mem_ctx = state->out_mem_ctx;
    2618             :         } else {
    2619           0 :                 mem_ctx = state;
    2620             :         }
    2621             : 
    2622           0 :         status = dcerpc_samr_EnumDomainGroups_r_recv(subreq, mem_ctx);
    2623           0 :         TALLOC_FREE(subreq);
    2624           0 :         if (tevent_req_nterror(req, status)) {
    2625           0 :                 return;
    2626             :         }
    2627             : 
    2628             :         /* Copy out parameters */
    2629           0 :         *state->orig.out.resume_handle = *state->tmp.out.resume_handle;
    2630           0 :         *state->orig.out.sam = *state->tmp.out.sam;
    2631           0 :         *state->orig.out.num_entries = *state->tmp.out.num_entries;
    2632             : 
    2633             :         /* Copy result */
    2634           0 :         state->orig.out.result = state->tmp.out.result;
    2635             : 
    2636             :         /* Reset temporary structure */
    2637           0 :         NDR_ZERO_STRUCT(state->tmp);
    2638             : 
    2639           0 :         tevent_req_done(req);
    2640             : }
    2641             : 
    2642           0 : NTSTATUS dcerpc_samr_EnumDomainGroups_recv(struct tevent_req *req,
    2643             :                                            TALLOC_CTX *mem_ctx,
    2644             :                                            NTSTATUS *result)
    2645             : {
    2646           0 :         struct dcerpc_samr_EnumDomainGroups_state *state = tevent_req_data(
    2647             :                 req, struct dcerpc_samr_EnumDomainGroups_state);
    2648           0 :         NTSTATUS status;
    2649             : 
    2650           0 :         if (tevent_req_is_nterror(req, &status)) {
    2651           0 :                 tevent_req_received(req);
    2652           0 :                 return status;
    2653             :         }
    2654             : 
    2655             :         /* Steal possible out parameters to the callers context */
    2656           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    2657             : 
    2658             :         /* Return result */
    2659           0 :         *result = state->orig.out.result;
    2660             : 
    2661           0 :         tevent_req_received(req);
    2662           0 :         return NT_STATUS_OK;
    2663             : }
    2664             : 
    2665           0 : NTSTATUS dcerpc_samr_EnumDomainGroups(struct dcerpc_binding_handle *h,
    2666             :                                       TALLOC_CTX *mem_ctx,
    2667             :                                       struct policy_handle *_domain_handle /* [in] [ref] */,
    2668             :                                       uint32_t *_resume_handle /* [in,out] [ref] */,
    2669             :                                       struct samr_SamArray **_sam /* [out] [ref] */,
    2670             :                                       uint32_t _max_size /* [in]  */,
    2671             :                                       uint32_t *_num_entries /* [out] [ref] */,
    2672             :                                       NTSTATUS *result)
    2673             : {
    2674           0 :         struct samr_EnumDomainGroups r;
    2675           0 :         NTSTATUS status;
    2676             : 
    2677             :         /* In parameters */
    2678           0 :         r.in.domain_handle = _domain_handle;
    2679           0 :         r.in.resume_handle = _resume_handle;
    2680           0 :         r.in.max_size = _max_size;
    2681             : 
    2682             :         /* Out parameters */
    2683           0 :         r.out.resume_handle = _resume_handle;
    2684           0 :         r.out.sam = _sam;
    2685           0 :         r.out.num_entries = _num_entries;
    2686             : 
    2687             :         /* Result */
    2688           0 :         NDR_ZERO_STRUCT(r.out.result);
    2689             : 
    2690           0 :         status = dcerpc_samr_EnumDomainGroups_r(h, mem_ctx, &r);
    2691           0 :         if (!NT_STATUS_IS_OK(status)) {
    2692           0 :                 return status;
    2693             :         }
    2694             : 
    2695             :         /* Return variables */
    2696           0 :         *_resume_handle = *r.out.resume_handle;
    2697           0 :         *_sam = *r.out.sam;
    2698           0 :         *_num_entries = *r.out.num_entries;
    2699             : 
    2700             :         /* Return result */
    2701           0 :         *result = r.out.result;
    2702             : 
    2703           0 :         return NT_STATUS_OK;
    2704             : }
    2705             : 
    2706             : struct dcerpc_samr_CreateUser_r_state {
    2707             :         TALLOC_CTX *out_mem_ctx;
    2708             : };
    2709             : 
    2710             : static void dcerpc_samr_CreateUser_r_done(struct tevent_req *subreq);
    2711             : 
    2712           3 : struct tevent_req *dcerpc_samr_CreateUser_r_send(TALLOC_CTX *mem_ctx,
    2713             :         struct tevent_context *ev,
    2714             :         struct dcerpc_binding_handle *h,
    2715             :         struct samr_CreateUser *r)
    2716             : {
    2717           0 :         struct tevent_req *req;
    2718           0 :         struct dcerpc_samr_CreateUser_r_state *state;
    2719           0 :         struct tevent_req *subreq;
    2720             : 
    2721           3 :         req = tevent_req_create(mem_ctx, &state,
    2722             :                                 struct dcerpc_samr_CreateUser_r_state);
    2723           3 :         if (req == NULL) {
    2724           0 :                 return NULL;
    2725             :         }
    2726             : 
    2727           3 :         state->out_mem_ctx = talloc_new(state);
    2728           3 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
    2729           0 :                 return tevent_req_post(req, ev);
    2730             :         }
    2731             : 
    2732           3 :         subreq = dcerpc_binding_handle_call_send(state, ev, h,
    2733             :                         NULL, &ndr_table_samr,
    2734           3 :                         NDR_SAMR_CREATEUSER, state->out_mem_ctx, r);
    2735           3 :         if (tevent_req_nomem(subreq, req)) {
    2736           0 :                 return tevent_req_post(req, ev);
    2737             :         }
    2738           3 :         tevent_req_set_callback(subreq, dcerpc_samr_CreateUser_r_done, req);
    2739             : 
    2740           3 :         return req;
    2741             : }
    2742             : 
    2743           3 : static void dcerpc_samr_CreateUser_r_done(struct tevent_req *subreq)
    2744             : {
    2745           0 :         struct tevent_req *req =
    2746           3 :                 tevent_req_callback_data(subreq,
    2747             :                 struct tevent_req);
    2748           0 :         NTSTATUS status;
    2749             : 
    2750           3 :         status = dcerpc_binding_handle_call_recv(subreq);
    2751           3 :         TALLOC_FREE(subreq);
    2752           3 :         if (tevent_req_nterror(req, status)) {
    2753           0 :                 return;
    2754             :         }
    2755             : 
    2756           3 :         tevent_req_done(req);
    2757             : }
    2758             : 
    2759           3 : NTSTATUS dcerpc_samr_CreateUser_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
    2760             : {
    2761           0 :         struct dcerpc_samr_CreateUser_r_state *state =
    2762           3 :                 tevent_req_data(req,
    2763             :                 struct dcerpc_samr_CreateUser_r_state);
    2764           0 :         NTSTATUS status;
    2765             : 
    2766           3 :         if (tevent_req_is_nterror(req, &status)) {
    2767           0 :                 tevent_req_received(req);
    2768           0 :                 return status;
    2769             :         }
    2770             : 
    2771           3 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    2772             : 
    2773           3 :         tevent_req_received(req);
    2774           3 :         return NT_STATUS_OK;
    2775             : }
    2776             : 
    2777        1566 : NTSTATUS dcerpc_samr_CreateUser_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct samr_CreateUser *r)
    2778             : {
    2779           0 :         NTSTATUS status;
    2780             : 
    2781        1566 :         status = dcerpc_binding_handle_call(h,
    2782             :                         NULL, &ndr_table_samr,
    2783             :                         NDR_SAMR_CREATEUSER, mem_ctx, r);
    2784             : 
    2785        1566 :         return status;
    2786             : }
    2787             : 
    2788             : struct dcerpc_samr_CreateUser_state {
    2789             :         struct samr_CreateUser orig;
    2790             :         struct samr_CreateUser tmp;
    2791             :         TALLOC_CTX *out_mem_ctx;
    2792             : };
    2793             : 
    2794             : static void dcerpc_samr_CreateUser_done(struct tevent_req *subreq);
    2795             : 
    2796           0 : struct tevent_req *dcerpc_samr_CreateUser_send(TALLOC_CTX *mem_ctx,
    2797             :                                                struct tevent_context *ev,
    2798             :                                                struct dcerpc_binding_handle *h,
    2799             :                                                struct policy_handle *_domain_handle /* [in] [ref] */,
    2800             :                                                struct lsa_String *_account_name /* [in] [ref] */,
    2801             :                                                uint32_t _access_mask /* [in]  */,
    2802             :                                                struct policy_handle *_user_handle /* [out] [ref] */,
    2803             :                                                uint32_t *_rid /* [out] [ref] */)
    2804             : {
    2805           0 :         struct tevent_req *req;
    2806           0 :         struct dcerpc_samr_CreateUser_state *state;
    2807           0 :         struct tevent_req *subreq;
    2808             : 
    2809           0 :         req = tevent_req_create(mem_ctx, &state,
    2810             :                                 struct dcerpc_samr_CreateUser_state);
    2811           0 :         if (req == NULL) {
    2812           0 :                 return NULL;
    2813             :         }
    2814           0 :         state->out_mem_ctx = NULL;
    2815             : 
    2816             :         /* In parameters */
    2817           0 :         state->orig.in.domain_handle = _domain_handle;
    2818           0 :         state->orig.in.account_name = _account_name;
    2819           0 :         state->orig.in.access_mask = _access_mask;
    2820             : 
    2821             :         /* Out parameters */
    2822           0 :         state->orig.out.user_handle = _user_handle;
    2823           0 :         state->orig.out.rid = _rid;
    2824             : 
    2825             :         /* Result */
    2826           0 :         NDR_ZERO_STRUCT(state->orig.out.result);
    2827             : 
    2828           0 :         state->out_mem_ctx = talloc_named_const(state, 0,
    2829             :                              "dcerpc_samr_CreateUser_out_memory");
    2830           0 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
    2831           0 :                 return tevent_req_post(req, ev);
    2832             :         }
    2833             : 
    2834             :         /* make a temporary copy, that we pass to the dispatch function */
    2835           0 :         state->tmp = state->orig;
    2836             : 
    2837           0 :         subreq = dcerpc_samr_CreateUser_r_send(state, ev, h, &state->tmp);
    2838           0 :         if (tevent_req_nomem(subreq, req)) {
    2839           0 :                 return tevent_req_post(req, ev);
    2840             :         }
    2841           0 :         tevent_req_set_callback(subreq, dcerpc_samr_CreateUser_done, req);
    2842           0 :         return req;
    2843             : }
    2844             : 
    2845           0 : static void dcerpc_samr_CreateUser_done(struct tevent_req *subreq)
    2846             : {
    2847           0 :         struct tevent_req *req = tevent_req_callback_data(
    2848             :                 subreq, struct tevent_req);
    2849           0 :         struct dcerpc_samr_CreateUser_state *state = tevent_req_data(
    2850             :                 req, struct dcerpc_samr_CreateUser_state);
    2851           0 :         NTSTATUS status;
    2852           0 :         TALLOC_CTX *mem_ctx;
    2853             : 
    2854           0 :         if (state->out_mem_ctx) {
    2855           0 :                 mem_ctx = state->out_mem_ctx;
    2856             :         } else {
    2857           0 :                 mem_ctx = state;
    2858             :         }
    2859             : 
    2860           0 :         status = dcerpc_samr_CreateUser_r_recv(subreq, mem_ctx);
    2861           0 :         TALLOC_FREE(subreq);
    2862           0 :         if (tevent_req_nterror(req, status)) {
    2863           0 :                 return;
    2864             :         }
    2865             : 
    2866             :         /* Copy out parameters */
    2867           0 :         *state->orig.out.user_handle = *state->tmp.out.user_handle;
    2868           0 :         *state->orig.out.rid = *state->tmp.out.rid;
    2869             : 
    2870             :         /* Copy result */
    2871           0 :         state->orig.out.result = state->tmp.out.result;
    2872             : 
    2873             :         /* Reset temporary structure */
    2874           0 :         NDR_ZERO_STRUCT(state->tmp);
    2875             : 
    2876           0 :         tevent_req_done(req);
    2877             : }
    2878             : 
    2879           0 : NTSTATUS dcerpc_samr_CreateUser_recv(struct tevent_req *req,
    2880             :                                      TALLOC_CTX *mem_ctx,
    2881             :                                      NTSTATUS *result)
    2882             : {
    2883           0 :         struct dcerpc_samr_CreateUser_state *state = tevent_req_data(
    2884             :                 req, struct dcerpc_samr_CreateUser_state);
    2885           0 :         NTSTATUS status;
    2886             : 
    2887           0 :         if (tevent_req_is_nterror(req, &status)) {
    2888           0 :                 tevent_req_received(req);
    2889           0 :                 return status;
    2890             :         }
    2891             : 
    2892             :         /* Steal possible out parameters to the callers context */
    2893           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    2894             : 
    2895             :         /* Return result */
    2896           0 :         *result = state->orig.out.result;
    2897             : 
    2898           0 :         tevent_req_received(req);
    2899           0 :         return NT_STATUS_OK;
    2900             : }
    2901             : 
    2902           0 : NTSTATUS dcerpc_samr_CreateUser(struct dcerpc_binding_handle *h,
    2903             :                                 TALLOC_CTX *mem_ctx,
    2904             :                                 struct policy_handle *_domain_handle /* [in] [ref] */,
    2905             :                                 struct lsa_String *_account_name /* [in] [ref] */,
    2906             :                                 uint32_t _access_mask /* [in]  */,
    2907             :                                 struct policy_handle *_user_handle /* [out] [ref] */,
    2908             :                                 uint32_t *_rid /* [out] [ref] */,
    2909             :                                 NTSTATUS *result)
    2910             : {
    2911           0 :         struct samr_CreateUser r;
    2912           0 :         NTSTATUS status;
    2913             : 
    2914             :         /* In parameters */
    2915           0 :         r.in.domain_handle = _domain_handle;
    2916           0 :         r.in.account_name = _account_name;
    2917           0 :         r.in.access_mask = _access_mask;
    2918             : 
    2919             :         /* Out parameters */
    2920           0 :         r.out.user_handle = _user_handle;
    2921           0 :         r.out.rid = _rid;
    2922             : 
    2923             :         /* Result */
    2924           0 :         NDR_ZERO_STRUCT(r.out.result);
    2925             : 
    2926           0 :         status = dcerpc_samr_CreateUser_r(h, mem_ctx, &r);
    2927           0 :         if (!NT_STATUS_IS_OK(status)) {
    2928           0 :                 return status;
    2929             :         }
    2930             : 
    2931             :         /* Return variables */
    2932           0 :         *_user_handle = *r.out.user_handle;
    2933           0 :         *_rid = *r.out.rid;
    2934             : 
    2935             :         /* Return result */
    2936           0 :         *result = r.out.result;
    2937             : 
    2938           0 :         return NT_STATUS_OK;
    2939             : }
    2940             : 
    2941             : struct dcerpc_samr_EnumDomainUsers_r_state {
    2942             :         TALLOC_CTX *out_mem_ctx;
    2943             : };
    2944             : 
    2945             : static void dcerpc_samr_EnumDomainUsers_r_done(struct tevent_req *subreq);
    2946             : 
    2947           4 : struct tevent_req *dcerpc_samr_EnumDomainUsers_r_send(TALLOC_CTX *mem_ctx,
    2948             :         struct tevent_context *ev,
    2949             :         struct dcerpc_binding_handle *h,
    2950             :         struct samr_EnumDomainUsers *r)
    2951             : {
    2952           0 :         struct tevent_req *req;
    2953           0 :         struct dcerpc_samr_EnumDomainUsers_r_state *state;
    2954           0 :         struct tevent_req *subreq;
    2955             : 
    2956           4 :         req = tevent_req_create(mem_ctx, &state,
    2957             :                                 struct dcerpc_samr_EnumDomainUsers_r_state);
    2958           4 :         if (req == NULL) {
    2959           0 :                 return NULL;
    2960             :         }
    2961             : 
    2962           4 :         state->out_mem_ctx = talloc_new(state);
    2963           4 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
    2964           0 :                 return tevent_req_post(req, ev);
    2965             :         }
    2966             : 
    2967           4 :         subreq = dcerpc_binding_handle_call_send(state, ev, h,
    2968             :                         NULL, &ndr_table_samr,
    2969           4 :                         NDR_SAMR_ENUMDOMAINUSERS, state->out_mem_ctx, r);
    2970           4 :         if (tevent_req_nomem(subreq, req)) {
    2971           0 :                 return tevent_req_post(req, ev);
    2972             :         }
    2973           4 :         tevent_req_set_callback(subreq, dcerpc_samr_EnumDomainUsers_r_done, req);
    2974             : 
    2975           4 :         return req;
    2976             : }
    2977             : 
    2978           4 : static void dcerpc_samr_EnumDomainUsers_r_done(struct tevent_req *subreq)
    2979             : {
    2980           0 :         struct tevent_req *req =
    2981           4 :                 tevent_req_callback_data(subreq,
    2982             :                 struct tevent_req);
    2983           0 :         NTSTATUS status;
    2984             : 
    2985           4 :         status = dcerpc_binding_handle_call_recv(subreq);
    2986           4 :         TALLOC_FREE(subreq);
    2987           4 :         if (tevent_req_nterror(req, status)) {
    2988           0 :                 return;
    2989             :         }
    2990             : 
    2991           4 :         tevent_req_done(req);
    2992             : }
    2993             : 
    2994           4 : NTSTATUS dcerpc_samr_EnumDomainUsers_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
    2995             : {
    2996           0 :         struct dcerpc_samr_EnumDomainUsers_r_state *state =
    2997           4 :                 tevent_req_data(req,
    2998             :                 struct dcerpc_samr_EnumDomainUsers_r_state);
    2999           0 :         NTSTATUS status;
    3000             : 
    3001           4 :         if (tevent_req_is_nterror(req, &status)) {
    3002           0 :                 tevent_req_received(req);
    3003           0 :                 return status;
    3004             :         }
    3005             : 
    3006           4 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    3007             : 
    3008           4 :         tevent_req_received(req);
    3009           4 :         return NT_STATUS_OK;
    3010             : }
    3011             : 
    3012         150 : NTSTATUS dcerpc_samr_EnumDomainUsers_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct samr_EnumDomainUsers *r)
    3013             : {
    3014           0 :         NTSTATUS status;
    3015             : 
    3016         150 :         status = dcerpc_binding_handle_call(h,
    3017             :                         NULL, &ndr_table_samr,
    3018             :                         NDR_SAMR_ENUMDOMAINUSERS, mem_ctx, r);
    3019             : 
    3020         150 :         return status;
    3021             : }
    3022             : 
    3023             : struct dcerpc_samr_EnumDomainUsers_state {
    3024             :         struct samr_EnumDomainUsers orig;
    3025             :         struct samr_EnumDomainUsers tmp;
    3026             :         TALLOC_CTX *out_mem_ctx;
    3027             : };
    3028             : 
    3029             : static void dcerpc_samr_EnumDomainUsers_done(struct tevent_req *subreq);
    3030             : 
    3031           0 : struct tevent_req *dcerpc_samr_EnumDomainUsers_send(TALLOC_CTX *mem_ctx,
    3032             :                                                     struct tevent_context *ev,
    3033             :                                                     struct dcerpc_binding_handle *h,
    3034             :                                                     struct policy_handle *_domain_handle /* [in] [ref] */,
    3035             :                                                     uint32_t *_resume_handle /* [in,out] [ref] */,
    3036             :                                                     uint32_t _acct_flags /* [in]  */,
    3037             :                                                     struct samr_SamArray **_sam /* [out] [ref] */,
    3038             :                                                     uint32_t _max_size /* [in]  */,
    3039             :                                                     uint32_t *_num_entries /* [out] [ref] */)
    3040             : {
    3041           0 :         struct tevent_req *req;
    3042           0 :         struct dcerpc_samr_EnumDomainUsers_state *state;
    3043           0 :         struct tevent_req *subreq;
    3044             : 
    3045           0 :         req = tevent_req_create(mem_ctx, &state,
    3046             :                                 struct dcerpc_samr_EnumDomainUsers_state);
    3047           0 :         if (req == NULL) {
    3048           0 :                 return NULL;
    3049             :         }
    3050           0 :         state->out_mem_ctx = NULL;
    3051             : 
    3052             :         /* In parameters */
    3053           0 :         state->orig.in.domain_handle = _domain_handle;
    3054           0 :         state->orig.in.resume_handle = _resume_handle;
    3055           0 :         state->orig.in.acct_flags = _acct_flags;
    3056           0 :         state->orig.in.max_size = _max_size;
    3057             : 
    3058             :         /* Out parameters */
    3059           0 :         state->orig.out.resume_handle = _resume_handle;
    3060           0 :         state->orig.out.sam = _sam;
    3061           0 :         state->orig.out.num_entries = _num_entries;
    3062             : 
    3063             :         /* Result */
    3064           0 :         NDR_ZERO_STRUCT(state->orig.out.result);
    3065             : 
    3066           0 :         state->out_mem_ctx = talloc_named_const(state, 0,
    3067             :                              "dcerpc_samr_EnumDomainUsers_out_memory");
    3068           0 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
    3069           0 :                 return tevent_req_post(req, ev);
    3070             :         }
    3071             : 
    3072             :         /* make a temporary copy, that we pass to the dispatch function */
    3073           0 :         state->tmp = state->orig;
    3074             : 
    3075           0 :         subreq = dcerpc_samr_EnumDomainUsers_r_send(state, ev, h, &state->tmp);
    3076           0 :         if (tevent_req_nomem(subreq, req)) {
    3077           0 :                 return tevent_req_post(req, ev);
    3078             :         }
    3079           0 :         tevent_req_set_callback(subreq, dcerpc_samr_EnumDomainUsers_done, req);
    3080           0 :         return req;
    3081             : }
    3082             : 
    3083           0 : static void dcerpc_samr_EnumDomainUsers_done(struct tevent_req *subreq)
    3084             : {
    3085           0 :         struct tevent_req *req = tevent_req_callback_data(
    3086             :                 subreq, struct tevent_req);
    3087           0 :         struct dcerpc_samr_EnumDomainUsers_state *state = tevent_req_data(
    3088             :                 req, struct dcerpc_samr_EnumDomainUsers_state);
    3089           0 :         NTSTATUS status;
    3090           0 :         TALLOC_CTX *mem_ctx;
    3091             : 
    3092           0 :         if (state->out_mem_ctx) {
    3093           0 :                 mem_ctx = state->out_mem_ctx;
    3094             :         } else {
    3095           0 :                 mem_ctx = state;
    3096             :         }
    3097             : 
    3098           0 :         status = dcerpc_samr_EnumDomainUsers_r_recv(subreq, mem_ctx);
    3099           0 :         TALLOC_FREE(subreq);
    3100           0 :         if (tevent_req_nterror(req, status)) {
    3101           0 :                 return;
    3102             :         }
    3103             : 
    3104             :         /* Copy out parameters */
    3105           0 :         *state->orig.out.resume_handle = *state->tmp.out.resume_handle;
    3106           0 :         *state->orig.out.sam = *state->tmp.out.sam;
    3107           0 :         *state->orig.out.num_entries = *state->tmp.out.num_entries;
    3108             : 
    3109             :         /* Copy result */
    3110           0 :         state->orig.out.result = state->tmp.out.result;
    3111             : 
    3112             :         /* Reset temporary structure */
    3113           0 :         NDR_ZERO_STRUCT(state->tmp);
    3114             : 
    3115           0 :         tevent_req_done(req);
    3116             : }
    3117             : 
    3118           0 : NTSTATUS dcerpc_samr_EnumDomainUsers_recv(struct tevent_req *req,
    3119             :                                           TALLOC_CTX *mem_ctx,
    3120             :                                           NTSTATUS *result)
    3121             : {
    3122           0 :         struct dcerpc_samr_EnumDomainUsers_state *state = tevent_req_data(
    3123             :                 req, struct dcerpc_samr_EnumDomainUsers_state);
    3124           0 :         NTSTATUS status;
    3125             : 
    3126           0 :         if (tevent_req_is_nterror(req, &status)) {
    3127           0 :                 tevent_req_received(req);
    3128           0 :                 return status;
    3129             :         }
    3130             : 
    3131             :         /* Steal possible out parameters to the callers context */
    3132           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    3133             : 
    3134             :         /* Return result */
    3135           0 :         *result = state->orig.out.result;
    3136             : 
    3137           0 :         tevent_req_received(req);
    3138           0 :         return NT_STATUS_OK;
    3139             : }
    3140             : 
    3141           9 : NTSTATUS dcerpc_samr_EnumDomainUsers(struct dcerpc_binding_handle *h,
    3142             :                                      TALLOC_CTX *mem_ctx,
    3143             :                                      struct policy_handle *_domain_handle /* [in] [ref] */,
    3144             :                                      uint32_t *_resume_handle /* [in,out] [ref] */,
    3145             :                                      uint32_t _acct_flags /* [in]  */,
    3146             :                                      struct samr_SamArray **_sam /* [out] [ref] */,
    3147             :                                      uint32_t _max_size /* [in]  */,
    3148             :                                      uint32_t *_num_entries /* [out] [ref] */,
    3149             :                                      NTSTATUS *result)
    3150             : {
    3151           0 :         struct samr_EnumDomainUsers r;
    3152           0 :         NTSTATUS status;
    3153             : 
    3154             :         /* In parameters */
    3155           9 :         r.in.domain_handle = _domain_handle;
    3156           9 :         r.in.resume_handle = _resume_handle;
    3157           9 :         r.in.acct_flags = _acct_flags;
    3158           9 :         r.in.max_size = _max_size;
    3159             : 
    3160             :         /* Out parameters */
    3161           9 :         r.out.resume_handle = _resume_handle;
    3162           9 :         r.out.sam = _sam;
    3163           9 :         r.out.num_entries = _num_entries;
    3164             : 
    3165             :         /* Result */
    3166           9 :         NDR_ZERO_STRUCT(r.out.result);
    3167             : 
    3168           9 :         status = dcerpc_samr_EnumDomainUsers_r(h, mem_ctx, &r);
    3169           9 :         if (!NT_STATUS_IS_OK(status)) {
    3170           0 :                 return status;
    3171             :         }
    3172             : 
    3173             :         /* Return variables */
    3174           9 :         *_resume_handle = *r.out.resume_handle;
    3175           9 :         *_sam = *r.out.sam;
    3176           9 :         *_num_entries = *r.out.num_entries;
    3177             : 
    3178             :         /* Return result */
    3179           9 :         *result = r.out.result;
    3180             : 
    3181           9 :         return NT_STATUS_OK;
    3182             : }
    3183             : 
    3184             : struct dcerpc_samr_CreateDomAlias_r_state {
    3185             :         TALLOC_CTX *out_mem_ctx;
    3186             : };
    3187             : 
    3188             : static void dcerpc_samr_CreateDomAlias_r_done(struct tevent_req *subreq);
    3189             : 
    3190           0 : struct tevent_req *dcerpc_samr_CreateDomAlias_r_send(TALLOC_CTX *mem_ctx,
    3191             :         struct tevent_context *ev,
    3192             :         struct dcerpc_binding_handle *h,
    3193             :         struct samr_CreateDomAlias *r)
    3194             : {
    3195           0 :         struct tevent_req *req;
    3196           0 :         struct dcerpc_samr_CreateDomAlias_r_state *state;
    3197           0 :         struct tevent_req *subreq;
    3198             : 
    3199           0 :         req = tevent_req_create(mem_ctx, &state,
    3200             :                                 struct dcerpc_samr_CreateDomAlias_r_state);
    3201           0 :         if (req == NULL) {
    3202           0 :                 return NULL;
    3203             :         }
    3204             : 
    3205           0 :         state->out_mem_ctx = talloc_new(state);
    3206           0 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
    3207           0 :                 return tevent_req_post(req, ev);
    3208             :         }
    3209             : 
    3210           0 :         subreq = dcerpc_binding_handle_call_send(state, ev, h,
    3211             :                         NULL, &ndr_table_samr,
    3212           0 :                         NDR_SAMR_CREATEDOMALIAS, state->out_mem_ctx, r);
    3213           0 :         if (tevent_req_nomem(subreq, req)) {
    3214           0 :                 return tevent_req_post(req, ev);
    3215             :         }
    3216           0 :         tevent_req_set_callback(subreq, dcerpc_samr_CreateDomAlias_r_done, req);
    3217             : 
    3218           0 :         return req;
    3219             : }
    3220             : 
    3221           0 : static void dcerpc_samr_CreateDomAlias_r_done(struct tevent_req *subreq)
    3222             : {
    3223           0 :         struct tevent_req *req =
    3224           0 :                 tevent_req_callback_data(subreq,
    3225             :                 struct tevent_req);
    3226           0 :         NTSTATUS status;
    3227             : 
    3228           0 :         status = dcerpc_binding_handle_call_recv(subreq);
    3229           0 :         TALLOC_FREE(subreq);
    3230           0 :         if (tevent_req_nterror(req, status)) {
    3231           0 :                 return;
    3232             :         }
    3233             : 
    3234           0 :         tevent_req_done(req);
    3235             : }
    3236             : 
    3237           0 : NTSTATUS dcerpc_samr_CreateDomAlias_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
    3238             : {
    3239           0 :         struct dcerpc_samr_CreateDomAlias_r_state *state =
    3240           0 :                 tevent_req_data(req,
    3241             :                 struct dcerpc_samr_CreateDomAlias_r_state);
    3242           0 :         NTSTATUS status;
    3243             : 
    3244           0 :         if (tevent_req_is_nterror(req, &status)) {
    3245           0 :                 tevent_req_received(req);
    3246           0 :                 return status;
    3247             :         }
    3248             : 
    3249           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    3250             : 
    3251           0 :         tevent_req_received(req);
    3252           0 :         return NT_STATUS_OK;
    3253             : }
    3254             : 
    3255        1510 : NTSTATUS dcerpc_samr_CreateDomAlias_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct samr_CreateDomAlias *r)
    3256             : {
    3257           0 :         NTSTATUS status;
    3258             : 
    3259        1510 :         status = dcerpc_binding_handle_call(h,
    3260             :                         NULL, &ndr_table_samr,
    3261             :                         NDR_SAMR_CREATEDOMALIAS, mem_ctx, r);
    3262             : 
    3263        1510 :         return status;
    3264             : }
    3265             : 
    3266             : struct dcerpc_samr_CreateDomAlias_state {
    3267             :         struct samr_CreateDomAlias orig;
    3268             :         struct samr_CreateDomAlias tmp;
    3269             :         TALLOC_CTX *out_mem_ctx;
    3270             : };
    3271             : 
    3272             : static void dcerpc_samr_CreateDomAlias_done(struct tevent_req *subreq);
    3273             : 
    3274           0 : struct tevent_req *dcerpc_samr_CreateDomAlias_send(TALLOC_CTX *mem_ctx,
    3275             :                                                    struct tevent_context *ev,
    3276             :                                                    struct dcerpc_binding_handle *h,
    3277             :                                                    struct policy_handle *_domain_handle /* [in] [ref] */,
    3278             :                                                    struct lsa_String *_alias_name /* [in] [ref] */,
    3279             :                                                    uint32_t _access_mask /* [in]  */,
    3280             :                                                    struct policy_handle *_alias_handle /* [out] [ref] */,
    3281             :                                                    uint32_t *_rid /* [out] [ref] */)
    3282             : {
    3283           0 :         struct tevent_req *req;
    3284           0 :         struct dcerpc_samr_CreateDomAlias_state *state;
    3285           0 :         struct tevent_req *subreq;
    3286             : 
    3287           0 :         req = tevent_req_create(mem_ctx, &state,
    3288             :                                 struct dcerpc_samr_CreateDomAlias_state);
    3289           0 :         if (req == NULL) {
    3290           0 :                 return NULL;
    3291             :         }
    3292           0 :         state->out_mem_ctx = NULL;
    3293             : 
    3294             :         /* In parameters */
    3295           0 :         state->orig.in.domain_handle = _domain_handle;
    3296           0 :         state->orig.in.alias_name = _alias_name;
    3297           0 :         state->orig.in.access_mask = _access_mask;
    3298             : 
    3299             :         /* Out parameters */
    3300           0 :         state->orig.out.alias_handle = _alias_handle;
    3301           0 :         state->orig.out.rid = _rid;
    3302             : 
    3303             :         /* Result */
    3304           0 :         NDR_ZERO_STRUCT(state->orig.out.result);
    3305             : 
    3306           0 :         state->out_mem_ctx = talloc_named_const(state, 0,
    3307             :                              "dcerpc_samr_CreateDomAlias_out_memory");
    3308           0 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
    3309           0 :                 return tevent_req_post(req, ev);
    3310             :         }
    3311             : 
    3312             :         /* make a temporary copy, that we pass to the dispatch function */
    3313           0 :         state->tmp = state->orig;
    3314             : 
    3315           0 :         subreq = dcerpc_samr_CreateDomAlias_r_send(state, ev, h, &state->tmp);
    3316           0 :         if (tevent_req_nomem(subreq, req)) {
    3317           0 :                 return tevent_req_post(req, ev);
    3318             :         }
    3319           0 :         tevent_req_set_callback(subreq, dcerpc_samr_CreateDomAlias_done, req);
    3320           0 :         return req;
    3321             : }
    3322             : 
    3323           0 : static void dcerpc_samr_CreateDomAlias_done(struct tevent_req *subreq)
    3324             : {
    3325           0 :         struct tevent_req *req = tevent_req_callback_data(
    3326             :                 subreq, struct tevent_req);
    3327           0 :         struct dcerpc_samr_CreateDomAlias_state *state = tevent_req_data(
    3328             :                 req, struct dcerpc_samr_CreateDomAlias_state);
    3329           0 :         NTSTATUS status;
    3330           0 :         TALLOC_CTX *mem_ctx;
    3331             : 
    3332           0 :         if (state->out_mem_ctx) {
    3333           0 :                 mem_ctx = state->out_mem_ctx;
    3334             :         } else {
    3335           0 :                 mem_ctx = state;
    3336             :         }
    3337             : 
    3338           0 :         status = dcerpc_samr_CreateDomAlias_r_recv(subreq, mem_ctx);
    3339           0 :         TALLOC_FREE(subreq);
    3340           0 :         if (tevent_req_nterror(req, status)) {
    3341           0 :                 return;
    3342             :         }
    3343             : 
    3344             :         /* Copy out parameters */
    3345           0 :         *state->orig.out.alias_handle = *state->tmp.out.alias_handle;
    3346           0 :         *state->orig.out.rid = *state->tmp.out.rid;
    3347             : 
    3348             :         /* Copy result */
    3349           0 :         state->orig.out.result = state->tmp.out.result;
    3350             : 
    3351             :         /* Reset temporary structure */
    3352           0 :         NDR_ZERO_STRUCT(state->tmp);
    3353             : 
    3354           0 :         tevent_req_done(req);
    3355             : }
    3356             : 
    3357           0 : NTSTATUS dcerpc_samr_CreateDomAlias_recv(struct tevent_req *req,
    3358             :                                          TALLOC_CTX *mem_ctx,
    3359             :                                          NTSTATUS *result)
    3360             : {
    3361           0 :         struct dcerpc_samr_CreateDomAlias_state *state = tevent_req_data(
    3362             :                 req, struct dcerpc_samr_CreateDomAlias_state);
    3363           0 :         NTSTATUS status;
    3364             : 
    3365           0 :         if (tevent_req_is_nterror(req, &status)) {
    3366           0 :                 tevent_req_received(req);
    3367           0 :                 return status;
    3368             :         }
    3369             : 
    3370             :         /* Steal possible out parameters to the callers context */
    3371           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    3372             : 
    3373             :         /* Return result */
    3374           0 :         *result = state->orig.out.result;
    3375             : 
    3376           0 :         tevent_req_received(req);
    3377           0 :         return NT_STATUS_OK;
    3378             : }
    3379             : 
    3380           0 : NTSTATUS dcerpc_samr_CreateDomAlias(struct dcerpc_binding_handle *h,
    3381             :                                     TALLOC_CTX *mem_ctx,
    3382             :                                     struct policy_handle *_domain_handle /* [in] [ref] */,
    3383             :                                     struct lsa_String *_alias_name /* [in] [ref] */,
    3384             :                                     uint32_t _access_mask /* [in]  */,
    3385             :                                     struct policy_handle *_alias_handle /* [out] [ref] */,
    3386             :                                     uint32_t *_rid /* [out] [ref] */,
    3387             :                                     NTSTATUS *result)
    3388             : {
    3389           0 :         struct samr_CreateDomAlias r;
    3390           0 :         NTSTATUS status;
    3391             : 
    3392             :         /* In parameters */
    3393           0 :         r.in.domain_handle = _domain_handle;
    3394           0 :         r.in.alias_name = _alias_name;
    3395           0 :         r.in.access_mask = _access_mask;
    3396             : 
    3397             :         /* Out parameters */
    3398           0 :         r.out.alias_handle = _alias_handle;
    3399           0 :         r.out.rid = _rid;
    3400             : 
    3401             :         /* Result */
    3402           0 :         NDR_ZERO_STRUCT(r.out.result);
    3403             : 
    3404           0 :         status = dcerpc_samr_CreateDomAlias_r(h, mem_ctx, &r);
    3405           0 :         if (!NT_STATUS_IS_OK(status)) {
    3406           0 :                 return status;
    3407             :         }
    3408             : 
    3409             :         /* Return variables */
    3410           0 :         *_alias_handle = *r.out.alias_handle;
    3411           0 :         *_rid = *r.out.rid;
    3412             : 
    3413             :         /* Return result */
    3414           0 :         *result = r.out.result;
    3415             : 
    3416           0 :         return NT_STATUS_OK;
    3417             : }
    3418             : 
    3419             : struct dcerpc_samr_EnumDomainAliases_r_state {
    3420             :         TALLOC_CTX *out_mem_ctx;
    3421             : };
    3422             : 
    3423             : static void dcerpc_samr_EnumDomainAliases_r_done(struct tevent_req *subreq);
    3424             : 
    3425           0 : struct tevent_req *dcerpc_samr_EnumDomainAliases_r_send(TALLOC_CTX *mem_ctx,
    3426             :         struct tevent_context *ev,
    3427             :         struct dcerpc_binding_handle *h,
    3428             :         struct samr_EnumDomainAliases *r)
    3429             : {
    3430           0 :         struct tevent_req *req;
    3431           0 :         struct dcerpc_samr_EnumDomainAliases_r_state *state;
    3432           0 :         struct tevent_req *subreq;
    3433             : 
    3434           0 :         req = tevent_req_create(mem_ctx, &state,
    3435             :                                 struct dcerpc_samr_EnumDomainAliases_r_state);
    3436           0 :         if (req == NULL) {
    3437           0 :                 return NULL;
    3438             :         }
    3439             : 
    3440           0 :         state->out_mem_ctx = talloc_new(state);
    3441           0 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
    3442           0 :                 return tevent_req_post(req, ev);
    3443             :         }
    3444             : 
    3445           0 :         subreq = dcerpc_binding_handle_call_send(state, ev, h,
    3446             :                         NULL, &ndr_table_samr,
    3447           0 :                         NDR_SAMR_ENUMDOMAINALIASES, state->out_mem_ctx, r);
    3448           0 :         if (tevent_req_nomem(subreq, req)) {
    3449           0 :                 return tevent_req_post(req, ev);
    3450             :         }
    3451           0 :         tevent_req_set_callback(subreq, dcerpc_samr_EnumDomainAliases_r_done, req);
    3452             : 
    3453           0 :         return req;
    3454             : }
    3455             : 
    3456           0 : static void dcerpc_samr_EnumDomainAliases_r_done(struct tevent_req *subreq)
    3457             : {
    3458           0 :         struct tevent_req *req =
    3459           0 :                 tevent_req_callback_data(subreq,
    3460             :                 struct tevent_req);
    3461           0 :         NTSTATUS status;
    3462             : 
    3463           0 :         status = dcerpc_binding_handle_call_recv(subreq);
    3464           0 :         TALLOC_FREE(subreq);
    3465           0 :         if (tevent_req_nterror(req, status)) {
    3466           0 :                 return;
    3467             :         }
    3468             : 
    3469           0 :         tevent_req_done(req);
    3470             : }
    3471             : 
    3472           0 : NTSTATUS dcerpc_samr_EnumDomainAliases_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
    3473             : {
    3474           0 :         struct dcerpc_samr_EnumDomainAliases_r_state *state =
    3475           0 :                 tevent_req_data(req,
    3476             :                 struct dcerpc_samr_EnumDomainAliases_r_state);
    3477           0 :         NTSTATUS status;
    3478             : 
    3479           0 :         if (tevent_req_is_nterror(req, &status)) {
    3480           0 :                 tevent_req_received(req);
    3481           0 :                 return status;
    3482             :         }
    3483             : 
    3484           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    3485             : 
    3486           0 :         tevent_req_received(req);
    3487           0 :         return NT_STATUS_OK;
    3488             : }
    3489             : 
    3490          47 : NTSTATUS dcerpc_samr_EnumDomainAliases_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct samr_EnumDomainAliases *r)
    3491             : {
    3492           0 :         NTSTATUS status;
    3493             : 
    3494          47 :         status = dcerpc_binding_handle_call(h,
    3495             :                         NULL, &ndr_table_samr,
    3496             :                         NDR_SAMR_ENUMDOMAINALIASES, mem_ctx, r);
    3497             : 
    3498          47 :         return status;
    3499             : }
    3500             : 
    3501             : struct dcerpc_samr_EnumDomainAliases_state {
    3502             :         struct samr_EnumDomainAliases orig;
    3503             :         struct samr_EnumDomainAliases tmp;
    3504             :         TALLOC_CTX *out_mem_ctx;
    3505             : };
    3506             : 
    3507             : static void dcerpc_samr_EnumDomainAliases_done(struct tevent_req *subreq);
    3508             : 
    3509           0 : struct tevent_req *dcerpc_samr_EnumDomainAliases_send(TALLOC_CTX *mem_ctx,
    3510             :                                                       struct tevent_context *ev,
    3511             :                                                       struct dcerpc_binding_handle *h,
    3512             :                                                       struct policy_handle *_domain_handle /* [in] [ref] */,
    3513             :                                                       uint32_t *_resume_handle /* [in,out] [ref] */,
    3514             :                                                       struct samr_SamArray **_sam /* [out] [ref] */,
    3515             :                                                       uint32_t _max_size /* [in]  */,
    3516             :                                                       uint32_t *_num_entries /* [out] [ref] */)
    3517             : {
    3518           0 :         struct tevent_req *req;
    3519           0 :         struct dcerpc_samr_EnumDomainAliases_state *state;
    3520           0 :         struct tevent_req *subreq;
    3521             : 
    3522           0 :         req = tevent_req_create(mem_ctx, &state,
    3523             :                                 struct dcerpc_samr_EnumDomainAliases_state);
    3524           0 :         if (req == NULL) {
    3525           0 :                 return NULL;
    3526             :         }
    3527           0 :         state->out_mem_ctx = NULL;
    3528             : 
    3529             :         /* In parameters */
    3530           0 :         state->orig.in.domain_handle = _domain_handle;
    3531           0 :         state->orig.in.resume_handle = _resume_handle;
    3532           0 :         state->orig.in.max_size = _max_size;
    3533             : 
    3534             :         /* Out parameters */
    3535           0 :         state->orig.out.resume_handle = _resume_handle;
    3536           0 :         state->orig.out.sam = _sam;
    3537           0 :         state->orig.out.num_entries = _num_entries;
    3538             : 
    3539             :         /* Result */
    3540           0 :         NDR_ZERO_STRUCT(state->orig.out.result);
    3541             : 
    3542           0 :         state->out_mem_ctx = talloc_named_const(state, 0,
    3543             :                              "dcerpc_samr_EnumDomainAliases_out_memory");
    3544           0 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
    3545           0 :                 return tevent_req_post(req, ev);
    3546             :         }
    3547             : 
    3548             :         /* make a temporary copy, that we pass to the dispatch function */
    3549           0 :         state->tmp = state->orig;
    3550             : 
    3551           0 :         subreq = dcerpc_samr_EnumDomainAliases_r_send(state, ev, h, &state->tmp);
    3552           0 :         if (tevent_req_nomem(subreq, req)) {
    3553           0 :                 return tevent_req_post(req, ev);
    3554             :         }
    3555           0 :         tevent_req_set_callback(subreq, dcerpc_samr_EnumDomainAliases_done, req);
    3556           0 :         return req;
    3557             : }
    3558             : 
    3559           0 : static void dcerpc_samr_EnumDomainAliases_done(struct tevent_req *subreq)
    3560             : {
    3561           0 :         struct tevent_req *req = tevent_req_callback_data(
    3562             :                 subreq, struct tevent_req);
    3563           0 :         struct dcerpc_samr_EnumDomainAliases_state *state = tevent_req_data(
    3564             :                 req, struct dcerpc_samr_EnumDomainAliases_state);
    3565           0 :         NTSTATUS status;
    3566           0 :         TALLOC_CTX *mem_ctx;
    3567             : 
    3568           0 :         if (state->out_mem_ctx) {
    3569           0 :                 mem_ctx = state->out_mem_ctx;
    3570             :         } else {
    3571           0 :                 mem_ctx = state;
    3572             :         }
    3573             : 
    3574           0 :         status = dcerpc_samr_EnumDomainAliases_r_recv(subreq, mem_ctx);
    3575           0 :         TALLOC_FREE(subreq);
    3576           0 :         if (tevent_req_nterror(req, status)) {
    3577           0 :                 return;
    3578             :         }
    3579             : 
    3580             :         /* Copy out parameters */
    3581           0 :         *state->orig.out.resume_handle = *state->tmp.out.resume_handle;
    3582           0 :         *state->orig.out.sam = *state->tmp.out.sam;
    3583           0 :         *state->orig.out.num_entries = *state->tmp.out.num_entries;
    3584             : 
    3585             :         /* Copy result */
    3586           0 :         state->orig.out.result = state->tmp.out.result;
    3587             : 
    3588             :         /* Reset temporary structure */
    3589           0 :         NDR_ZERO_STRUCT(state->tmp);
    3590             : 
    3591           0 :         tevent_req_done(req);
    3592             : }
    3593             : 
    3594           0 : NTSTATUS dcerpc_samr_EnumDomainAliases_recv(struct tevent_req *req,
    3595             :                                             TALLOC_CTX *mem_ctx,
    3596             :                                             NTSTATUS *result)
    3597             : {
    3598           0 :         struct dcerpc_samr_EnumDomainAliases_state *state = tevent_req_data(
    3599             :                 req, struct dcerpc_samr_EnumDomainAliases_state);
    3600           0 :         NTSTATUS status;
    3601             : 
    3602           0 :         if (tevent_req_is_nterror(req, &status)) {
    3603           0 :                 tevent_req_received(req);
    3604           0 :                 return status;
    3605             :         }
    3606             : 
    3607             :         /* Steal possible out parameters to the callers context */
    3608           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    3609             : 
    3610             :         /* Return result */
    3611           0 :         *result = state->orig.out.result;
    3612             : 
    3613           0 :         tevent_req_received(req);
    3614           0 :         return NT_STATUS_OK;
    3615             : }
    3616             : 
    3617          16 : NTSTATUS dcerpc_samr_EnumDomainAliases(struct dcerpc_binding_handle *h,
    3618             :                                        TALLOC_CTX *mem_ctx,
    3619             :                                        struct policy_handle *_domain_handle /* [in] [ref] */,
    3620             :                                        uint32_t *_resume_handle /* [in,out] [ref] */,
    3621             :                                        struct samr_SamArray **_sam /* [out] [ref] */,
    3622             :                                        uint32_t _max_size /* [in]  */,
    3623             :                                        uint32_t *_num_entries /* [out] [ref] */,
    3624             :                                        NTSTATUS *result)
    3625             : {
    3626           0 :         struct samr_EnumDomainAliases r;
    3627           0 :         NTSTATUS status;
    3628             : 
    3629             :         /* In parameters */
    3630          16 :         r.in.domain_handle = _domain_handle;
    3631          16 :         r.in.resume_handle = _resume_handle;
    3632          16 :         r.in.max_size = _max_size;
    3633             : 
    3634             :         /* Out parameters */
    3635          16 :         r.out.resume_handle = _resume_handle;
    3636          16 :         r.out.sam = _sam;
    3637          16 :         r.out.num_entries = _num_entries;
    3638             : 
    3639             :         /* Result */
    3640          16 :         NDR_ZERO_STRUCT(r.out.result);
    3641             : 
    3642          16 :         status = dcerpc_samr_EnumDomainAliases_r(h, mem_ctx, &r);
    3643          16 :         if (!NT_STATUS_IS_OK(status)) {
    3644           0 :                 return status;
    3645             :         }
    3646             : 
    3647             :         /* Return variables */
    3648          16 :         *_resume_handle = *r.out.resume_handle;
    3649          16 :         *_sam = *r.out.sam;
    3650          16 :         *_num_entries = *r.out.num_entries;
    3651             : 
    3652             :         /* Return result */
    3653          16 :         *result = r.out.result;
    3654             : 
    3655          16 :         return NT_STATUS_OK;
    3656             : }
    3657             : 
    3658             : struct dcerpc_samr_GetAliasMembership_r_state {
    3659             :         TALLOC_CTX *out_mem_ctx;
    3660             : };
    3661             : 
    3662             : static void dcerpc_samr_GetAliasMembership_r_done(struct tevent_req *subreq);
    3663             : 
    3664           0 : struct tevent_req *dcerpc_samr_GetAliasMembership_r_send(TALLOC_CTX *mem_ctx,
    3665             :         struct tevent_context *ev,
    3666             :         struct dcerpc_binding_handle *h,
    3667             :         struct samr_GetAliasMembership *r)
    3668             : {
    3669           0 :         struct tevent_req *req;
    3670           0 :         struct dcerpc_samr_GetAliasMembership_r_state *state;
    3671           0 :         struct tevent_req *subreq;
    3672             : 
    3673           0 :         req = tevent_req_create(mem_ctx, &state,
    3674             :                                 struct dcerpc_samr_GetAliasMembership_r_state);
    3675           0 :         if (req == NULL) {
    3676           0 :                 return NULL;
    3677             :         }
    3678             : 
    3679           0 :         state->out_mem_ctx = talloc_new(state);
    3680           0 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
    3681           0 :                 return tevent_req_post(req, ev);
    3682             :         }
    3683             : 
    3684           0 :         subreq = dcerpc_binding_handle_call_send(state, ev, h,
    3685             :                         NULL, &ndr_table_samr,
    3686           0 :                         NDR_SAMR_GETALIASMEMBERSHIP, state->out_mem_ctx, r);
    3687           0 :         if (tevent_req_nomem(subreq, req)) {
    3688           0 :                 return tevent_req_post(req, ev);
    3689             :         }
    3690           0 :         tevent_req_set_callback(subreq, dcerpc_samr_GetAliasMembership_r_done, req);
    3691             : 
    3692           0 :         return req;
    3693             : }
    3694             : 
    3695           0 : static void dcerpc_samr_GetAliasMembership_r_done(struct tevent_req *subreq)
    3696             : {
    3697           0 :         struct tevent_req *req =
    3698           0 :                 tevent_req_callback_data(subreq,
    3699             :                 struct tevent_req);
    3700           0 :         NTSTATUS status;
    3701             : 
    3702           0 :         status = dcerpc_binding_handle_call_recv(subreq);
    3703           0 :         TALLOC_FREE(subreq);
    3704           0 :         if (tevent_req_nterror(req, status)) {
    3705           0 :                 return;
    3706             :         }
    3707             : 
    3708           0 :         tevent_req_done(req);
    3709             : }
    3710             : 
    3711           0 : NTSTATUS dcerpc_samr_GetAliasMembership_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
    3712             : {
    3713           0 :         struct dcerpc_samr_GetAliasMembership_r_state *state =
    3714           0 :                 tevent_req_data(req,
    3715             :                 struct dcerpc_samr_GetAliasMembership_r_state);
    3716           0 :         NTSTATUS status;
    3717             : 
    3718           0 :         if (tevent_req_is_nterror(req, &status)) {
    3719           0 :                 tevent_req_received(req);
    3720           0 :                 return status;
    3721             :         }
    3722             : 
    3723           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    3724             : 
    3725           0 :         tevent_req_received(req);
    3726           0 :         return NT_STATUS_OK;
    3727             : }
    3728             : 
    3729         425 : NTSTATUS dcerpc_samr_GetAliasMembership_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct samr_GetAliasMembership *r)
    3730             : {
    3731           0 :         NTSTATUS status;
    3732             : 
    3733         425 :         status = dcerpc_binding_handle_call(h,
    3734             :                         NULL, &ndr_table_samr,
    3735             :                         NDR_SAMR_GETALIASMEMBERSHIP, mem_ctx, r);
    3736             : 
    3737         425 :         return status;
    3738             : }
    3739             : 
    3740             : struct dcerpc_samr_GetAliasMembership_state {
    3741             :         struct samr_GetAliasMembership orig;
    3742             :         struct samr_GetAliasMembership tmp;
    3743             :         TALLOC_CTX *out_mem_ctx;
    3744             : };
    3745             : 
    3746             : static void dcerpc_samr_GetAliasMembership_done(struct tevent_req *subreq);
    3747             : 
    3748           0 : struct tevent_req *dcerpc_samr_GetAliasMembership_send(TALLOC_CTX *mem_ctx,
    3749             :                                                        struct tevent_context *ev,
    3750             :                                                        struct dcerpc_binding_handle *h,
    3751             :                                                        struct policy_handle *_domain_handle /* [in] [ref] */,
    3752             :                                                        struct lsa_SidArray *_sids /* [in] [ref] */,
    3753             :                                                        struct samr_Ids *_rids /* [out] [ref] */)
    3754             : {
    3755           0 :         struct tevent_req *req;
    3756           0 :         struct dcerpc_samr_GetAliasMembership_state *state;
    3757           0 :         struct tevent_req *subreq;
    3758             : 
    3759           0 :         req = tevent_req_create(mem_ctx, &state,
    3760             :                                 struct dcerpc_samr_GetAliasMembership_state);
    3761           0 :         if (req == NULL) {
    3762           0 :                 return NULL;
    3763             :         }
    3764           0 :         state->out_mem_ctx = NULL;
    3765             : 
    3766             :         /* In parameters */
    3767           0 :         state->orig.in.domain_handle = _domain_handle;
    3768           0 :         state->orig.in.sids = _sids;
    3769             : 
    3770             :         /* Out parameters */
    3771           0 :         state->orig.out.rids = _rids;
    3772             : 
    3773             :         /* Result */
    3774           0 :         NDR_ZERO_STRUCT(state->orig.out.result);
    3775             : 
    3776           0 :         state->out_mem_ctx = talloc_named_const(state, 0,
    3777             :                              "dcerpc_samr_GetAliasMembership_out_memory");
    3778           0 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
    3779           0 :                 return tevent_req_post(req, ev);
    3780             :         }
    3781             : 
    3782             :         /* make a temporary copy, that we pass to the dispatch function */
    3783           0 :         state->tmp = state->orig;
    3784             : 
    3785           0 :         subreq = dcerpc_samr_GetAliasMembership_r_send(state, ev, h, &state->tmp);
    3786           0 :         if (tevent_req_nomem(subreq, req)) {
    3787           0 :                 return tevent_req_post(req, ev);
    3788             :         }
    3789           0 :         tevent_req_set_callback(subreq, dcerpc_samr_GetAliasMembership_done, req);
    3790           0 :         return req;
    3791             : }
    3792             : 
    3793           0 : static void dcerpc_samr_GetAliasMembership_done(struct tevent_req *subreq)
    3794             : {
    3795           0 :         struct tevent_req *req = tevent_req_callback_data(
    3796             :                 subreq, struct tevent_req);
    3797           0 :         struct dcerpc_samr_GetAliasMembership_state *state = tevent_req_data(
    3798             :                 req, struct dcerpc_samr_GetAliasMembership_state);
    3799           0 :         NTSTATUS status;
    3800           0 :         TALLOC_CTX *mem_ctx;
    3801             : 
    3802           0 :         if (state->out_mem_ctx) {
    3803           0 :                 mem_ctx = state->out_mem_ctx;
    3804             :         } else {
    3805           0 :                 mem_ctx = state;
    3806             :         }
    3807             : 
    3808           0 :         status = dcerpc_samr_GetAliasMembership_r_recv(subreq, mem_ctx);
    3809           0 :         TALLOC_FREE(subreq);
    3810           0 :         if (tevent_req_nterror(req, status)) {
    3811           0 :                 return;
    3812             :         }
    3813             : 
    3814             :         /* Copy out parameters */
    3815           0 :         *state->orig.out.rids = *state->tmp.out.rids;
    3816             : 
    3817             :         /* Copy result */
    3818           0 :         state->orig.out.result = state->tmp.out.result;
    3819             : 
    3820             :         /* Reset temporary structure */
    3821           0 :         NDR_ZERO_STRUCT(state->tmp);
    3822             : 
    3823           0 :         tevent_req_done(req);
    3824             : }
    3825             : 
    3826           0 : NTSTATUS dcerpc_samr_GetAliasMembership_recv(struct tevent_req *req,
    3827             :                                              TALLOC_CTX *mem_ctx,
    3828             :                                              NTSTATUS *result)
    3829             : {
    3830           0 :         struct dcerpc_samr_GetAliasMembership_state *state = tevent_req_data(
    3831             :                 req, struct dcerpc_samr_GetAliasMembership_state);
    3832           0 :         NTSTATUS status;
    3833             : 
    3834           0 :         if (tevent_req_is_nterror(req, &status)) {
    3835           0 :                 tevent_req_received(req);
    3836           0 :                 return status;
    3837             :         }
    3838             : 
    3839             :         /* Steal possible out parameters to the callers context */
    3840           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    3841             : 
    3842             :         /* Return result */
    3843           0 :         *result = state->orig.out.result;
    3844             : 
    3845           0 :         tevent_req_received(req);
    3846           0 :         return NT_STATUS_OK;
    3847             : }
    3848             : 
    3849          85 : NTSTATUS dcerpc_samr_GetAliasMembership(struct dcerpc_binding_handle *h,
    3850             :                                         TALLOC_CTX *mem_ctx,
    3851             :                                         struct policy_handle *_domain_handle /* [in] [ref] */,
    3852             :                                         struct lsa_SidArray *_sids /* [in] [ref] */,
    3853             :                                         struct samr_Ids *_rids /* [out] [ref] */,
    3854             :                                         NTSTATUS *result)
    3855             : {
    3856           0 :         struct samr_GetAliasMembership r;
    3857           0 :         NTSTATUS status;
    3858             : 
    3859             :         /* In parameters */
    3860          85 :         r.in.domain_handle = _domain_handle;
    3861          85 :         r.in.sids = _sids;
    3862             : 
    3863             :         /* Out parameters */
    3864          85 :         r.out.rids = _rids;
    3865             : 
    3866             :         /* Result */
    3867          85 :         NDR_ZERO_STRUCT(r.out.result);
    3868             : 
    3869          85 :         status = dcerpc_samr_GetAliasMembership_r(h, mem_ctx, &r);
    3870          85 :         if (!NT_STATUS_IS_OK(status)) {
    3871           0 :                 return status;
    3872             :         }
    3873             : 
    3874             :         /* Return variables */
    3875          85 :         *_rids = *r.out.rids;
    3876             : 
    3877             :         /* Return result */
    3878          85 :         *result = r.out.result;
    3879             : 
    3880          85 :         return NT_STATUS_OK;
    3881             : }
    3882             : 
    3883             : struct dcerpc_samr_LookupNames_r_state {
    3884             :         TALLOC_CTX *out_mem_ctx;
    3885             : };
    3886             : 
    3887             : static void dcerpc_samr_LookupNames_r_done(struct tevent_req *subreq);
    3888             : 
    3889          45 : struct tevent_req *dcerpc_samr_LookupNames_r_send(TALLOC_CTX *mem_ctx,
    3890             :         struct tevent_context *ev,
    3891             :         struct dcerpc_binding_handle *h,
    3892             :         struct samr_LookupNames *r)
    3893             : {
    3894           0 :         struct tevent_req *req;
    3895           0 :         struct dcerpc_samr_LookupNames_r_state *state;
    3896           0 :         struct tevent_req *subreq;
    3897             : 
    3898          45 :         req = tevent_req_create(mem_ctx, &state,
    3899             :                                 struct dcerpc_samr_LookupNames_r_state);
    3900          45 :         if (req == NULL) {
    3901           0 :                 return NULL;
    3902             :         }
    3903             : 
    3904          45 :         state->out_mem_ctx = talloc_new(state);
    3905          45 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
    3906           0 :                 return tevent_req_post(req, ev);
    3907             :         }
    3908             : 
    3909          45 :         subreq = dcerpc_binding_handle_call_send(state, ev, h,
    3910             :                         NULL, &ndr_table_samr,
    3911          45 :                         NDR_SAMR_LOOKUPNAMES, state->out_mem_ctx, r);
    3912          45 :         if (tevent_req_nomem(subreq, req)) {
    3913           0 :                 return tevent_req_post(req, ev);
    3914             :         }
    3915          45 :         tevent_req_set_callback(subreq, dcerpc_samr_LookupNames_r_done, req);
    3916             : 
    3917          45 :         return req;
    3918             : }
    3919             : 
    3920          45 : static void dcerpc_samr_LookupNames_r_done(struct tevent_req *subreq)
    3921             : {
    3922           0 :         struct tevent_req *req =
    3923          45 :                 tevent_req_callback_data(subreq,
    3924             :                 struct tevent_req);
    3925           0 :         NTSTATUS status;
    3926             : 
    3927          45 :         status = dcerpc_binding_handle_call_recv(subreq);
    3928          45 :         TALLOC_FREE(subreq);
    3929          45 :         if (tevent_req_nterror(req, status)) {
    3930           0 :                 return;
    3931             :         }
    3932             : 
    3933          45 :         tevent_req_done(req);
    3934             : }
    3935             : 
    3936          45 : NTSTATUS dcerpc_samr_LookupNames_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
    3937             : {
    3938           0 :         struct dcerpc_samr_LookupNames_r_state *state =
    3939          45 :                 tevent_req_data(req,
    3940             :                 struct dcerpc_samr_LookupNames_r_state);
    3941           0 :         NTSTATUS status;
    3942             : 
    3943          45 :         if (tevent_req_is_nterror(req, &status)) {
    3944           0 :                 tevent_req_received(req);
    3945           0 :                 return status;
    3946             :         }
    3947             : 
    3948          45 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    3949             : 
    3950          45 :         tevent_req_received(req);
    3951          45 :         return NT_STATUS_OK;
    3952             : }
    3953             : 
    3954        2487 : NTSTATUS dcerpc_samr_LookupNames_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct samr_LookupNames *r)
    3955             : {
    3956           0 :         NTSTATUS status;
    3957             : 
    3958        2487 :         status = dcerpc_binding_handle_call(h,
    3959             :                         NULL, &ndr_table_samr,
    3960             :                         NDR_SAMR_LOOKUPNAMES, mem_ctx, r);
    3961             : 
    3962        2487 :         return status;
    3963             : }
    3964             : 
    3965             : struct dcerpc_samr_LookupNames_state {
    3966             :         struct samr_LookupNames orig;
    3967             :         struct samr_LookupNames tmp;
    3968             :         TALLOC_CTX *out_mem_ctx;
    3969             : };
    3970             : 
    3971             : static void dcerpc_samr_LookupNames_done(struct tevent_req *subreq);
    3972             : 
    3973           0 : struct tevent_req *dcerpc_samr_LookupNames_send(TALLOC_CTX *mem_ctx,
    3974             :                                                 struct tevent_context *ev,
    3975             :                                                 struct dcerpc_binding_handle *h,
    3976             :                                                 struct policy_handle *_domain_handle /* [in] [ref] */,
    3977             :                                                 uint32_t _num_names /* [in] [range(0,1000)] */,
    3978             :                                                 struct lsa_String *_names /* [in] [length_is(num_names),size_is(1000)] */,
    3979             :                                                 struct samr_Ids *_rids /* [out] [ref] */,
    3980             :                                                 struct samr_Ids *_types /* [out] [ref] */)
    3981             : {
    3982           0 :         struct tevent_req *req;
    3983           0 :         struct dcerpc_samr_LookupNames_state *state;
    3984           0 :         struct tevent_req *subreq;
    3985             : 
    3986           0 :         req = tevent_req_create(mem_ctx, &state,
    3987             :                                 struct dcerpc_samr_LookupNames_state);
    3988           0 :         if (req == NULL) {
    3989           0 :                 return NULL;
    3990             :         }
    3991           0 :         state->out_mem_ctx = NULL;
    3992             : 
    3993             :         /* In parameters */
    3994           0 :         state->orig.in.domain_handle = _domain_handle;
    3995           0 :         state->orig.in.num_names = _num_names;
    3996           0 :         state->orig.in.names = _names;
    3997             : 
    3998             :         /* Out parameters */
    3999           0 :         state->orig.out.rids = _rids;
    4000           0 :         state->orig.out.types = _types;
    4001             : 
    4002             :         /* Result */
    4003           0 :         NDR_ZERO_STRUCT(state->orig.out.result);
    4004             : 
    4005           0 :         state->out_mem_ctx = talloc_named_const(state, 0,
    4006             :                              "dcerpc_samr_LookupNames_out_memory");
    4007           0 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
    4008           0 :                 return tevent_req_post(req, ev);
    4009             :         }
    4010             : 
    4011             :         /* make a temporary copy, that we pass to the dispatch function */
    4012           0 :         state->tmp = state->orig;
    4013             : 
    4014           0 :         subreq = dcerpc_samr_LookupNames_r_send(state, ev, h, &state->tmp);
    4015           0 :         if (tevent_req_nomem(subreq, req)) {
    4016           0 :                 return tevent_req_post(req, ev);
    4017             :         }
    4018           0 :         tevent_req_set_callback(subreq, dcerpc_samr_LookupNames_done, req);
    4019           0 :         return req;
    4020             : }
    4021             : 
    4022           0 : static void dcerpc_samr_LookupNames_done(struct tevent_req *subreq)
    4023             : {
    4024           0 :         struct tevent_req *req = tevent_req_callback_data(
    4025             :                 subreq, struct tevent_req);
    4026           0 :         struct dcerpc_samr_LookupNames_state *state = tevent_req_data(
    4027             :                 req, struct dcerpc_samr_LookupNames_state);
    4028           0 :         NTSTATUS status;
    4029           0 :         TALLOC_CTX *mem_ctx;
    4030             : 
    4031           0 :         if (state->out_mem_ctx) {
    4032           0 :                 mem_ctx = state->out_mem_ctx;
    4033             :         } else {
    4034           0 :                 mem_ctx = state;
    4035             :         }
    4036             : 
    4037           0 :         status = dcerpc_samr_LookupNames_r_recv(subreq, mem_ctx);
    4038           0 :         TALLOC_FREE(subreq);
    4039           0 :         if (tevent_req_nterror(req, status)) {
    4040           0 :                 return;
    4041             :         }
    4042             : 
    4043             :         /* Copy out parameters */
    4044           0 :         *state->orig.out.rids = *state->tmp.out.rids;
    4045           0 :         *state->orig.out.types = *state->tmp.out.types;
    4046             : 
    4047             :         /* Copy result */
    4048           0 :         state->orig.out.result = state->tmp.out.result;
    4049             : 
    4050             :         /* Reset temporary structure */
    4051           0 :         NDR_ZERO_STRUCT(state->tmp);
    4052             : 
    4053           0 :         tevent_req_done(req);
    4054             : }
    4055             : 
    4056           0 : NTSTATUS dcerpc_samr_LookupNames_recv(struct tevent_req *req,
    4057             :                                       TALLOC_CTX *mem_ctx,
    4058             :                                       NTSTATUS *result)
    4059             : {
    4060           0 :         struct dcerpc_samr_LookupNames_state *state = tevent_req_data(
    4061             :                 req, struct dcerpc_samr_LookupNames_state);
    4062           0 :         NTSTATUS status;
    4063             : 
    4064           0 :         if (tevent_req_is_nterror(req, &status)) {
    4065           0 :                 tevent_req_received(req);
    4066           0 :                 return status;
    4067             :         }
    4068             : 
    4069             :         /* Steal possible out parameters to the callers context */
    4070           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    4071             : 
    4072             :         /* Return result */
    4073           0 :         *result = state->orig.out.result;
    4074             : 
    4075           0 :         tevent_req_received(req);
    4076           0 :         return NT_STATUS_OK;
    4077             : }
    4078             : 
    4079         291 : NTSTATUS dcerpc_samr_LookupNames(struct dcerpc_binding_handle *h,
    4080             :                                  TALLOC_CTX *mem_ctx,
    4081             :                                  struct policy_handle *_domain_handle /* [in] [ref] */,
    4082             :                                  uint32_t _num_names /* [in] [range(0,1000)] */,
    4083             :                                  struct lsa_String *_names /* [in] [length_is(num_names),size_is(1000)] */,
    4084             :                                  struct samr_Ids *_rids /* [out] [ref] */,
    4085             :                                  struct samr_Ids *_types /* [out] [ref] */,
    4086             :                                  NTSTATUS *result)
    4087             : {
    4088           0 :         struct samr_LookupNames r;
    4089           0 :         NTSTATUS status;
    4090             : 
    4091             :         /* In parameters */
    4092         291 :         r.in.domain_handle = _domain_handle;
    4093         291 :         r.in.num_names = _num_names;
    4094         291 :         r.in.names = _names;
    4095             : 
    4096             :         /* Out parameters */
    4097         291 :         r.out.rids = _rids;
    4098         291 :         r.out.types = _types;
    4099             : 
    4100             :         /* Result */
    4101         291 :         NDR_ZERO_STRUCT(r.out.result);
    4102             : 
    4103         291 :         status = dcerpc_samr_LookupNames_r(h, mem_ctx, &r);
    4104         291 :         if (!NT_STATUS_IS_OK(status)) {
    4105           0 :                 return status;
    4106             :         }
    4107             : 
    4108             :         /* Return variables */
    4109         291 :         *_rids = *r.out.rids;
    4110         291 :         *_types = *r.out.types;
    4111             : 
    4112             :         /* Return result */
    4113         291 :         *result = r.out.result;
    4114             : 
    4115         291 :         return NT_STATUS_OK;
    4116             : }
    4117             : 
    4118             : struct dcerpc_samr_LookupRids_r_state {
    4119             :         TALLOC_CTX *out_mem_ctx;
    4120             : };
    4121             : 
    4122             : static void dcerpc_samr_LookupRids_r_done(struct tevent_req *subreq);
    4123             : 
    4124           0 : struct tevent_req *dcerpc_samr_LookupRids_r_send(TALLOC_CTX *mem_ctx,
    4125             :         struct tevent_context *ev,
    4126             :         struct dcerpc_binding_handle *h,
    4127             :         struct samr_LookupRids *r)
    4128             : {
    4129           0 :         struct tevent_req *req;
    4130           0 :         struct dcerpc_samr_LookupRids_r_state *state;
    4131           0 :         struct tevent_req *subreq;
    4132             : 
    4133           0 :         req = tevent_req_create(mem_ctx, &state,
    4134             :                                 struct dcerpc_samr_LookupRids_r_state);
    4135           0 :         if (req == NULL) {
    4136           0 :                 return NULL;
    4137             :         }
    4138             : 
    4139           0 :         state->out_mem_ctx = talloc_new(state);
    4140           0 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
    4141           0 :                 return tevent_req_post(req, ev);
    4142             :         }
    4143             : 
    4144           0 :         subreq = dcerpc_binding_handle_call_send(state, ev, h,
    4145             :                         NULL, &ndr_table_samr,
    4146           0 :                         NDR_SAMR_LOOKUPRIDS, state->out_mem_ctx, r);
    4147           0 :         if (tevent_req_nomem(subreq, req)) {
    4148           0 :                 return tevent_req_post(req, ev);
    4149             :         }
    4150           0 :         tevent_req_set_callback(subreq, dcerpc_samr_LookupRids_r_done, req);
    4151             : 
    4152           0 :         return req;
    4153             : }
    4154             : 
    4155           0 : static void dcerpc_samr_LookupRids_r_done(struct tevent_req *subreq)
    4156             : {
    4157           0 :         struct tevent_req *req =
    4158           0 :                 tevent_req_callback_data(subreq,
    4159             :                 struct tevent_req);
    4160           0 :         NTSTATUS status;
    4161             : 
    4162           0 :         status = dcerpc_binding_handle_call_recv(subreq);
    4163           0 :         TALLOC_FREE(subreq);
    4164           0 :         if (tevent_req_nterror(req, status)) {
    4165           0 :                 return;
    4166             :         }
    4167             : 
    4168           0 :         tevent_req_done(req);
    4169             : }
    4170             : 
    4171           0 : NTSTATUS dcerpc_samr_LookupRids_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
    4172             : {
    4173           0 :         struct dcerpc_samr_LookupRids_r_state *state =
    4174           0 :                 tevent_req_data(req,
    4175             :                 struct dcerpc_samr_LookupRids_r_state);
    4176           0 :         NTSTATUS status;
    4177             : 
    4178           0 :         if (tevent_req_is_nterror(req, &status)) {
    4179           0 :                 tevent_req_received(req);
    4180           0 :                 return status;
    4181             :         }
    4182             : 
    4183           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    4184             : 
    4185           0 :         tevent_req_received(req);
    4186           0 :         return NT_STATUS_OK;
    4187             : }
    4188             : 
    4189        1033 : NTSTATUS dcerpc_samr_LookupRids_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct samr_LookupRids *r)
    4190             : {
    4191           0 :         NTSTATUS status;
    4192             : 
    4193        1033 :         status = dcerpc_binding_handle_call(h,
    4194             :                         NULL, &ndr_table_samr,
    4195             :                         NDR_SAMR_LOOKUPRIDS, mem_ctx, r);
    4196             : 
    4197        1033 :         return status;
    4198             : }
    4199             : 
    4200             : struct dcerpc_samr_LookupRids_state {
    4201             :         struct samr_LookupRids orig;
    4202             :         struct samr_LookupRids tmp;
    4203             :         TALLOC_CTX *out_mem_ctx;
    4204             : };
    4205             : 
    4206             : static void dcerpc_samr_LookupRids_done(struct tevent_req *subreq);
    4207             : 
    4208           0 : struct tevent_req *dcerpc_samr_LookupRids_send(TALLOC_CTX *mem_ctx,
    4209             :                                                struct tevent_context *ev,
    4210             :                                                struct dcerpc_binding_handle *h,
    4211             :                                                struct policy_handle *_domain_handle /* [in] [ref] */,
    4212             :                                                uint32_t _num_rids /* [in] [range(0,1000)] */,
    4213             :                                                uint32_t *_rids /* [in] [length_is(num_rids),size_is(1000)] */,
    4214             :                                                struct lsa_Strings *_names /* [out] [ref] */,
    4215             :                                                struct samr_Ids *_types /* [out] [ref] */)
    4216             : {
    4217           0 :         struct tevent_req *req;
    4218           0 :         struct dcerpc_samr_LookupRids_state *state;
    4219           0 :         struct tevent_req *subreq;
    4220             : 
    4221           0 :         req = tevent_req_create(mem_ctx, &state,
    4222             :                                 struct dcerpc_samr_LookupRids_state);
    4223           0 :         if (req == NULL) {
    4224           0 :                 return NULL;
    4225             :         }
    4226           0 :         state->out_mem_ctx = NULL;
    4227             : 
    4228             :         /* In parameters */
    4229           0 :         state->orig.in.domain_handle = _domain_handle;
    4230           0 :         state->orig.in.num_rids = _num_rids;
    4231           0 :         state->orig.in.rids = _rids;
    4232             : 
    4233             :         /* Out parameters */
    4234           0 :         state->orig.out.names = _names;
    4235           0 :         state->orig.out.types = _types;
    4236             : 
    4237             :         /* Result */
    4238           0 :         NDR_ZERO_STRUCT(state->orig.out.result);
    4239             : 
    4240           0 :         state->out_mem_ctx = talloc_named_const(state, 0,
    4241             :                              "dcerpc_samr_LookupRids_out_memory");
    4242           0 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
    4243           0 :                 return tevent_req_post(req, ev);
    4244             :         }
    4245             : 
    4246             :         /* make a temporary copy, that we pass to the dispatch function */
    4247           0 :         state->tmp = state->orig;
    4248             : 
    4249           0 :         subreq = dcerpc_samr_LookupRids_r_send(state, ev, h, &state->tmp);
    4250           0 :         if (tevent_req_nomem(subreq, req)) {
    4251           0 :                 return tevent_req_post(req, ev);
    4252             :         }
    4253           0 :         tevent_req_set_callback(subreq, dcerpc_samr_LookupRids_done, req);
    4254           0 :         return req;
    4255             : }
    4256             : 
    4257           0 : static void dcerpc_samr_LookupRids_done(struct tevent_req *subreq)
    4258             : {
    4259           0 :         struct tevent_req *req = tevent_req_callback_data(
    4260             :                 subreq, struct tevent_req);
    4261           0 :         struct dcerpc_samr_LookupRids_state *state = tevent_req_data(
    4262             :                 req, struct dcerpc_samr_LookupRids_state);
    4263           0 :         NTSTATUS status;
    4264           0 :         TALLOC_CTX *mem_ctx;
    4265             : 
    4266           0 :         if (state->out_mem_ctx) {
    4267           0 :                 mem_ctx = state->out_mem_ctx;
    4268             :         } else {
    4269           0 :                 mem_ctx = state;
    4270             :         }
    4271             : 
    4272           0 :         status = dcerpc_samr_LookupRids_r_recv(subreq, mem_ctx);
    4273           0 :         TALLOC_FREE(subreq);
    4274           0 :         if (tevent_req_nterror(req, status)) {
    4275           0 :                 return;
    4276             :         }
    4277             : 
    4278             :         /* Copy out parameters */
    4279           0 :         *state->orig.out.names = *state->tmp.out.names;
    4280           0 :         *state->orig.out.types = *state->tmp.out.types;
    4281             : 
    4282             :         /* Copy result */
    4283           0 :         state->orig.out.result = state->tmp.out.result;
    4284             : 
    4285             :         /* Reset temporary structure */
    4286           0 :         NDR_ZERO_STRUCT(state->tmp);
    4287             : 
    4288           0 :         tevent_req_done(req);
    4289             : }
    4290             : 
    4291           0 : NTSTATUS dcerpc_samr_LookupRids_recv(struct tevent_req *req,
    4292             :                                      TALLOC_CTX *mem_ctx,
    4293             :                                      NTSTATUS *result)
    4294             : {
    4295           0 :         struct dcerpc_samr_LookupRids_state *state = tevent_req_data(
    4296             :                 req, struct dcerpc_samr_LookupRids_state);
    4297           0 :         NTSTATUS status;
    4298             : 
    4299           0 :         if (tevent_req_is_nterror(req, &status)) {
    4300           0 :                 tevent_req_received(req);
    4301           0 :                 return status;
    4302             :         }
    4303             : 
    4304             :         /* Steal possible out parameters to the callers context */
    4305           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    4306             : 
    4307             :         /* Return result */
    4308           0 :         *result = state->orig.out.result;
    4309             : 
    4310           0 :         tevent_req_received(req);
    4311           0 :         return NT_STATUS_OK;
    4312             : }
    4313             : 
    4314           9 : NTSTATUS dcerpc_samr_LookupRids(struct dcerpc_binding_handle *h,
    4315             :                                 TALLOC_CTX *mem_ctx,
    4316             :                                 struct policy_handle *_domain_handle /* [in] [ref] */,
    4317             :                                 uint32_t _num_rids /* [in] [range(0,1000)] */,
    4318             :                                 uint32_t *_rids /* [in] [length_is(num_rids),size_is(1000)] */,
    4319             :                                 struct lsa_Strings *_names /* [out] [ref] */,
    4320             :                                 struct samr_Ids *_types /* [out] [ref] */,
    4321             :                                 NTSTATUS *result)
    4322             : {
    4323           0 :         struct samr_LookupRids r;
    4324           0 :         NTSTATUS status;
    4325             : 
    4326             :         /* In parameters */
    4327           9 :         r.in.domain_handle = _domain_handle;
    4328           9 :         r.in.num_rids = _num_rids;
    4329           9 :         r.in.rids = _rids;
    4330             : 
    4331             :         /* Out parameters */
    4332           9 :         r.out.names = _names;
    4333           9 :         r.out.types = _types;
    4334             : 
    4335             :         /* Result */
    4336           9 :         NDR_ZERO_STRUCT(r.out.result);
    4337             : 
    4338           9 :         status = dcerpc_samr_LookupRids_r(h, mem_ctx, &r);
    4339           9 :         if (!NT_STATUS_IS_OK(status)) {
    4340           0 :                 return status;
    4341             :         }
    4342             : 
    4343             :         /* Return variables */
    4344           9 :         *_names = *r.out.names;
    4345           9 :         *_types = *r.out.types;
    4346             : 
    4347             :         /* Return result */
    4348           9 :         *result = r.out.result;
    4349             : 
    4350           9 :         return NT_STATUS_OK;
    4351             : }
    4352             : 
    4353             : struct dcerpc_samr_OpenGroup_r_state {
    4354             :         TALLOC_CTX *out_mem_ctx;
    4355             : };
    4356             : 
    4357             : static void dcerpc_samr_OpenGroup_r_done(struct tevent_req *subreq);
    4358             : 
    4359           3 : struct tevent_req *dcerpc_samr_OpenGroup_r_send(TALLOC_CTX *mem_ctx,
    4360             :         struct tevent_context *ev,
    4361             :         struct dcerpc_binding_handle *h,
    4362             :         struct samr_OpenGroup *r)
    4363             : {
    4364           0 :         struct tevent_req *req;
    4365           0 :         struct dcerpc_samr_OpenGroup_r_state *state;
    4366           0 :         struct tevent_req *subreq;
    4367             : 
    4368           3 :         req = tevent_req_create(mem_ctx, &state,
    4369             :                                 struct dcerpc_samr_OpenGroup_r_state);
    4370           3 :         if (req == NULL) {
    4371           0 :                 return NULL;
    4372             :         }
    4373             : 
    4374           3 :         state->out_mem_ctx = talloc_new(state);
    4375           3 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
    4376           0 :                 return tevent_req_post(req, ev);
    4377             :         }
    4378             : 
    4379           3 :         subreq = dcerpc_binding_handle_call_send(state, ev, h,
    4380             :                         NULL, &ndr_table_samr,
    4381           3 :                         NDR_SAMR_OPENGROUP, state->out_mem_ctx, r);
    4382           3 :         if (tevent_req_nomem(subreq, req)) {
    4383           0 :                 return tevent_req_post(req, ev);
    4384             :         }
    4385           3 :         tevent_req_set_callback(subreq, dcerpc_samr_OpenGroup_r_done, req);
    4386             : 
    4387           3 :         return req;
    4388             : }
    4389             : 
    4390           3 : static void dcerpc_samr_OpenGroup_r_done(struct tevent_req *subreq)
    4391             : {
    4392           0 :         struct tevent_req *req =
    4393           3 :                 tevent_req_callback_data(subreq,
    4394             :                 struct tevent_req);
    4395           0 :         NTSTATUS status;
    4396             : 
    4397           3 :         status = dcerpc_binding_handle_call_recv(subreq);
    4398           3 :         TALLOC_FREE(subreq);
    4399           3 :         if (tevent_req_nterror(req, status)) {
    4400           0 :                 return;
    4401             :         }
    4402             : 
    4403           3 :         tevent_req_done(req);
    4404             : }
    4405             : 
    4406           3 : NTSTATUS dcerpc_samr_OpenGroup_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
    4407             : {
    4408           0 :         struct dcerpc_samr_OpenGroup_r_state *state =
    4409           3 :                 tevent_req_data(req,
    4410             :                 struct dcerpc_samr_OpenGroup_r_state);
    4411           0 :         NTSTATUS status;
    4412             : 
    4413           3 :         if (tevent_req_is_nterror(req, &status)) {
    4414           0 :                 tevent_req_received(req);
    4415           0 :                 return status;
    4416             :         }
    4417             : 
    4418           3 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    4419             : 
    4420           3 :         tevent_req_received(req);
    4421           3 :         return NT_STATUS_OK;
    4422             : }
    4423             : 
    4424         564 : NTSTATUS dcerpc_samr_OpenGroup_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct samr_OpenGroup *r)
    4425             : {
    4426           0 :         NTSTATUS status;
    4427             : 
    4428         564 :         status = dcerpc_binding_handle_call(h,
    4429             :                         NULL, &ndr_table_samr,
    4430             :                         NDR_SAMR_OPENGROUP, mem_ctx, r);
    4431             : 
    4432         564 :         return status;
    4433             : }
    4434             : 
    4435             : struct dcerpc_samr_OpenGroup_state {
    4436             :         struct samr_OpenGroup orig;
    4437             :         struct samr_OpenGroup tmp;
    4438             :         TALLOC_CTX *out_mem_ctx;
    4439             : };
    4440             : 
    4441             : static void dcerpc_samr_OpenGroup_done(struct tevent_req *subreq);
    4442             : 
    4443           0 : struct tevent_req *dcerpc_samr_OpenGroup_send(TALLOC_CTX *mem_ctx,
    4444             :                                               struct tevent_context *ev,
    4445             :                                               struct dcerpc_binding_handle *h,
    4446             :                                               struct policy_handle *_domain_handle /* [in] [ref] */,
    4447             :                                               uint32_t _access_mask /* [in]  */,
    4448             :                                               uint32_t _rid /* [in]  */,
    4449             :                                               struct policy_handle *_group_handle /* [out] [ref] */)
    4450             : {
    4451           0 :         struct tevent_req *req;
    4452           0 :         struct dcerpc_samr_OpenGroup_state *state;
    4453           0 :         struct tevent_req *subreq;
    4454             : 
    4455           0 :         req = tevent_req_create(mem_ctx, &state,
    4456             :                                 struct dcerpc_samr_OpenGroup_state);
    4457           0 :         if (req == NULL) {
    4458           0 :                 return NULL;
    4459             :         }
    4460           0 :         state->out_mem_ctx = NULL;
    4461             : 
    4462             :         /* In parameters */
    4463           0 :         state->orig.in.domain_handle = _domain_handle;
    4464           0 :         state->orig.in.access_mask = _access_mask;
    4465           0 :         state->orig.in.rid = _rid;
    4466             : 
    4467             :         /* Out parameters */
    4468           0 :         state->orig.out.group_handle = _group_handle;
    4469             : 
    4470             :         /* Result */
    4471           0 :         NDR_ZERO_STRUCT(state->orig.out.result);
    4472             : 
    4473           0 :         state->out_mem_ctx = talloc_named_const(state, 0,
    4474             :                              "dcerpc_samr_OpenGroup_out_memory");
    4475           0 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
    4476           0 :                 return tevent_req_post(req, ev);
    4477             :         }
    4478             : 
    4479             :         /* make a temporary copy, that we pass to the dispatch function */
    4480           0 :         state->tmp = state->orig;
    4481             : 
    4482           0 :         subreq = dcerpc_samr_OpenGroup_r_send(state, ev, h, &state->tmp);
    4483           0 :         if (tevent_req_nomem(subreq, req)) {
    4484           0 :                 return tevent_req_post(req, ev);
    4485             :         }
    4486           0 :         tevent_req_set_callback(subreq, dcerpc_samr_OpenGroup_done, req);
    4487           0 :         return req;
    4488             : }
    4489             : 
    4490           0 : static void dcerpc_samr_OpenGroup_done(struct tevent_req *subreq)
    4491             : {
    4492           0 :         struct tevent_req *req = tevent_req_callback_data(
    4493             :                 subreq, struct tevent_req);
    4494           0 :         struct dcerpc_samr_OpenGroup_state *state = tevent_req_data(
    4495             :                 req, struct dcerpc_samr_OpenGroup_state);
    4496           0 :         NTSTATUS status;
    4497           0 :         TALLOC_CTX *mem_ctx;
    4498             : 
    4499           0 :         if (state->out_mem_ctx) {
    4500           0 :                 mem_ctx = state->out_mem_ctx;
    4501             :         } else {
    4502           0 :                 mem_ctx = state;
    4503             :         }
    4504             : 
    4505           0 :         status = dcerpc_samr_OpenGroup_r_recv(subreq, mem_ctx);
    4506           0 :         TALLOC_FREE(subreq);
    4507           0 :         if (tevent_req_nterror(req, status)) {
    4508           0 :                 return;
    4509             :         }
    4510             : 
    4511             :         /* Copy out parameters */
    4512           0 :         *state->orig.out.group_handle = *state->tmp.out.group_handle;
    4513             : 
    4514             :         /* Copy result */
    4515           0 :         state->orig.out.result = state->tmp.out.result;
    4516             : 
    4517             :         /* Reset temporary structure */
    4518           0 :         NDR_ZERO_STRUCT(state->tmp);
    4519             : 
    4520           0 :         tevent_req_done(req);
    4521             : }
    4522             : 
    4523           0 : NTSTATUS dcerpc_samr_OpenGroup_recv(struct tevent_req *req,
    4524             :                                     TALLOC_CTX *mem_ctx,
    4525             :                                     NTSTATUS *result)
    4526             : {
    4527           0 :         struct dcerpc_samr_OpenGroup_state *state = tevent_req_data(
    4528             :                 req, struct dcerpc_samr_OpenGroup_state);
    4529           0 :         NTSTATUS status;
    4530             : 
    4531           0 :         if (tevent_req_is_nterror(req, &status)) {
    4532           0 :                 tevent_req_received(req);
    4533           0 :                 return status;
    4534             :         }
    4535             : 
    4536             :         /* Steal possible out parameters to the callers context */
    4537           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    4538             : 
    4539             :         /* Return result */
    4540           0 :         *result = state->orig.out.result;
    4541             : 
    4542           0 :         tevent_req_received(req);
    4543           0 :         return NT_STATUS_OK;
    4544             : }
    4545             : 
    4546         159 : NTSTATUS dcerpc_samr_OpenGroup(struct dcerpc_binding_handle *h,
    4547             :                                TALLOC_CTX *mem_ctx,
    4548             :                                struct policy_handle *_domain_handle /* [in] [ref] */,
    4549             :                                uint32_t _access_mask /* [in]  */,
    4550             :                                uint32_t _rid /* [in]  */,
    4551             :                                struct policy_handle *_group_handle /* [out] [ref] */,
    4552             :                                NTSTATUS *result)
    4553             : {
    4554           0 :         struct samr_OpenGroup r;
    4555           0 :         NTSTATUS status;
    4556             : 
    4557             :         /* In parameters */
    4558         159 :         r.in.domain_handle = _domain_handle;
    4559         159 :         r.in.access_mask = _access_mask;
    4560         159 :         r.in.rid = _rid;
    4561             : 
    4562             :         /* Out parameters */
    4563         159 :         r.out.group_handle = _group_handle;
    4564             : 
    4565             :         /* Result */
    4566         159 :         NDR_ZERO_STRUCT(r.out.result);
    4567             : 
    4568         159 :         status = dcerpc_samr_OpenGroup_r(h, mem_ctx, &r);
    4569         159 :         if (!NT_STATUS_IS_OK(status)) {
    4570           0 :                 return status;
    4571             :         }
    4572             : 
    4573             :         /* Return variables */
    4574         159 :         *_group_handle = *r.out.group_handle;
    4575             : 
    4576             :         /* Return result */
    4577         159 :         *result = r.out.result;
    4578             : 
    4579         159 :         return NT_STATUS_OK;
    4580             : }
    4581             : 
    4582             : struct dcerpc_samr_QueryGroupInfo_r_state {
    4583             :         TALLOC_CTX *out_mem_ctx;
    4584             : };
    4585             : 
    4586             : static void dcerpc_samr_QueryGroupInfo_r_done(struct tevent_req *subreq);
    4587             : 
    4588           3 : struct tevent_req *dcerpc_samr_QueryGroupInfo_r_send(TALLOC_CTX *mem_ctx,
    4589             :         struct tevent_context *ev,
    4590             :         struct dcerpc_binding_handle *h,
    4591             :         struct samr_QueryGroupInfo *r)
    4592             : {
    4593           0 :         struct tevent_req *req;
    4594           0 :         struct dcerpc_samr_QueryGroupInfo_r_state *state;
    4595           0 :         struct tevent_req *subreq;
    4596             : 
    4597           3 :         req = tevent_req_create(mem_ctx, &state,
    4598             :                                 struct dcerpc_samr_QueryGroupInfo_r_state);
    4599           3 :         if (req == NULL) {
    4600           0 :                 return NULL;
    4601             :         }
    4602             : 
    4603           3 :         state->out_mem_ctx = talloc_new(state);
    4604           3 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
    4605           0 :                 return tevent_req_post(req, ev);
    4606             :         }
    4607             : 
    4608           3 :         subreq = dcerpc_binding_handle_call_send(state, ev, h,
    4609             :                         NULL, &ndr_table_samr,
    4610           3 :                         NDR_SAMR_QUERYGROUPINFO, state->out_mem_ctx, r);
    4611           3 :         if (tevent_req_nomem(subreq, req)) {
    4612           0 :                 return tevent_req_post(req, ev);
    4613             :         }
    4614           3 :         tevent_req_set_callback(subreq, dcerpc_samr_QueryGroupInfo_r_done, req);
    4615             : 
    4616           3 :         return req;
    4617             : }
    4618             : 
    4619           3 : static void dcerpc_samr_QueryGroupInfo_r_done(struct tevent_req *subreq)
    4620             : {
    4621           0 :         struct tevent_req *req =
    4622           3 :                 tevent_req_callback_data(subreq,
    4623             :                 struct tevent_req);
    4624           0 :         NTSTATUS status;
    4625             : 
    4626           3 :         status = dcerpc_binding_handle_call_recv(subreq);
    4627           3 :         TALLOC_FREE(subreq);
    4628           3 :         if (tevent_req_nterror(req, status)) {
    4629           0 :                 return;
    4630             :         }
    4631             : 
    4632           3 :         tevent_req_done(req);
    4633             : }
    4634             : 
    4635           3 : NTSTATUS dcerpc_samr_QueryGroupInfo_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
    4636             : {
    4637           0 :         struct dcerpc_samr_QueryGroupInfo_r_state *state =
    4638           3 :                 tevent_req_data(req,
    4639             :                 struct dcerpc_samr_QueryGroupInfo_r_state);
    4640           0 :         NTSTATUS status;
    4641             : 
    4642           3 :         if (tevent_req_is_nterror(req, &status)) {
    4643           0 :                 tevent_req_received(req);
    4644           0 :                 return status;
    4645             :         }
    4646             : 
    4647           3 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    4648             : 
    4649           3 :         tevent_req_received(req);
    4650           3 :         return NT_STATUS_OK;
    4651             : }
    4652             : 
    4653         260 : NTSTATUS dcerpc_samr_QueryGroupInfo_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct samr_QueryGroupInfo *r)
    4654             : {
    4655           0 :         NTSTATUS status;
    4656             : 
    4657         260 :         status = dcerpc_binding_handle_call(h,
    4658             :                         NULL, &ndr_table_samr,
    4659             :                         NDR_SAMR_QUERYGROUPINFO, mem_ctx, r);
    4660             : 
    4661         260 :         return status;
    4662             : }
    4663             : 
    4664             : struct dcerpc_samr_QueryGroupInfo_state {
    4665             :         struct samr_QueryGroupInfo orig;
    4666             :         struct samr_QueryGroupInfo tmp;
    4667             :         TALLOC_CTX *out_mem_ctx;
    4668             : };
    4669             : 
    4670             : static void dcerpc_samr_QueryGroupInfo_done(struct tevent_req *subreq);
    4671             : 
    4672           0 : struct tevent_req *dcerpc_samr_QueryGroupInfo_send(TALLOC_CTX *mem_ctx,
    4673             :                                                    struct tevent_context *ev,
    4674             :                                                    struct dcerpc_binding_handle *h,
    4675             :                                                    struct policy_handle *_group_handle /* [in] [ref] */,
    4676             :                                                    enum samr_GroupInfoEnum _level /* [in]  */,
    4677             :                                                    union samr_GroupInfo **_info /* [out] [ref,switch_is(level)] */)
    4678             : {
    4679           0 :         struct tevent_req *req;
    4680           0 :         struct dcerpc_samr_QueryGroupInfo_state *state;
    4681           0 :         struct tevent_req *subreq;
    4682             : 
    4683           0 :         req = tevent_req_create(mem_ctx, &state,
    4684             :                                 struct dcerpc_samr_QueryGroupInfo_state);
    4685           0 :         if (req == NULL) {
    4686           0 :                 return NULL;
    4687             :         }
    4688           0 :         state->out_mem_ctx = NULL;
    4689             : 
    4690             :         /* In parameters */
    4691           0 :         state->orig.in.group_handle = _group_handle;
    4692           0 :         state->orig.in.level = _level;
    4693             : 
    4694             :         /* Out parameters */
    4695           0 :         state->orig.out.info = _info;
    4696             : 
    4697             :         /* Result */
    4698           0 :         NDR_ZERO_STRUCT(state->orig.out.result);
    4699             : 
    4700           0 :         state->out_mem_ctx = talloc_named_const(state, 0,
    4701             :                              "dcerpc_samr_QueryGroupInfo_out_memory");
    4702           0 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
    4703           0 :                 return tevent_req_post(req, ev);
    4704             :         }
    4705             : 
    4706             :         /* make a temporary copy, that we pass to the dispatch function */
    4707           0 :         state->tmp = state->orig;
    4708             : 
    4709           0 :         subreq = dcerpc_samr_QueryGroupInfo_r_send(state, ev, h, &state->tmp);
    4710           0 :         if (tevent_req_nomem(subreq, req)) {
    4711           0 :                 return tevent_req_post(req, ev);
    4712             :         }
    4713           0 :         tevent_req_set_callback(subreq, dcerpc_samr_QueryGroupInfo_done, req);
    4714           0 :         return req;
    4715             : }
    4716             : 
    4717           0 : static void dcerpc_samr_QueryGroupInfo_done(struct tevent_req *subreq)
    4718             : {
    4719           0 :         struct tevent_req *req = tevent_req_callback_data(
    4720             :                 subreq, struct tevent_req);
    4721           0 :         struct dcerpc_samr_QueryGroupInfo_state *state = tevent_req_data(
    4722             :                 req, struct dcerpc_samr_QueryGroupInfo_state);
    4723           0 :         NTSTATUS status;
    4724           0 :         TALLOC_CTX *mem_ctx;
    4725             : 
    4726           0 :         if (state->out_mem_ctx) {
    4727           0 :                 mem_ctx = state->out_mem_ctx;
    4728             :         } else {
    4729           0 :                 mem_ctx = state;
    4730             :         }
    4731             : 
    4732           0 :         status = dcerpc_samr_QueryGroupInfo_r_recv(subreq, mem_ctx);
    4733           0 :         TALLOC_FREE(subreq);
    4734           0 :         if (tevent_req_nterror(req, status)) {
    4735           0 :                 return;
    4736             :         }
    4737             : 
    4738             :         /* Copy out parameters */
    4739           0 :         *state->orig.out.info = *state->tmp.out.info;
    4740             : 
    4741             :         /* Copy result */
    4742           0 :         state->orig.out.result = state->tmp.out.result;
    4743             : 
    4744             :         /* Reset temporary structure */
    4745           0 :         NDR_ZERO_STRUCT(state->tmp);
    4746             : 
    4747           0 :         tevent_req_done(req);
    4748             : }
    4749             : 
    4750           0 : NTSTATUS dcerpc_samr_QueryGroupInfo_recv(struct tevent_req *req,
    4751             :                                          TALLOC_CTX *mem_ctx,
    4752             :                                          NTSTATUS *result)
    4753             : {
    4754           0 :         struct dcerpc_samr_QueryGroupInfo_state *state = tevent_req_data(
    4755             :                 req, struct dcerpc_samr_QueryGroupInfo_state);
    4756           0 :         NTSTATUS status;
    4757             : 
    4758           0 :         if (tevent_req_is_nterror(req, &status)) {
    4759           0 :                 tevent_req_received(req);
    4760           0 :                 return status;
    4761             :         }
    4762             : 
    4763             :         /* Steal possible out parameters to the callers context */
    4764           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    4765             : 
    4766             :         /* Return result */
    4767           0 :         *result = state->orig.out.result;
    4768             : 
    4769           0 :         tevent_req_received(req);
    4770           0 :         return NT_STATUS_OK;
    4771             : }
    4772             : 
    4773          10 : NTSTATUS dcerpc_samr_QueryGroupInfo(struct dcerpc_binding_handle *h,
    4774             :                                     TALLOC_CTX *mem_ctx,
    4775             :                                     struct policy_handle *_group_handle /* [in] [ref] */,
    4776             :                                     enum samr_GroupInfoEnum _level /* [in]  */,
    4777             :                                     union samr_GroupInfo **_info /* [out] [ref,switch_is(level)] */,
    4778             :                                     NTSTATUS *result)
    4779             : {
    4780           0 :         struct samr_QueryGroupInfo r;
    4781           0 :         NTSTATUS status;
    4782             : 
    4783             :         /* In parameters */
    4784          10 :         r.in.group_handle = _group_handle;
    4785          10 :         r.in.level = _level;
    4786             : 
    4787             :         /* Out parameters */
    4788          10 :         r.out.info = _info;
    4789             : 
    4790             :         /* Result */
    4791          10 :         NDR_ZERO_STRUCT(r.out.result);
    4792             : 
    4793          10 :         status = dcerpc_samr_QueryGroupInfo_r(h, mem_ctx, &r);
    4794          10 :         if (!NT_STATUS_IS_OK(status)) {
    4795           0 :                 return status;
    4796             :         }
    4797             : 
    4798             :         /* Return variables */
    4799          10 :         *_info = *r.out.info;
    4800             : 
    4801             :         /* Return result */
    4802          10 :         *result = r.out.result;
    4803             : 
    4804          10 :         return NT_STATUS_OK;
    4805             : }
    4806             : 
    4807             : struct dcerpc_samr_SetGroupInfo_r_state {
    4808             :         TALLOC_CTX *out_mem_ctx;
    4809             : };
    4810             : 
    4811             : static void dcerpc_samr_SetGroupInfo_r_done(struct tevent_req *subreq);
    4812             : 
    4813           0 : struct tevent_req *dcerpc_samr_SetGroupInfo_r_send(TALLOC_CTX *mem_ctx,
    4814             :         struct tevent_context *ev,
    4815             :         struct dcerpc_binding_handle *h,
    4816             :         struct samr_SetGroupInfo *r)
    4817             : {
    4818           0 :         struct tevent_req *req;
    4819           0 :         struct dcerpc_samr_SetGroupInfo_r_state *state;
    4820           0 :         struct tevent_req *subreq;
    4821             : 
    4822           0 :         req = tevent_req_create(mem_ctx, &state,
    4823             :                                 struct dcerpc_samr_SetGroupInfo_r_state);
    4824           0 :         if (req == NULL) {
    4825           0 :                 return NULL;
    4826             :         }
    4827             : 
    4828           0 :         state->out_mem_ctx = NULL;
    4829             : 
    4830           0 :         subreq = dcerpc_binding_handle_call_send(state, ev, h,
    4831             :                         NULL, &ndr_table_samr,
    4832             :                         NDR_SAMR_SETGROUPINFO, state, r);
    4833           0 :         if (tevent_req_nomem(subreq, req)) {
    4834           0 :                 return tevent_req_post(req, ev);
    4835             :         }
    4836           0 :         tevent_req_set_callback(subreq, dcerpc_samr_SetGroupInfo_r_done, req);
    4837             : 
    4838           0 :         return req;
    4839             : }
    4840             : 
    4841           0 : static void dcerpc_samr_SetGroupInfo_r_done(struct tevent_req *subreq)
    4842             : {
    4843           0 :         struct tevent_req *req =
    4844           0 :                 tevent_req_callback_data(subreq,
    4845             :                 struct tevent_req);
    4846           0 :         NTSTATUS status;
    4847             : 
    4848           0 :         status = dcerpc_binding_handle_call_recv(subreq);
    4849           0 :         TALLOC_FREE(subreq);
    4850           0 :         if (tevent_req_nterror(req, status)) {
    4851           0 :                 return;
    4852             :         }
    4853             : 
    4854           0 :         tevent_req_done(req);
    4855             : }
    4856             : 
    4857           0 : NTSTATUS dcerpc_samr_SetGroupInfo_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
    4858             : {
    4859           0 :         struct dcerpc_samr_SetGroupInfo_r_state *state =
    4860           0 :                 tevent_req_data(req,
    4861             :                 struct dcerpc_samr_SetGroupInfo_r_state);
    4862           0 :         NTSTATUS status;
    4863             : 
    4864           0 :         if (tevent_req_is_nterror(req, &status)) {
    4865           0 :                 tevent_req_received(req);
    4866           0 :                 return status;
    4867             :         }
    4868             : 
    4869           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    4870             : 
    4871           0 :         tevent_req_received(req);
    4872           0 :         return NT_STATUS_OK;
    4873             : }
    4874             : 
    4875          21 : NTSTATUS dcerpc_samr_SetGroupInfo_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct samr_SetGroupInfo *r)
    4876             : {
    4877           0 :         NTSTATUS status;
    4878             : 
    4879          21 :         status = dcerpc_binding_handle_call(h,
    4880             :                         NULL, &ndr_table_samr,
    4881             :                         NDR_SAMR_SETGROUPINFO, mem_ctx, r);
    4882             : 
    4883          21 :         return status;
    4884             : }
    4885             : 
    4886             : struct dcerpc_samr_SetGroupInfo_state {
    4887             :         struct samr_SetGroupInfo orig;
    4888             :         struct samr_SetGroupInfo tmp;
    4889             :         TALLOC_CTX *out_mem_ctx;
    4890             : };
    4891             : 
    4892             : static void dcerpc_samr_SetGroupInfo_done(struct tevent_req *subreq);
    4893             : 
    4894           0 : struct tevent_req *dcerpc_samr_SetGroupInfo_send(TALLOC_CTX *mem_ctx,
    4895             :                                                  struct tevent_context *ev,
    4896             :                                                  struct dcerpc_binding_handle *h,
    4897             :                                                  struct policy_handle *_group_handle /* [in] [ref] */,
    4898             :                                                  enum samr_GroupInfoEnum _level /* [in]  */,
    4899             :                                                  union samr_GroupInfo *_info /* [in] [ref,switch_is(level)] */)
    4900             : {
    4901           0 :         struct tevent_req *req;
    4902           0 :         struct dcerpc_samr_SetGroupInfo_state *state;
    4903           0 :         struct tevent_req *subreq;
    4904             : 
    4905           0 :         req = tevent_req_create(mem_ctx, &state,
    4906             :                                 struct dcerpc_samr_SetGroupInfo_state);
    4907           0 :         if (req == NULL) {
    4908           0 :                 return NULL;
    4909             :         }
    4910           0 :         state->out_mem_ctx = NULL;
    4911             : 
    4912             :         /* In parameters */
    4913           0 :         state->orig.in.group_handle = _group_handle;
    4914           0 :         state->orig.in.level = _level;
    4915           0 :         state->orig.in.info = _info;
    4916             : 
    4917             :         /* Out parameters */
    4918             : 
    4919             :         /* Result */
    4920           0 :         NDR_ZERO_STRUCT(state->orig.out.result);
    4921             : 
    4922             :         /* make a temporary copy, that we pass to the dispatch function */
    4923           0 :         state->tmp = state->orig;
    4924             : 
    4925           0 :         subreq = dcerpc_samr_SetGroupInfo_r_send(state, ev, h, &state->tmp);
    4926           0 :         if (tevent_req_nomem(subreq, req)) {
    4927           0 :                 return tevent_req_post(req, ev);
    4928             :         }
    4929           0 :         tevent_req_set_callback(subreq, dcerpc_samr_SetGroupInfo_done, req);
    4930           0 :         return req;
    4931             : }
    4932             : 
    4933           0 : static void dcerpc_samr_SetGroupInfo_done(struct tevent_req *subreq)
    4934             : {
    4935           0 :         struct tevent_req *req = tevent_req_callback_data(
    4936             :                 subreq, struct tevent_req);
    4937           0 :         struct dcerpc_samr_SetGroupInfo_state *state = tevent_req_data(
    4938             :                 req, struct dcerpc_samr_SetGroupInfo_state);
    4939           0 :         NTSTATUS status;
    4940           0 :         TALLOC_CTX *mem_ctx;
    4941             : 
    4942           0 :         if (state->out_mem_ctx) {
    4943           0 :                 mem_ctx = state->out_mem_ctx;
    4944             :         } else {
    4945           0 :                 mem_ctx = state;
    4946             :         }
    4947             : 
    4948           0 :         status = dcerpc_samr_SetGroupInfo_r_recv(subreq, mem_ctx);
    4949           0 :         TALLOC_FREE(subreq);
    4950           0 :         if (tevent_req_nterror(req, status)) {
    4951           0 :                 return;
    4952             :         }
    4953             : 
    4954             :         /* Copy out parameters */
    4955             : 
    4956             :         /* Copy result */
    4957           0 :         state->orig.out.result = state->tmp.out.result;
    4958             : 
    4959             :         /* Reset temporary structure */
    4960           0 :         NDR_ZERO_STRUCT(state->tmp);
    4961             : 
    4962           0 :         tevent_req_done(req);
    4963             : }
    4964             : 
    4965           0 : NTSTATUS dcerpc_samr_SetGroupInfo_recv(struct tevent_req *req,
    4966             :                                        TALLOC_CTX *mem_ctx,
    4967             :                                        NTSTATUS *result)
    4968             : {
    4969           0 :         struct dcerpc_samr_SetGroupInfo_state *state = tevent_req_data(
    4970             :                 req, struct dcerpc_samr_SetGroupInfo_state);
    4971           0 :         NTSTATUS status;
    4972             : 
    4973           0 :         if (tevent_req_is_nterror(req, &status)) {
    4974           0 :                 tevent_req_received(req);
    4975           0 :                 return status;
    4976             :         }
    4977             : 
    4978             :         /* Steal possible out parameters to the callers context */
    4979           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    4980             : 
    4981             :         /* Return result */
    4982           0 :         *result = state->orig.out.result;
    4983             : 
    4984           0 :         tevent_req_received(req);
    4985           0 :         return NT_STATUS_OK;
    4986             : }
    4987             : 
    4988           1 : NTSTATUS dcerpc_samr_SetGroupInfo(struct dcerpc_binding_handle *h,
    4989             :                                   TALLOC_CTX *mem_ctx,
    4990             :                                   struct policy_handle *_group_handle /* [in] [ref] */,
    4991             :                                   enum samr_GroupInfoEnum _level /* [in]  */,
    4992             :                                   union samr_GroupInfo *_info /* [in] [ref,switch_is(level)] */,
    4993             :                                   NTSTATUS *result)
    4994             : {
    4995           0 :         struct samr_SetGroupInfo r;
    4996           0 :         NTSTATUS status;
    4997             : 
    4998             :         /* In parameters */
    4999           1 :         r.in.group_handle = _group_handle;
    5000           1 :         r.in.level = _level;
    5001           1 :         r.in.info = _info;
    5002             : 
    5003             :         /* Out parameters */
    5004             : 
    5005             :         /* Result */
    5006           1 :         NDR_ZERO_STRUCT(r.out.result);
    5007             : 
    5008           1 :         status = dcerpc_samr_SetGroupInfo_r(h, mem_ctx, &r);
    5009           1 :         if (!NT_STATUS_IS_OK(status)) {
    5010           0 :                 return status;
    5011             :         }
    5012             : 
    5013             :         /* Return variables */
    5014             : 
    5015             :         /* Return result */
    5016           1 :         *result = r.out.result;
    5017             : 
    5018           1 :         return NT_STATUS_OK;
    5019             : }
    5020             : 
    5021             : struct dcerpc_samr_AddGroupMember_r_state {
    5022             :         TALLOC_CTX *out_mem_ctx;
    5023             : };
    5024             : 
    5025             : static void dcerpc_samr_AddGroupMember_r_done(struct tevent_req *subreq);
    5026             : 
    5027           0 : struct tevent_req *dcerpc_samr_AddGroupMember_r_send(TALLOC_CTX *mem_ctx,
    5028             :         struct tevent_context *ev,
    5029             :         struct dcerpc_binding_handle *h,
    5030             :         struct samr_AddGroupMember *r)
    5031             : {
    5032           0 :         struct tevent_req *req;
    5033           0 :         struct dcerpc_samr_AddGroupMember_r_state *state;
    5034           0 :         struct tevent_req *subreq;
    5035             : 
    5036           0 :         req = tevent_req_create(mem_ctx, &state,
    5037             :                                 struct dcerpc_samr_AddGroupMember_r_state);
    5038           0 :         if (req == NULL) {
    5039           0 :                 return NULL;
    5040             :         }
    5041             : 
    5042           0 :         state->out_mem_ctx = NULL;
    5043             : 
    5044           0 :         subreq = dcerpc_binding_handle_call_send(state, ev, h,
    5045             :                         NULL, &ndr_table_samr,
    5046             :                         NDR_SAMR_ADDGROUPMEMBER, state, r);
    5047           0 :         if (tevent_req_nomem(subreq, req)) {
    5048           0 :                 return tevent_req_post(req, ev);
    5049             :         }
    5050           0 :         tevent_req_set_callback(subreq, dcerpc_samr_AddGroupMember_r_done, req);
    5051             : 
    5052           0 :         return req;
    5053             : }
    5054             : 
    5055           0 : static void dcerpc_samr_AddGroupMember_r_done(struct tevent_req *subreq)
    5056             : {
    5057           0 :         struct tevent_req *req =
    5058           0 :                 tevent_req_callback_data(subreq,
    5059             :                 struct tevent_req);
    5060           0 :         NTSTATUS status;
    5061             : 
    5062           0 :         status = dcerpc_binding_handle_call_recv(subreq);
    5063           0 :         TALLOC_FREE(subreq);
    5064           0 :         if (tevent_req_nterror(req, status)) {
    5065           0 :                 return;
    5066             :         }
    5067             : 
    5068           0 :         tevent_req_done(req);
    5069             : }
    5070             : 
    5071           0 : NTSTATUS dcerpc_samr_AddGroupMember_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
    5072             : {
    5073           0 :         struct dcerpc_samr_AddGroupMember_r_state *state =
    5074           0 :                 tevent_req_data(req,
    5075             :                 struct dcerpc_samr_AddGroupMember_r_state);
    5076           0 :         NTSTATUS status;
    5077             : 
    5078           0 :         if (tevent_req_is_nterror(req, &status)) {
    5079           0 :                 tevent_req_received(req);
    5080           0 :                 return status;
    5081             :         }
    5082             : 
    5083           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    5084             : 
    5085           0 :         tevent_req_received(req);
    5086           0 :         return NT_STATUS_OK;
    5087             : }
    5088             : 
    5089          87 : NTSTATUS dcerpc_samr_AddGroupMember_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct samr_AddGroupMember *r)
    5090             : {
    5091           0 :         NTSTATUS status;
    5092             : 
    5093          87 :         status = dcerpc_binding_handle_call(h,
    5094             :                         NULL, &ndr_table_samr,
    5095             :                         NDR_SAMR_ADDGROUPMEMBER, mem_ctx, r);
    5096             : 
    5097          87 :         return status;
    5098             : }
    5099             : 
    5100             : struct dcerpc_samr_AddGroupMember_state {
    5101             :         struct samr_AddGroupMember orig;
    5102             :         struct samr_AddGroupMember tmp;
    5103             :         TALLOC_CTX *out_mem_ctx;
    5104             : };
    5105             : 
    5106             : static void dcerpc_samr_AddGroupMember_done(struct tevent_req *subreq);
    5107             : 
    5108           0 : struct tevent_req *dcerpc_samr_AddGroupMember_send(TALLOC_CTX *mem_ctx,
    5109             :                                                    struct tevent_context *ev,
    5110             :                                                    struct dcerpc_binding_handle *h,
    5111             :                                                    struct policy_handle *_group_handle /* [in] [ref] */,
    5112             :                                                    uint32_t _rid /* [in]  */,
    5113             :                                                    uint32_t _flags /* [in]  */)
    5114             : {
    5115           0 :         struct tevent_req *req;
    5116           0 :         struct dcerpc_samr_AddGroupMember_state *state;
    5117           0 :         struct tevent_req *subreq;
    5118             : 
    5119           0 :         req = tevent_req_create(mem_ctx, &state,
    5120             :                                 struct dcerpc_samr_AddGroupMember_state);
    5121           0 :         if (req == NULL) {
    5122           0 :                 return NULL;
    5123             :         }
    5124           0 :         state->out_mem_ctx = NULL;
    5125             : 
    5126             :         /* In parameters */
    5127           0 :         state->orig.in.group_handle = _group_handle;
    5128           0 :         state->orig.in.rid = _rid;
    5129           0 :         state->orig.in.flags = _flags;
    5130             : 
    5131             :         /* Out parameters */
    5132             : 
    5133             :         /* Result */
    5134           0 :         NDR_ZERO_STRUCT(state->orig.out.result);
    5135             : 
    5136             :         /* make a temporary copy, that we pass to the dispatch function */
    5137           0 :         state->tmp = state->orig;
    5138             : 
    5139           0 :         subreq = dcerpc_samr_AddGroupMember_r_send(state, ev, h, &state->tmp);
    5140           0 :         if (tevent_req_nomem(subreq, req)) {
    5141           0 :                 return tevent_req_post(req, ev);
    5142             :         }
    5143           0 :         tevent_req_set_callback(subreq, dcerpc_samr_AddGroupMember_done, req);
    5144           0 :         return req;
    5145             : }
    5146             : 
    5147           0 : static void dcerpc_samr_AddGroupMember_done(struct tevent_req *subreq)
    5148             : {
    5149           0 :         struct tevent_req *req = tevent_req_callback_data(
    5150             :                 subreq, struct tevent_req);
    5151           0 :         struct dcerpc_samr_AddGroupMember_state *state = tevent_req_data(
    5152             :                 req, struct dcerpc_samr_AddGroupMember_state);
    5153           0 :         NTSTATUS status;
    5154           0 :         TALLOC_CTX *mem_ctx;
    5155             : 
    5156           0 :         if (state->out_mem_ctx) {
    5157           0 :                 mem_ctx = state->out_mem_ctx;
    5158             :         } else {
    5159           0 :                 mem_ctx = state;
    5160             :         }
    5161             : 
    5162           0 :         status = dcerpc_samr_AddGroupMember_r_recv(subreq, mem_ctx);
    5163           0 :         TALLOC_FREE(subreq);
    5164           0 :         if (tevent_req_nterror(req, status)) {
    5165           0 :                 return;
    5166             :         }
    5167             : 
    5168             :         /* Copy out parameters */
    5169             : 
    5170             :         /* Copy result */
    5171           0 :         state->orig.out.result = state->tmp.out.result;
    5172             : 
    5173             :         /* Reset temporary structure */
    5174           0 :         NDR_ZERO_STRUCT(state->tmp);
    5175             : 
    5176           0 :         tevent_req_done(req);
    5177             : }
    5178             : 
    5179           0 : NTSTATUS dcerpc_samr_AddGroupMember_recv(struct tevent_req *req,
    5180             :                                          TALLOC_CTX *mem_ctx,
    5181             :                                          NTSTATUS *result)
    5182             : {
    5183           0 :         struct dcerpc_samr_AddGroupMember_state *state = tevent_req_data(
    5184             :                 req, struct dcerpc_samr_AddGroupMember_state);
    5185           0 :         NTSTATUS status;
    5186             : 
    5187           0 :         if (tevent_req_is_nterror(req, &status)) {
    5188           0 :                 tevent_req_received(req);
    5189           0 :                 return status;
    5190             :         }
    5191             : 
    5192             :         /* Steal possible out parameters to the callers context */
    5193           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    5194             : 
    5195             :         /* Return result */
    5196           0 :         *result = state->orig.out.result;
    5197             : 
    5198           0 :         tevent_req_received(req);
    5199           0 :         return NT_STATUS_OK;
    5200             : }
    5201             : 
    5202          72 : NTSTATUS dcerpc_samr_AddGroupMember(struct dcerpc_binding_handle *h,
    5203             :                                     TALLOC_CTX *mem_ctx,
    5204             :                                     struct policy_handle *_group_handle /* [in] [ref] */,
    5205             :                                     uint32_t _rid /* [in]  */,
    5206             :                                     uint32_t _flags /* [in]  */,
    5207             :                                     NTSTATUS *result)
    5208             : {
    5209           0 :         struct samr_AddGroupMember r;
    5210           0 :         NTSTATUS status;
    5211             : 
    5212             :         /* In parameters */
    5213          72 :         r.in.group_handle = _group_handle;
    5214          72 :         r.in.rid = _rid;
    5215          72 :         r.in.flags = _flags;
    5216             : 
    5217             :         /* Out parameters */
    5218             : 
    5219             :         /* Result */
    5220          72 :         NDR_ZERO_STRUCT(r.out.result);
    5221             : 
    5222          72 :         status = dcerpc_samr_AddGroupMember_r(h, mem_ctx, &r);
    5223          72 :         if (!NT_STATUS_IS_OK(status)) {
    5224           0 :                 return status;
    5225             :         }
    5226             : 
    5227             :         /* Return variables */
    5228             : 
    5229             :         /* Return result */
    5230          72 :         *result = r.out.result;
    5231             : 
    5232          72 :         return NT_STATUS_OK;
    5233             : }
    5234             : 
    5235             : struct dcerpc_samr_DeleteDomainGroup_r_state {
    5236             :         TALLOC_CTX *out_mem_ctx;
    5237             : };
    5238             : 
    5239             : static void dcerpc_samr_DeleteDomainGroup_r_done(struct tevent_req *subreq);
    5240             : 
    5241           0 : struct tevent_req *dcerpc_samr_DeleteDomainGroup_r_send(TALLOC_CTX *mem_ctx,
    5242             :         struct tevent_context *ev,
    5243             :         struct dcerpc_binding_handle *h,
    5244             :         struct samr_DeleteDomainGroup *r)
    5245             : {
    5246           0 :         struct tevent_req *req;
    5247           0 :         struct dcerpc_samr_DeleteDomainGroup_r_state *state;
    5248           0 :         struct tevent_req *subreq;
    5249             : 
    5250           0 :         req = tevent_req_create(mem_ctx, &state,
    5251             :                                 struct dcerpc_samr_DeleteDomainGroup_r_state);
    5252           0 :         if (req == NULL) {
    5253           0 :                 return NULL;
    5254             :         }
    5255             : 
    5256           0 :         state->out_mem_ctx = talloc_new(state);
    5257           0 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
    5258           0 :                 return tevent_req_post(req, ev);
    5259             :         }
    5260             : 
    5261           0 :         subreq = dcerpc_binding_handle_call_send(state, ev, h,
    5262             :                         NULL, &ndr_table_samr,
    5263           0 :                         NDR_SAMR_DELETEDOMAINGROUP, state->out_mem_ctx, r);
    5264           0 :         if (tevent_req_nomem(subreq, req)) {
    5265           0 :                 return tevent_req_post(req, ev);
    5266             :         }
    5267           0 :         tevent_req_set_callback(subreq, dcerpc_samr_DeleteDomainGroup_r_done, req);
    5268             : 
    5269           0 :         return req;
    5270             : }
    5271             : 
    5272           0 : static void dcerpc_samr_DeleteDomainGroup_r_done(struct tevent_req *subreq)
    5273             : {
    5274           0 :         struct tevent_req *req =
    5275           0 :                 tevent_req_callback_data(subreq,
    5276             :                 struct tevent_req);
    5277           0 :         NTSTATUS status;
    5278             : 
    5279           0 :         status = dcerpc_binding_handle_call_recv(subreq);
    5280           0 :         TALLOC_FREE(subreq);
    5281           0 :         if (tevent_req_nterror(req, status)) {
    5282           0 :                 return;
    5283             :         }
    5284             : 
    5285           0 :         tevent_req_done(req);
    5286             : }
    5287             : 
    5288           0 : NTSTATUS dcerpc_samr_DeleteDomainGroup_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
    5289             : {
    5290           0 :         struct dcerpc_samr_DeleteDomainGroup_r_state *state =
    5291           0 :                 tevent_req_data(req,
    5292             :                 struct dcerpc_samr_DeleteDomainGroup_r_state);
    5293           0 :         NTSTATUS status;
    5294             : 
    5295           0 :         if (tevent_req_is_nterror(req, &status)) {
    5296           0 :                 tevent_req_received(req);
    5297           0 :                 return status;
    5298             :         }
    5299             : 
    5300           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    5301             : 
    5302           0 :         tevent_req_received(req);
    5303           0 :         return NT_STATUS_OK;
    5304             : }
    5305             : 
    5306         530 : NTSTATUS dcerpc_samr_DeleteDomainGroup_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct samr_DeleteDomainGroup *r)
    5307             : {
    5308           0 :         NTSTATUS status;
    5309             : 
    5310         530 :         status = dcerpc_binding_handle_call(h,
    5311             :                         NULL, &ndr_table_samr,
    5312             :                         NDR_SAMR_DELETEDOMAINGROUP, mem_ctx, r);
    5313             : 
    5314         530 :         return status;
    5315             : }
    5316             : 
    5317             : struct dcerpc_samr_DeleteDomainGroup_state {
    5318             :         struct samr_DeleteDomainGroup orig;
    5319             :         struct samr_DeleteDomainGroup tmp;
    5320             :         TALLOC_CTX *out_mem_ctx;
    5321             : };
    5322             : 
    5323             : static void dcerpc_samr_DeleteDomainGroup_done(struct tevent_req *subreq);
    5324             : 
    5325           0 : struct tevent_req *dcerpc_samr_DeleteDomainGroup_send(TALLOC_CTX *mem_ctx,
    5326             :                                                       struct tevent_context *ev,
    5327             :                                                       struct dcerpc_binding_handle *h,
    5328             :                                                       struct policy_handle *_group_handle /* [in,out] [ref] */)
    5329             : {
    5330           0 :         struct tevent_req *req;
    5331           0 :         struct dcerpc_samr_DeleteDomainGroup_state *state;
    5332           0 :         struct tevent_req *subreq;
    5333             : 
    5334           0 :         req = tevent_req_create(mem_ctx, &state,
    5335             :                                 struct dcerpc_samr_DeleteDomainGroup_state);
    5336           0 :         if (req == NULL) {
    5337           0 :                 return NULL;
    5338             :         }
    5339           0 :         state->out_mem_ctx = NULL;
    5340             : 
    5341             :         /* In parameters */
    5342           0 :         state->orig.in.group_handle = _group_handle;
    5343             : 
    5344             :         /* Out parameters */
    5345           0 :         state->orig.out.group_handle = _group_handle;
    5346             : 
    5347             :         /* Result */
    5348           0 :         NDR_ZERO_STRUCT(state->orig.out.result);
    5349             : 
    5350           0 :         state->out_mem_ctx = talloc_named_const(state, 0,
    5351             :                              "dcerpc_samr_DeleteDomainGroup_out_memory");
    5352           0 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
    5353           0 :                 return tevent_req_post(req, ev);
    5354             :         }
    5355             : 
    5356             :         /* make a temporary copy, that we pass to the dispatch function */
    5357           0 :         state->tmp = state->orig;
    5358             : 
    5359           0 :         subreq = dcerpc_samr_DeleteDomainGroup_r_send(state, ev, h, &state->tmp);
    5360           0 :         if (tevent_req_nomem(subreq, req)) {
    5361           0 :                 return tevent_req_post(req, ev);
    5362             :         }
    5363           0 :         tevent_req_set_callback(subreq, dcerpc_samr_DeleteDomainGroup_done, req);
    5364           0 :         return req;
    5365             : }
    5366             : 
    5367           0 : static void dcerpc_samr_DeleteDomainGroup_done(struct tevent_req *subreq)
    5368             : {
    5369           0 :         struct tevent_req *req = tevent_req_callback_data(
    5370             :                 subreq, struct tevent_req);
    5371           0 :         struct dcerpc_samr_DeleteDomainGroup_state *state = tevent_req_data(
    5372             :                 req, struct dcerpc_samr_DeleteDomainGroup_state);
    5373           0 :         NTSTATUS status;
    5374           0 :         TALLOC_CTX *mem_ctx;
    5375             : 
    5376           0 :         if (state->out_mem_ctx) {
    5377           0 :                 mem_ctx = state->out_mem_ctx;
    5378             :         } else {
    5379           0 :                 mem_ctx = state;
    5380             :         }
    5381             : 
    5382           0 :         status = dcerpc_samr_DeleteDomainGroup_r_recv(subreq, mem_ctx);
    5383           0 :         TALLOC_FREE(subreq);
    5384           0 :         if (tevent_req_nterror(req, status)) {
    5385           0 :                 return;
    5386             :         }
    5387             : 
    5388             :         /* Copy out parameters */
    5389           0 :         *state->orig.out.group_handle = *state->tmp.out.group_handle;
    5390             : 
    5391             :         /* Copy result */
    5392           0 :         state->orig.out.result = state->tmp.out.result;
    5393             : 
    5394             :         /* Reset temporary structure */
    5395           0 :         NDR_ZERO_STRUCT(state->tmp);
    5396             : 
    5397           0 :         tevent_req_done(req);
    5398             : }
    5399             : 
    5400           0 : NTSTATUS dcerpc_samr_DeleteDomainGroup_recv(struct tevent_req *req,
    5401             :                                             TALLOC_CTX *mem_ctx,
    5402             :                                             NTSTATUS *result)
    5403             : {
    5404           0 :         struct dcerpc_samr_DeleteDomainGroup_state *state = tevent_req_data(
    5405             :                 req, struct dcerpc_samr_DeleteDomainGroup_state);
    5406           0 :         NTSTATUS status;
    5407             : 
    5408           0 :         if (tevent_req_is_nterror(req, &status)) {
    5409           0 :                 tevent_req_received(req);
    5410           0 :                 return status;
    5411             :         }
    5412             : 
    5413             :         /* Steal possible out parameters to the callers context */
    5414           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    5415             : 
    5416             :         /* Return result */
    5417           0 :         *result = state->orig.out.result;
    5418             : 
    5419           0 :         tevent_req_received(req);
    5420           0 :         return NT_STATUS_OK;
    5421             : }
    5422             : 
    5423          71 : NTSTATUS dcerpc_samr_DeleteDomainGroup(struct dcerpc_binding_handle *h,
    5424             :                                        TALLOC_CTX *mem_ctx,
    5425             :                                        struct policy_handle *_group_handle /* [in,out] [ref] */,
    5426             :                                        NTSTATUS *result)
    5427             : {
    5428           0 :         struct samr_DeleteDomainGroup r;
    5429           0 :         NTSTATUS status;
    5430             : 
    5431             :         /* In parameters */
    5432          71 :         r.in.group_handle = _group_handle;
    5433             : 
    5434             :         /* Out parameters */
    5435          71 :         r.out.group_handle = _group_handle;
    5436             : 
    5437             :         /* Result */
    5438          71 :         NDR_ZERO_STRUCT(r.out.result);
    5439             : 
    5440          71 :         status = dcerpc_samr_DeleteDomainGroup_r(h, mem_ctx, &r);
    5441          71 :         if (!NT_STATUS_IS_OK(status)) {
    5442           0 :                 return status;
    5443             :         }
    5444             : 
    5445             :         /* Return variables */
    5446          71 :         *_group_handle = *r.out.group_handle;
    5447             : 
    5448             :         /* Return result */
    5449          71 :         *result = r.out.result;
    5450             : 
    5451          71 :         return NT_STATUS_OK;
    5452             : }
    5453             : 
    5454             : struct dcerpc_samr_DeleteGroupMember_r_state {
    5455             :         TALLOC_CTX *out_mem_ctx;
    5456             : };
    5457             : 
    5458             : static void dcerpc_samr_DeleteGroupMember_r_done(struct tevent_req *subreq);
    5459             : 
    5460           0 : struct tevent_req *dcerpc_samr_DeleteGroupMember_r_send(TALLOC_CTX *mem_ctx,
    5461             :         struct tevent_context *ev,
    5462             :         struct dcerpc_binding_handle *h,
    5463             :         struct samr_DeleteGroupMember *r)
    5464             : {
    5465           0 :         struct tevent_req *req;
    5466           0 :         struct dcerpc_samr_DeleteGroupMember_r_state *state;
    5467           0 :         struct tevent_req *subreq;
    5468             : 
    5469           0 :         req = tevent_req_create(mem_ctx, &state,
    5470             :                                 struct dcerpc_samr_DeleteGroupMember_r_state);
    5471           0 :         if (req == NULL) {
    5472           0 :                 return NULL;
    5473             :         }
    5474             : 
    5475           0 :         state->out_mem_ctx = NULL;
    5476             : 
    5477           0 :         subreq = dcerpc_binding_handle_call_send(state, ev, h,
    5478             :                         NULL, &ndr_table_samr,
    5479             :                         NDR_SAMR_DELETEGROUPMEMBER, state, r);
    5480           0 :         if (tevent_req_nomem(subreq, req)) {
    5481           0 :                 return tevent_req_post(req, ev);
    5482             :         }
    5483           0 :         tevent_req_set_callback(subreq, dcerpc_samr_DeleteGroupMember_r_done, req);
    5484             : 
    5485           0 :         return req;
    5486             : }
    5487             : 
    5488           0 : static void dcerpc_samr_DeleteGroupMember_r_done(struct tevent_req *subreq)
    5489             : {
    5490           0 :         struct tevent_req *req =
    5491           0 :                 tevent_req_callback_data(subreq,
    5492             :                 struct tevent_req);
    5493           0 :         NTSTATUS status;
    5494             : 
    5495           0 :         status = dcerpc_binding_handle_call_recv(subreq);
    5496           0 :         TALLOC_FREE(subreq);
    5497           0 :         if (tevent_req_nterror(req, status)) {
    5498           0 :                 return;
    5499             :         }
    5500             : 
    5501           0 :         tevent_req_done(req);
    5502             : }
    5503             : 
    5504           0 : NTSTATUS dcerpc_samr_DeleteGroupMember_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
    5505             : {
    5506           0 :         struct dcerpc_samr_DeleteGroupMember_r_state *state =
    5507           0 :                 tevent_req_data(req,
    5508             :                 struct dcerpc_samr_DeleteGroupMember_r_state);
    5509           0 :         NTSTATUS status;
    5510             : 
    5511           0 :         if (tevent_req_is_nterror(req, &status)) {
    5512           0 :                 tevent_req_received(req);
    5513           0 :                 return status;
    5514             :         }
    5515             : 
    5516           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    5517             : 
    5518           0 :         tevent_req_received(req);
    5519           0 :         return NT_STATUS_OK;
    5520             : }
    5521             : 
    5522          81 : NTSTATUS dcerpc_samr_DeleteGroupMember_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct samr_DeleteGroupMember *r)
    5523             : {
    5524           0 :         NTSTATUS status;
    5525             : 
    5526          81 :         status = dcerpc_binding_handle_call(h,
    5527             :                         NULL, &ndr_table_samr,
    5528             :                         NDR_SAMR_DELETEGROUPMEMBER, mem_ctx, r);
    5529             : 
    5530          81 :         return status;
    5531             : }
    5532             : 
    5533             : struct dcerpc_samr_DeleteGroupMember_state {
    5534             :         struct samr_DeleteGroupMember orig;
    5535             :         struct samr_DeleteGroupMember tmp;
    5536             :         TALLOC_CTX *out_mem_ctx;
    5537             : };
    5538             : 
    5539             : static void dcerpc_samr_DeleteGroupMember_done(struct tevent_req *subreq);
    5540             : 
    5541           0 : struct tevent_req *dcerpc_samr_DeleteGroupMember_send(TALLOC_CTX *mem_ctx,
    5542             :                                                       struct tevent_context *ev,
    5543             :                                                       struct dcerpc_binding_handle *h,
    5544             :                                                       struct policy_handle *_group_handle /* [in] [ref] */,
    5545             :                                                       uint32_t _rid /* [in]  */)
    5546             : {
    5547           0 :         struct tevent_req *req;
    5548           0 :         struct dcerpc_samr_DeleteGroupMember_state *state;
    5549           0 :         struct tevent_req *subreq;
    5550             : 
    5551           0 :         req = tevent_req_create(mem_ctx, &state,
    5552             :                                 struct dcerpc_samr_DeleteGroupMember_state);
    5553           0 :         if (req == NULL) {
    5554           0 :                 return NULL;
    5555             :         }
    5556           0 :         state->out_mem_ctx = NULL;
    5557             : 
    5558             :         /* In parameters */
    5559           0 :         state->orig.in.group_handle = _group_handle;
    5560           0 :         state->orig.in.rid = _rid;
    5561             : 
    5562             :         /* Out parameters */
    5563             : 
    5564             :         /* Result */
    5565           0 :         NDR_ZERO_STRUCT(state->orig.out.result);
    5566             : 
    5567             :         /* make a temporary copy, that we pass to the dispatch function */
    5568           0 :         state->tmp = state->orig;
    5569             : 
    5570           0 :         subreq = dcerpc_samr_DeleteGroupMember_r_send(state, ev, h, &state->tmp);
    5571           0 :         if (tevent_req_nomem(subreq, req)) {
    5572           0 :                 return tevent_req_post(req, ev);
    5573             :         }
    5574           0 :         tevent_req_set_callback(subreq, dcerpc_samr_DeleteGroupMember_done, req);
    5575           0 :         return req;
    5576             : }
    5577             : 
    5578           0 : static void dcerpc_samr_DeleteGroupMember_done(struct tevent_req *subreq)
    5579             : {
    5580           0 :         struct tevent_req *req = tevent_req_callback_data(
    5581             :                 subreq, struct tevent_req);
    5582           0 :         struct dcerpc_samr_DeleteGroupMember_state *state = tevent_req_data(
    5583             :                 req, struct dcerpc_samr_DeleteGroupMember_state);
    5584           0 :         NTSTATUS status;
    5585           0 :         TALLOC_CTX *mem_ctx;
    5586             : 
    5587           0 :         if (state->out_mem_ctx) {
    5588           0 :                 mem_ctx = state->out_mem_ctx;
    5589             :         } else {
    5590           0 :                 mem_ctx = state;
    5591             :         }
    5592             : 
    5593           0 :         status = dcerpc_samr_DeleteGroupMember_r_recv(subreq, mem_ctx);
    5594           0 :         TALLOC_FREE(subreq);
    5595           0 :         if (tevent_req_nterror(req, status)) {
    5596           0 :                 return;
    5597             :         }
    5598             : 
    5599             :         /* Copy out parameters */
    5600             : 
    5601             :         /* Copy result */
    5602           0 :         state->orig.out.result = state->tmp.out.result;
    5603             : 
    5604             :         /* Reset temporary structure */
    5605           0 :         NDR_ZERO_STRUCT(state->tmp);
    5606             : 
    5607           0 :         tevent_req_done(req);
    5608             : }
    5609             : 
    5610           0 : NTSTATUS dcerpc_samr_DeleteGroupMember_recv(struct tevent_req *req,
    5611             :                                             TALLOC_CTX *mem_ctx,
    5612             :                                             NTSTATUS *result)
    5613             : {
    5614           0 :         struct dcerpc_samr_DeleteGroupMember_state *state = tevent_req_data(
    5615             :                 req, struct dcerpc_samr_DeleteGroupMember_state);
    5616           0 :         NTSTATUS status;
    5617             : 
    5618           0 :         if (tevent_req_is_nterror(req, &status)) {
    5619           0 :                 tevent_req_received(req);
    5620           0 :                 return status;
    5621             :         }
    5622             : 
    5623             :         /* Steal possible out parameters to the callers context */
    5624           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    5625             : 
    5626             :         /* Return result */
    5627           0 :         *result = state->orig.out.result;
    5628             : 
    5629           0 :         tevent_req_received(req);
    5630           0 :         return NT_STATUS_OK;
    5631             : }
    5632             : 
    5633          71 : NTSTATUS dcerpc_samr_DeleteGroupMember(struct dcerpc_binding_handle *h,
    5634             :                                        TALLOC_CTX *mem_ctx,
    5635             :                                        struct policy_handle *_group_handle /* [in] [ref] */,
    5636             :                                        uint32_t _rid /* [in]  */,
    5637             :                                        NTSTATUS *result)
    5638             : {
    5639           0 :         struct samr_DeleteGroupMember r;
    5640           0 :         NTSTATUS status;
    5641             : 
    5642             :         /* In parameters */
    5643          71 :         r.in.group_handle = _group_handle;
    5644          71 :         r.in.rid = _rid;
    5645             : 
    5646             :         /* Out parameters */
    5647             : 
    5648             :         /* Result */
    5649          71 :         NDR_ZERO_STRUCT(r.out.result);
    5650             : 
    5651          71 :         status = dcerpc_samr_DeleteGroupMember_r(h, mem_ctx, &r);
    5652          71 :         if (!NT_STATUS_IS_OK(status)) {
    5653           0 :                 return status;
    5654             :         }
    5655             : 
    5656             :         /* Return variables */
    5657             : 
    5658             :         /* Return result */
    5659          71 :         *result = r.out.result;
    5660             : 
    5661          71 :         return NT_STATUS_OK;
    5662             : }
    5663             : 
    5664             : struct dcerpc_samr_QueryGroupMember_r_state {
    5665             :         TALLOC_CTX *out_mem_ctx;
    5666             : };
    5667             : 
    5668             : static void dcerpc_samr_QueryGroupMember_r_done(struct tevent_req *subreq);
    5669             : 
    5670           0 : struct tevent_req *dcerpc_samr_QueryGroupMember_r_send(TALLOC_CTX *mem_ctx,
    5671             :         struct tevent_context *ev,
    5672             :         struct dcerpc_binding_handle *h,
    5673             :         struct samr_QueryGroupMember *r)
    5674             : {
    5675           0 :         struct tevent_req *req;
    5676           0 :         struct dcerpc_samr_QueryGroupMember_r_state *state;
    5677           0 :         struct tevent_req *subreq;
    5678             : 
    5679           0 :         req = tevent_req_create(mem_ctx, &state,
    5680             :                                 struct dcerpc_samr_QueryGroupMember_r_state);
    5681           0 :         if (req == NULL) {
    5682           0 :                 return NULL;
    5683             :         }
    5684             : 
    5685           0 :         state->out_mem_ctx = talloc_new(state);
    5686           0 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
    5687           0 :                 return tevent_req_post(req, ev);
    5688             :         }
    5689             : 
    5690           0 :         subreq = dcerpc_binding_handle_call_send(state, ev, h,
    5691             :                         NULL, &ndr_table_samr,
    5692           0 :                         NDR_SAMR_QUERYGROUPMEMBER, state->out_mem_ctx, r);
    5693           0 :         if (tevent_req_nomem(subreq, req)) {
    5694           0 :                 return tevent_req_post(req, ev);
    5695             :         }
    5696           0 :         tevent_req_set_callback(subreq, dcerpc_samr_QueryGroupMember_r_done, req);
    5697             : 
    5698           0 :         return req;
    5699             : }
    5700             : 
    5701           0 : static void dcerpc_samr_QueryGroupMember_r_done(struct tevent_req *subreq)
    5702             : {
    5703           0 :         struct tevent_req *req =
    5704           0 :                 tevent_req_callback_data(subreq,
    5705             :                 struct tevent_req);
    5706           0 :         NTSTATUS status;
    5707             : 
    5708           0 :         status = dcerpc_binding_handle_call_recv(subreq);
    5709           0 :         TALLOC_FREE(subreq);
    5710           0 :         if (tevent_req_nterror(req, status)) {
    5711           0 :                 return;
    5712             :         }
    5713             : 
    5714           0 :         tevent_req_done(req);
    5715             : }
    5716             : 
    5717           0 : NTSTATUS dcerpc_samr_QueryGroupMember_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
    5718             : {
    5719           0 :         struct dcerpc_samr_QueryGroupMember_r_state *state =
    5720           0 :                 tevent_req_data(req,
    5721             :                 struct dcerpc_samr_QueryGroupMember_r_state);
    5722           0 :         NTSTATUS status;
    5723             : 
    5724           0 :         if (tevent_req_is_nterror(req, &status)) {
    5725           0 :                 tevent_req_received(req);
    5726           0 :                 return status;
    5727             :         }
    5728             : 
    5729           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    5730             : 
    5731           0 :         tevent_req_received(req);
    5732           0 :         return NT_STATUS_OK;
    5733             : }
    5734             : 
    5735         478 : NTSTATUS dcerpc_samr_QueryGroupMember_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct samr_QueryGroupMember *r)
    5736             : {
    5737           0 :         NTSTATUS status;
    5738             : 
    5739         478 :         status = dcerpc_binding_handle_call(h,
    5740             :                         NULL, &ndr_table_samr,
    5741             :                         NDR_SAMR_QUERYGROUPMEMBER, mem_ctx, r);
    5742             : 
    5743         478 :         return status;
    5744             : }
    5745             : 
    5746             : struct dcerpc_samr_QueryGroupMember_state {
    5747             :         struct samr_QueryGroupMember orig;
    5748             :         struct samr_QueryGroupMember tmp;
    5749             :         TALLOC_CTX *out_mem_ctx;
    5750             : };
    5751             : 
    5752             : static void dcerpc_samr_QueryGroupMember_done(struct tevent_req *subreq);
    5753             : 
    5754           0 : struct tevent_req *dcerpc_samr_QueryGroupMember_send(TALLOC_CTX *mem_ctx,
    5755             :                                                      struct tevent_context *ev,
    5756             :                                                      struct dcerpc_binding_handle *h,
    5757             :                                                      struct policy_handle *_group_handle /* [in] [ref] */,
    5758             :                                                      struct samr_RidAttrArray **_rids /* [out] [ref] */)
    5759             : {
    5760           0 :         struct tevent_req *req;
    5761           0 :         struct dcerpc_samr_QueryGroupMember_state *state;
    5762           0 :         struct tevent_req *subreq;
    5763             : 
    5764           0 :         req = tevent_req_create(mem_ctx, &state,
    5765             :                                 struct dcerpc_samr_QueryGroupMember_state);
    5766           0 :         if (req == NULL) {
    5767           0 :                 return NULL;
    5768             :         }
    5769           0 :         state->out_mem_ctx = NULL;
    5770             : 
    5771             :         /* In parameters */
    5772           0 :         state->orig.in.group_handle = _group_handle;
    5773             : 
    5774             :         /* Out parameters */
    5775           0 :         state->orig.out.rids = _rids;
    5776             : 
    5777             :         /* Result */
    5778           0 :         NDR_ZERO_STRUCT(state->orig.out.result);
    5779             : 
    5780           0 :         state->out_mem_ctx = talloc_named_const(state, 0,
    5781             :                              "dcerpc_samr_QueryGroupMember_out_memory");
    5782           0 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
    5783           0 :                 return tevent_req_post(req, ev);
    5784             :         }
    5785             : 
    5786             :         /* make a temporary copy, that we pass to the dispatch function */
    5787           0 :         state->tmp = state->orig;
    5788             : 
    5789           0 :         subreq = dcerpc_samr_QueryGroupMember_r_send(state, ev, h, &state->tmp);
    5790           0 :         if (tevent_req_nomem(subreq, req)) {
    5791           0 :                 return tevent_req_post(req, ev);
    5792             :         }
    5793           0 :         tevent_req_set_callback(subreq, dcerpc_samr_QueryGroupMember_done, req);
    5794           0 :         return req;
    5795             : }
    5796             : 
    5797           0 : static void dcerpc_samr_QueryGroupMember_done(struct tevent_req *subreq)
    5798             : {
    5799           0 :         struct tevent_req *req = tevent_req_callback_data(
    5800             :                 subreq, struct tevent_req);
    5801           0 :         struct dcerpc_samr_QueryGroupMember_state *state = tevent_req_data(
    5802             :                 req, struct dcerpc_samr_QueryGroupMember_state);
    5803           0 :         NTSTATUS status;
    5804           0 :         TALLOC_CTX *mem_ctx;
    5805             : 
    5806           0 :         if (state->out_mem_ctx) {
    5807           0 :                 mem_ctx = state->out_mem_ctx;
    5808             :         } else {
    5809           0 :                 mem_ctx = state;
    5810             :         }
    5811             : 
    5812           0 :         status = dcerpc_samr_QueryGroupMember_r_recv(subreq, mem_ctx);
    5813           0 :         TALLOC_FREE(subreq);
    5814           0 :         if (tevent_req_nterror(req, status)) {
    5815           0 :                 return;
    5816             :         }
    5817             : 
    5818             :         /* Copy out parameters */
    5819           0 :         *state->orig.out.rids = *state->tmp.out.rids;
    5820             : 
    5821             :         /* Copy result */
    5822           0 :         state->orig.out.result = state->tmp.out.result;
    5823             : 
    5824             :         /* Reset temporary structure */
    5825           0 :         NDR_ZERO_STRUCT(state->tmp);
    5826             : 
    5827           0 :         tevent_req_done(req);
    5828             : }
    5829             : 
    5830           0 : NTSTATUS dcerpc_samr_QueryGroupMember_recv(struct tevent_req *req,
    5831             :                                            TALLOC_CTX *mem_ctx,
    5832             :                                            NTSTATUS *result)
    5833             : {
    5834           0 :         struct dcerpc_samr_QueryGroupMember_state *state = tevent_req_data(
    5835             :                 req, struct dcerpc_samr_QueryGroupMember_state);
    5836           0 :         NTSTATUS status;
    5837             : 
    5838           0 :         if (tevent_req_is_nterror(req, &status)) {
    5839           0 :                 tevent_req_received(req);
    5840           0 :                 return status;
    5841             :         }
    5842             : 
    5843             :         /* Steal possible out parameters to the callers context */
    5844           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    5845             : 
    5846             :         /* Return result */
    5847           0 :         *result = state->orig.out.result;
    5848             : 
    5849           0 :         tevent_req_received(req);
    5850           0 :         return NT_STATUS_OK;
    5851             : }
    5852             : 
    5853          78 : NTSTATUS dcerpc_samr_QueryGroupMember(struct dcerpc_binding_handle *h,
    5854             :                                       TALLOC_CTX *mem_ctx,
    5855             :                                       struct policy_handle *_group_handle /* [in] [ref] */,
    5856             :                                       struct samr_RidAttrArray **_rids /* [out] [ref] */,
    5857             :                                       NTSTATUS *result)
    5858             : {
    5859           0 :         struct samr_QueryGroupMember r;
    5860           0 :         NTSTATUS status;
    5861             : 
    5862             :         /* In parameters */
    5863          78 :         r.in.group_handle = _group_handle;
    5864             : 
    5865             :         /* Out parameters */
    5866          78 :         r.out.rids = _rids;
    5867             : 
    5868             :         /* Result */
    5869          78 :         NDR_ZERO_STRUCT(r.out.result);
    5870             : 
    5871          78 :         status = dcerpc_samr_QueryGroupMember_r(h, mem_ctx, &r);
    5872          78 :         if (!NT_STATUS_IS_OK(status)) {
    5873           0 :                 return status;
    5874             :         }
    5875             : 
    5876             :         /* Return variables */
    5877          78 :         *_rids = *r.out.rids;
    5878             : 
    5879             :         /* Return result */
    5880          78 :         *result = r.out.result;
    5881             : 
    5882          78 :         return NT_STATUS_OK;
    5883             : }
    5884             : 
    5885             : struct dcerpc_samr_SetMemberAttributesOfGroup_r_state {
    5886             :         TALLOC_CTX *out_mem_ctx;
    5887             : };
    5888             : 
    5889             : static void dcerpc_samr_SetMemberAttributesOfGroup_r_done(struct tevent_req *subreq);
    5890             : 
    5891           0 : struct tevent_req *dcerpc_samr_SetMemberAttributesOfGroup_r_send(TALLOC_CTX *mem_ctx,
    5892             :         struct tevent_context *ev,
    5893             :         struct dcerpc_binding_handle *h,
    5894             :         struct samr_SetMemberAttributesOfGroup *r)
    5895             : {
    5896           0 :         struct tevent_req *req;
    5897           0 :         struct dcerpc_samr_SetMemberAttributesOfGroup_r_state *state;
    5898           0 :         struct tevent_req *subreq;
    5899             : 
    5900           0 :         req = tevent_req_create(mem_ctx, &state,
    5901             :                                 struct dcerpc_samr_SetMemberAttributesOfGroup_r_state);
    5902           0 :         if (req == NULL) {
    5903           0 :                 return NULL;
    5904             :         }
    5905             : 
    5906           0 :         state->out_mem_ctx = NULL;
    5907             : 
    5908           0 :         subreq = dcerpc_binding_handle_call_send(state, ev, h,
    5909             :                         NULL, &ndr_table_samr,
    5910             :                         NDR_SAMR_SETMEMBERATTRIBUTESOFGROUP, state, r);
    5911           0 :         if (tevent_req_nomem(subreq, req)) {
    5912           0 :                 return tevent_req_post(req, ev);
    5913             :         }
    5914           0 :         tevent_req_set_callback(subreq, dcerpc_samr_SetMemberAttributesOfGroup_r_done, req);
    5915             : 
    5916           0 :         return req;
    5917             : }
    5918             : 
    5919           0 : static void dcerpc_samr_SetMemberAttributesOfGroup_r_done(struct tevent_req *subreq)
    5920             : {
    5921           0 :         struct tevent_req *req =
    5922           0 :                 tevent_req_callback_data(subreq,
    5923             :                 struct tevent_req);
    5924           0 :         NTSTATUS status;
    5925             : 
    5926           0 :         status = dcerpc_binding_handle_call_recv(subreq);
    5927           0 :         TALLOC_FREE(subreq);
    5928           0 :         if (tevent_req_nterror(req, status)) {
    5929           0 :                 return;
    5930             :         }
    5931             : 
    5932           0 :         tevent_req_done(req);
    5933             : }
    5934             : 
    5935           0 : NTSTATUS dcerpc_samr_SetMemberAttributesOfGroup_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
    5936             : {
    5937           0 :         struct dcerpc_samr_SetMemberAttributesOfGroup_r_state *state =
    5938           0 :                 tevent_req_data(req,
    5939             :                 struct dcerpc_samr_SetMemberAttributesOfGroup_r_state);
    5940           0 :         NTSTATUS status;
    5941             : 
    5942           0 :         if (tevent_req_is_nterror(req, &status)) {
    5943           0 :                 tevent_req_received(req);
    5944           0 :                 return status;
    5945             :         }
    5946             : 
    5947           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    5948             : 
    5949           0 :         tevent_req_received(req);
    5950           0 :         return NT_STATUS_OK;
    5951             : }
    5952             : 
    5953           0 : NTSTATUS dcerpc_samr_SetMemberAttributesOfGroup_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct samr_SetMemberAttributesOfGroup *r)
    5954             : {
    5955           0 :         NTSTATUS status;
    5956             : 
    5957           0 :         status = dcerpc_binding_handle_call(h,
    5958             :                         NULL, &ndr_table_samr,
    5959             :                         NDR_SAMR_SETMEMBERATTRIBUTESOFGROUP, mem_ctx, r);
    5960             : 
    5961           0 :         return status;
    5962             : }
    5963             : 
    5964             : struct dcerpc_samr_SetMemberAttributesOfGroup_state {
    5965             :         struct samr_SetMemberAttributesOfGroup orig;
    5966             :         struct samr_SetMemberAttributesOfGroup tmp;
    5967             :         TALLOC_CTX *out_mem_ctx;
    5968             : };
    5969             : 
    5970             : static void dcerpc_samr_SetMemberAttributesOfGroup_done(struct tevent_req *subreq);
    5971             : 
    5972           0 : struct tevent_req *dcerpc_samr_SetMemberAttributesOfGroup_send(TALLOC_CTX *mem_ctx,
    5973             :                                                                struct tevent_context *ev,
    5974             :                                                                struct dcerpc_binding_handle *h,
    5975             :                                                                struct policy_handle *_group_handle /* [in] [ref] */,
    5976             :                                                                uint32_t _unknown1 /* [in]  */,
    5977             :                                                                uint32_t _unknown2 /* [in]  */)
    5978             : {
    5979           0 :         struct tevent_req *req;
    5980           0 :         struct dcerpc_samr_SetMemberAttributesOfGroup_state *state;
    5981           0 :         struct tevent_req *subreq;
    5982             : 
    5983           0 :         req = tevent_req_create(mem_ctx, &state,
    5984             :                                 struct dcerpc_samr_SetMemberAttributesOfGroup_state);
    5985           0 :         if (req == NULL) {
    5986           0 :                 return NULL;
    5987             :         }
    5988           0 :         state->out_mem_ctx = NULL;
    5989             : 
    5990             :         /* In parameters */
    5991           0 :         state->orig.in.group_handle = _group_handle;
    5992           0 :         state->orig.in.unknown1 = _unknown1;
    5993           0 :         state->orig.in.unknown2 = _unknown2;
    5994             : 
    5995             :         /* Out parameters */
    5996             : 
    5997             :         /* Result */
    5998           0 :         NDR_ZERO_STRUCT(state->orig.out.result);
    5999             : 
    6000             :         /* make a temporary copy, that we pass to the dispatch function */
    6001           0 :         state->tmp = state->orig;
    6002             : 
    6003           0 :         subreq = dcerpc_samr_SetMemberAttributesOfGroup_r_send(state, ev, h, &state->tmp);
    6004           0 :         if (tevent_req_nomem(subreq, req)) {
    6005           0 :                 return tevent_req_post(req, ev);
    6006             :         }
    6007           0 :         tevent_req_set_callback(subreq, dcerpc_samr_SetMemberAttributesOfGroup_done, req);
    6008           0 :         return req;
    6009             : }
    6010             : 
    6011           0 : static void dcerpc_samr_SetMemberAttributesOfGroup_done(struct tevent_req *subreq)
    6012             : {
    6013           0 :         struct tevent_req *req = tevent_req_callback_data(
    6014             :                 subreq, struct tevent_req);
    6015           0 :         struct dcerpc_samr_SetMemberAttributesOfGroup_state *state = tevent_req_data(
    6016             :                 req, struct dcerpc_samr_SetMemberAttributesOfGroup_state);
    6017           0 :         NTSTATUS status;
    6018           0 :         TALLOC_CTX *mem_ctx;
    6019             : 
    6020           0 :         if (state->out_mem_ctx) {
    6021           0 :                 mem_ctx = state->out_mem_ctx;
    6022             :         } else {
    6023           0 :                 mem_ctx = state;
    6024             :         }
    6025             : 
    6026           0 :         status = dcerpc_samr_SetMemberAttributesOfGroup_r_recv(subreq, mem_ctx);
    6027           0 :         TALLOC_FREE(subreq);
    6028           0 :         if (tevent_req_nterror(req, status)) {
    6029           0 :                 return;
    6030             :         }
    6031             : 
    6032             :         /* Copy out parameters */
    6033             : 
    6034             :         /* Copy result */
    6035           0 :         state->orig.out.result = state->tmp.out.result;
    6036             : 
    6037             :         /* Reset temporary structure */
    6038           0 :         NDR_ZERO_STRUCT(state->tmp);
    6039             : 
    6040           0 :         tevent_req_done(req);
    6041             : }
    6042             : 
    6043           0 : NTSTATUS dcerpc_samr_SetMemberAttributesOfGroup_recv(struct tevent_req *req,
    6044             :                                                      TALLOC_CTX *mem_ctx,
    6045             :                                                      NTSTATUS *result)
    6046             : {
    6047           0 :         struct dcerpc_samr_SetMemberAttributesOfGroup_state *state = tevent_req_data(
    6048             :                 req, struct dcerpc_samr_SetMemberAttributesOfGroup_state);
    6049           0 :         NTSTATUS status;
    6050             : 
    6051           0 :         if (tevent_req_is_nterror(req, &status)) {
    6052           0 :                 tevent_req_received(req);
    6053           0 :                 return status;
    6054             :         }
    6055             : 
    6056             :         /* Steal possible out parameters to the callers context */
    6057           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    6058             : 
    6059             :         /* Return result */
    6060           0 :         *result = state->orig.out.result;
    6061             : 
    6062           0 :         tevent_req_received(req);
    6063           0 :         return NT_STATUS_OK;
    6064             : }
    6065             : 
    6066           0 : NTSTATUS dcerpc_samr_SetMemberAttributesOfGroup(struct dcerpc_binding_handle *h,
    6067             :                                                 TALLOC_CTX *mem_ctx,
    6068             :                                                 struct policy_handle *_group_handle /* [in] [ref] */,
    6069             :                                                 uint32_t _unknown1 /* [in]  */,
    6070             :                                                 uint32_t _unknown2 /* [in]  */,
    6071             :                                                 NTSTATUS *result)
    6072             : {
    6073           0 :         struct samr_SetMemberAttributesOfGroup r;
    6074           0 :         NTSTATUS status;
    6075             : 
    6076             :         /* In parameters */
    6077           0 :         r.in.group_handle = _group_handle;
    6078           0 :         r.in.unknown1 = _unknown1;
    6079           0 :         r.in.unknown2 = _unknown2;
    6080             : 
    6081             :         /* Out parameters */
    6082             : 
    6083             :         /* Result */
    6084           0 :         NDR_ZERO_STRUCT(r.out.result);
    6085             : 
    6086           0 :         status = dcerpc_samr_SetMemberAttributesOfGroup_r(h, mem_ctx, &r);
    6087           0 :         if (!NT_STATUS_IS_OK(status)) {
    6088           0 :                 return status;
    6089             :         }
    6090             : 
    6091             :         /* Return variables */
    6092             : 
    6093             :         /* Return result */
    6094           0 :         *result = r.out.result;
    6095             : 
    6096           0 :         return NT_STATUS_OK;
    6097             : }
    6098             : 
    6099             : struct dcerpc_samr_OpenAlias_r_state {
    6100             :         TALLOC_CTX *out_mem_ctx;
    6101             : };
    6102             : 
    6103             : static void dcerpc_samr_OpenAlias_r_done(struct tevent_req *subreq);
    6104             : 
    6105           0 : struct tevent_req *dcerpc_samr_OpenAlias_r_send(TALLOC_CTX *mem_ctx,
    6106             :         struct tevent_context *ev,
    6107             :         struct dcerpc_binding_handle *h,
    6108             :         struct samr_OpenAlias *r)
    6109             : {
    6110           0 :         struct tevent_req *req;
    6111           0 :         struct dcerpc_samr_OpenAlias_r_state *state;
    6112           0 :         struct tevent_req *subreq;
    6113             : 
    6114           0 :         req = tevent_req_create(mem_ctx, &state,
    6115             :                                 struct dcerpc_samr_OpenAlias_r_state);
    6116           0 :         if (req == NULL) {
    6117           0 :                 return NULL;
    6118             :         }
    6119             : 
    6120           0 :         state->out_mem_ctx = talloc_new(state);
    6121           0 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
    6122           0 :                 return tevent_req_post(req, ev);
    6123             :         }
    6124             : 
    6125           0 :         subreq = dcerpc_binding_handle_call_send(state, ev, h,
    6126             :                         NULL, &ndr_table_samr,
    6127           0 :                         NDR_SAMR_OPENALIAS, state->out_mem_ctx, r);
    6128           0 :         if (tevent_req_nomem(subreq, req)) {
    6129           0 :                 return tevent_req_post(req, ev);
    6130             :         }
    6131           0 :         tevent_req_set_callback(subreq, dcerpc_samr_OpenAlias_r_done, req);
    6132             : 
    6133           0 :         return req;
    6134             : }
    6135             : 
    6136           0 : static void dcerpc_samr_OpenAlias_r_done(struct tevent_req *subreq)
    6137             : {
    6138           0 :         struct tevent_req *req =
    6139           0 :                 tevent_req_callback_data(subreq,
    6140             :                 struct tevent_req);
    6141           0 :         NTSTATUS status;
    6142             : 
    6143           0 :         status = dcerpc_binding_handle_call_recv(subreq);
    6144           0 :         TALLOC_FREE(subreq);
    6145           0 :         if (tevent_req_nterror(req, status)) {
    6146           0 :                 return;
    6147             :         }
    6148             : 
    6149           0 :         tevent_req_done(req);
    6150             : }
    6151             : 
    6152           0 : NTSTATUS dcerpc_samr_OpenAlias_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
    6153             : {
    6154           0 :         struct dcerpc_samr_OpenAlias_r_state *state =
    6155           0 :                 tevent_req_data(req,
    6156             :                 struct dcerpc_samr_OpenAlias_r_state);
    6157           0 :         NTSTATUS status;
    6158             : 
    6159           0 :         if (tevent_req_is_nterror(req, &status)) {
    6160           0 :                 tevent_req_received(req);
    6161           0 :                 return status;
    6162             :         }
    6163             : 
    6164           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    6165             : 
    6166           0 :         tevent_req_received(req);
    6167           0 :         return NT_STATUS_OK;
    6168             : }
    6169             : 
    6170        1311 : NTSTATUS dcerpc_samr_OpenAlias_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct samr_OpenAlias *r)
    6171             : {
    6172           0 :         NTSTATUS status;
    6173             : 
    6174        1311 :         status = dcerpc_binding_handle_call(h,
    6175             :                         NULL, &ndr_table_samr,
    6176             :                         NDR_SAMR_OPENALIAS, mem_ctx, r);
    6177             : 
    6178        1311 :         return status;
    6179             : }
    6180             : 
    6181             : struct dcerpc_samr_OpenAlias_state {
    6182             :         struct samr_OpenAlias orig;
    6183             :         struct samr_OpenAlias tmp;
    6184             :         TALLOC_CTX *out_mem_ctx;
    6185             : };
    6186             : 
    6187             : static void dcerpc_samr_OpenAlias_done(struct tevent_req *subreq);
    6188             : 
    6189           0 : struct tevent_req *dcerpc_samr_OpenAlias_send(TALLOC_CTX *mem_ctx,
    6190             :                                               struct tevent_context *ev,
    6191             :                                               struct dcerpc_binding_handle *h,
    6192             :                                               struct policy_handle *_domain_handle /* [in] [ref] */,
    6193             :                                               uint32_t _access_mask /* [in]  */,
    6194             :                                               uint32_t _rid /* [in]  */,
    6195             :                                               struct policy_handle *_alias_handle /* [out] [ref] */)
    6196             : {
    6197           0 :         struct tevent_req *req;
    6198           0 :         struct dcerpc_samr_OpenAlias_state *state;
    6199           0 :         struct tevent_req *subreq;
    6200             : 
    6201           0 :         req = tevent_req_create(mem_ctx, &state,
    6202             :                                 struct dcerpc_samr_OpenAlias_state);
    6203           0 :         if (req == NULL) {
    6204           0 :                 return NULL;
    6205             :         }
    6206           0 :         state->out_mem_ctx = NULL;
    6207             : 
    6208             :         /* In parameters */
    6209           0 :         state->orig.in.domain_handle = _domain_handle;
    6210           0 :         state->orig.in.access_mask = _access_mask;
    6211           0 :         state->orig.in.rid = _rid;
    6212             : 
    6213             :         /* Out parameters */
    6214           0 :         state->orig.out.alias_handle = _alias_handle;
    6215             : 
    6216             :         /* Result */
    6217           0 :         NDR_ZERO_STRUCT(state->orig.out.result);
    6218             : 
    6219           0 :         state->out_mem_ctx = talloc_named_const(state, 0,
    6220             :                              "dcerpc_samr_OpenAlias_out_memory");
    6221           0 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
    6222           0 :                 return tevent_req_post(req, ev);
    6223             :         }
    6224             : 
    6225             :         /* make a temporary copy, that we pass to the dispatch function */
    6226           0 :         state->tmp = state->orig;
    6227             : 
    6228           0 :         subreq = dcerpc_samr_OpenAlias_r_send(state, ev, h, &state->tmp);
    6229           0 :         if (tevent_req_nomem(subreq, req)) {
    6230           0 :                 return tevent_req_post(req, ev);
    6231             :         }
    6232           0 :         tevent_req_set_callback(subreq, dcerpc_samr_OpenAlias_done, req);
    6233           0 :         return req;
    6234             : }
    6235             : 
    6236           0 : static void dcerpc_samr_OpenAlias_done(struct tevent_req *subreq)
    6237             : {
    6238           0 :         struct tevent_req *req = tevent_req_callback_data(
    6239             :                 subreq, struct tevent_req);
    6240           0 :         struct dcerpc_samr_OpenAlias_state *state = tevent_req_data(
    6241             :                 req, struct dcerpc_samr_OpenAlias_state);
    6242           0 :         NTSTATUS status;
    6243           0 :         TALLOC_CTX *mem_ctx;
    6244             : 
    6245           0 :         if (state->out_mem_ctx) {
    6246           0 :                 mem_ctx = state->out_mem_ctx;
    6247             :         } else {
    6248           0 :                 mem_ctx = state;
    6249             :         }
    6250             : 
    6251           0 :         status = dcerpc_samr_OpenAlias_r_recv(subreq, mem_ctx);
    6252           0 :         TALLOC_FREE(subreq);
    6253           0 :         if (tevent_req_nterror(req, status)) {
    6254           0 :                 return;
    6255             :         }
    6256             : 
    6257             :         /* Copy out parameters */
    6258           0 :         *state->orig.out.alias_handle = *state->tmp.out.alias_handle;
    6259             : 
    6260             :         /* Copy result */
    6261           0 :         state->orig.out.result = state->tmp.out.result;
    6262             : 
    6263             :         /* Reset temporary structure */
    6264           0 :         NDR_ZERO_STRUCT(state->tmp);
    6265             : 
    6266           0 :         tevent_req_done(req);
    6267             : }
    6268             : 
    6269           0 : NTSTATUS dcerpc_samr_OpenAlias_recv(struct tevent_req *req,
    6270             :                                     TALLOC_CTX *mem_ctx,
    6271             :                                     NTSTATUS *result)
    6272             : {
    6273           0 :         struct dcerpc_samr_OpenAlias_state *state = tevent_req_data(
    6274             :                 req, struct dcerpc_samr_OpenAlias_state);
    6275           0 :         NTSTATUS status;
    6276             : 
    6277           0 :         if (tevent_req_is_nterror(req, &status)) {
    6278           0 :                 tevent_req_received(req);
    6279           0 :                 return status;
    6280             :         }
    6281             : 
    6282             :         /* Steal possible out parameters to the callers context */
    6283           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    6284             : 
    6285             :         /* Return result */
    6286           0 :         *result = state->orig.out.result;
    6287             : 
    6288           0 :         tevent_req_received(req);
    6289           0 :         return NT_STATUS_OK;
    6290             : }
    6291             : 
    6292        1224 : NTSTATUS dcerpc_samr_OpenAlias(struct dcerpc_binding_handle *h,
    6293             :                                TALLOC_CTX *mem_ctx,
    6294             :                                struct policy_handle *_domain_handle /* [in] [ref] */,
    6295             :                                uint32_t _access_mask /* [in]  */,
    6296             :                                uint32_t _rid /* [in]  */,
    6297             :                                struct policy_handle *_alias_handle /* [out] [ref] */,
    6298             :                                NTSTATUS *result)
    6299             : {
    6300           0 :         struct samr_OpenAlias r;
    6301           0 :         NTSTATUS status;
    6302             : 
    6303             :         /* In parameters */
    6304        1224 :         r.in.domain_handle = _domain_handle;
    6305        1224 :         r.in.access_mask = _access_mask;
    6306        1224 :         r.in.rid = _rid;
    6307             : 
    6308             :         /* Out parameters */
    6309        1224 :         r.out.alias_handle = _alias_handle;
    6310             : 
    6311             :         /* Result */
    6312        1224 :         NDR_ZERO_STRUCT(r.out.result);
    6313             : 
    6314        1224 :         status = dcerpc_samr_OpenAlias_r(h, mem_ctx, &r);
    6315        1224 :         if (!NT_STATUS_IS_OK(status)) {
    6316           0 :                 return status;
    6317             :         }
    6318             : 
    6319             :         /* Return variables */
    6320        1224 :         *_alias_handle = *r.out.alias_handle;
    6321             : 
    6322             :         /* Return result */
    6323        1224 :         *result = r.out.result;
    6324             : 
    6325        1224 :         return NT_STATUS_OK;
    6326             : }
    6327             : 
    6328             : struct dcerpc_samr_QueryAliasInfo_r_state {
    6329             :         TALLOC_CTX *out_mem_ctx;
    6330             : };
    6331             : 
    6332             : static void dcerpc_samr_QueryAliasInfo_r_done(struct tevent_req *subreq);
    6333             : 
    6334           0 : struct tevent_req *dcerpc_samr_QueryAliasInfo_r_send(TALLOC_CTX *mem_ctx,
    6335             :         struct tevent_context *ev,
    6336             :         struct dcerpc_binding_handle *h,
    6337             :         struct samr_QueryAliasInfo *r)
    6338             : {
    6339           0 :         struct tevent_req *req;
    6340           0 :         struct dcerpc_samr_QueryAliasInfo_r_state *state;
    6341           0 :         struct tevent_req *subreq;
    6342             : 
    6343           0 :         req = tevent_req_create(mem_ctx, &state,
    6344             :                                 struct dcerpc_samr_QueryAliasInfo_r_state);
    6345           0 :         if (req == NULL) {
    6346           0 :                 return NULL;
    6347             :         }
    6348             : 
    6349           0 :         state->out_mem_ctx = talloc_new(state);
    6350           0 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
    6351           0 :                 return tevent_req_post(req, ev);
    6352             :         }
    6353             : 
    6354           0 :         subreq = dcerpc_binding_handle_call_send(state, ev, h,
    6355             :                         NULL, &ndr_table_samr,
    6356           0 :                         NDR_SAMR_QUERYALIASINFO, state->out_mem_ctx, r);
    6357           0 :         if (tevent_req_nomem(subreq, req)) {
    6358           0 :                 return tevent_req_post(req, ev);
    6359             :         }
    6360           0 :         tevent_req_set_callback(subreq, dcerpc_samr_QueryAliasInfo_r_done, req);
    6361             : 
    6362           0 :         return req;
    6363             : }
    6364             : 
    6365           0 : static void dcerpc_samr_QueryAliasInfo_r_done(struct tevent_req *subreq)
    6366             : {
    6367           0 :         struct tevent_req *req =
    6368           0 :                 tevent_req_callback_data(subreq,
    6369             :                 struct tevent_req);
    6370           0 :         NTSTATUS status;
    6371             : 
    6372           0 :         status = dcerpc_binding_handle_call_recv(subreq);
    6373           0 :         TALLOC_FREE(subreq);
    6374           0 :         if (tevent_req_nterror(req, status)) {
    6375           0 :                 return;
    6376             :         }
    6377             : 
    6378           0 :         tevent_req_done(req);
    6379             : }
    6380             : 
    6381           0 : NTSTATUS dcerpc_samr_QueryAliasInfo_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
    6382             : {
    6383           0 :         struct dcerpc_samr_QueryAliasInfo_r_state *state =
    6384           0 :                 tevent_req_data(req,
    6385             :                 struct dcerpc_samr_QueryAliasInfo_r_state);
    6386           0 :         NTSTATUS status;
    6387             : 
    6388           0 :         if (tevent_req_is_nterror(req, &status)) {
    6389           0 :                 tevent_req_received(req);
    6390           0 :                 return status;
    6391             :         }
    6392             : 
    6393           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    6394             : 
    6395           0 :         tevent_req_received(req);
    6396           0 :         return NT_STATUS_OK;
    6397             : }
    6398             : 
    6399         286 : NTSTATUS dcerpc_samr_QueryAliasInfo_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct samr_QueryAliasInfo *r)
    6400             : {
    6401           0 :         NTSTATUS status;
    6402             : 
    6403         286 :         status = dcerpc_binding_handle_call(h,
    6404             :                         NULL, &ndr_table_samr,
    6405             :                         NDR_SAMR_QUERYALIASINFO, mem_ctx, r);
    6406             : 
    6407         286 :         return status;
    6408             : }
    6409             : 
    6410             : struct dcerpc_samr_QueryAliasInfo_state {
    6411             :         struct samr_QueryAliasInfo orig;
    6412             :         struct samr_QueryAliasInfo tmp;
    6413             :         TALLOC_CTX *out_mem_ctx;
    6414             : };
    6415             : 
    6416             : static void dcerpc_samr_QueryAliasInfo_done(struct tevent_req *subreq);
    6417             : 
    6418           0 : struct tevent_req *dcerpc_samr_QueryAliasInfo_send(TALLOC_CTX *mem_ctx,
    6419             :                                                    struct tevent_context *ev,
    6420             :                                                    struct dcerpc_binding_handle *h,
    6421             :                                                    struct policy_handle *_alias_handle /* [in] [ref] */,
    6422             :                                                    enum samr_AliasInfoEnum _level /* [in]  */,
    6423             :                                                    union samr_AliasInfo **_info /* [out] [ref,switch_is(level)] */)
    6424             : {
    6425           0 :         struct tevent_req *req;
    6426           0 :         struct dcerpc_samr_QueryAliasInfo_state *state;
    6427           0 :         struct tevent_req *subreq;
    6428             : 
    6429           0 :         req = tevent_req_create(mem_ctx, &state,
    6430             :                                 struct dcerpc_samr_QueryAliasInfo_state);
    6431           0 :         if (req == NULL) {
    6432           0 :                 return NULL;
    6433             :         }
    6434           0 :         state->out_mem_ctx = NULL;
    6435             : 
    6436             :         /* In parameters */
    6437           0 :         state->orig.in.alias_handle = _alias_handle;
    6438           0 :         state->orig.in.level = _level;
    6439             : 
    6440             :         /* Out parameters */
    6441           0 :         state->orig.out.info = _info;
    6442             : 
    6443             :         /* Result */
    6444           0 :         NDR_ZERO_STRUCT(state->orig.out.result);
    6445             : 
    6446           0 :         state->out_mem_ctx = talloc_named_const(state, 0,
    6447             :                              "dcerpc_samr_QueryAliasInfo_out_memory");
    6448           0 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
    6449           0 :                 return tevent_req_post(req, ev);
    6450             :         }
    6451             : 
    6452             :         /* make a temporary copy, that we pass to the dispatch function */
    6453           0 :         state->tmp = state->orig;
    6454             : 
    6455           0 :         subreq = dcerpc_samr_QueryAliasInfo_r_send(state, ev, h, &state->tmp);
    6456           0 :         if (tevent_req_nomem(subreq, req)) {
    6457           0 :                 return tevent_req_post(req, ev);
    6458             :         }
    6459           0 :         tevent_req_set_callback(subreq, dcerpc_samr_QueryAliasInfo_done, req);
    6460           0 :         return req;
    6461             : }
    6462             : 
    6463           0 : static void dcerpc_samr_QueryAliasInfo_done(struct tevent_req *subreq)
    6464             : {
    6465           0 :         struct tevent_req *req = tevent_req_callback_data(
    6466             :                 subreq, struct tevent_req);
    6467           0 :         struct dcerpc_samr_QueryAliasInfo_state *state = tevent_req_data(
    6468             :                 req, struct dcerpc_samr_QueryAliasInfo_state);
    6469           0 :         NTSTATUS status;
    6470           0 :         TALLOC_CTX *mem_ctx;
    6471             : 
    6472           0 :         if (state->out_mem_ctx) {
    6473           0 :                 mem_ctx = state->out_mem_ctx;
    6474             :         } else {
    6475           0 :                 mem_ctx = state;
    6476             :         }
    6477             : 
    6478           0 :         status = dcerpc_samr_QueryAliasInfo_r_recv(subreq, mem_ctx);
    6479           0 :         TALLOC_FREE(subreq);
    6480           0 :         if (tevent_req_nterror(req, status)) {
    6481           0 :                 return;
    6482             :         }
    6483             : 
    6484             :         /* Copy out parameters */
    6485           0 :         *state->orig.out.info = *state->tmp.out.info;
    6486             : 
    6487             :         /* Copy result */
    6488           0 :         state->orig.out.result = state->tmp.out.result;
    6489             : 
    6490             :         /* Reset temporary structure */
    6491           0 :         NDR_ZERO_STRUCT(state->tmp);
    6492             : 
    6493           0 :         tevent_req_done(req);
    6494             : }
    6495             : 
    6496           0 : NTSTATUS dcerpc_samr_QueryAliasInfo_recv(struct tevent_req *req,
    6497             :                                          TALLOC_CTX *mem_ctx,
    6498             :                                          NTSTATUS *result)
    6499             : {
    6500           0 :         struct dcerpc_samr_QueryAliasInfo_state *state = tevent_req_data(
    6501             :                 req, struct dcerpc_samr_QueryAliasInfo_state);
    6502           0 :         NTSTATUS status;
    6503             : 
    6504           0 :         if (tevent_req_is_nterror(req, &status)) {
    6505           0 :                 tevent_req_received(req);
    6506           0 :                 return status;
    6507             :         }
    6508             : 
    6509             :         /* Steal possible out parameters to the callers context */
    6510           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    6511             : 
    6512             :         /* Return result */
    6513           0 :         *result = state->orig.out.result;
    6514             : 
    6515           0 :         tevent_req_received(req);
    6516           0 :         return NT_STATUS_OK;
    6517             : }
    6518             : 
    6519           0 : NTSTATUS dcerpc_samr_QueryAliasInfo(struct dcerpc_binding_handle *h,
    6520             :                                     TALLOC_CTX *mem_ctx,
    6521             :                                     struct policy_handle *_alias_handle /* [in] [ref] */,
    6522             :                                     enum samr_AliasInfoEnum _level /* [in]  */,
    6523             :                                     union samr_AliasInfo **_info /* [out] [ref,switch_is(level)] */,
    6524             :                                     NTSTATUS *result)
    6525             : {
    6526           0 :         struct samr_QueryAliasInfo r;
    6527           0 :         NTSTATUS status;
    6528             : 
    6529             :         /* In parameters */
    6530           0 :         r.in.alias_handle = _alias_handle;
    6531           0 :         r.in.level = _level;
    6532             : 
    6533             :         /* Out parameters */
    6534           0 :         r.out.info = _info;
    6535             : 
    6536             :         /* Result */
    6537           0 :         NDR_ZERO_STRUCT(r.out.result);
    6538             : 
    6539           0 :         status = dcerpc_samr_QueryAliasInfo_r(h, mem_ctx, &r);
    6540           0 :         if (!NT_STATUS_IS_OK(status)) {
    6541           0 :                 return status;
    6542             :         }
    6543             : 
    6544             :         /* Return variables */
    6545           0 :         *_info = *r.out.info;
    6546             : 
    6547             :         /* Return result */
    6548           0 :         *result = r.out.result;
    6549             : 
    6550           0 :         return NT_STATUS_OK;
    6551             : }
    6552             : 
    6553             : struct dcerpc_samr_SetAliasInfo_r_state {
    6554             :         TALLOC_CTX *out_mem_ctx;
    6555             : };
    6556             : 
    6557             : static void dcerpc_samr_SetAliasInfo_r_done(struct tevent_req *subreq);
    6558             : 
    6559           0 : struct tevent_req *dcerpc_samr_SetAliasInfo_r_send(TALLOC_CTX *mem_ctx,
    6560             :         struct tevent_context *ev,
    6561             :         struct dcerpc_binding_handle *h,
    6562             :         struct samr_SetAliasInfo *r)
    6563             : {
    6564           0 :         struct tevent_req *req;
    6565           0 :         struct dcerpc_samr_SetAliasInfo_r_state *state;
    6566           0 :         struct tevent_req *subreq;
    6567             : 
    6568           0 :         req = tevent_req_create(mem_ctx, &state,
    6569             :                                 struct dcerpc_samr_SetAliasInfo_r_state);
    6570           0 :         if (req == NULL) {
    6571           0 :                 return NULL;
    6572             :         }
    6573             : 
    6574           0 :         state->out_mem_ctx = NULL;
    6575             : 
    6576           0 :         subreq = dcerpc_binding_handle_call_send(state, ev, h,
    6577             :                         NULL, &ndr_table_samr,
    6578             :                         NDR_SAMR_SETALIASINFO, state, r);
    6579           0 :         if (tevent_req_nomem(subreq, req)) {
    6580           0 :                 return tevent_req_post(req, ev);
    6581             :         }
    6582           0 :         tevent_req_set_callback(subreq, dcerpc_samr_SetAliasInfo_r_done, req);
    6583             : 
    6584           0 :         return req;
    6585             : }
    6586             : 
    6587           0 : static void dcerpc_samr_SetAliasInfo_r_done(struct tevent_req *subreq)
    6588             : {
    6589           0 :         struct tevent_req *req =
    6590           0 :                 tevent_req_callback_data(subreq,
    6591             :                 struct tevent_req);
    6592           0 :         NTSTATUS status;
    6593             : 
    6594           0 :         status = dcerpc_binding_handle_call_recv(subreq);
    6595           0 :         TALLOC_FREE(subreq);
    6596           0 :         if (tevent_req_nterror(req, status)) {
    6597           0 :                 return;
    6598             :         }
    6599             : 
    6600           0 :         tevent_req_done(req);
    6601             : }
    6602             : 
    6603           0 : NTSTATUS dcerpc_samr_SetAliasInfo_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
    6604             : {
    6605           0 :         struct dcerpc_samr_SetAliasInfo_r_state *state =
    6606           0 :                 tevent_req_data(req,
    6607             :                 struct dcerpc_samr_SetAliasInfo_r_state);
    6608           0 :         NTSTATUS status;
    6609             : 
    6610           0 :         if (tevent_req_is_nterror(req, &status)) {
    6611           0 :                 tevent_req_received(req);
    6612           0 :                 return status;
    6613             :         }
    6614             : 
    6615           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    6616             : 
    6617           0 :         tevent_req_received(req);
    6618           0 :         return NT_STATUS_OK;
    6619             : }
    6620             : 
    6621          10 : NTSTATUS dcerpc_samr_SetAliasInfo_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct samr_SetAliasInfo *r)
    6622             : {
    6623           0 :         NTSTATUS status;
    6624             : 
    6625          10 :         status = dcerpc_binding_handle_call(h,
    6626             :                         NULL, &ndr_table_samr,
    6627             :                         NDR_SAMR_SETALIASINFO, mem_ctx, r);
    6628             : 
    6629          10 :         return status;
    6630             : }
    6631             : 
    6632             : struct dcerpc_samr_SetAliasInfo_state {
    6633             :         struct samr_SetAliasInfo orig;
    6634             :         struct samr_SetAliasInfo tmp;
    6635             :         TALLOC_CTX *out_mem_ctx;
    6636             : };
    6637             : 
    6638             : static void dcerpc_samr_SetAliasInfo_done(struct tevent_req *subreq);
    6639             : 
    6640           0 : struct tevent_req *dcerpc_samr_SetAliasInfo_send(TALLOC_CTX *mem_ctx,
    6641             :                                                  struct tevent_context *ev,
    6642             :                                                  struct dcerpc_binding_handle *h,
    6643             :                                                  struct policy_handle *_alias_handle /* [in] [ref] */,
    6644             :                                                  enum samr_AliasInfoEnum _level /* [in]  */,
    6645             :                                                  union samr_AliasInfo *_info /* [in] [ref,switch_is(level)] */)
    6646             : {
    6647           0 :         struct tevent_req *req;
    6648           0 :         struct dcerpc_samr_SetAliasInfo_state *state;
    6649           0 :         struct tevent_req *subreq;
    6650             : 
    6651           0 :         req = tevent_req_create(mem_ctx, &state,
    6652             :                                 struct dcerpc_samr_SetAliasInfo_state);
    6653           0 :         if (req == NULL) {
    6654           0 :                 return NULL;
    6655             :         }
    6656           0 :         state->out_mem_ctx = NULL;
    6657             : 
    6658             :         /* In parameters */
    6659           0 :         state->orig.in.alias_handle = _alias_handle;
    6660           0 :         state->orig.in.level = _level;
    6661           0 :         state->orig.in.info = _info;
    6662             : 
    6663             :         /* Out parameters */
    6664             : 
    6665             :         /* Result */
    6666           0 :         NDR_ZERO_STRUCT(state->orig.out.result);
    6667             : 
    6668             :         /* make a temporary copy, that we pass to the dispatch function */
    6669           0 :         state->tmp = state->orig;
    6670             : 
    6671           0 :         subreq = dcerpc_samr_SetAliasInfo_r_send(state, ev, h, &state->tmp);
    6672           0 :         if (tevent_req_nomem(subreq, req)) {
    6673           0 :                 return tevent_req_post(req, ev);
    6674             :         }
    6675           0 :         tevent_req_set_callback(subreq, dcerpc_samr_SetAliasInfo_done, req);
    6676           0 :         return req;
    6677             : }
    6678             : 
    6679           0 : static void dcerpc_samr_SetAliasInfo_done(struct tevent_req *subreq)
    6680             : {
    6681           0 :         struct tevent_req *req = tevent_req_callback_data(
    6682             :                 subreq, struct tevent_req);
    6683           0 :         struct dcerpc_samr_SetAliasInfo_state *state = tevent_req_data(
    6684             :                 req, struct dcerpc_samr_SetAliasInfo_state);
    6685           0 :         NTSTATUS status;
    6686           0 :         TALLOC_CTX *mem_ctx;
    6687             : 
    6688           0 :         if (state->out_mem_ctx) {
    6689           0 :                 mem_ctx = state->out_mem_ctx;
    6690             :         } else {
    6691           0 :                 mem_ctx = state;
    6692             :         }
    6693             : 
    6694           0 :         status = dcerpc_samr_SetAliasInfo_r_recv(subreq, mem_ctx);
    6695           0 :         TALLOC_FREE(subreq);
    6696           0 :         if (tevent_req_nterror(req, status)) {
    6697           0 :                 return;
    6698             :         }
    6699             : 
    6700             :         /* Copy out parameters */
    6701             : 
    6702             :         /* Copy result */
    6703           0 :         state->orig.out.result = state->tmp.out.result;
    6704             : 
    6705             :         /* Reset temporary structure */
    6706           0 :         NDR_ZERO_STRUCT(state->tmp);
    6707             : 
    6708           0 :         tevent_req_done(req);
    6709             : }
    6710             : 
    6711           0 : NTSTATUS dcerpc_samr_SetAliasInfo_recv(struct tevent_req *req,
    6712             :                                        TALLOC_CTX *mem_ctx,
    6713             :                                        NTSTATUS *result)
    6714             : {
    6715           0 :         struct dcerpc_samr_SetAliasInfo_state *state = tevent_req_data(
    6716             :                 req, struct dcerpc_samr_SetAliasInfo_state);
    6717           0 :         NTSTATUS status;
    6718             : 
    6719           0 :         if (tevent_req_is_nterror(req, &status)) {
    6720           0 :                 tevent_req_received(req);
    6721           0 :                 return status;
    6722             :         }
    6723             : 
    6724             :         /* Steal possible out parameters to the callers context */
    6725           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    6726             : 
    6727             :         /* Return result */
    6728           0 :         *result = state->orig.out.result;
    6729             : 
    6730           0 :         tevent_req_received(req);
    6731           0 :         return NT_STATUS_OK;
    6732             : }
    6733             : 
    6734           0 : NTSTATUS dcerpc_samr_SetAliasInfo(struct dcerpc_binding_handle *h,
    6735             :                                   TALLOC_CTX *mem_ctx,
    6736             :                                   struct policy_handle *_alias_handle /* [in] [ref] */,
    6737             :                                   enum samr_AliasInfoEnum _level /* [in]  */,
    6738             :                                   union samr_AliasInfo *_info /* [in] [ref,switch_is(level)] */,
    6739             :                                   NTSTATUS *result)
    6740             : {
    6741           0 :         struct samr_SetAliasInfo r;
    6742           0 :         NTSTATUS status;
    6743             : 
    6744             :         /* In parameters */
    6745           0 :         r.in.alias_handle = _alias_handle;
    6746           0 :         r.in.level = _level;
    6747           0 :         r.in.info = _info;
    6748             : 
    6749             :         /* Out parameters */
    6750             : 
    6751             :         /* Result */
    6752           0 :         NDR_ZERO_STRUCT(r.out.result);
    6753             : 
    6754           0 :         status = dcerpc_samr_SetAliasInfo_r(h, mem_ctx, &r);
    6755           0 :         if (!NT_STATUS_IS_OK(status)) {
    6756           0 :                 return status;
    6757             :         }
    6758             : 
    6759             :         /* Return variables */
    6760             : 
    6761             :         /* Return result */
    6762           0 :         *result = r.out.result;
    6763             : 
    6764           0 :         return NT_STATUS_OK;
    6765             : }
    6766             : 
    6767             : struct dcerpc_samr_DeleteDomAlias_r_state {
    6768             :         TALLOC_CTX *out_mem_ctx;
    6769             : };
    6770             : 
    6771             : static void dcerpc_samr_DeleteDomAlias_r_done(struct tevent_req *subreq);
    6772             : 
    6773           0 : struct tevent_req *dcerpc_samr_DeleteDomAlias_r_send(TALLOC_CTX *mem_ctx,
    6774             :         struct tevent_context *ev,
    6775             :         struct dcerpc_binding_handle *h,
    6776             :         struct samr_DeleteDomAlias *r)
    6777             : {
    6778           0 :         struct tevent_req *req;
    6779           0 :         struct dcerpc_samr_DeleteDomAlias_r_state *state;
    6780           0 :         struct tevent_req *subreq;
    6781             : 
    6782           0 :         req = tevent_req_create(mem_ctx, &state,
    6783             :                                 struct dcerpc_samr_DeleteDomAlias_r_state);
    6784           0 :         if (req == NULL) {
    6785           0 :                 return NULL;
    6786             :         }
    6787             : 
    6788           0 :         state->out_mem_ctx = talloc_new(state);
    6789           0 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
    6790           0 :                 return tevent_req_post(req, ev);
    6791             :         }
    6792             : 
    6793           0 :         subreq = dcerpc_binding_handle_call_send(state, ev, h,
    6794             :                         NULL, &ndr_table_samr,
    6795           0 :                         NDR_SAMR_DELETEDOMALIAS, state->out_mem_ctx, r);
    6796           0 :         if (tevent_req_nomem(subreq, req)) {
    6797           0 :                 return tevent_req_post(req, ev);
    6798             :         }
    6799           0 :         tevent_req_set_callback(subreq, dcerpc_samr_DeleteDomAlias_r_done, req);
    6800             : 
    6801           0 :         return req;
    6802             : }
    6803             : 
    6804           0 : static void dcerpc_samr_DeleteDomAlias_r_done(struct tevent_req *subreq)
    6805             : {
    6806           0 :         struct tevent_req *req =
    6807           0 :                 tevent_req_callback_data(subreq,
    6808             :                 struct tevent_req);
    6809           0 :         NTSTATUS status;
    6810             : 
    6811           0 :         status = dcerpc_binding_handle_call_recv(subreq);
    6812           0 :         TALLOC_FREE(subreq);
    6813           0 :         if (tevent_req_nterror(req, status)) {
    6814           0 :                 return;
    6815             :         }
    6816             : 
    6817           0 :         tevent_req_done(req);
    6818             : }
    6819             : 
    6820           0 : NTSTATUS dcerpc_samr_DeleteDomAlias_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
    6821             : {
    6822           0 :         struct dcerpc_samr_DeleteDomAlias_r_state *state =
    6823           0 :                 tevent_req_data(req,
    6824             :                 struct dcerpc_samr_DeleteDomAlias_r_state);
    6825           0 :         NTSTATUS status;
    6826             : 
    6827           0 :         if (tevent_req_is_nterror(req, &status)) {
    6828           0 :                 tevent_req_received(req);
    6829           0 :                 return status;
    6830             :         }
    6831             : 
    6832           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    6833             : 
    6834           0 :         tevent_req_received(req);
    6835           0 :         return NT_STATUS_OK;
    6836             : }
    6837             : 
    6838         455 : NTSTATUS dcerpc_samr_DeleteDomAlias_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct samr_DeleteDomAlias *r)
    6839             : {
    6840           0 :         NTSTATUS status;
    6841             : 
    6842         455 :         status = dcerpc_binding_handle_call(h,
    6843             :                         NULL, &ndr_table_samr,
    6844             :                         NDR_SAMR_DELETEDOMALIAS, mem_ctx, r);
    6845             : 
    6846         455 :         return status;
    6847             : }
    6848             : 
    6849             : struct dcerpc_samr_DeleteDomAlias_state {
    6850             :         struct samr_DeleteDomAlias orig;
    6851             :         struct samr_DeleteDomAlias tmp;
    6852             :         TALLOC_CTX *out_mem_ctx;
    6853             : };
    6854             : 
    6855             : static void dcerpc_samr_DeleteDomAlias_done(struct tevent_req *subreq);
    6856             : 
    6857           0 : struct tevent_req *dcerpc_samr_DeleteDomAlias_send(TALLOC_CTX *mem_ctx,
    6858             :                                                    struct tevent_context *ev,
    6859             :                                                    struct dcerpc_binding_handle *h,
    6860             :                                                    struct policy_handle *_alias_handle /* [in,out] [ref] */)
    6861             : {
    6862           0 :         struct tevent_req *req;
    6863           0 :         struct dcerpc_samr_DeleteDomAlias_state *state;
    6864           0 :         struct tevent_req *subreq;
    6865             : 
    6866           0 :         req = tevent_req_create(mem_ctx, &state,
    6867             :                                 struct dcerpc_samr_DeleteDomAlias_state);
    6868           0 :         if (req == NULL) {
    6869           0 :                 return NULL;
    6870             :         }
    6871           0 :         state->out_mem_ctx = NULL;
    6872             : 
    6873             :         /* In parameters */
    6874           0 :         state->orig.in.alias_handle = _alias_handle;
    6875             : 
    6876             :         /* Out parameters */
    6877           0 :         state->orig.out.alias_handle = _alias_handle;
    6878             : 
    6879             :         /* Result */
    6880           0 :         NDR_ZERO_STRUCT(state->orig.out.result);
    6881             : 
    6882           0 :         state->out_mem_ctx = talloc_named_const(state, 0,
    6883             :                              "dcerpc_samr_DeleteDomAlias_out_memory");
    6884           0 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
    6885           0 :                 return tevent_req_post(req, ev);
    6886             :         }
    6887             : 
    6888             :         /* make a temporary copy, that we pass to the dispatch function */
    6889           0 :         state->tmp = state->orig;
    6890             : 
    6891           0 :         subreq = dcerpc_samr_DeleteDomAlias_r_send(state, ev, h, &state->tmp);
    6892           0 :         if (tevent_req_nomem(subreq, req)) {
    6893           0 :                 return tevent_req_post(req, ev);
    6894             :         }
    6895           0 :         tevent_req_set_callback(subreq, dcerpc_samr_DeleteDomAlias_done, req);
    6896           0 :         return req;
    6897             : }
    6898             : 
    6899           0 : static void dcerpc_samr_DeleteDomAlias_done(struct tevent_req *subreq)
    6900             : {
    6901           0 :         struct tevent_req *req = tevent_req_callback_data(
    6902             :                 subreq, struct tevent_req);
    6903           0 :         struct dcerpc_samr_DeleteDomAlias_state *state = tevent_req_data(
    6904             :                 req, struct dcerpc_samr_DeleteDomAlias_state);
    6905           0 :         NTSTATUS status;
    6906           0 :         TALLOC_CTX *mem_ctx;
    6907             : 
    6908           0 :         if (state->out_mem_ctx) {
    6909           0 :                 mem_ctx = state->out_mem_ctx;
    6910             :         } else {
    6911           0 :                 mem_ctx = state;
    6912             :         }
    6913             : 
    6914           0 :         status = dcerpc_samr_DeleteDomAlias_r_recv(subreq, mem_ctx);
    6915           0 :         TALLOC_FREE(subreq);
    6916           0 :         if (tevent_req_nterror(req, status)) {
    6917           0 :                 return;
    6918             :         }
    6919             : 
    6920             :         /* Copy out parameters */
    6921           0 :         *state->orig.out.alias_handle = *state->tmp.out.alias_handle;
    6922             : 
    6923             :         /* Copy result */
    6924           0 :         state->orig.out.result = state->tmp.out.result;
    6925             : 
    6926             :         /* Reset temporary structure */
    6927           0 :         NDR_ZERO_STRUCT(state->tmp);
    6928             : 
    6929           0 :         tevent_req_done(req);
    6930             : }
    6931             : 
    6932           0 : NTSTATUS dcerpc_samr_DeleteDomAlias_recv(struct tevent_req *req,
    6933             :                                          TALLOC_CTX *mem_ctx,
    6934             :                                          NTSTATUS *result)
    6935             : {
    6936           0 :         struct dcerpc_samr_DeleteDomAlias_state *state = tevent_req_data(
    6937             :                 req, struct dcerpc_samr_DeleteDomAlias_state);
    6938           0 :         NTSTATUS status;
    6939             : 
    6940           0 :         if (tevent_req_is_nterror(req, &status)) {
    6941           0 :                 tevent_req_received(req);
    6942           0 :                 return status;
    6943             :         }
    6944             : 
    6945             :         /* Steal possible out parameters to the callers context */
    6946           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    6947             : 
    6948             :         /* Return result */
    6949           0 :         *result = state->orig.out.result;
    6950             : 
    6951           0 :         tevent_req_received(req);
    6952           0 :         return NT_STATUS_OK;
    6953             : }
    6954             : 
    6955           0 : NTSTATUS dcerpc_samr_DeleteDomAlias(struct dcerpc_binding_handle *h,
    6956             :                                     TALLOC_CTX *mem_ctx,
    6957             :                                     struct policy_handle *_alias_handle /* [in,out] [ref] */,
    6958             :                                     NTSTATUS *result)
    6959             : {
    6960           0 :         struct samr_DeleteDomAlias r;
    6961           0 :         NTSTATUS status;
    6962             : 
    6963             :         /* In parameters */
    6964           0 :         r.in.alias_handle = _alias_handle;
    6965             : 
    6966             :         /* Out parameters */
    6967           0 :         r.out.alias_handle = _alias_handle;
    6968             : 
    6969             :         /* Result */
    6970           0 :         NDR_ZERO_STRUCT(r.out.result);
    6971             : 
    6972           0 :         status = dcerpc_samr_DeleteDomAlias_r(h, mem_ctx, &r);
    6973           0 :         if (!NT_STATUS_IS_OK(status)) {
    6974           0 :                 return status;
    6975             :         }
    6976             : 
    6977             :         /* Return variables */
    6978           0 :         *_alias_handle = *r.out.alias_handle;
    6979             : 
    6980             :         /* Return result */
    6981           0 :         *result = r.out.result;
    6982             : 
    6983           0 :         return NT_STATUS_OK;
    6984             : }
    6985             : 
    6986             : struct dcerpc_samr_AddAliasMember_r_state {
    6987             :         TALLOC_CTX *out_mem_ctx;
    6988             : };
    6989             : 
    6990             : static void dcerpc_samr_AddAliasMember_r_done(struct tevent_req *subreq);
    6991             : 
    6992           0 : struct tevent_req *dcerpc_samr_AddAliasMember_r_send(TALLOC_CTX *mem_ctx,
    6993             :         struct tevent_context *ev,
    6994             :         struct dcerpc_binding_handle *h,
    6995             :         struct samr_AddAliasMember *r)
    6996             : {
    6997           0 :         struct tevent_req *req;
    6998           0 :         struct dcerpc_samr_AddAliasMember_r_state *state;
    6999           0 :         struct tevent_req *subreq;
    7000             : 
    7001           0 :         req = tevent_req_create(mem_ctx, &state,
    7002             :                                 struct dcerpc_samr_AddAliasMember_r_state);
    7003           0 :         if (req == NULL) {
    7004           0 :                 return NULL;
    7005             :         }
    7006             : 
    7007           0 :         state->out_mem_ctx = NULL;
    7008             : 
    7009           0 :         subreq = dcerpc_binding_handle_call_send(state, ev, h,
    7010             :                         NULL, &ndr_table_samr,
    7011             :                         NDR_SAMR_ADDALIASMEMBER, state, r);
    7012           0 :         if (tevent_req_nomem(subreq, req)) {
    7013           0 :                 return tevent_req_post(req, ev);
    7014             :         }
    7015           0 :         tevent_req_set_callback(subreq, dcerpc_samr_AddAliasMember_r_done, req);
    7016             : 
    7017           0 :         return req;
    7018             : }
    7019             : 
    7020           0 : static void dcerpc_samr_AddAliasMember_r_done(struct tevent_req *subreq)
    7021             : {
    7022           0 :         struct tevent_req *req =
    7023           0 :                 tevent_req_callback_data(subreq,
    7024             :                 struct tevent_req);
    7025           0 :         NTSTATUS status;
    7026             : 
    7027           0 :         status = dcerpc_binding_handle_call_recv(subreq);
    7028           0 :         TALLOC_FREE(subreq);
    7029           0 :         if (tevent_req_nterror(req, status)) {
    7030           0 :                 return;
    7031             :         }
    7032             : 
    7033           0 :         tevent_req_done(req);
    7034             : }
    7035             : 
    7036           0 : NTSTATUS dcerpc_samr_AddAliasMember_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
    7037             : {
    7038           0 :         struct dcerpc_samr_AddAliasMember_r_state *state =
    7039           0 :                 tevent_req_data(req,
    7040             :                 struct dcerpc_samr_AddAliasMember_r_state);
    7041           0 :         NTSTATUS status;
    7042             : 
    7043           0 :         if (tevent_req_is_nterror(req, &status)) {
    7044           0 :                 tevent_req_received(req);
    7045           0 :                 return status;
    7046             :         }
    7047             : 
    7048           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    7049             : 
    7050           0 :         tevent_req_received(req);
    7051           0 :         return NT_STATUS_OK;
    7052             : }
    7053             : 
    7054           5 : NTSTATUS dcerpc_samr_AddAliasMember_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct samr_AddAliasMember *r)
    7055             : {
    7056           0 :         NTSTATUS status;
    7057             : 
    7058           5 :         status = dcerpc_binding_handle_call(h,
    7059             :                         NULL, &ndr_table_samr,
    7060             :                         NDR_SAMR_ADDALIASMEMBER, mem_ctx, r);
    7061             : 
    7062           5 :         return status;
    7063             : }
    7064             : 
    7065             : struct dcerpc_samr_AddAliasMember_state {
    7066             :         struct samr_AddAliasMember orig;
    7067             :         struct samr_AddAliasMember tmp;
    7068             :         TALLOC_CTX *out_mem_ctx;
    7069             : };
    7070             : 
    7071             : static void dcerpc_samr_AddAliasMember_done(struct tevent_req *subreq);
    7072             : 
    7073           0 : struct tevent_req *dcerpc_samr_AddAliasMember_send(TALLOC_CTX *mem_ctx,
    7074             :                                                    struct tevent_context *ev,
    7075             :                                                    struct dcerpc_binding_handle *h,
    7076             :                                                    struct policy_handle *_alias_handle /* [in] [ref] */,
    7077             :                                                    struct dom_sid2 *_sid /* [in] [ref] */)
    7078             : {
    7079           0 :         struct tevent_req *req;
    7080           0 :         struct dcerpc_samr_AddAliasMember_state *state;
    7081           0 :         struct tevent_req *subreq;
    7082             : 
    7083           0 :         req = tevent_req_create(mem_ctx, &state,
    7084             :                                 struct dcerpc_samr_AddAliasMember_state);
    7085           0 :         if (req == NULL) {
    7086           0 :                 return NULL;
    7087             :         }
    7088           0 :         state->out_mem_ctx = NULL;
    7089             : 
    7090             :         /* In parameters */
    7091           0 :         state->orig.in.alias_handle = _alias_handle;
    7092           0 :         state->orig.in.sid = _sid;
    7093             : 
    7094             :         /* Out parameters */
    7095             : 
    7096             :         /* Result */
    7097           0 :         NDR_ZERO_STRUCT(state->orig.out.result);
    7098             : 
    7099             :         /* make a temporary copy, that we pass to the dispatch function */
    7100           0 :         state->tmp = state->orig;
    7101             : 
    7102           0 :         subreq = dcerpc_samr_AddAliasMember_r_send(state, ev, h, &state->tmp);
    7103           0 :         if (tevent_req_nomem(subreq, req)) {
    7104           0 :                 return tevent_req_post(req, ev);
    7105             :         }
    7106           0 :         tevent_req_set_callback(subreq, dcerpc_samr_AddAliasMember_done, req);
    7107           0 :         return req;
    7108             : }
    7109             : 
    7110           0 : static void dcerpc_samr_AddAliasMember_done(struct tevent_req *subreq)
    7111             : {
    7112           0 :         struct tevent_req *req = tevent_req_callback_data(
    7113             :                 subreq, struct tevent_req);
    7114           0 :         struct dcerpc_samr_AddAliasMember_state *state = tevent_req_data(
    7115             :                 req, struct dcerpc_samr_AddAliasMember_state);
    7116           0 :         NTSTATUS status;
    7117           0 :         TALLOC_CTX *mem_ctx;
    7118             : 
    7119           0 :         if (state->out_mem_ctx) {
    7120           0 :                 mem_ctx = state->out_mem_ctx;
    7121             :         } else {
    7122           0 :                 mem_ctx = state;
    7123             :         }
    7124             : 
    7125           0 :         status = dcerpc_samr_AddAliasMember_r_recv(subreq, mem_ctx);
    7126           0 :         TALLOC_FREE(subreq);
    7127           0 :         if (tevent_req_nterror(req, status)) {
    7128           0 :                 return;
    7129             :         }
    7130             : 
    7131             :         /* Copy out parameters */
    7132             : 
    7133             :         /* Copy result */
    7134           0 :         state->orig.out.result = state->tmp.out.result;
    7135             : 
    7136             :         /* Reset temporary structure */
    7137           0 :         NDR_ZERO_STRUCT(state->tmp);
    7138             : 
    7139           0 :         tevent_req_done(req);
    7140             : }
    7141             : 
    7142           0 : NTSTATUS dcerpc_samr_AddAliasMember_recv(struct tevent_req *req,
    7143             :                                          TALLOC_CTX *mem_ctx,
    7144             :                                          NTSTATUS *result)
    7145             : {
    7146           0 :         struct dcerpc_samr_AddAliasMember_state *state = tevent_req_data(
    7147             :                 req, struct dcerpc_samr_AddAliasMember_state);
    7148           0 :         NTSTATUS status;
    7149             : 
    7150           0 :         if (tevent_req_is_nterror(req, &status)) {
    7151           0 :                 tevent_req_received(req);
    7152           0 :                 return status;
    7153             :         }
    7154             : 
    7155             :         /* Steal possible out parameters to the callers context */
    7156           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    7157             : 
    7158             :         /* Return result */
    7159           0 :         *result = state->orig.out.result;
    7160             : 
    7161           0 :         tevent_req_received(req);
    7162           0 :         return NT_STATUS_OK;
    7163             : }
    7164             : 
    7165           0 : NTSTATUS dcerpc_samr_AddAliasMember(struct dcerpc_binding_handle *h,
    7166             :                                     TALLOC_CTX *mem_ctx,
    7167             :                                     struct policy_handle *_alias_handle /* [in] [ref] */,
    7168             :                                     struct dom_sid2 *_sid /* [in] [ref] */,
    7169             :                                     NTSTATUS *result)
    7170             : {
    7171           0 :         struct samr_AddAliasMember r;
    7172           0 :         NTSTATUS status;
    7173             : 
    7174             :         /* In parameters */
    7175           0 :         r.in.alias_handle = _alias_handle;
    7176           0 :         r.in.sid = _sid;
    7177             : 
    7178             :         /* Out parameters */
    7179             : 
    7180             :         /* Result */
    7181           0 :         NDR_ZERO_STRUCT(r.out.result);
    7182             : 
    7183           0 :         status = dcerpc_samr_AddAliasMember_r(h, mem_ctx, &r);
    7184           0 :         if (!NT_STATUS_IS_OK(status)) {
    7185           0 :                 return status;
    7186             :         }
    7187             : 
    7188             :         /* Return variables */
    7189             : 
    7190             :         /* Return result */
    7191           0 :         *result = r.out.result;
    7192             : 
    7193           0 :         return NT_STATUS_OK;
    7194             : }
    7195             : 
    7196             : struct dcerpc_samr_DeleteAliasMember_r_state {
    7197             :         TALLOC_CTX *out_mem_ctx;
    7198             : };
    7199             : 
    7200             : static void dcerpc_samr_DeleteAliasMember_r_done(struct tevent_req *subreq);
    7201             : 
    7202           0 : struct tevent_req *dcerpc_samr_DeleteAliasMember_r_send(TALLOC_CTX *mem_ctx,
    7203             :         struct tevent_context *ev,
    7204             :         struct dcerpc_binding_handle *h,
    7205             :         struct samr_DeleteAliasMember *r)
    7206             : {
    7207           0 :         struct tevent_req *req;
    7208           0 :         struct dcerpc_samr_DeleteAliasMember_r_state *state;
    7209           0 :         struct tevent_req *subreq;
    7210             : 
    7211           0 :         req = tevent_req_create(mem_ctx, &state,
    7212             :                                 struct dcerpc_samr_DeleteAliasMember_r_state);
    7213           0 :         if (req == NULL) {
    7214           0 :                 return NULL;
    7215             :         }
    7216             : 
    7217           0 :         state->out_mem_ctx = NULL;
    7218             : 
    7219           0 :         subreq = dcerpc_binding_handle_call_send(state, ev, h,
    7220             :                         NULL, &ndr_table_samr,
    7221             :                         NDR_SAMR_DELETEALIASMEMBER, state, r);
    7222           0 :         if (tevent_req_nomem(subreq, req)) {
    7223           0 :                 return tevent_req_post(req, ev);
    7224             :         }
    7225           0 :         tevent_req_set_callback(subreq, dcerpc_samr_DeleteAliasMember_r_done, req);
    7226             : 
    7227           0 :         return req;
    7228             : }
    7229             : 
    7230           0 : static void dcerpc_samr_DeleteAliasMember_r_done(struct tevent_req *subreq)
    7231             : {
    7232           0 :         struct tevent_req *req =
    7233           0 :                 tevent_req_callback_data(subreq,
    7234             :                 struct tevent_req);
    7235           0 :         NTSTATUS status;
    7236             : 
    7237           0 :         status = dcerpc_binding_handle_call_recv(subreq);
    7238           0 :         TALLOC_FREE(subreq);
    7239           0 :         if (tevent_req_nterror(req, status)) {
    7240           0 :                 return;
    7241             :         }
    7242             : 
    7243           0 :         tevent_req_done(req);
    7244             : }
    7245             : 
    7246           0 : NTSTATUS dcerpc_samr_DeleteAliasMember_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
    7247             : {
    7248           0 :         struct dcerpc_samr_DeleteAliasMember_r_state *state =
    7249           0 :                 tevent_req_data(req,
    7250             :                 struct dcerpc_samr_DeleteAliasMember_r_state);
    7251           0 :         NTSTATUS status;
    7252             : 
    7253           0 :         if (tevent_req_is_nterror(req, &status)) {
    7254           0 :                 tevent_req_received(req);
    7255           0 :                 return status;
    7256             :         }
    7257             : 
    7258           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    7259             : 
    7260           0 :         tevent_req_received(req);
    7261           0 :         return NT_STATUS_OK;
    7262             : }
    7263             : 
    7264           5 : NTSTATUS dcerpc_samr_DeleteAliasMember_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct samr_DeleteAliasMember *r)
    7265             : {
    7266           0 :         NTSTATUS status;
    7267             : 
    7268           5 :         status = dcerpc_binding_handle_call(h,
    7269             :                         NULL, &ndr_table_samr,
    7270             :                         NDR_SAMR_DELETEALIASMEMBER, mem_ctx, r);
    7271             : 
    7272           5 :         return status;
    7273             : }
    7274             : 
    7275             : struct dcerpc_samr_DeleteAliasMember_state {
    7276             :         struct samr_DeleteAliasMember orig;
    7277             :         struct samr_DeleteAliasMember tmp;
    7278             :         TALLOC_CTX *out_mem_ctx;
    7279             : };
    7280             : 
    7281             : static void dcerpc_samr_DeleteAliasMember_done(struct tevent_req *subreq);
    7282             : 
    7283           0 : struct tevent_req *dcerpc_samr_DeleteAliasMember_send(TALLOC_CTX *mem_ctx,
    7284             :                                                       struct tevent_context *ev,
    7285             :                                                       struct dcerpc_binding_handle *h,
    7286             :                                                       struct policy_handle *_alias_handle /* [in] [ref] */,
    7287             :                                                       struct dom_sid2 *_sid /* [in] [ref] */)
    7288             : {
    7289           0 :         struct tevent_req *req;
    7290           0 :         struct dcerpc_samr_DeleteAliasMember_state *state;
    7291           0 :         struct tevent_req *subreq;
    7292             : 
    7293           0 :         req = tevent_req_create(mem_ctx, &state,
    7294             :                                 struct dcerpc_samr_DeleteAliasMember_state);
    7295           0 :         if (req == NULL) {
    7296           0 :                 return NULL;
    7297             :         }
    7298           0 :         state->out_mem_ctx = NULL;
    7299             : 
    7300             :         /* In parameters */
    7301           0 :         state->orig.in.alias_handle = _alias_handle;
    7302           0 :         state->orig.in.sid = _sid;
    7303             : 
    7304             :         /* Out parameters */
    7305             : 
    7306             :         /* Result */
    7307           0 :         NDR_ZERO_STRUCT(state->orig.out.result);
    7308             : 
    7309             :         /* make a temporary copy, that we pass to the dispatch function */
    7310           0 :         state->tmp = state->orig;
    7311             : 
    7312           0 :         subreq = dcerpc_samr_DeleteAliasMember_r_send(state, ev, h, &state->tmp);
    7313           0 :         if (tevent_req_nomem(subreq, req)) {
    7314           0 :                 return tevent_req_post(req, ev);
    7315             :         }
    7316           0 :         tevent_req_set_callback(subreq, dcerpc_samr_DeleteAliasMember_done, req);
    7317           0 :         return req;
    7318             : }
    7319             : 
    7320           0 : static void dcerpc_samr_DeleteAliasMember_done(struct tevent_req *subreq)
    7321             : {
    7322           0 :         struct tevent_req *req = tevent_req_callback_data(
    7323             :                 subreq, struct tevent_req);
    7324           0 :         struct dcerpc_samr_DeleteAliasMember_state *state = tevent_req_data(
    7325             :                 req, struct dcerpc_samr_DeleteAliasMember_state);
    7326           0 :         NTSTATUS status;
    7327           0 :         TALLOC_CTX *mem_ctx;
    7328             : 
    7329           0 :         if (state->out_mem_ctx) {
    7330           0 :                 mem_ctx = state->out_mem_ctx;
    7331             :         } else {
    7332           0 :                 mem_ctx = state;
    7333             :         }
    7334             : 
    7335           0 :         status = dcerpc_samr_DeleteAliasMember_r_recv(subreq, mem_ctx);
    7336           0 :         TALLOC_FREE(subreq);
    7337           0 :         if (tevent_req_nterror(req, status)) {
    7338           0 :                 return;
    7339             :         }
    7340             : 
    7341             :         /* Copy out parameters */
    7342             : 
    7343             :         /* Copy result */
    7344           0 :         state->orig.out.result = state->tmp.out.result;
    7345             : 
    7346             :         /* Reset temporary structure */
    7347           0 :         NDR_ZERO_STRUCT(state->tmp);
    7348             : 
    7349           0 :         tevent_req_done(req);
    7350             : }
    7351             : 
    7352           0 : NTSTATUS dcerpc_samr_DeleteAliasMember_recv(struct tevent_req *req,
    7353             :                                             TALLOC_CTX *mem_ctx,
    7354             :                                             NTSTATUS *result)
    7355             : {
    7356           0 :         struct dcerpc_samr_DeleteAliasMember_state *state = tevent_req_data(
    7357             :                 req, struct dcerpc_samr_DeleteAliasMember_state);
    7358           0 :         NTSTATUS status;
    7359             : 
    7360           0 :         if (tevent_req_is_nterror(req, &status)) {
    7361           0 :                 tevent_req_received(req);
    7362           0 :                 return status;
    7363             :         }
    7364             : 
    7365             :         /* Steal possible out parameters to the callers context */
    7366           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    7367             : 
    7368             :         /* Return result */
    7369           0 :         *result = state->orig.out.result;
    7370             : 
    7371           0 :         tevent_req_received(req);
    7372           0 :         return NT_STATUS_OK;
    7373             : }
    7374             : 
    7375           0 : NTSTATUS dcerpc_samr_DeleteAliasMember(struct dcerpc_binding_handle *h,
    7376             :                                        TALLOC_CTX *mem_ctx,
    7377             :                                        struct policy_handle *_alias_handle /* [in] [ref] */,
    7378             :                                        struct dom_sid2 *_sid /* [in] [ref] */,
    7379             :                                        NTSTATUS *result)
    7380             : {
    7381           0 :         struct samr_DeleteAliasMember r;
    7382           0 :         NTSTATUS status;
    7383             : 
    7384             :         /* In parameters */
    7385           0 :         r.in.alias_handle = _alias_handle;
    7386           0 :         r.in.sid = _sid;
    7387             : 
    7388             :         /* Out parameters */
    7389             : 
    7390             :         /* Result */
    7391           0 :         NDR_ZERO_STRUCT(r.out.result);
    7392             : 
    7393           0 :         status = dcerpc_samr_DeleteAliasMember_r(h, mem_ctx, &r);
    7394           0 :         if (!NT_STATUS_IS_OK(status)) {
    7395           0 :                 return status;
    7396             :         }
    7397             : 
    7398             :         /* Return variables */
    7399             : 
    7400             :         /* Return result */
    7401           0 :         *result = r.out.result;
    7402             : 
    7403           0 :         return NT_STATUS_OK;
    7404             : }
    7405             : 
    7406             : struct dcerpc_samr_GetMembersInAlias_r_state {
    7407             :         TALLOC_CTX *out_mem_ctx;
    7408             : };
    7409             : 
    7410             : static void dcerpc_samr_GetMembersInAlias_r_done(struct tevent_req *subreq);
    7411             : 
    7412           0 : struct tevent_req *dcerpc_samr_GetMembersInAlias_r_send(TALLOC_CTX *mem_ctx,
    7413             :         struct tevent_context *ev,
    7414             :         struct dcerpc_binding_handle *h,
    7415             :         struct samr_GetMembersInAlias *r)
    7416             : {
    7417           0 :         struct tevent_req *req;
    7418           0 :         struct dcerpc_samr_GetMembersInAlias_r_state *state;
    7419           0 :         struct tevent_req *subreq;
    7420             : 
    7421           0 :         req = tevent_req_create(mem_ctx, &state,
    7422             :                                 struct dcerpc_samr_GetMembersInAlias_r_state);
    7423           0 :         if (req == NULL) {
    7424           0 :                 return NULL;
    7425             :         }
    7426             : 
    7427           0 :         state->out_mem_ctx = talloc_new(state);
    7428           0 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
    7429           0 :                 return tevent_req_post(req, ev);
    7430             :         }
    7431             : 
    7432           0 :         subreq = dcerpc_binding_handle_call_send(state, ev, h,
    7433             :                         NULL, &ndr_table_samr,
    7434           0 :                         NDR_SAMR_GETMEMBERSINALIAS, state->out_mem_ctx, r);
    7435           0 :         if (tevent_req_nomem(subreq, req)) {
    7436           0 :                 return tevent_req_post(req, ev);
    7437             :         }
    7438           0 :         tevent_req_set_callback(subreq, dcerpc_samr_GetMembersInAlias_r_done, req);
    7439             : 
    7440           0 :         return req;
    7441             : }
    7442             : 
    7443           0 : static void dcerpc_samr_GetMembersInAlias_r_done(struct tevent_req *subreq)
    7444             : {
    7445           0 :         struct tevent_req *req =
    7446           0 :                 tevent_req_callback_data(subreq,
    7447             :                 struct tevent_req);
    7448           0 :         NTSTATUS status;
    7449             : 
    7450           0 :         status = dcerpc_binding_handle_call_recv(subreq);
    7451           0 :         TALLOC_FREE(subreq);
    7452           0 :         if (tevent_req_nterror(req, status)) {
    7453           0 :                 return;
    7454             :         }
    7455             : 
    7456           0 :         tevent_req_done(req);
    7457             : }
    7458             : 
    7459           0 : NTSTATUS dcerpc_samr_GetMembersInAlias_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
    7460             : {
    7461           0 :         struct dcerpc_samr_GetMembersInAlias_r_state *state =
    7462           0 :                 tevent_req_data(req,
    7463             :                 struct dcerpc_samr_GetMembersInAlias_r_state);
    7464           0 :         NTSTATUS status;
    7465             : 
    7466           0 :         if (tevent_req_is_nterror(req, &status)) {
    7467           0 :                 tevent_req_received(req);
    7468           0 :                 return status;
    7469             :         }
    7470             : 
    7471           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    7472             : 
    7473           0 :         tevent_req_received(req);
    7474           0 :         return NT_STATUS_OK;
    7475             : }
    7476             : 
    7477        1311 : NTSTATUS dcerpc_samr_GetMembersInAlias_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct samr_GetMembersInAlias *r)
    7478             : {
    7479           0 :         NTSTATUS status;
    7480             : 
    7481        1311 :         status = dcerpc_binding_handle_call(h,
    7482             :                         NULL, &ndr_table_samr,
    7483             :                         NDR_SAMR_GETMEMBERSINALIAS, mem_ctx, r);
    7484             : 
    7485        1311 :         return status;
    7486             : }
    7487             : 
    7488             : struct dcerpc_samr_GetMembersInAlias_state {
    7489             :         struct samr_GetMembersInAlias orig;
    7490             :         struct samr_GetMembersInAlias tmp;
    7491             :         TALLOC_CTX *out_mem_ctx;
    7492             : };
    7493             : 
    7494             : static void dcerpc_samr_GetMembersInAlias_done(struct tevent_req *subreq);
    7495             : 
    7496           0 : struct tevent_req *dcerpc_samr_GetMembersInAlias_send(TALLOC_CTX *mem_ctx,
    7497             :                                                       struct tevent_context *ev,
    7498             :                                                       struct dcerpc_binding_handle *h,
    7499             :                                                       struct policy_handle *_alias_handle /* [in] [ref] */,
    7500             :                                                       struct lsa_SidArray *_sids /* [out] [ref] */)
    7501             : {
    7502           0 :         struct tevent_req *req;
    7503           0 :         struct dcerpc_samr_GetMembersInAlias_state *state;
    7504           0 :         struct tevent_req *subreq;
    7505             : 
    7506           0 :         req = tevent_req_create(mem_ctx, &state,
    7507             :                                 struct dcerpc_samr_GetMembersInAlias_state);
    7508           0 :         if (req == NULL) {
    7509           0 :                 return NULL;
    7510             :         }
    7511           0 :         state->out_mem_ctx = NULL;
    7512             : 
    7513             :         /* In parameters */
    7514           0 :         state->orig.in.alias_handle = _alias_handle;
    7515             : 
    7516             :         /* Out parameters */
    7517           0 :         state->orig.out.sids = _sids;
    7518             : 
    7519             :         /* Result */
    7520           0 :         NDR_ZERO_STRUCT(state->orig.out.result);
    7521             : 
    7522           0 :         state->out_mem_ctx = talloc_named_const(state, 0,
    7523             :                              "dcerpc_samr_GetMembersInAlias_out_memory");
    7524           0 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
    7525           0 :                 return tevent_req_post(req, ev);
    7526             :         }
    7527             : 
    7528             :         /* make a temporary copy, that we pass to the dispatch function */
    7529           0 :         state->tmp = state->orig;
    7530             : 
    7531           0 :         subreq = dcerpc_samr_GetMembersInAlias_r_send(state, ev, h, &state->tmp);
    7532           0 :         if (tevent_req_nomem(subreq, req)) {
    7533           0 :                 return tevent_req_post(req, ev);
    7534             :         }
    7535           0 :         tevent_req_set_callback(subreq, dcerpc_samr_GetMembersInAlias_done, req);
    7536           0 :         return req;
    7537             : }
    7538             : 
    7539           0 : static void dcerpc_samr_GetMembersInAlias_done(struct tevent_req *subreq)
    7540             : {
    7541           0 :         struct tevent_req *req = tevent_req_callback_data(
    7542             :                 subreq, struct tevent_req);
    7543           0 :         struct dcerpc_samr_GetMembersInAlias_state *state = tevent_req_data(
    7544             :                 req, struct dcerpc_samr_GetMembersInAlias_state);
    7545           0 :         NTSTATUS status;
    7546           0 :         TALLOC_CTX *mem_ctx;
    7547             : 
    7548           0 :         if (state->out_mem_ctx) {
    7549           0 :                 mem_ctx = state->out_mem_ctx;
    7550             :         } else {
    7551           0 :                 mem_ctx = state;
    7552             :         }
    7553             : 
    7554           0 :         status = dcerpc_samr_GetMembersInAlias_r_recv(subreq, mem_ctx);
    7555           0 :         TALLOC_FREE(subreq);
    7556           0 :         if (tevent_req_nterror(req, status)) {
    7557           0 :                 return;
    7558             :         }
    7559             : 
    7560             :         /* Copy out parameters */
    7561           0 :         *state->orig.out.sids = *state->tmp.out.sids;
    7562             : 
    7563             :         /* Copy result */
    7564           0 :         state->orig.out.result = state->tmp.out.result;
    7565             : 
    7566             :         /* Reset temporary structure */
    7567           0 :         NDR_ZERO_STRUCT(state->tmp);
    7568             : 
    7569           0 :         tevent_req_done(req);
    7570             : }
    7571             : 
    7572           0 : NTSTATUS dcerpc_samr_GetMembersInAlias_recv(struct tevent_req *req,
    7573             :                                             TALLOC_CTX *mem_ctx,
    7574             :                                             NTSTATUS *result)
    7575             : {
    7576           0 :         struct dcerpc_samr_GetMembersInAlias_state *state = tevent_req_data(
    7577             :                 req, struct dcerpc_samr_GetMembersInAlias_state);
    7578           0 :         NTSTATUS status;
    7579             : 
    7580           0 :         if (tevent_req_is_nterror(req, &status)) {
    7581           0 :                 tevent_req_received(req);
    7582           0 :                 return status;
    7583             :         }
    7584             : 
    7585             :         /* Steal possible out parameters to the callers context */
    7586           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    7587             : 
    7588             :         /* Return result */
    7589           0 :         *result = state->orig.out.result;
    7590             : 
    7591           0 :         tevent_req_received(req);
    7592           0 :         return NT_STATUS_OK;
    7593             : }
    7594             : 
    7595        1224 : NTSTATUS dcerpc_samr_GetMembersInAlias(struct dcerpc_binding_handle *h,
    7596             :                                        TALLOC_CTX *mem_ctx,
    7597             :                                        struct policy_handle *_alias_handle /* [in] [ref] */,
    7598             :                                        struct lsa_SidArray *_sids /* [out] [ref] */,
    7599             :                                        NTSTATUS *result)
    7600             : {
    7601           0 :         struct samr_GetMembersInAlias r;
    7602           0 :         NTSTATUS status;
    7603             : 
    7604             :         /* In parameters */
    7605        1224 :         r.in.alias_handle = _alias_handle;
    7606             : 
    7607             :         /* Out parameters */
    7608        1224 :         r.out.sids = _sids;
    7609             : 
    7610             :         /* Result */
    7611        1224 :         NDR_ZERO_STRUCT(r.out.result);
    7612             : 
    7613        1224 :         status = dcerpc_samr_GetMembersInAlias_r(h, mem_ctx, &r);
    7614        1224 :         if (!NT_STATUS_IS_OK(status)) {
    7615           0 :                 return status;
    7616             :         }
    7617             : 
    7618             :         /* Return variables */
    7619        1224 :         *_sids = *r.out.sids;
    7620             : 
    7621             :         /* Return result */
    7622        1224 :         *result = r.out.result;
    7623             : 
    7624        1224 :         return NT_STATUS_OK;
    7625             : }
    7626             : 
    7627             : struct dcerpc_samr_OpenUser_r_state {
    7628             :         TALLOC_CTX *out_mem_ctx;
    7629             : };
    7630             : 
    7631             : static void dcerpc_samr_OpenUser_r_done(struct tevent_req *subreq);
    7632             : 
    7633          57 : struct tevent_req *dcerpc_samr_OpenUser_r_send(TALLOC_CTX *mem_ctx,
    7634             :         struct tevent_context *ev,
    7635             :         struct dcerpc_binding_handle *h,
    7636             :         struct samr_OpenUser *r)
    7637             : {
    7638           0 :         struct tevent_req *req;
    7639           0 :         struct dcerpc_samr_OpenUser_r_state *state;
    7640           0 :         struct tevent_req *subreq;
    7641             : 
    7642          57 :         req = tevent_req_create(mem_ctx, &state,
    7643             :                                 struct dcerpc_samr_OpenUser_r_state);
    7644          57 :         if (req == NULL) {
    7645           0 :                 return NULL;
    7646             :         }
    7647             : 
    7648          57 :         state->out_mem_ctx = talloc_new(state);
    7649          57 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
    7650           0 :                 return tevent_req_post(req, ev);
    7651             :         }
    7652             : 
    7653          57 :         subreq = dcerpc_binding_handle_call_send(state, ev, h,
    7654             :                         NULL, &ndr_table_samr,
    7655          57 :                         NDR_SAMR_OPENUSER, state->out_mem_ctx, r);
    7656          57 :         if (tevent_req_nomem(subreq, req)) {
    7657           0 :                 return tevent_req_post(req, ev);
    7658             :         }
    7659          57 :         tevent_req_set_callback(subreq, dcerpc_samr_OpenUser_r_done, req);
    7660             : 
    7661          57 :         return req;
    7662             : }
    7663             : 
    7664          57 : static void dcerpc_samr_OpenUser_r_done(struct tevent_req *subreq)
    7665             : {
    7666           0 :         struct tevent_req *req =
    7667          57 :                 tevent_req_callback_data(subreq,
    7668             :                 struct tevent_req);
    7669           0 :         NTSTATUS status;
    7670             : 
    7671          57 :         status = dcerpc_binding_handle_call_recv(subreq);
    7672          57 :         TALLOC_FREE(subreq);
    7673          57 :         if (tevent_req_nterror(req, status)) {
    7674           0 :                 return;
    7675             :         }
    7676             : 
    7677          57 :         tevent_req_done(req);
    7678             : }
    7679             : 
    7680          57 : NTSTATUS dcerpc_samr_OpenUser_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
    7681             : {
    7682           0 :         struct dcerpc_samr_OpenUser_r_state *state =
    7683          57 :                 tevent_req_data(req,
    7684             :                 struct dcerpc_samr_OpenUser_r_state);
    7685           0 :         NTSTATUS status;
    7686             : 
    7687          57 :         if (tevent_req_is_nterror(req, &status)) {
    7688           0 :                 tevent_req_received(req);
    7689           0 :                 return status;
    7690             :         }
    7691             : 
    7692          57 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    7693             : 
    7694          57 :         tevent_req_received(req);
    7695          57 :         return NT_STATUS_OK;
    7696             : }
    7697             : 
    7698        2331 : NTSTATUS dcerpc_samr_OpenUser_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct samr_OpenUser *r)
    7699             : {
    7700           0 :         NTSTATUS status;
    7701             : 
    7702        2331 :         status = dcerpc_binding_handle_call(h,
    7703             :                         NULL, &ndr_table_samr,
    7704             :                         NDR_SAMR_OPENUSER, mem_ctx, r);
    7705             : 
    7706        2331 :         return status;
    7707             : }
    7708             : 
    7709             : struct dcerpc_samr_OpenUser_state {
    7710             :         struct samr_OpenUser orig;
    7711             :         struct samr_OpenUser tmp;
    7712             :         TALLOC_CTX *out_mem_ctx;
    7713             : };
    7714             : 
    7715             : static void dcerpc_samr_OpenUser_done(struct tevent_req *subreq);
    7716             : 
    7717           0 : struct tevent_req *dcerpc_samr_OpenUser_send(TALLOC_CTX *mem_ctx,
    7718             :                                              struct tevent_context *ev,
    7719             :                                              struct dcerpc_binding_handle *h,
    7720             :                                              struct policy_handle *_domain_handle /* [in] [ref] */,
    7721             :                                              uint32_t _access_mask /* [in]  */,
    7722             :                                              uint32_t _rid /* [in]  */,
    7723             :                                              struct policy_handle *_user_handle /* [out] [ref] */)
    7724             : {
    7725           0 :         struct tevent_req *req;
    7726           0 :         struct dcerpc_samr_OpenUser_state *state;
    7727           0 :         struct tevent_req *subreq;
    7728             : 
    7729           0 :         req = tevent_req_create(mem_ctx, &state,
    7730             :                                 struct dcerpc_samr_OpenUser_state);
    7731           0 :         if (req == NULL) {
    7732           0 :                 return NULL;
    7733             :         }
    7734           0 :         state->out_mem_ctx = NULL;
    7735             : 
    7736             :         /* In parameters */
    7737           0 :         state->orig.in.domain_handle = _domain_handle;
    7738           0 :         state->orig.in.access_mask = _access_mask;
    7739           0 :         state->orig.in.rid = _rid;
    7740             : 
    7741             :         /* Out parameters */
    7742           0 :         state->orig.out.user_handle = _user_handle;
    7743             : 
    7744             :         /* Result */
    7745           0 :         NDR_ZERO_STRUCT(state->orig.out.result);
    7746             : 
    7747           0 :         state->out_mem_ctx = talloc_named_const(state, 0,
    7748             :                              "dcerpc_samr_OpenUser_out_memory");
    7749           0 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
    7750           0 :                 return tevent_req_post(req, ev);
    7751             :         }
    7752             : 
    7753             :         /* make a temporary copy, that we pass to the dispatch function */
    7754           0 :         state->tmp = state->orig;
    7755             : 
    7756           0 :         subreq = dcerpc_samr_OpenUser_r_send(state, ev, h, &state->tmp);
    7757           0 :         if (tevent_req_nomem(subreq, req)) {
    7758           0 :                 return tevent_req_post(req, ev);
    7759             :         }
    7760           0 :         tevent_req_set_callback(subreq, dcerpc_samr_OpenUser_done, req);
    7761           0 :         return req;
    7762             : }
    7763             : 
    7764           0 : static void dcerpc_samr_OpenUser_done(struct tevent_req *subreq)
    7765             : {
    7766           0 :         struct tevent_req *req = tevent_req_callback_data(
    7767             :                 subreq, struct tevent_req);
    7768           0 :         struct dcerpc_samr_OpenUser_state *state = tevent_req_data(
    7769             :                 req, struct dcerpc_samr_OpenUser_state);
    7770           0 :         NTSTATUS status;
    7771           0 :         TALLOC_CTX *mem_ctx;
    7772             : 
    7773           0 :         if (state->out_mem_ctx) {
    7774           0 :                 mem_ctx = state->out_mem_ctx;
    7775             :         } else {
    7776           0 :                 mem_ctx = state;
    7777             :         }
    7778             : 
    7779           0 :         status = dcerpc_samr_OpenUser_r_recv(subreq, mem_ctx);
    7780           0 :         TALLOC_FREE(subreq);
    7781           0 :         if (tevent_req_nterror(req, status)) {
    7782           0 :                 return;
    7783             :         }
    7784             : 
    7785             :         /* Copy out parameters */
    7786           0 :         *state->orig.out.user_handle = *state->tmp.out.user_handle;
    7787             : 
    7788             :         /* Copy result */
    7789           0 :         state->orig.out.result = state->tmp.out.result;
    7790             : 
    7791             :         /* Reset temporary structure */
    7792           0 :         NDR_ZERO_STRUCT(state->tmp);
    7793             : 
    7794           0 :         tevent_req_done(req);
    7795             : }
    7796             : 
    7797           0 : NTSTATUS dcerpc_samr_OpenUser_recv(struct tevent_req *req,
    7798             :                                    TALLOC_CTX *mem_ctx,
    7799             :                                    NTSTATUS *result)
    7800             : {
    7801           0 :         struct dcerpc_samr_OpenUser_state *state = tevent_req_data(
    7802             :                 req, struct dcerpc_samr_OpenUser_state);
    7803           0 :         NTSTATUS status;
    7804             : 
    7805           0 :         if (tevent_req_is_nterror(req, &status)) {
    7806           0 :                 tevent_req_received(req);
    7807           0 :                 return status;
    7808             :         }
    7809             : 
    7810             :         /* Steal possible out parameters to the callers context */
    7811           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    7812             : 
    7813             :         /* Return result */
    7814           0 :         *result = state->orig.out.result;
    7815             : 
    7816           0 :         tevent_req_received(req);
    7817           0 :         return NT_STATUS_OK;
    7818             : }
    7819             : 
    7820         313 : NTSTATUS dcerpc_samr_OpenUser(struct dcerpc_binding_handle *h,
    7821             :                               TALLOC_CTX *mem_ctx,
    7822             :                               struct policy_handle *_domain_handle /* [in] [ref] */,
    7823             :                               uint32_t _access_mask /* [in]  */,
    7824             :                               uint32_t _rid /* [in]  */,
    7825             :                               struct policy_handle *_user_handle /* [out] [ref] */,
    7826             :                               NTSTATUS *result)
    7827             : {
    7828           0 :         struct samr_OpenUser r;
    7829           0 :         NTSTATUS status;
    7830             : 
    7831             :         /* In parameters */
    7832         313 :         r.in.domain_handle = _domain_handle;
    7833         313 :         r.in.access_mask = _access_mask;
    7834         313 :         r.in.rid = _rid;
    7835             : 
    7836             :         /* Out parameters */
    7837         313 :         r.out.user_handle = _user_handle;
    7838             : 
    7839             :         /* Result */
    7840         313 :         NDR_ZERO_STRUCT(r.out.result);
    7841             : 
    7842         313 :         status = dcerpc_samr_OpenUser_r(h, mem_ctx, &r);
    7843         313 :         if (!NT_STATUS_IS_OK(status)) {
    7844           0 :                 return status;
    7845             :         }
    7846             : 
    7847             :         /* Return variables */
    7848         313 :         *_user_handle = *r.out.user_handle;
    7849             : 
    7850             :         /* Return result */
    7851         313 :         *result = r.out.result;
    7852             : 
    7853         313 :         return NT_STATUS_OK;
    7854             : }
    7855             : 
    7856             : struct dcerpc_samr_DeleteUser_r_state {
    7857             :         TALLOC_CTX *out_mem_ctx;
    7858             : };
    7859             : 
    7860             : static void dcerpc_samr_DeleteUser_r_done(struct tevent_req *subreq);
    7861             : 
    7862           2 : struct tevent_req *dcerpc_samr_DeleteUser_r_send(TALLOC_CTX *mem_ctx,
    7863             :         struct tevent_context *ev,
    7864             :         struct dcerpc_binding_handle *h,
    7865             :         struct samr_DeleteUser *r)
    7866             : {
    7867           0 :         struct tevent_req *req;
    7868           0 :         struct dcerpc_samr_DeleteUser_r_state *state;
    7869           0 :         struct tevent_req *subreq;
    7870             : 
    7871           2 :         req = tevent_req_create(mem_ctx, &state,
    7872             :                                 struct dcerpc_samr_DeleteUser_r_state);
    7873           2 :         if (req == NULL) {
    7874           0 :                 return NULL;
    7875             :         }
    7876             : 
    7877           2 :         state->out_mem_ctx = talloc_new(state);
    7878           2 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
    7879           0 :                 return tevent_req_post(req, ev);
    7880             :         }
    7881             : 
    7882           2 :         subreq = dcerpc_binding_handle_call_send(state, ev, h,
    7883             :                         NULL, &ndr_table_samr,
    7884           2 :                         NDR_SAMR_DELETEUSER, state->out_mem_ctx, r);
    7885           2 :         if (tevent_req_nomem(subreq, req)) {
    7886           0 :                 return tevent_req_post(req, ev);
    7887             :         }
    7888           2 :         tevent_req_set_callback(subreq, dcerpc_samr_DeleteUser_r_done, req);
    7889             : 
    7890           2 :         return req;
    7891             : }
    7892             : 
    7893           2 : static void dcerpc_samr_DeleteUser_r_done(struct tevent_req *subreq)
    7894             : {
    7895           0 :         struct tevent_req *req =
    7896           2 :                 tevent_req_callback_data(subreq,
    7897             :                 struct tevent_req);
    7898           0 :         NTSTATUS status;
    7899             : 
    7900           2 :         status = dcerpc_binding_handle_call_recv(subreq);
    7901           2 :         TALLOC_FREE(subreq);
    7902           2 :         if (tevent_req_nterror(req, status)) {
    7903           0 :                 return;
    7904             :         }
    7905             : 
    7906           2 :         tevent_req_done(req);
    7907             : }
    7908             : 
    7909           2 : NTSTATUS dcerpc_samr_DeleteUser_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
    7910             : {
    7911           0 :         struct dcerpc_samr_DeleteUser_r_state *state =
    7912           2 :                 tevent_req_data(req,
    7913             :                 struct dcerpc_samr_DeleteUser_r_state);
    7914           0 :         NTSTATUS status;
    7915             : 
    7916           2 :         if (tevent_req_is_nterror(req, &status)) {
    7917           0 :                 tevent_req_received(req);
    7918           0 :                 return status;
    7919             :         }
    7920             : 
    7921           2 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    7922             : 
    7923           2 :         tevent_req_received(req);
    7924           2 :         return NT_STATUS_OK;
    7925             : }
    7926             : 
    7927        1108 : NTSTATUS dcerpc_samr_DeleteUser_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct samr_DeleteUser *r)
    7928             : {
    7929          72 :         NTSTATUS status;
    7930             : 
    7931        1108 :         status = dcerpc_binding_handle_call(h,
    7932             :                         NULL, &ndr_table_samr,
    7933             :                         NDR_SAMR_DELETEUSER, mem_ctx, r);
    7934             : 
    7935        1108 :         return status;
    7936             : }
    7937             : 
    7938             : struct dcerpc_samr_DeleteUser_state {
    7939             :         struct samr_DeleteUser orig;
    7940             :         struct samr_DeleteUser tmp;
    7941             :         TALLOC_CTX *out_mem_ctx;
    7942             : };
    7943             : 
    7944             : static void dcerpc_samr_DeleteUser_done(struct tevent_req *subreq);
    7945             : 
    7946           0 : struct tevent_req *dcerpc_samr_DeleteUser_send(TALLOC_CTX *mem_ctx,
    7947             :                                                struct tevent_context *ev,
    7948             :                                                struct dcerpc_binding_handle *h,
    7949             :                                                struct policy_handle *_user_handle /* [in,out] [ref] */)
    7950             : {
    7951           0 :         struct tevent_req *req;
    7952           0 :         struct dcerpc_samr_DeleteUser_state *state;
    7953           0 :         struct tevent_req *subreq;
    7954             : 
    7955           0 :         req = tevent_req_create(mem_ctx, &state,
    7956             :                                 struct dcerpc_samr_DeleteUser_state);
    7957           0 :         if (req == NULL) {
    7958           0 :                 return NULL;
    7959             :         }
    7960           0 :         state->out_mem_ctx = NULL;
    7961             : 
    7962             :         /* In parameters */
    7963           0 :         state->orig.in.user_handle = _user_handle;
    7964             : 
    7965             :         /* Out parameters */
    7966           0 :         state->orig.out.user_handle = _user_handle;
    7967             : 
    7968             :         /* Result */
    7969           0 :         NDR_ZERO_STRUCT(state->orig.out.result);
    7970             : 
    7971           0 :         state->out_mem_ctx = talloc_named_const(state, 0,
    7972             :                              "dcerpc_samr_DeleteUser_out_memory");
    7973           0 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
    7974           0 :                 return tevent_req_post(req, ev);
    7975             :         }
    7976             : 
    7977             :         /* make a temporary copy, that we pass to the dispatch function */
    7978           0 :         state->tmp = state->orig;
    7979             : 
    7980           0 :         subreq = dcerpc_samr_DeleteUser_r_send(state, ev, h, &state->tmp);
    7981           0 :         if (tevent_req_nomem(subreq, req)) {
    7982           0 :                 return tevent_req_post(req, ev);
    7983             :         }
    7984           0 :         tevent_req_set_callback(subreq, dcerpc_samr_DeleteUser_done, req);
    7985           0 :         return req;
    7986             : }
    7987             : 
    7988           0 : static void dcerpc_samr_DeleteUser_done(struct tevent_req *subreq)
    7989             : {
    7990           0 :         struct tevent_req *req = tevent_req_callback_data(
    7991             :                 subreq, struct tevent_req);
    7992           0 :         struct dcerpc_samr_DeleteUser_state *state = tevent_req_data(
    7993             :                 req, struct dcerpc_samr_DeleteUser_state);
    7994           0 :         NTSTATUS status;
    7995           0 :         TALLOC_CTX *mem_ctx;
    7996             : 
    7997           0 :         if (state->out_mem_ctx) {
    7998           0 :                 mem_ctx = state->out_mem_ctx;
    7999             :         } else {
    8000           0 :                 mem_ctx = state;
    8001             :         }
    8002             : 
    8003           0 :         status = dcerpc_samr_DeleteUser_r_recv(subreq, mem_ctx);
    8004           0 :         TALLOC_FREE(subreq);
    8005           0 :         if (tevent_req_nterror(req, status)) {
    8006           0 :                 return;
    8007             :         }
    8008             : 
    8009             :         /* Copy out parameters */
    8010           0 :         *state->orig.out.user_handle = *state->tmp.out.user_handle;
    8011             : 
    8012             :         /* Copy result */
    8013           0 :         state->orig.out.result = state->tmp.out.result;
    8014             : 
    8015             :         /* Reset temporary structure */
    8016           0 :         NDR_ZERO_STRUCT(state->tmp);
    8017             : 
    8018           0 :         tevent_req_done(req);
    8019             : }
    8020             : 
    8021           0 : NTSTATUS dcerpc_samr_DeleteUser_recv(struct tevent_req *req,
    8022             :                                      TALLOC_CTX *mem_ctx,
    8023             :                                      NTSTATUS *result)
    8024             : {
    8025           0 :         struct dcerpc_samr_DeleteUser_state *state = tevent_req_data(
    8026             :                 req, struct dcerpc_samr_DeleteUser_state);
    8027           0 :         NTSTATUS status;
    8028             : 
    8029           0 :         if (tevent_req_is_nterror(req, &status)) {
    8030           0 :                 tevent_req_received(req);
    8031           0 :                 return status;
    8032             :         }
    8033             : 
    8034             :         /* Steal possible out parameters to the callers context */
    8035           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    8036             : 
    8037             :         /* Return result */
    8038           0 :         *result = state->orig.out.result;
    8039             : 
    8040           0 :         tevent_req_received(req);
    8041           0 :         return NT_STATUS_OK;
    8042             : }
    8043             : 
    8044           6 : NTSTATUS dcerpc_samr_DeleteUser(struct dcerpc_binding_handle *h,
    8045             :                                 TALLOC_CTX *mem_ctx,
    8046             :                                 struct policy_handle *_user_handle /* [in,out] [ref] */,
    8047             :                                 NTSTATUS *result)
    8048             : {
    8049           0 :         struct samr_DeleteUser r;
    8050           0 :         NTSTATUS status;
    8051             : 
    8052             :         /* In parameters */
    8053           6 :         r.in.user_handle = _user_handle;
    8054             : 
    8055             :         /* Out parameters */
    8056           6 :         r.out.user_handle = _user_handle;
    8057             : 
    8058             :         /* Result */
    8059           6 :         NDR_ZERO_STRUCT(r.out.result);
    8060             : 
    8061           6 :         status = dcerpc_samr_DeleteUser_r(h, mem_ctx, &r);
    8062           6 :         if (!NT_STATUS_IS_OK(status)) {
    8063           0 :                 return status;
    8064             :         }
    8065             : 
    8066             :         /* Return variables */
    8067           6 :         *_user_handle = *r.out.user_handle;
    8068             : 
    8069             :         /* Return result */
    8070           6 :         *result = r.out.result;
    8071             : 
    8072           6 :         return NT_STATUS_OK;
    8073             : }
    8074             : 
    8075             : struct dcerpc_samr_QueryUserInfo_r_state {
    8076             :         TALLOC_CTX *out_mem_ctx;
    8077             : };
    8078             : 
    8079             : static void dcerpc_samr_QueryUserInfo_r_done(struct tevent_req *subreq);
    8080             : 
    8081          51 : struct tevent_req *dcerpc_samr_QueryUserInfo_r_send(TALLOC_CTX *mem_ctx,
    8082             :         struct tevent_context *ev,
    8083             :         struct dcerpc_binding_handle *h,
    8084             :         struct samr_QueryUserInfo *r)
    8085             : {
    8086           0 :         struct tevent_req *req;
    8087           0 :         struct dcerpc_samr_QueryUserInfo_r_state *state;
    8088           0 :         struct tevent_req *subreq;
    8089             : 
    8090          51 :         req = tevent_req_create(mem_ctx, &state,
    8091             :                                 struct dcerpc_samr_QueryUserInfo_r_state);
    8092          51 :         if (req == NULL) {
    8093           0 :                 return NULL;
    8094             :         }
    8095             : 
    8096          51 :         state->out_mem_ctx = talloc_new(state);
    8097          51 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
    8098           0 :                 return tevent_req_post(req, ev);
    8099             :         }
    8100             : 
    8101          51 :         subreq = dcerpc_binding_handle_call_send(state, ev, h,
    8102             :                         NULL, &ndr_table_samr,
    8103          51 :                         NDR_SAMR_QUERYUSERINFO, state->out_mem_ctx, r);
    8104          51 :         if (tevent_req_nomem(subreq, req)) {
    8105           0 :                 return tevent_req_post(req, ev);
    8106             :         }
    8107          51 :         tevent_req_set_callback(subreq, dcerpc_samr_QueryUserInfo_r_done, req);
    8108             : 
    8109          51 :         return req;
    8110             : }
    8111             : 
    8112          51 : static void dcerpc_samr_QueryUserInfo_r_done(struct tevent_req *subreq)
    8113             : {
    8114           0 :         struct tevent_req *req =
    8115          51 :                 tevent_req_callback_data(subreq,
    8116             :                 struct tevent_req);
    8117           0 :         NTSTATUS status;
    8118             : 
    8119          51 :         status = dcerpc_binding_handle_call_recv(subreq);
    8120          51 :         TALLOC_FREE(subreq);
    8121          51 :         if (tevent_req_nterror(req, status)) {
    8122           0 :                 return;
    8123             :         }
    8124             : 
    8125          51 :         tevent_req_done(req);
    8126             : }
    8127             : 
    8128          51 : NTSTATUS dcerpc_samr_QueryUserInfo_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
    8129             : {
    8130           0 :         struct dcerpc_samr_QueryUserInfo_r_state *state =
    8131          51 :                 tevent_req_data(req,
    8132             :                 struct dcerpc_samr_QueryUserInfo_r_state);
    8133           0 :         NTSTATUS status;
    8134             : 
    8135          51 :         if (tevent_req_is_nterror(req, &status)) {
    8136           0 :                 tevent_req_received(req);
    8137           0 :                 return status;
    8138             :         }
    8139             : 
    8140          51 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    8141             : 
    8142          51 :         tevent_req_received(req);
    8143          51 :         return NT_STATUS_OK;
    8144             : }
    8145             : 
    8146       12054 : NTSTATUS dcerpc_samr_QueryUserInfo_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct samr_QueryUserInfo *r)
    8147             : {
    8148          72 :         NTSTATUS status;
    8149             : 
    8150       12054 :         status = dcerpc_binding_handle_call(h,
    8151             :                         NULL, &ndr_table_samr,
    8152             :                         NDR_SAMR_QUERYUSERINFO, mem_ctx, r);
    8153             : 
    8154       12054 :         return status;
    8155             : }
    8156             : 
    8157             : struct dcerpc_samr_QueryUserInfo_state {
    8158             :         struct samr_QueryUserInfo orig;
    8159             :         struct samr_QueryUserInfo tmp;
    8160             :         TALLOC_CTX *out_mem_ctx;
    8161             : };
    8162             : 
    8163             : static void dcerpc_samr_QueryUserInfo_done(struct tevent_req *subreq);
    8164             : 
    8165           0 : struct tevent_req *dcerpc_samr_QueryUserInfo_send(TALLOC_CTX *mem_ctx,
    8166             :                                                   struct tevent_context *ev,
    8167             :                                                   struct dcerpc_binding_handle *h,
    8168             :                                                   struct policy_handle *_user_handle /* [in] [ref] */,
    8169             :                                                   enum samr_UserInfoLevel _level /* [in]  */,
    8170             :                                                   union samr_UserInfo **_info /* [out] [ref,switch_is(level)] */)
    8171             : {
    8172           0 :         struct tevent_req *req;
    8173           0 :         struct dcerpc_samr_QueryUserInfo_state *state;
    8174           0 :         struct tevent_req *subreq;
    8175             : 
    8176           0 :         req = tevent_req_create(mem_ctx, &state,
    8177             :                                 struct dcerpc_samr_QueryUserInfo_state);
    8178           0 :         if (req == NULL) {
    8179           0 :                 return NULL;
    8180             :         }
    8181           0 :         state->out_mem_ctx = NULL;
    8182             : 
    8183             :         /* In parameters */
    8184           0 :         state->orig.in.user_handle = _user_handle;
    8185           0 :         state->orig.in.level = _level;
    8186             : 
    8187             :         /* Out parameters */
    8188           0 :         state->orig.out.info = _info;
    8189             : 
    8190             :         /* Result */
    8191           0 :         NDR_ZERO_STRUCT(state->orig.out.result);
    8192             : 
    8193           0 :         state->out_mem_ctx = talloc_named_const(state, 0,
    8194             :                              "dcerpc_samr_QueryUserInfo_out_memory");
    8195           0 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
    8196           0 :                 return tevent_req_post(req, ev);
    8197             :         }
    8198             : 
    8199             :         /* make a temporary copy, that we pass to the dispatch function */
    8200           0 :         state->tmp = state->orig;
    8201             : 
    8202           0 :         subreq = dcerpc_samr_QueryUserInfo_r_send(state, ev, h, &state->tmp);
    8203           0 :         if (tevent_req_nomem(subreq, req)) {
    8204           0 :                 return tevent_req_post(req, ev);
    8205             :         }
    8206           0 :         tevent_req_set_callback(subreq, dcerpc_samr_QueryUserInfo_done, req);
    8207           0 :         return req;
    8208             : }
    8209             : 
    8210           0 : static void dcerpc_samr_QueryUserInfo_done(struct tevent_req *subreq)
    8211             : {
    8212           0 :         struct tevent_req *req = tevent_req_callback_data(
    8213             :                 subreq, struct tevent_req);
    8214           0 :         struct dcerpc_samr_QueryUserInfo_state *state = tevent_req_data(
    8215             :                 req, struct dcerpc_samr_QueryUserInfo_state);
    8216           0 :         NTSTATUS status;
    8217           0 :         TALLOC_CTX *mem_ctx;
    8218             : 
    8219           0 :         if (state->out_mem_ctx) {
    8220           0 :                 mem_ctx = state->out_mem_ctx;
    8221             :         } else {
    8222           0 :                 mem_ctx = state;
    8223             :         }
    8224             : 
    8225           0 :         status = dcerpc_samr_QueryUserInfo_r_recv(subreq, mem_ctx);
    8226           0 :         TALLOC_FREE(subreq);
    8227           0 :         if (tevent_req_nterror(req, status)) {
    8228           0 :                 return;
    8229             :         }
    8230             : 
    8231             :         /* Copy out parameters */
    8232           0 :         *state->orig.out.info = *state->tmp.out.info;
    8233             : 
    8234             :         /* Copy result */
    8235           0 :         state->orig.out.result = state->tmp.out.result;
    8236             : 
    8237             :         /* Reset temporary structure */
    8238           0 :         NDR_ZERO_STRUCT(state->tmp);
    8239             : 
    8240           0 :         tevent_req_done(req);
    8241             : }
    8242             : 
    8243           0 : NTSTATUS dcerpc_samr_QueryUserInfo_recv(struct tevent_req *req,
    8244             :                                         TALLOC_CTX *mem_ctx,
    8245             :                                         NTSTATUS *result)
    8246             : {
    8247           0 :         struct dcerpc_samr_QueryUserInfo_state *state = tevent_req_data(
    8248             :                 req, struct dcerpc_samr_QueryUserInfo_state);
    8249           0 :         NTSTATUS status;
    8250             : 
    8251           0 :         if (tevent_req_is_nterror(req, &status)) {
    8252           0 :                 tevent_req_received(req);
    8253           0 :                 return status;
    8254             :         }
    8255             : 
    8256             :         /* Steal possible out parameters to the callers context */
    8257           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    8258             : 
    8259             :         /* Return result */
    8260           0 :         *result = state->orig.out.result;
    8261             : 
    8262           0 :         tevent_req_received(req);
    8263           0 :         return NT_STATUS_OK;
    8264             : }
    8265             : 
    8266         214 : NTSTATUS dcerpc_samr_QueryUserInfo(struct dcerpc_binding_handle *h,
    8267             :                                    TALLOC_CTX *mem_ctx,
    8268             :                                    struct policy_handle *_user_handle /* [in] [ref] */,
    8269             :                                    enum samr_UserInfoLevel _level /* [in]  */,
    8270             :                                    union samr_UserInfo **_info /* [out] [ref,switch_is(level)] */,
    8271             :                                    NTSTATUS *result)
    8272             : {
    8273           0 :         struct samr_QueryUserInfo r;
    8274           0 :         NTSTATUS status;
    8275             : 
    8276             :         /* In parameters */
    8277         214 :         r.in.user_handle = _user_handle;
    8278         214 :         r.in.level = _level;
    8279             : 
    8280             :         /* Out parameters */
    8281         214 :         r.out.info = _info;
    8282             : 
    8283             :         /* Result */
    8284         214 :         NDR_ZERO_STRUCT(r.out.result);
    8285             : 
    8286         214 :         status = dcerpc_samr_QueryUserInfo_r(h, mem_ctx, &r);
    8287         214 :         if (!NT_STATUS_IS_OK(status)) {
    8288           0 :                 return status;
    8289             :         }
    8290             : 
    8291             :         /* Return variables */
    8292         214 :         *_info = *r.out.info;
    8293             : 
    8294             :         /* Return result */
    8295         214 :         *result = r.out.result;
    8296             : 
    8297         214 :         return NT_STATUS_OK;
    8298             : }
    8299             : 
    8300             : struct dcerpc_samr_SetUserInfo_r_state {
    8301             :         TALLOC_CTX *out_mem_ctx;
    8302             : };
    8303             : 
    8304             : static void dcerpc_samr_SetUserInfo_r_done(struct tevent_req *subreq);
    8305             : 
    8306          64 : struct tevent_req *dcerpc_samr_SetUserInfo_r_send(TALLOC_CTX *mem_ctx,
    8307             :         struct tevent_context *ev,
    8308             :         struct dcerpc_binding_handle *h,
    8309             :         struct samr_SetUserInfo *r)
    8310             : {
    8311           0 :         struct tevent_req *req;
    8312           0 :         struct dcerpc_samr_SetUserInfo_r_state *state;
    8313           0 :         struct tevent_req *subreq;
    8314             : 
    8315          64 :         req = tevent_req_create(mem_ctx, &state,
    8316             :                                 struct dcerpc_samr_SetUserInfo_r_state);
    8317          64 :         if (req == NULL) {
    8318           0 :                 return NULL;
    8319             :         }
    8320             : 
    8321          64 :         state->out_mem_ctx = NULL;
    8322             : 
    8323          64 :         subreq = dcerpc_binding_handle_call_send(state, ev, h,
    8324             :                         NULL, &ndr_table_samr,
    8325             :                         NDR_SAMR_SETUSERINFO, state, r);
    8326          64 :         if (tevent_req_nomem(subreq, req)) {
    8327           0 :                 return tevent_req_post(req, ev);
    8328             :         }
    8329          64 :         tevent_req_set_callback(subreq, dcerpc_samr_SetUserInfo_r_done, req);
    8330             : 
    8331          64 :         return req;
    8332             : }
    8333             : 
    8334          64 : static void dcerpc_samr_SetUserInfo_r_done(struct tevent_req *subreq)
    8335             : {
    8336           0 :         struct tevent_req *req =
    8337          64 :                 tevent_req_callback_data(subreq,
    8338             :                 struct tevent_req);
    8339           0 :         NTSTATUS status;
    8340             : 
    8341          64 :         status = dcerpc_binding_handle_call_recv(subreq);
    8342          64 :         TALLOC_FREE(subreq);
    8343          64 :         if (tevent_req_nterror(req, status)) {
    8344           0 :                 return;
    8345             :         }
    8346             : 
    8347          64 :         tevent_req_done(req);
    8348             : }
    8349             : 
    8350          64 : NTSTATUS dcerpc_samr_SetUserInfo_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
    8351             : {
    8352           0 :         struct dcerpc_samr_SetUserInfo_r_state *state =
    8353          64 :                 tevent_req_data(req,
    8354             :                 struct dcerpc_samr_SetUserInfo_r_state);
    8355           0 :         NTSTATUS status;
    8356             : 
    8357          64 :         if (tevent_req_is_nterror(req, &status)) {
    8358           0 :                 tevent_req_received(req);
    8359           0 :                 return status;
    8360             :         }
    8361             : 
    8362          64 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    8363             : 
    8364          64 :         tevent_req_received(req);
    8365          64 :         return NT_STATUS_OK;
    8366             : }
    8367             : 
    8368        3031 : NTSTATUS dcerpc_samr_SetUserInfo_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct samr_SetUserInfo *r)
    8369             : {
    8370          72 :         NTSTATUS status;
    8371             : 
    8372        3031 :         status = dcerpc_binding_handle_call(h,
    8373             :                         NULL, &ndr_table_samr,
    8374             :                         NDR_SAMR_SETUSERINFO, mem_ctx, r);
    8375             : 
    8376        3031 :         return status;
    8377             : }
    8378             : 
    8379             : struct dcerpc_samr_SetUserInfo_state {
    8380             :         struct samr_SetUserInfo orig;
    8381             :         struct samr_SetUserInfo tmp;
    8382             :         TALLOC_CTX *out_mem_ctx;
    8383             : };
    8384             : 
    8385             : static void dcerpc_samr_SetUserInfo_done(struct tevent_req *subreq);
    8386             : 
    8387           0 : struct tevent_req *dcerpc_samr_SetUserInfo_send(TALLOC_CTX *mem_ctx,
    8388             :                                                 struct tevent_context *ev,
    8389             :                                                 struct dcerpc_binding_handle *h,
    8390             :                                                 struct policy_handle *_user_handle /* [in] [ref] */,
    8391             :                                                 enum samr_UserInfoLevel _level /* [in]  */,
    8392             :                                                 union samr_UserInfo *_info /* [in] [ref,switch_is(level)] */)
    8393             : {
    8394           0 :         struct tevent_req *req;
    8395           0 :         struct dcerpc_samr_SetUserInfo_state *state;
    8396           0 :         struct tevent_req *subreq;
    8397             : 
    8398           0 :         req = tevent_req_create(mem_ctx, &state,
    8399             :                                 struct dcerpc_samr_SetUserInfo_state);
    8400           0 :         if (req == NULL) {
    8401           0 :                 return NULL;
    8402             :         }
    8403           0 :         state->out_mem_ctx = NULL;
    8404             : 
    8405             :         /* In parameters */
    8406           0 :         state->orig.in.user_handle = _user_handle;
    8407           0 :         state->orig.in.level = _level;
    8408           0 :         state->orig.in.info = _info;
    8409             : 
    8410             :         /* Out parameters */
    8411             : 
    8412             :         /* Result */
    8413           0 :         NDR_ZERO_STRUCT(state->orig.out.result);
    8414             : 
    8415             :         /* make a temporary copy, that we pass to the dispatch function */
    8416           0 :         state->tmp = state->orig;
    8417             : 
    8418           0 :         subreq = dcerpc_samr_SetUserInfo_r_send(state, ev, h, &state->tmp);
    8419           0 :         if (tevent_req_nomem(subreq, req)) {
    8420           0 :                 return tevent_req_post(req, ev);
    8421             :         }
    8422           0 :         tevent_req_set_callback(subreq, dcerpc_samr_SetUserInfo_done, req);
    8423           0 :         return req;
    8424             : }
    8425             : 
    8426           0 : static void dcerpc_samr_SetUserInfo_done(struct tevent_req *subreq)
    8427             : {
    8428           0 :         struct tevent_req *req = tevent_req_callback_data(
    8429             :                 subreq, struct tevent_req);
    8430           0 :         struct dcerpc_samr_SetUserInfo_state *state = tevent_req_data(
    8431             :                 req, struct dcerpc_samr_SetUserInfo_state);
    8432           0 :         NTSTATUS status;
    8433           0 :         TALLOC_CTX *mem_ctx;
    8434             : 
    8435           0 :         if (state->out_mem_ctx) {
    8436           0 :                 mem_ctx = state->out_mem_ctx;
    8437             :         } else {
    8438           0 :                 mem_ctx = state;
    8439             :         }
    8440             : 
    8441           0 :         status = dcerpc_samr_SetUserInfo_r_recv(subreq, mem_ctx);
    8442           0 :         TALLOC_FREE(subreq);
    8443           0 :         if (tevent_req_nterror(req, status)) {
    8444           0 :                 return;
    8445             :         }
    8446             : 
    8447             :         /* Copy out parameters */
    8448             : 
    8449             :         /* Copy result */
    8450           0 :         state->orig.out.result = state->tmp.out.result;
    8451             : 
    8452             :         /* Reset temporary structure */
    8453           0 :         NDR_ZERO_STRUCT(state->tmp);
    8454             : 
    8455           0 :         tevent_req_done(req);
    8456             : }
    8457             : 
    8458           0 : NTSTATUS dcerpc_samr_SetUserInfo_recv(struct tevent_req *req,
    8459             :                                       TALLOC_CTX *mem_ctx,
    8460             :                                       NTSTATUS *result)
    8461             : {
    8462           0 :         struct dcerpc_samr_SetUserInfo_state *state = tevent_req_data(
    8463             :                 req, struct dcerpc_samr_SetUserInfo_state);
    8464           0 :         NTSTATUS status;
    8465             : 
    8466           0 :         if (tevent_req_is_nterror(req, &status)) {
    8467           0 :                 tevent_req_received(req);
    8468           0 :                 return status;
    8469             :         }
    8470             : 
    8471             :         /* Steal possible out parameters to the callers context */
    8472           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    8473             : 
    8474             :         /* Return result */
    8475           0 :         *result = state->orig.out.result;
    8476             : 
    8477           0 :         tevent_req_received(req);
    8478           0 :         return NT_STATUS_OK;
    8479             : }
    8480             : 
    8481           4 : NTSTATUS dcerpc_samr_SetUserInfo(struct dcerpc_binding_handle *h,
    8482             :                                  TALLOC_CTX *mem_ctx,
    8483             :                                  struct policy_handle *_user_handle /* [in] [ref] */,
    8484             :                                  enum samr_UserInfoLevel _level /* [in]  */,
    8485             :                                  union samr_UserInfo *_info /* [in] [ref,switch_is(level)] */,
    8486             :                                  NTSTATUS *result)
    8487             : {
    8488           0 :         struct samr_SetUserInfo r;
    8489           0 :         NTSTATUS status;
    8490             : 
    8491             :         /* In parameters */
    8492           4 :         r.in.user_handle = _user_handle;
    8493           4 :         r.in.level = _level;
    8494           4 :         r.in.info = _info;
    8495             : 
    8496             :         /* Out parameters */
    8497             : 
    8498             :         /* Result */
    8499           4 :         NDR_ZERO_STRUCT(r.out.result);
    8500             : 
    8501           4 :         status = dcerpc_samr_SetUserInfo_r(h, mem_ctx, &r);
    8502           4 :         if (!NT_STATUS_IS_OK(status)) {
    8503           0 :                 return status;
    8504             :         }
    8505             : 
    8506             :         /* Return variables */
    8507             : 
    8508             :         /* Return result */
    8509           4 :         *result = r.out.result;
    8510             : 
    8511           4 :         return NT_STATUS_OK;
    8512             : }
    8513             : 
    8514             : struct dcerpc_samr_ChangePasswordUser_r_state {
    8515             :         TALLOC_CTX *out_mem_ctx;
    8516             : };
    8517             : 
    8518             : static void dcerpc_samr_ChangePasswordUser_r_done(struct tevent_req *subreq);
    8519             : 
    8520           0 : struct tevent_req *dcerpc_samr_ChangePasswordUser_r_send(TALLOC_CTX *mem_ctx,
    8521             :         struct tevent_context *ev,
    8522             :         struct dcerpc_binding_handle *h,
    8523             :         struct samr_ChangePasswordUser *r)
    8524             : {
    8525           0 :         struct tevent_req *req;
    8526           0 :         struct dcerpc_samr_ChangePasswordUser_r_state *state;
    8527           0 :         struct tevent_req *subreq;
    8528             : 
    8529           0 :         req = tevent_req_create(mem_ctx, &state,
    8530             :                                 struct dcerpc_samr_ChangePasswordUser_r_state);
    8531           0 :         if (req == NULL) {
    8532           0 :                 return NULL;
    8533             :         }
    8534             : 
    8535           0 :         state->out_mem_ctx = NULL;
    8536             : 
    8537           0 :         subreq = dcerpc_binding_handle_call_send(state, ev, h,
    8538             :                         NULL, &ndr_table_samr,
    8539             :                         NDR_SAMR_CHANGEPASSWORDUSER, state, r);
    8540           0 :         if (tevent_req_nomem(subreq, req)) {
    8541           0 :                 return tevent_req_post(req, ev);
    8542             :         }
    8543           0 :         tevent_req_set_callback(subreq, dcerpc_samr_ChangePasswordUser_r_done, req);
    8544             : 
    8545           0 :         return req;
    8546             : }
    8547             : 
    8548           0 : static void dcerpc_samr_ChangePasswordUser_r_done(struct tevent_req *subreq)
    8549             : {
    8550           0 :         struct tevent_req *req =
    8551           0 :                 tevent_req_callback_data(subreq,
    8552             :                 struct tevent_req);
    8553           0 :         NTSTATUS status;
    8554             : 
    8555           0 :         status = dcerpc_binding_handle_call_recv(subreq);
    8556           0 :         TALLOC_FREE(subreq);
    8557           0 :         if (tevent_req_nterror(req, status)) {
    8558           0 :                 return;
    8559             :         }
    8560             : 
    8561           0 :         tevent_req_done(req);
    8562             : }
    8563             : 
    8564           0 : NTSTATUS dcerpc_samr_ChangePasswordUser_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
    8565             : {
    8566           0 :         struct dcerpc_samr_ChangePasswordUser_r_state *state =
    8567           0 :                 tevent_req_data(req,
    8568             :                 struct dcerpc_samr_ChangePasswordUser_r_state);
    8569           0 :         NTSTATUS status;
    8570             : 
    8571           0 :         if (tevent_req_is_nterror(req, &status)) {
    8572           0 :                 tevent_req_received(req);
    8573           0 :                 return status;
    8574             :         }
    8575             : 
    8576           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    8577             : 
    8578           0 :         tevent_req_received(req);
    8579           0 :         return NT_STATUS_OK;
    8580             : }
    8581             : 
    8582          28 : NTSTATUS dcerpc_samr_ChangePasswordUser_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct samr_ChangePasswordUser *r)
    8583             : {
    8584           0 :         NTSTATUS status;
    8585             : 
    8586          28 :         status = dcerpc_binding_handle_call(h,
    8587             :                         NULL, &ndr_table_samr,
    8588             :                         NDR_SAMR_CHANGEPASSWORDUSER, mem_ctx, r);
    8589             : 
    8590          28 :         return status;
    8591             : }
    8592             : 
    8593             : struct dcerpc_samr_ChangePasswordUser_state {
    8594             :         struct samr_ChangePasswordUser orig;
    8595             :         struct samr_ChangePasswordUser tmp;
    8596             :         TALLOC_CTX *out_mem_ctx;
    8597             : };
    8598             : 
    8599             : static void dcerpc_samr_ChangePasswordUser_done(struct tevent_req *subreq);
    8600             : 
    8601           0 : struct tevent_req *dcerpc_samr_ChangePasswordUser_send(TALLOC_CTX *mem_ctx,
    8602             :                                                        struct tevent_context *ev,
    8603             :                                                        struct dcerpc_binding_handle *h,
    8604             :                                                        struct policy_handle *_user_handle /* [in] [ref] */,
    8605             :                                                        uint8_t _lm_present /* [in]  */,
    8606             :                                                        struct samr_Password *_old_lm_crypted /* [in] [unique] */,
    8607             :                                                        struct samr_Password *_new_lm_crypted /* [in] [unique] */,
    8608             :                                                        uint8_t _nt_present /* [in]  */,
    8609             :                                                        struct samr_Password *_old_nt_crypted /* [in] [unique] */,
    8610             :                                                        struct samr_Password *_new_nt_crypted /* [in] [unique] */,
    8611             :                                                        uint8_t _cross1_present /* [in]  */,
    8612             :                                                        struct samr_Password *_nt_cross /* [in] [unique] */,
    8613             :                                                        uint8_t _cross2_present /* [in]  */,
    8614             :                                                        struct samr_Password *_lm_cross /* [in] [unique] */)
    8615             : {
    8616           0 :         struct tevent_req *req;
    8617           0 :         struct dcerpc_samr_ChangePasswordUser_state *state;
    8618           0 :         struct tevent_req *subreq;
    8619             : 
    8620           0 :         req = tevent_req_create(mem_ctx, &state,
    8621             :                                 struct dcerpc_samr_ChangePasswordUser_state);
    8622           0 :         if (req == NULL) {
    8623           0 :                 return NULL;
    8624             :         }
    8625           0 :         state->out_mem_ctx = NULL;
    8626             : 
    8627             :         /* In parameters */
    8628           0 :         state->orig.in.user_handle = _user_handle;
    8629           0 :         state->orig.in.lm_present = _lm_present;
    8630           0 :         state->orig.in.old_lm_crypted = _old_lm_crypted;
    8631           0 :         state->orig.in.new_lm_crypted = _new_lm_crypted;
    8632           0 :         state->orig.in.nt_present = _nt_present;
    8633           0 :         state->orig.in.old_nt_crypted = _old_nt_crypted;
    8634           0 :         state->orig.in.new_nt_crypted = _new_nt_crypted;
    8635           0 :         state->orig.in.cross1_present = _cross1_present;
    8636           0 :         state->orig.in.nt_cross = _nt_cross;
    8637           0 :         state->orig.in.cross2_present = _cross2_present;
    8638           0 :         state->orig.in.lm_cross = _lm_cross;
    8639             : 
    8640             :         /* Out parameters */
    8641             : 
    8642             :         /* Result */
    8643           0 :         NDR_ZERO_STRUCT(state->orig.out.result);
    8644             : 
    8645             :         /* make a temporary copy, that we pass to the dispatch function */
    8646           0 :         state->tmp = state->orig;
    8647             : 
    8648           0 :         subreq = dcerpc_samr_ChangePasswordUser_r_send(state, ev, h, &state->tmp);
    8649           0 :         if (tevent_req_nomem(subreq, req)) {
    8650           0 :                 return tevent_req_post(req, ev);
    8651             :         }
    8652           0 :         tevent_req_set_callback(subreq, dcerpc_samr_ChangePasswordUser_done, req);
    8653           0 :         return req;
    8654             : }
    8655             : 
    8656           0 : static void dcerpc_samr_ChangePasswordUser_done(struct tevent_req *subreq)
    8657             : {
    8658           0 :         struct tevent_req *req = tevent_req_callback_data(
    8659             :                 subreq, struct tevent_req);
    8660           0 :         struct dcerpc_samr_ChangePasswordUser_state *state = tevent_req_data(
    8661             :                 req, struct dcerpc_samr_ChangePasswordUser_state);
    8662           0 :         NTSTATUS status;
    8663           0 :         TALLOC_CTX *mem_ctx;
    8664             : 
    8665           0 :         if (state->out_mem_ctx) {
    8666           0 :                 mem_ctx = state->out_mem_ctx;
    8667             :         } else {
    8668           0 :                 mem_ctx = state;
    8669             :         }
    8670             : 
    8671           0 :         status = dcerpc_samr_ChangePasswordUser_r_recv(subreq, mem_ctx);
    8672           0 :         TALLOC_FREE(subreq);
    8673           0 :         if (tevent_req_nterror(req, status)) {
    8674           0 :                 return;
    8675             :         }
    8676             : 
    8677             :         /* Copy out parameters */
    8678             : 
    8679             :         /* Copy result */
    8680           0 :         state->orig.out.result = state->tmp.out.result;
    8681             : 
    8682             :         /* Reset temporary structure */
    8683           0 :         NDR_ZERO_STRUCT(state->tmp);
    8684             : 
    8685           0 :         tevent_req_done(req);
    8686             : }
    8687             : 
    8688           0 : NTSTATUS dcerpc_samr_ChangePasswordUser_recv(struct tevent_req *req,
    8689             :                                              TALLOC_CTX *mem_ctx,
    8690             :                                              NTSTATUS *result)
    8691             : {
    8692           0 :         struct dcerpc_samr_ChangePasswordUser_state *state = tevent_req_data(
    8693             :                 req, struct dcerpc_samr_ChangePasswordUser_state);
    8694           0 :         NTSTATUS status;
    8695             : 
    8696           0 :         if (tevent_req_is_nterror(req, &status)) {
    8697           0 :                 tevent_req_received(req);
    8698           0 :                 return status;
    8699             :         }
    8700             : 
    8701             :         /* Steal possible out parameters to the callers context */
    8702           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    8703             : 
    8704             :         /* Return result */
    8705           0 :         *result = state->orig.out.result;
    8706             : 
    8707           0 :         tevent_req_received(req);
    8708           0 :         return NT_STATUS_OK;
    8709             : }
    8710             : 
    8711           0 : NTSTATUS dcerpc_samr_ChangePasswordUser(struct dcerpc_binding_handle *h,
    8712             :                                         TALLOC_CTX *mem_ctx,
    8713             :                                         struct policy_handle *_user_handle /* [in] [ref] */,
    8714             :                                         uint8_t _lm_present /* [in]  */,
    8715             :                                         struct samr_Password *_old_lm_crypted /* [in] [unique] */,
    8716             :                                         struct samr_Password *_new_lm_crypted /* [in] [unique] */,
    8717             :                                         uint8_t _nt_present /* [in]  */,
    8718             :                                         struct samr_Password *_old_nt_crypted /* [in] [unique] */,
    8719             :                                         struct samr_Password *_new_nt_crypted /* [in] [unique] */,
    8720             :                                         uint8_t _cross1_present /* [in]  */,
    8721             :                                         struct samr_Password *_nt_cross /* [in] [unique] */,
    8722             :                                         uint8_t _cross2_present /* [in]  */,
    8723             :                                         struct samr_Password *_lm_cross /* [in] [unique] */,
    8724             :                                         NTSTATUS *result)
    8725             : {
    8726           0 :         struct samr_ChangePasswordUser r;
    8727           0 :         NTSTATUS status;
    8728             : 
    8729             :         /* In parameters */
    8730           0 :         r.in.user_handle = _user_handle;
    8731           0 :         r.in.lm_present = _lm_present;
    8732           0 :         r.in.old_lm_crypted = _old_lm_crypted;
    8733           0 :         r.in.new_lm_crypted = _new_lm_crypted;
    8734           0 :         r.in.nt_present = _nt_present;
    8735           0 :         r.in.old_nt_crypted = _old_nt_crypted;
    8736           0 :         r.in.new_nt_crypted = _new_nt_crypted;
    8737           0 :         r.in.cross1_present = _cross1_present;
    8738           0 :         r.in.nt_cross = _nt_cross;
    8739           0 :         r.in.cross2_present = _cross2_present;
    8740           0 :         r.in.lm_cross = _lm_cross;
    8741             : 
    8742             :         /* Out parameters */
    8743             : 
    8744             :         /* Result */
    8745           0 :         NDR_ZERO_STRUCT(r.out.result);
    8746             : 
    8747           0 :         status = dcerpc_samr_ChangePasswordUser_r(h, mem_ctx, &r);
    8748           0 :         if (!NT_STATUS_IS_OK(status)) {
    8749           0 :                 return status;
    8750             :         }
    8751             : 
    8752             :         /* Return variables */
    8753             : 
    8754             :         /* Return result */
    8755           0 :         *result = r.out.result;
    8756             : 
    8757           0 :         return NT_STATUS_OK;
    8758             : }
    8759             : 
    8760             : struct dcerpc_samr_GetGroupsForUser_r_state {
    8761             :         TALLOC_CTX *out_mem_ctx;
    8762             : };
    8763             : 
    8764             : static void dcerpc_samr_GetGroupsForUser_r_done(struct tevent_req *subreq);
    8765             : 
    8766           0 : struct tevent_req *dcerpc_samr_GetGroupsForUser_r_send(TALLOC_CTX *mem_ctx,
    8767             :         struct tevent_context *ev,
    8768             :         struct dcerpc_binding_handle *h,
    8769             :         struct samr_GetGroupsForUser *r)
    8770             : {
    8771           0 :         struct tevent_req *req;
    8772           0 :         struct dcerpc_samr_GetGroupsForUser_r_state *state;
    8773           0 :         struct tevent_req *subreq;
    8774             : 
    8775           0 :         req = tevent_req_create(mem_ctx, &state,
    8776             :                                 struct dcerpc_samr_GetGroupsForUser_r_state);
    8777           0 :         if (req == NULL) {
    8778           0 :                 return NULL;
    8779             :         }
    8780             : 
    8781           0 :         state->out_mem_ctx = talloc_new(state);
    8782           0 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
    8783           0 :                 return tevent_req_post(req, ev);
    8784             :         }
    8785             : 
    8786           0 :         subreq = dcerpc_binding_handle_call_send(state, ev, h,
    8787             :                         NULL, &ndr_table_samr,
    8788           0 :                         NDR_SAMR_GETGROUPSFORUSER, state->out_mem_ctx, r);
    8789           0 :         if (tevent_req_nomem(subreq, req)) {
    8790           0 :                 return tevent_req_post(req, ev);
    8791             :         }
    8792           0 :         tevent_req_set_callback(subreq, dcerpc_samr_GetGroupsForUser_r_done, req);
    8793             : 
    8794           0 :         return req;
    8795             : }
    8796             : 
    8797           0 : static void dcerpc_samr_GetGroupsForUser_r_done(struct tevent_req *subreq)
    8798             : {
    8799           0 :         struct tevent_req *req =
    8800           0 :                 tevent_req_callback_data(subreq,
    8801             :                 struct tevent_req);
    8802           0 :         NTSTATUS status;
    8803             : 
    8804           0 :         status = dcerpc_binding_handle_call_recv(subreq);
    8805           0 :         TALLOC_FREE(subreq);
    8806           0 :         if (tevent_req_nterror(req, status)) {
    8807           0 :                 return;
    8808             :         }
    8809             : 
    8810           0 :         tevent_req_done(req);
    8811             : }
    8812             : 
    8813           0 : NTSTATUS dcerpc_samr_GetGroupsForUser_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
    8814             : {
    8815           0 :         struct dcerpc_samr_GetGroupsForUser_r_state *state =
    8816           0 :                 tevent_req_data(req,
    8817             :                 struct dcerpc_samr_GetGroupsForUser_r_state);
    8818           0 :         NTSTATUS status;
    8819             : 
    8820           0 :         if (tevent_req_is_nterror(req, &status)) {
    8821           0 :                 tevent_req_received(req);
    8822           0 :                 return status;
    8823             :         }
    8824             : 
    8825           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    8826             : 
    8827           0 :         tevent_req_received(req);
    8828           0 :         return NT_STATUS_OK;
    8829             : }
    8830             : 
    8831         488 : NTSTATUS dcerpc_samr_GetGroupsForUser_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct samr_GetGroupsForUser *r)
    8832             : {
    8833           0 :         NTSTATUS status;
    8834             : 
    8835         488 :         status = dcerpc_binding_handle_call(h,
    8836             :                         NULL, &ndr_table_samr,
    8837             :                         NDR_SAMR_GETGROUPSFORUSER, mem_ctx, r);
    8838             : 
    8839         488 :         return status;
    8840             : }
    8841             : 
    8842             : struct dcerpc_samr_GetGroupsForUser_state {
    8843             :         struct samr_GetGroupsForUser orig;
    8844             :         struct samr_GetGroupsForUser tmp;
    8845             :         TALLOC_CTX *out_mem_ctx;
    8846             : };
    8847             : 
    8848             : static void dcerpc_samr_GetGroupsForUser_done(struct tevent_req *subreq);
    8849             : 
    8850           0 : struct tevent_req *dcerpc_samr_GetGroupsForUser_send(TALLOC_CTX *mem_ctx,
    8851             :                                                      struct tevent_context *ev,
    8852             :                                                      struct dcerpc_binding_handle *h,
    8853             :                                                      struct policy_handle *_user_handle /* [in] [ref] */,
    8854             :                                                      struct samr_RidWithAttributeArray **_rids /* [out] [ref] */)
    8855             : {
    8856           0 :         struct tevent_req *req;
    8857           0 :         struct dcerpc_samr_GetGroupsForUser_state *state;
    8858           0 :         struct tevent_req *subreq;
    8859             : 
    8860           0 :         req = tevent_req_create(mem_ctx, &state,
    8861             :                                 struct dcerpc_samr_GetGroupsForUser_state);
    8862           0 :         if (req == NULL) {
    8863           0 :                 return NULL;
    8864             :         }
    8865           0 :         state->out_mem_ctx = NULL;
    8866             : 
    8867             :         /* In parameters */
    8868           0 :         state->orig.in.user_handle = _user_handle;
    8869             : 
    8870             :         /* Out parameters */
    8871           0 :         state->orig.out.rids = _rids;
    8872             : 
    8873             :         /* Result */
    8874           0 :         NDR_ZERO_STRUCT(state->orig.out.result);
    8875             : 
    8876           0 :         state->out_mem_ctx = talloc_named_const(state, 0,
    8877             :                              "dcerpc_samr_GetGroupsForUser_out_memory");
    8878           0 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
    8879           0 :                 return tevent_req_post(req, ev);
    8880             :         }
    8881             : 
    8882             :         /* make a temporary copy, that we pass to the dispatch function */
    8883           0 :         state->tmp = state->orig;
    8884             : 
    8885           0 :         subreq = dcerpc_samr_GetGroupsForUser_r_send(state, ev, h, &state->tmp);
    8886           0 :         if (tevent_req_nomem(subreq, req)) {
    8887           0 :                 return tevent_req_post(req, ev);
    8888             :         }
    8889           0 :         tevent_req_set_callback(subreq, dcerpc_samr_GetGroupsForUser_done, req);
    8890           0 :         return req;
    8891             : }
    8892             : 
    8893           0 : static void dcerpc_samr_GetGroupsForUser_done(struct tevent_req *subreq)
    8894             : {
    8895           0 :         struct tevent_req *req = tevent_req_callback_data(
    8896             :                 subreq, struct tevent_req);
    8897           0 :         struct dcerpc_samr_GetGroupsForUser_state *state = tevent_req_data(
    8898             :                 req, struct dcerpc_samr_GetGroupsForUser_state);
    8899           0 :         NTSTATUS status;
    8900           0 :         TALLOC_CTX *mem_ctx;
    8901             : 
    8902           0 :         if (state->out_mem_ctx) {
    8903           0 :                 mem_ctx = state->out_mem_ctx;
    8904             :         } else {
    8905           0 :                 mem_ctx = state;
    8906             :         }
    8907             : 
    8908           0 :         status = dcerpc_samr_GetGroupsForUser_r_recv(subreq, mem_ctx);
    8909           0 :         TALLOC_FREE(subreq);
    8910           0 :         if (tevent_req_nterror(req, status)) {
    8911           0 :                 return;
    8912             :         }
    8913             : 
    8914             :         /* Copy out parameters */
    8915           0 :         *state->orig.out.rids = *state->tmp.out.rids;
    8916             : 
    8917             :         /* Copy result */
    8918           0 :         state->orig.out.result = state->tmp.out.result;
    8919             : 
    8920             :         /* Reset temporary structure */
    8921           0 :         NDR_ZERO_STRUCT(state->tmp);
    8922             : 
    8923           0 :         tevent_req_done(req);
    8924             : }
    8925             : 
    8926           0 : NTSTATUS dcerpc_samr_GetGroupsForUser_recv(struct tevent_req *req,
    8927             :                                            TALLOC_CTX *mem_ctx,
    8928             :                                            NTSTATUS *result)
    8929             : {
    8930           0 :         struct dcerpc_samr_GetGroupsForUser_state *state = tevent_req_data(
    8931             :                 req, struct dcerpc_samr_GetGroupsForUser_state);
    8932           0 :         NTSTATUS status;
    8933             : 
    8934           0 :         if (tevent_req_is_nterror(req, &status)) {
    8935           0 :                 tevent_req_received(req);
    8936           0 :                 return status;
    8937             :         }
    8938             : 
    8939             :         /* Steal possible out parameters to the callers context */
    8940           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    8941             : 
    8942             :         /* Return result */
    8943           0 :         *result = state->orig.out.result;
    8944             : 
    8945           0 :         tevent_req_received(req);
    8946           0 :         return NT_STATUS_OK;
    8947             : }
    8948             : 
    8949          87 : NTSTATUS dcerpc_samr_GetGroupsForUser(struct dcerpc_binding_handle *h,
    8950             :                                       TALLOC_CTX *mem_ctx,
    8951             :                                       struct policy_handle *_user_handle /* [in] [ref] */,
    8952             :                                       struct samr_RidWithAttributeArray **_rids /* [out] [ref] */,
    8953             :                                       NTSTATUS *result)
    8954             : {
    8955           0 :         struct samr_GetGroupsForUser r;
    8956           0 :         NTSTATUS status;
    8957             : 
    8958             :         /* In parameters */
    8959          87 :         r.in.user_handle = _user_handle;
    8960             : 
    8961             :         /* Out parameters */
    8962          87 :         r.out.rids = _rids;
    8963             : 
    8964             :         /* Result */
    8965          87 :         NDR_ZERO_STRUCT(r.out.result);
    8966             : 
    8967          87 :         status = dcerpc_samr_GetGroupsForUser_r(h, mem_ctx, &r);
    8968          87 :         if (!NT_STATUS_IS_OK(status)) {
    8969           0 :                 return status;
    8970             :         }
    8971             : 
    8972             :         /* Return variables */
    8973          87 :         *_rids = *r.out.rids;
    8974             : 
    8975             :         /* Return result */
    8976          87 :         *result = r.out.result;
    8977             : 
    8978          87 :         return NT_STATUS_OK;
    8979             : }
    8980             : 
    8981             : struct dcerpc_samr_QueryDisplayInfo_r_state {
    8982             :         TALLOC_CTX *out_mem_ctx;
    8983             : };
    8984             : 
    8985             : static void dcerpc_samr_QueryDisplayInfo_r_done(struct tevent_req *subreq);
    8986             : 
    8987           0 : struct tevent_req *dcerpc_samr_QueryDisplayInfo_r_send(TALLOC_CTX *mem_ctx,
    8988             :         struct tevent_context *ev,
    8989             :         struct dcerpc_binding_handle *h,
    8990             :         struct samr_QueryDisplayInfo *r)
    8991             : {
    8992           0 :         struct tevent_req *req;
    8993           0 :         struct dcerpc_samr_QueryDisplayInfo_r_state *state;
    8994           0 :         struct tevent_req *subreq;
    8995             : 
    8996           0 :         req = tevent_req_create(mem_ctx, &state,
    8997             :                                 struct dcerpc_samr_QueryDisplayInfo_r_state);
    8998           0 :         if (req == NULL) {
    8999           0 :                 return NULL;
    9000             :         }
    9001             : 
    9002           0 :         state->out_mem_ctx = talloc_new(state);
    9003           0 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
    9004           0 :                 return tevent_req_post(req, ev);
    9005             :         }
    9006             : 
    9007           0 :         subreq = dcerpc_binding_handle_call_send(state, ev, h,
    9008             :                         NULL, &ndr_table_samr,
    9009           0 :                         NDR_SAMR_QUERYDISPLAYINFO, state->out_mem_ctx, r);
    9010           0 :         if (tevent_req_nomem(subreq, req)) {
    9011           0 :                 return tevent_req_post(req, ev);
    9012             :         }
    9013           0 :         tevent_req_set_callback(subreq, dcerpc_samr_QueryDisplayInfo_r_done, req);
    9014             : 
    9015           0 :         return req;
    9016             : }
    9017             : 
    9018           0 : static void dcerpc_samr_QueryDisplayInfo_r_done(struct tevent_req *subreq)
    9019             : {
    9020           0 :         struct tevent_req *req =
    9021           0 :                 tevent_req_callback_data(subreq,
    9022             :                 struct tevent_req);
    9023           0 :         NTSTATUS status;
    9024             : 
    9025           0 :         status = dcerpc_binding_handle_call_recv(subreq);
    9026           0 :         TALLOC_FREE(subreq);
    9027           0 :         if (tevent_req_nterror(req, status)) {
    9028           0 :                 return;
    9029             :         }
    9030             : 
    9031           0 :         tevent_req_done(req);
    9032             : }
    9033             : 
    9034           0 : NTSTATUS dcerpc_samr_QueryDisplayInfo_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
    9035             : {
    9036           0 :         struct dcerpc_samr_QueryDisplayInfo_r_state *state =
    9037           0 :                 tevent_req_data(req,
    9038             :                 struct dcerpc_samr_QueryDisplayInfo_r_state);
    9039           0 :         NTSTATUS status;
    9040             : 
    9041           0 :         if (tevent_req_is_nterror(req, &status)) {
    9042           0 :                 tevent_req_received(req);
    9043           0 :                 return status;
    9044             :         }
    9045             : 
    9046           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    9047             : 
    9048           0 :         tevent_req_received(req);
    9049           0 :         return NT_STATUS_OK;
    9050             : }
    9051             : 
    9052         391 : NTSTATUS dcerpc_samr_QueryDisplayInfo_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct samr_QueryDisplayInfo *r)
    9053             : {
    9054           0 :         NTSTATUS status;
    9055             : 
    9056         391 :         status = dcerpc_binding_handle_call(h,
    9057             :                         NULL, &ndr_table_samr,
    9058             :                         NDR_SAMR_QUERYDISPLAYINFO, mem_ctx, r);
    9059             : 
    9060         391 :         return status;
    9061             : }
    9062             : 
    9063             : struct dcerpc_samr_QueryDisplayInfo_state {
    9064             :         struct samr_QueryDisplayInfo orig;
    9065             :         struct samr_QueryDisplayInfo tmp;
    9066             :         TALLOC_CTX *out_mem_ctx;
    9067             : };
    9068             : 
    9069             : static void dcerpc_samr_QueryDisplayInfo_done(struct tevent_req *subreq);
    9070             : 
    9071           0 : struct tevent_req *dcerpc_samr_QueryDisplayInfo_send(TALLOC_CTX *mem_ctx,
    9072             :                                                      struct tevent_context *ev,
    9073             :                                                      struct dcerpc_binding_handle *h,
    9074             :                                                      struct policy_handle *_domain_handle /* [in] [ref] */,
    9075             :                                                      uint16_t _level /* [in]  */,
    9076             :                                                      uint32_t _start_idx /* [in]  */,
    9077             :                                                      uint32_t _max_entries /* [in]  */,
    9078             :                                                      uint32_t _buf_size /* [in]  */,
    9079             :                                                      uint32_t *_total_size /* [out] [ref] */,
    9080             :                                                      uint32_t *_returned_size /* [out] [ref] */,
    9081             :                                                      union samr_DispInfo *_info /* [out] [ref,switch_is(level)] */)
    9082             : {
    9083           0 :         struct tevent_req *req;
    9084           0 :         struct dcerpc_samr_QueryDisplayInfo_state *state;
    9085           0 :         struct tevent_req *subreq;
    9086             : 
    9087           0 :         req = tevent_req_create(mem_ctx, &state,
    9088             :                                 struct dcerpc_samr_QueryDisplayInfo_state);
    9089           0 :         if (req == NULL) {
    9090           0 :                 return NULL;
    9091             :         }
    9092           0 :         state->out_mem_ctx = NULL;
    9093             : 
    9094             :         /* In parameters */
    9095           0 :         state->orig.in.domain_handle = _domain_handle;
    9096           0 :         state->orig.in.level = _level;
    9097           0 :         state->orig.in.start_idx = _start_idx;
    9098           0 :         state->orig.in.max_entries = _max_entries;
    9099           0 :         state->orig.in.buf_size = _buf_size;
    9100             : 
    9101             :         /* Out parameters */
    9102           0 :         state->orig.out.total_size = _total_size;
    9103           0 :         state->orig.out.returned_size = _returned_size;
    9104           0 :         state->orig.out.info = _info;
    9105             : 
    9106             :         /* Result */
    9107           0 :         NDR_ZERO_STRUCT(state->orig.out.result);
    9108             : 
    9109           0 :         state->out_mem_ctx = talloc_named_const(state, 0,
    9110             :                              "dcerpc_samr_QueryDisplayInfo_out_memory");
    9111           0 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
    9112           0 :                 return tevent_req_post(req, ev);
    9113             :         }
    9114             : 
    9115             :         /* make a temporary copy, that we pass to the dispatch function */
    9116           0 :         state->tmp = state->orig;
    9117             : 
    9118           0 :         subreq = dcerpc_samr_QueryDisplayInfo_r_send(state, ev, h, &state->tmp);
    9119           0 :         if (tevent_req_nomem(subreq, req)) {
    9120           0 :                 return tevent_req_post(req, ev);
    9121             :         }
    9122           0 :         tevent_req_set_callback(subreq, dcerpc_samr_QueryDisplayInfo_done, req);
    9123           0 :         return req;
    9124             : }
    9125             : 
    9126           0 : static void dcerpc_samr_QueryDisplayInfo_done(struct tevent_req *subreq)
    9127             : {
    9128           0 :         struct tevent_req *req = tevent_req_callback_data(
    9129             :                 subreq, struct tevent_req);
    9130           0 :         struct dcerpc_samr_QueryDisplayInfo_state *state = tevent_req_data(
    9131             :                 req, struct dcerpc_samr_QueryDisplayInfo_state);
    9132           0 :         NTSTATUS status;
    9133           0 :         TALLOC_CTX *mem_ctx;
    9134             : 
    9135           0 :         if (state->out_mem_ctx) {
    9136           0 :                 mem_ctx = state->out_mem_ctx;
    9137             :         } else {
    9138           0 :                 mem_ctx = state;
    9139             :         }
    9140             : 
    9141           0 :         status = dcerpc_samr_QueryDisplayInfo_r_recv(subreq, mem_ctx);
    9142           0 :         TALLOC_FREE(subreq);
    9143           0 :         if (tevent_req_nterror(req, status)) {
    9144           0 :                 return;
    9145             :         }
    9146             : 
    9147             :         /* Copy out parameters */
    9148           0 :         *state->orig.out.total_size = *state->tmp.out.total_size;
    9149           0 :         *state->orig.out.returned_size = *state->tmp.out.returned_size;
    9150           0 :         *state->orig.out.info = *state->tmp.out.info;
    9151             : 
    9152             :         /* Copy result */
    9153           0 :         state->orig.out.result = state->tmp.out.result;
    9154             : 
    9155             :         /* Reset temporary structure */
    9156           0 :         NDR_ZERO_STRUCT(state->tmp);
    9157             : 
    9158           0 :         tevent_req_done(req);
    9159             : }
    9160             : 
    9161           0 : NTSTATUS dcerpc_samr_QueryDisplayInfo_recv(struct tevent_req *req,
    9162             :                                            TALLOC_CTX *mem_ctx,
    9163             :                                            NTSTATUS *result)
    9164             : {
    9165           0 :         struct dcerpc_samr_QueryDisplayInfo_state *state = tevent_req_data(
    9166             :                 req, struct dcerpc_samr_QueryDisplayInfo_state);
    9167           0 :         NTSTATUS status;
    9168             : 
    9169           0 :         if (tevent_req_is_nterror(req, &status)) {
    9170           0 :                 tevent_req_received(req);
    9171           0 :                 return status;
    9172             :         }
    9173             : 
    9174             :         /* Steal possible out parameters to the callers context */
    9175           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    9176             : 
    9177             :         /* Return result */
    9178           0 :         *result = state->orig.out.result;
    9179             : 
    9180           0 :         tevent_req_received(req);
    9181           0 :         return NT_STATUS_OK;
    9182             : }
    9183             : 
    9184           0 : NTSTATUS dcerpc_samr_QueryDisplayInfo(struct dcerpc_binding_handle *h,
    9185             :                                       TALLOC_CTX *mem_ctx,
    9186             :                                       struct policy_handle *_domain_handle /* [in] [ref] */,
    9187             :                                       uint16_t _level /* [in]  */,
    9188             :                                       uint32_t _start_idx /* [in]  */,
    9189             :                                       uint32_t _max_entries /* [in]  */,
    9190             :                                       uint32_t _buf_size /* [in]  */,
    9191             :                                       uint32_t *_total_size /* [out] [ref] */,
    9192             :                                       uint32_t *_returned_size /* [out] [ref] */,
    9193             :                                       union samr_DispInfo *_info /* [out] [ref,switch_is(level)] */,
    9194             :                                       NTSTATUS *result)
    9195             : {
    9196           0 :         struct samr_QueryDisplayInfo r;
    9197           0 :         NTSTATUS status;
    9198             : 
    9199             :         /* In parameters */
    9200           0 :         r.in.domain_handle = _domain_handle;
    9201           0 :         r.in.level = _level;
    9202           0 :         r.in.start_idx = _start_idx;
    9203           0 :         r.in.max_entries = _max_entries;
    9204           0 :         r.in.buf_size = _buf_size;
    9205             : 
    9206             :         /* Out parameters */
    9207           0 :         r.out.total_size = _total_size;
    9208           0 :         r.out.returned_size = _returned_size;
    9209           0 :         r.out.info = _info;
    9210             : 
    9211             :         /* Result */
    9212           0 :         NDR_ZERO_STRUCT(r.out.result);
    9213             : 
    9214           0 :         status = dcerpc_samr_QueryDisplayInfo_r(h, mem_ctx, &r);
    9215           0 :         if (!NT_STATUS_IS_OK(status)) {
    9216           0 :                 return status;
    9217             :         }
    9218             : 
    9219             :         /* Return variables */
    9220           0 :         *_total_size = *r.out.total_size;
    9221           0 :         *_returned_size = *r.out.returned_size;
    9222           0 :         *_info = *r.out.info;
    9223             : 
    9224             :         /* Return result */
    9225           0 :         *result = r.out.result;
    9226             : 
    9227           0 :         return NT_STATUS_OK;
    9228             : }
    9229             : 
    9230             : struct dcerpc_samr_GetDisplayEnumerationIndex_r_state {
    9231             :         TALLOC_CTX *out_mem_ctx;
    9232             : };
    9233             : 
    9234             : static void dcerpc_samr_GetDisplayEnumerationIndex_r_done(struct tevent_req *subreq);
    9235             : 
    9236           0 : struct tevent_req *dcerpc_samr_GetDisplayEnumerationIndex_r_send(TALLOC_CTX *mem_ctx,
    9237             :         struct tevent_context *ev,
    9238             :         struct dcerpc_binding_handle *h,
    9239             :         struct samr_GetDisplayEnumerationIndex *r)
    9240             : {
    9241           0 :         struct tevent_req *req;
    9242           0 :         struct dcerpc_samr_GetDisplayEnumerationIndex_r_state *state;
    9243           0 :         struct tevent_req *subreq;
    9244             : 
    9245           0 :         req = tevent_req_create(mem_ctx, &state,
    9246             :                                 struct dcerpc_samr_GetDisplayEnumerationIndex_r_state);
    9247           0 :         if (req == NULL) {
    9248           0 :                 return NULL;
    9249             :         }
    9250             : 
    9251           0 :         state->out_mem_ctx = talloc_new(state);
    9252           0 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
    9253           0 :                 return tevent_req_post(req, ev);
    9254             :         }
    9255             : 
    9256           0 :         subreq = dcerpc_binding_handle_call_send(state, ev, h,
    9257             :                         NULL, &ndr_table_samr,
    9258           0 :                         NDR_SAMR_GETDISPLAYENUMERATIONINDEX, state->out_mem_ctx, r);
    9259           0 :         if (tevent_req_nomem(subreq, req)) {
    9260           0 :                 return tevent_req_post(req, ev);
    9261             :         }
    9262           0 :         tevent_req_set_callback(subreq, dcerpc_samr_GetDisplayEnumerationIndex_r_done, req);
    9263             : 
    9264           0 :         return req;
    9265             : }
    9266             : 
    9267           0 : static void dcerpc_samr_GetDisplayEnumerationIndex_r_done(struct tevent_req *subreq)
    9268             : {
    9269           0 :         struct tevent_req *req =
    9270           0 :                 tevent_req_callback_data(subreq,
    9271             :                 struct tevent_req);
    9272           0 :         NTSTATUS status;
    9273             : 
    9274           0 :         status = dcerpc_binding_handle_call_recv(subreq);
    9275           0 :         TALLOC_FREE(subreq);
    9276           0 :         if (tevent_req_nterror(req, status)) {
    9277           0 :                 return;
    9278             :         }
    9279             : 
    9280           0 :         tevent_req_done(req);
    9281             : }
    9282             : 
    9283           0 : NTSTATUS dcerpc_samr_GetDisplayEnumerationIndex_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
    9284             : {
    9285           0 :         struct dcerpc_samr_GetDisplayEnumerationIndex_r_state *state =
    9286           0 :                 tevent_req_data(req,
    9287             :                 struct dcerpc_samr_GetDisplayEnumerationIndex_r_state);
    9288           0 :         NTSTATUS status;
    9289             : 
    9290           0 :         if (tevent_req_is_nterror(req, &status)) {
    9291           0 :                 tevent_req_received(req);
    9292           0 :                 return status;
    9293             :         }
    9294             : 
    9295           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    9296             : 
    9297           0 :         tevent_req_received(req);
    9298           0 :         return NT_STATUS_OK;
    9299             : }
    9300             : 
    9301          40 : NTSTATUS dcerpc_samr_GetDisplayEnumerationIndex_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct samr_GetDisplayEnumerationIndex *r)
    9302             : {
    9303           0 :         NTSTATUS status;
    9304             : 
    9305          40 :         status = dcerpc_binding_handle_call(h,
    9306             :                         NULL, &ndr_table_samr,
    9307             :                         NDR_SAMR_GETDISPLAYENUMERATIONINDEX, mem_ctx, r);
    9308             : 
    9309          40 :         return status;
    9310             : }
    9311             : 
    9312             : struct dcerpc_samr_GetDisplayEnumerationIndex_state {
    9313             :         struct samr_GetDisplayEnumerationIndex orig;
    9314             :         struct samr_GetDisplayEnumerationIndex tmp;
    9315             :         TALLOC_CTX *out_mem_ctx;
    9316             : };
    9317             : 
    9318             : static void dcerpc_samr_GetDisplayEnumerationIndex_done(struct tevent_req *subreq);
    9319             : 
    9320           0 : struct tevent_req *dcerpc_samr_GetDisplayEnumerationIndex_send(TALLOC_CTX *mem_ctx,
    9321             :                                                                struct tevent_context *ev,
    9322             :                                                                struct dcerpc_binding_handle *h,
    9323             :                                                                struct policy_handle *_domain_handle /* [in] [ref] */,
    9324             :                                                                uint16_t _level /* [in]  */,
    9325             :                                                                struct lsa_String *_name /* [in] [ref] */,
    9326             :                                                                uint32_t *_idx /* [out] [ref] */)
    9327             : {
    9328           0 :         struct tevent_req *req;
    9329           0 :         struct dcerpc_samr_GetDisplayEnumerationIndex_state *state;
    9330           0 :         struct tevent_req *subreq;
    9331             : 
    9332           0 :         req = tevent_req_create(mem_ctx, &state,
    9333             :                                 struct dcerpc_samr_GetDisplayEnumerationIndex_state);
    9334           0 :         if (req == NULL) {
    9335           0 :                 return NULL;
    9336             :         }
    9337           0 :         state->out_mem_ctx = NULL;
    9338             : 
    9339             :         /* In parameters */
    9340           0 :         state->orig.in.domain_handle = _domain_handle;
    9341           0 :         state->orig.in.level = _level;
    9342           0 :         state->orig.in.name = _name;
    9343             : 
    9344             :         /* Out parameters */
    9345           0 :         state->orig.out.idx = _idx;
    9346             : 
    9347             :         /* Result */
    9348           0 :         NDR_ZERO_STRUCT(state->orig.out.result);
    9349             : 
    9350           0 :         state->out_mem_ctx = talloc_named_const(state, 0,
    9351             :                              "dcerpc_samr_GetDisplayEnumerationIndex_out_memory");
    9352           0 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
    9353           0 :                 return tevent_req_post(req, ev);
    9354             :         }
    9355             : 
    9356             :         /* make a temporary copy, that we pass to the dispatch function */
    9357           0 :         state->tmp = state->orig;
    9358             : 
    9359           0 :         subreq = dcerpc_samr_GetDisplayEnumerationIndex_r_send(state, ev, h, &state->tmp);
    9360           0 :         if (tevent_req_nomem(subreq, req)) {
    9361           0 :                 return tevent_req_post(req, ev);
    9362             :         }
    9363           0 :         tevent_req_set_callback(subreq, dcerpc_samr_GetDisplayEnumerationIndex_done, req);
    9364           0 :         return req;
    9365             : }
    9366             : 
    9367           0 : static void dcerpc_samr_GetDisplayEnumerationIndex_done(struct tevent_req *subreq)
    9368             : {
    9369           0 :         struct tevent_req *req = tevent_req_callback_data(
    9370             :                 subreq, struct tevent_req);
    9371           0 :         struct dcerpc_samr_GetDisplayEnumerationIndex_state *state = tevent_req_data(
    9372             :                 req, struct dcerpc_samr_GetDisplayEnumerationIndex_state);
    9373           0 :         NTSTATUS status;
    9374           0 :         TALLOC_CTX *mem_ctx;
    9375             : 
    9376           0 :         if (state->out_mem_ctx) {
    9377           0 :                 mem_ctx = state->out_mem_ctx;
    9378             :         } else {
    9379           0 :                 mem_ctx = state;
    9380             :         }
    9381             : 
    9382           0 :         status = dcerpc_samr_GetDisplayEnumerationIndex_r_recv(subreq, mem_ctx);
    9383           0 :         TALLOC_FREE(subreq);
    9384           0 :         if (tevent_req_nterror(req, status)) {
    9385           0 :                 return;
    9386             :         }
    9387             : 
    9388             :         /* Copy out parameters */
    9389           0 :         *state->orig.out.idx = *state->tmp.out.idx;
    9390             : 
    9391             :         /* Copy result */
    9392           0 :         state->orig.out.result = state->tmp.out.result;
    9393             : 
    9394             :         /* Reset temporary structure */
    9395           0 :         NDR_ZERO_STRUCT(state->tmp);
    9396             : 
    9397           0 :         tevent_req_done(req);
    9398             : }
    9399             : 
    9400           0 : NTSTATUS dcerpc_samr_GetDisplayEnumerationIndex_recv(struct tevent_req *req,
    9401             :                                                      TALLOC_CTX *mem_ctx,
    9402             :                                                      NTSTATUS *result)
    9403             : {
    9404           0 :         struct dcerpc_samr_GetDisplayEnumerationIndex_state *state = tevent_req_data(
    9405             :                 req, struct dcerpc_samr_GetDisplayEnumerationIndex_state);
    9406           0 :         NTSTATUS status;
    9407             : 
    9408           0 :         if (tevent_req_is_nterror(req, &status)) {
    9409           0 :                 tevent_req_received(req);
    9410           0 :                 return status;
    9411             :         }
    9412             : 
    9413             :         /* Steal possible out parameters to the callers context */
    9414           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    9415             : 
    9416             :         /* Return result */
    9417           0 :         *result = state->orig.out.result;
    9418             : 
    9419           0 :         tevent_req_received(req);
    9420           0 :         return NT_STATUS_OK;
    9421             : }
    9422             : 
    9423           0 : NTSTATUS dcerpc_samr_GetDisplayEnumerationIndex(struct dcerpc_binding_handle *h,
    9424             :                                                 TALLOC_CTX *mem_ctx,
    9425             :                                                 struct policy_handle *_domain_handle /* [in] [ref] */,
    9426             :                                                 uint16_t _level /* [in]  */,
    9427             :                                                 struct lsa_String *_name /* [in] [ref] */,
    9428             :                                                 uint32_t *_idx /* [out] [ref] */,
    9429             :                                                 NTSTATUS *result)
    9430             : {
    9431           0 :         struct samr_GetDisplayEnumerationIndex r;
    9432           0 :         NTSTATUS status;
    9433             : 
    9434             :         /* In parameters */
    9435           0 :         r.in.domain_handle = _domain_handle;
    9436           0 :         r.in.level = _level;
    9437           0 :         r.in.name = _name;
    9438             : 
    9439             :         /* Out parameters */
    9440           0 :         r.out.idx = _idx;
    9441             : 
    9442             :         /* Result */
    9443           0 :         NDR_ZERO_STRUCT(r.out.result);
    9444             : 
    9445           0 :         status = dcerpc_samr_GetDisplayEnumerationIndex_r(h, mem_ctx, &r);
    9446           0 :         if (!NT_STATUS_IS_OK(status)) {
    9447           0 :                 return status;
    9448             :         }
    9449             : 
    9450             :         /* Return variables */
    9451           0 :         *_idx = *r.out.idx;
    9452             : 
    9453             :         /* Return result */
    9454           0 :         *result = r.out.result;
    9455             : 
    9456           0 :         return NT_STATUS_OK;
    9457             : }
    9458             : 
    9459             : struct dcerpc_samr_TestPrivateFunctionsDomain_r_state {
    9460             :         TALLOC_CTX *out_mem_ctx;
    9461             : };
    9462             : 
    9463             : static void dcerpc_samr_TestPrivateFunctionsDomain_r_done(struct tevent_req *subreq);
    9464             : 
    9465           0 : struct tevent_req *dcerpc_samr_TestPrivateFunctionsDomain_r_send(TALLOC_CTX *mem_ctx,
    9466             :         struct tevent_context *ev,
    9467             :         struct dcerpc_binding_handle *h,
    9468             :         struct samr_TestPrivateFunctionsDomain *r)
    9469             : {
    9470           0 :         struct tevent_req *req;
    9471           0 :         struct dcerpc_samr_TestPrivateFunctionsDomain_r_state *state;
    9472           0 :         struct tevent_req *subreq;
    9473             : 
    9474           0 :         req = tevent_req_create(mem_ctx, &state,
    9475             :                                 struct dcerpc_samr_TestPrivateFunctionsDomain_r_state);
    9476           0 :         if (req == NULL) {
    9477           0 :                 return NULL;
    9478             :         }
    9479             : 
    9480           0 :         state->out_mem_ctx = NULL;
    9481             : 
    9482           0 :         subreq = dcerpc_binding_handle_call_send(state, ev, h,
    9483             :                         NULL, &ndr_table_samr,
    9484             :                         NDR_SAMR_TESTPRIVATEFUNCTIONSDOMAIN, state, r);
    9485           0 :         if (tevent_req_nomem(subreq, req)) {
    9486           0 :                 return tevent_req_post(req, ev);
    9487             :         }
    9488           0 :         tevent_req_set_callback(subreq, dcerpc_samr_TestPrivateFunctionsDomain_r_done, req);
    9489             : 
    9490           0 :         return req;
    9491             : }
    9492             : 
    9493           0 : static void dcerpc_samr_TestPrivateFunctionsDomain_r_done(struct tevent_req *subreq)
    9494             : {
    9495           0 :         struct tevent_req *req =
    9496           0 :                 tevent_req_callback_data(subreq,
    9497             :                 struct tevent_req);
    9498           0 :         NTSTATUS status;
    9499             : 
    9500           0 :         status = dcerpc_binding_handle_call_recv(subreq);
    9501           0 :         TALLOC_FREE(subreq);
    9502           0 :         if (tevent_req_nterror(req, status)) {
    9503           0 :                 return;
    9504             :         }
    9505             : 
    9506           0 :         tevent_req_done(req);
    9507             : }
    9508             : 
    9509           0 : NTSTATUS dcerpc_samr_TestPrivateFunctionsDomain_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
    9510             : {
    9511           0 :         struct dcerpc_samr_TestPrivateFunctionsDomain_r_state *state =
    9512           0 :                 tevent_req_data(req,
    9513             :                 struct dcerpc_samr_TestPrivateFunctionsDomain_r_state);
    9514           0 :         NTSTATUS status;
    9515             : 
    9516           0 :         if (tevent_req_is_nterror(req, &status)) {
    9517           0 :                 tevent_req_received(req);
    9518           0 :                 return status;
    9519             :         }
    9520             : 
    9521           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    9522             : 
    9523           0 :         tevent_req_received(req);
    9524           0 :         return NT_STATUS_OK;
    9525             : }
    9526             : 
    9527          10 : NTSTATUS dcerpc_samr_TestPrivateFunctionsDomain_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct samr_TestPrivateFunctionsDomain *r)
    9528             : {
    9529           0 :         NTSTATUS status;
    9530             : 
    9531          10 :         status = dcerpc_binding_handle_call(h,
    9532             :                         NULL, &ndr_table_samr,
    9533             :                         NDR_SAMR_TESTPRIVATEFUNCTIONSDOMAIN, mem_ctx, r);
    9534             : 
    9535          10 :         return status;
    9536             : }
    9537             : 
    9538             : struct dcerpc_samr_TestPrivateFunctionsDomain_state {
    9539             :         struct samr_TestPrivateFunctionsDomain orig;
    9540             :         struct samr_TestPrivateFunctionsDomain tmp;
    9541             :         TALLOC_CTX *out_mem_ctx;
    9542             : };
    9543             : 
    9544             : static void dcerpc_samr_TestPrivateFunctionsDomain_done(struct tevent_req *subreq);
    9545             : 
    9546           0 : struct tevent_req *dcerpc_samr_TestPrivateFunctionsDomain_send(TALLOC_CTX *mem_ctx,
    9547             :                                                                struct tevent_context *ev,
    9548             :                                                                struct dcerpc_binding_handle *h,
    9549             :                                                                struct policy_handle *_domain_handle /* [in] [ref] */)
    9550             : {
    9551           0 :         struct tevent_req *req;
    9552           0 :         struct dcerpc_samr_TestPrivateFunctionsDomain_state *state;
    9553           0 :         struct tevent_req *subreq;
    9554             : 
    9555           0 :         req = tevent_req_create(mem_ctx, &state,
    9556             :                                 struct dcerpc_samr_TestPrivateFunctionsDomain_state);
    9557           0 :         if (req == NULL) {
    9558           0 :                 return NULL;
    9559             :         }
    9560           0 :         state->out_mem_ctx = NULL;
    9561             : 
    9562             :         /* In parameters */
    9563           0 :         state->orig.in.domain_handle = _domain_handle;
    9564             : 
    9565             :         /* Out parameters */
    9566             : 
    9567             :         /* Result */
    9568           0 :         NDR_ZERO_STRUCT(state->orig.out.result);
    9569             : 
    9570             :         /* make a temporary copy, that we pass to the dispatch function */
    9571           0 :         state->tmp = state->orig;
    9572             : 
    9573           0 :         subreq = dcerpc_samr_TestPrivateFunctionsDomain_r_send(state, ev, h, &state->tmp);
    9574           0 :         if (tevent_req_nomem(subreq, req)) {
    9575           0 :                 return tevent_req_post(req, ev);
    9576             :         }
    9577           0 :         tevent_req_set_callback(subreq, dcerpc_samr_TestPrivateFunctionsDomain_done, req);
    9578           0 :         return req;
    9579             : }
    9580             : 
    9581           0 : static void dcerpc_samr_TestPrivateFunctionsDomain_done(struct tevent_req *subreq)
    9582             : {
    9583           0 :         struct tevent_req *req = tevent_req_callback_data(
    9584             :                 subreq, struct tevent_req);
    9585           0 :         struct dcerpc_samr_TestPrivateFunctionsDomain_state *state = tevent_req_data(
    9586             :                 req, struct dcerpc_samr_TestPrivateFunctionsDomain_state);
    9587           0 :         NTSTATUS status;
    9588           0 :         TALLOC_CTX *mem_ctx;
    9589             : 
    9590           0 :         if (state->out_mem_ctx) {
    9591           0 :                 mem_ctx = state->out_mem_ctx;
    9592             :         } else {
    9593           0 :                 mem_ctx = state;
    9594             :         }
    9595             : 
    9596           0 :         status = dcerpc_samr_TestPrivateFunctionsDomain_r_recv(subreq, mem_ctx);
    9597           0 :         TALLOC_FREE(subreq);
    9598           0 :         if (tevent_req_nterror(req, status)) {
    9599           0 :                 return;
    9600             :         }
    9601             : 
    9602             :         /* Copy out parameters */
    9603             : 
    9604             :         /* Copy result */
    9605           0 :         state->orig.out.result = state->tmp.out.result;
    9606             : 
    9607             :         /* Reset temporary structure */
    9608           0 :         NDR_ZERO_STRUCT(state->tmp);
    9609             : 
    9610           0 :         tevent_req_done(req);
    9611             : }
    9612             : 
    9613           0 : NTSTATUS dcerpc_samr_TestPrivateFunctionsDomain_recv(struct tevent_req *req,
    9614             :                                                      TALLOC_CTX *mem_ctx,
    9615             :                                                      NTSTATUS *result)
    9616             : {
    9617           0 :         struct dcerpc_samr_TestPrivateFunctionsDomain_state *state = tevent_req_data(
    9618             :                 req, struct dcerpc_samr_TestPrivateFunctionsDomain_state);
    9619           0 :         NTSTATUS status;
    9620             : 
    9621           0 :         if (tevent_req_is_nterror(req, &status)) {
    9622           0 :                 tevent_req_received(req);
    9623           0 :                 return status;
    9624             :         }
    9625             : 
    9626             :         /* Steal possible out parameters to the callers context */
    9627           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    9628             : 
    9629             :         /* Return result */
    9630           0 :         *result = state->orig.out.result;
    9631             : 
    9632           0 :         tevent_req_received(req);
    9633           0 :         return NT_STATUS_OK;
    9634             : }
    9635             : 
    9636           0 : NTSTATUS dcerpc_samr_TestPrivateFunctionsDomain(struct dcerpc_binding_handle *h,
    9637             :                                                 TALLOC_CTX *mem_ctx,
    9638             :                                                 struct policy_handle *_domain_handle /* [in] [ref] */,
    9639             :                                                 NTSTATUS *result)
    9640             : {
    9641           0 :         struct samr_TestPrivateFunctionsDomain r;
    9642           0 :         NTSTATUS status;
    9643             : 
    9644             :         /* In parameters */
    9645           0 :         r.in.domain_handle = _domain_handle;
    9646             : 
    9647             :         /* Out parameters */
    9648             : 
    9649             :         /* Result */
    9650           0 :         NDR_ZERO_STRUCT(r.out.result);
    9651             : 
    9652           0 :         status = dcerpc_samr_TestPrivateFunctionsDomain_r(h, mem_ctx, &r);
    9653           0 :         if (!NT_STATUS_IS_OK(status)) {
    9654           0 :                 return status;
    9655             :         }
    9656             : 
    9657             :         /* Return variables */
    9658             : 
    9659             :         /* Return result */
    9660           0 :         *result = r.out.result;
    9661             : 
    9662           0 :         return NT_STATUS_OK;
    9663             : }
    9664             : 
    9665             : struct dcerpc_samr_TestPrivateFunctionsUser_r_state {
    9666             :         TALLOC_CTX *out_mem_ctx;
    9667             : };
    9668             : 
    9669             : static void dcerpc_samr_TestPrivateFunctionsUser_r_done(struct tevent_req *subreq);
    9670             : 
    9671           0 : struct tevent_req *dcerpc_samr_TestPrivateFunctionsUser_r_send(TALLOC_CTX *mem_ctx,
    9672             :         struct tevent_context *ev,
    9673             :         struct dcerpc_binding_handle *h,
    9674             :         struct samr_TestPrivateFunctionsUser *r)
    9675             : {
    9676           0 :         struct tevent_req *req;
    9677           0 :         struct dcerpc_samr_TestPrivateFunctionsUser_r_state *state;
    9678           0 :         struct tevent_req *subreq;
    9679             : 
    9680           0 :         req = tevent_req_create(mem_ctx, &state,
    9681             :                                 struct dcerpc_samr_TestPrivateFunctionsUser_r_state);
    9682           0 :         if (req == NULL) {
    9683           0 :                 return NULL;
    9684             :         }
    9685             : 
    9686           0 :         state->out_mem_ctx = NULL;
    9687             : 
    9688           0 :         subreq = dcerpc_binding_handle_call_send(state, ev, h,
    9689             :                         NULL, &ndr_table_samr,
    9690             :                         NDR_SAMR_TESTPRIVATEFUNCTIONSUSER, state, r);
    9691           0 :         if (tevent_req_nomem(subreq, req)) {
    9692           0 :                 return tevent_req_post(req, ev);
    9693             :         }
    9694           0 :         tevent_req_set_callback(subreq, dcerpc_samr_TestPrivateFunctionsUser_r_done, req);
    9695             : 
    9696           0 :         return req;
    9697             : }
    9698             : 
    9699           0 : static void dcerpc_samr_TestPrivateFunctionsUser_r_done(struct tevent_req *subreq)
    9700             : {
    9701           0 :         struct tevent_req *req =
    9702           0 :                 tevent_req_callback_data(subreq,
    9703             :                 struct tevent_req);
    9704           0 :         NTSTATUS status;
    9705             : 
    9706           0 :         status = dcerpc_binding_handle_call_recv(subreq);
    9707           0 :         TALLOC_FREE(subreq);
    9708           0 :         if (tevent_req_nterror(req, status)) {
    9709           0 :                 return;
    9710             :         }
    9711             : 
    9712           0 :         tevent_req_done(req);
    9713             : }
    9714             : 
    9715           0 : NTSTATUS dcerpc_samr_TestPrivateFunctionsUser_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
    9716             : {
    9717           0 :         struct dcerpc_samr_TestPrivateFunctionsUser_r_state *state =
    9718           0 :                 tevent_req_data(req,
    9719             :                 struct dcerpc_samr_TestPrivateFunctionsUser_r_state);
    9720           0 :         NTSTATUS status;
    9721             : 
    9722           0 :         if (tevent_req_is_nterror(req, &status)) {
    9723           0 :                 tevent_req_received(req);
    9724           0 :                 return status;
    9725             :         }
    9726             : 
    9727           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    9728             : 
    9729           0 :         tevent_req_received(req);
    9730           0 :         return NT_STATUS_OK;
    9731             : }
    9732             : 
    9733          14 : NTSTATUS dcerpc_samr_TestPrivateFunctionsUser_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct samr_TestPrivateFunctionsUser *r)
    9734             : {
    9735           0 :         NTSTATUS status;
    9736             : 
    9737          14 :         status = dcerpc_binding_handle_call(h,
    9738             :                         NULL, &ndr_table_samr,
    9739             :                         NDR_SAMR_TESTPRIVATEFUNCTIONSUSER, mem_ctx, r);
    9740             : 
    9741          14 :         return status;
    9742             : }
    9743             : 
    9744             : struct dcerpc_samr_TestPrivateFunctionsUser_state {
    9745             :         struct samr_TestPrivateFunctionsUser orig;
    9746             :         struct samr_TestPrivateFunctionsUser tmp;
    9747             :         TALLOC_CTX *out_mem_ctx;
    9748             : };
    9749             : 
    9750             : static void dcerpc_samr_TestPrivateFunctionsUser_done(struct tevent_req *subreq);
    9751             : 
    9752           0 : struct tevent_req *dcerpc_samr_TestPrivateFunctionsUser_send(TALLOC_CTX *mem_ctx,
    9753             :                                                              struct tevent_context *ev,
    9754             :                                                              struct dcerpc_binding_handle *h,
    9755             :                                                              struct policy_handle *_user_handle /* [in] [ref] */)
    9756             : {
    9757           0 :         struct tevent_req *req;
    9758           0 :         struct dcerpc_samr_TestPrivateFunctionsUser_state *state;
    9759           0 :         struct tevent_req *subreq;
    9760             : 
    9761           0 :         req = tevent_req_create(mem_ctx, &state,
    9762             :                                 struct dcerpc_samr_TestPrivateFunctionsUser_state);
    9763           0 :         if (req == NULL) {
    9764           0 :                 return NULL;
    9765             :         }
    9766           0 :         state->out_mem_ctx = NULL;
    9767             : 
    9768             :         /* In parameters */
    9769           0 :         state->orig.in.user_handle = _user_handle;
    9770             : 
    9771             :         /* Out parameters */
    9772             : 
    9773             :         /* Result */
    9774           0 :         NDR_ZERO_STRUCT(state->orig.out.result);
    9775             : 
    9776             :         /* make a temporary copy, that we pass to the dispatch function */
    9777           0 :         state->tmp = state->orig;
    9778             : 
    9779           0 :         subreq = dcerpc_samr_TestPrivateFunctionsUser_r_send(state, ev, h, &state->tmp);
    9780           0 :         if (tevent_req_nomem(subreq, req)) {
    9781           0 :                 return tevent_req_post(req, ev);
    9782             :         }
    9783           0 :         tevent_req_set_callback(subreq, dcerpc_samr_TestPrivateFunctionsUser_done, req);
    9784           0 :         return req;
    9785             : }
    9786             : 
    9787           0 : static void dcerpc_samr_TestPrivateFunctionsUser_done(struct tevent_req *subreq)
    9788             : {
    9789           0 :         struct tevent_req *req = tevent_req_callback_data(
    9790             :                 subreq, struct tevent_req);
    9791           0 :         struct dcerpc_samr_TestPrivateFunctionsUser_state *state = tevent_req_data(
    9792             :                 req, struct dcerpc_samr_TestPrivateFunctionsUser_state);
    9793           0 :         NTSTATUS status;
    9794           0 :         TALLOC_CTX *mem_ctx;
    9795             : 
    9796           0 :         if (state->out_mem_ctx) {
    9797           0 :                 mem_ctx = state->out_mem_ctx;
    9798             :         } else {
    9799           0 :                 mem_ctx = state;
    9800             :         }
    9801             : 
    9802           0 :         status = dcerpc_samr_TestPrivateFunctionsUser_r_recv(subreq, mem_ctx);
    9803           0 :         TALLOC_FREE(subreq);
    9804           0 :         if (tevent_req_nterror(req, status)) {
    9805           0 :                 return;
    9806             :         }
    9807             : 
    9808             :         /* Copy out parameters */
    9809             : 
    9810             :         /* Copy result */
    9811           0 :         state->orig.out.result = state->tmp.out.result;
    9812             : 
    9813             :         /* Reset temporary structure */
    9814           0 :         NDR_ZERO_STRUCT(state->tmp);
    9815             : 
    9816           0 :         tevent_req_done(req);
    9817             : }
    9818             : 
    9819           0 : NTSTATUS dcerpc_samr_TestPrivateFunctionsUser_recv(struct tevent_req *req,
    9820             :                                                    TALLOC_CTX *mem_ctx,
    9821             :                                                    NTSTATUS *result)
    9822             : {
    9823           0 :         struct dcerpc_samr_TestPrivateFunctionsUser_state *state = tevent_req_data(
    9824             :                 req, struct dcerpc_samr_TestPrivateFunctionsUser_state);
    9825           0 :         NTSTATUS status;
    9826             : 
    9827           0 :         if (tevent_req_is_nterror(req, &status)) {
    9828           0 :                 tevent_req_received(req);
    9829           0 :                 return status;
    9830             :         }
    9831             : 
    9832             :         /* Steal possible out parameters to the callers context */
    9833           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    9834             : 
    9835             :         /* Return result */
    9836           0 :         *result = state->orig.out.result;
    9837             : 
    9838           0 :         tevent_req_received(req);
    9839           0 :         return NT_STATUS_OK;
    9840             : }
    9841             : 
    9842           0 : NTSTATUS dcerpc_samr_TestPrivateFunctionsUser(struct dcerpc_binding_handle *h,
    9843             :                                               TALLOC_CTX *mem_ctx,
    9844             :                                               struct policy_handle *_user_handle /* [in] [ref] */,
    9845             :                                               NTSTATUS *result)
    9846             : {
    9847           0 :         struct samr_TestPrivateFunctionsUser r;
    9848           0 :         NTSTATUS status;
    9849             : 
    9850             :         /* In parameters */
    9851           0 :         r.in.user_handle = _user_handle;
    9852             : 
    9853             :         /* Out parameters */
    9854             : 
    9855             :         /* Result */
    9856           0 :         NDR_ZERO_STRUCT(r.out.result);
    9857             : 
    9858           0 :         status = dcerpc_samr_TestPrivateFunctionsUser_r(h, mem_ctx, &r);
    9859           0 :         if (!NT_STATUS_IS_OK(status)) {
    9860           0 :                 return status;
    9861             :         }
    9862             : 
    9863             :         /* Return variables */
    9864             : 
    9865             :         /* Return result */
    9866           0 :         *result = r.out.result;
    9867             : 
    9868           0 :         return NT_STATUS_OK;
    9869             : }
    9870             : 
    9871             : struct dcerpc_samr_GetUserPwInfo_r_state {
    9872             :         TALLOC_CTX *out_mem_ctx;
    9873             : };
    9874             : 
    9875             : static void dcerpc_samr_GetUserPwInfo_r_done(struct tevent_req *subreq);
    9876             : 
    9877           0 : struct tevent_req *dcerpc_samr_GetUserPwInfo_r_send(TALLOC_CTX *mem_ctx,
    9878             :         struct tevent_context *ev,
    9879             :         struct dcerpc_binding_handle *h,
    9880             :         struct samr_GetUserPwInfo *r)
    9881             : {
    9882           0 :         struct tevent_req *req;
    9883           0 :         struct dcerpc_samr_GetUserPwInfo_r_state *state;
    9884           0 :         struct tevent_req *subreq;
    9885             : 
    9886           0 :         req = tevent_req_create(mem_ctx, &state,
    9887             :                                 struct dcerpc_samr_GetUserPwInfo_r_state);
    9888           0 :         if (req == NULL) {
    9889           0 :                 return NULL;
    9890             :         }
    9891             : 
    9892           0 :         state->out_mem_ctx = talloc_new(state);
    9893           0 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
    9894           0 :                 return tevent_req_post(req, ev);
    9895             :         }
    9896             : 
    9897           0 :         subreq = dcerpc_binding_handle_call_send(state, ev, h,
    9898             :                         NULL, &ndr_table_samr,
    9899           0 :                         NDR_SAMR_GETUSERPWINFO, state->out_mem_ctx, r);
    9900           0 :         if (tevent_req_nomem(subreq, req)) {
    9901           0 :                 return tevent_req_post(req, ev);
    9902             :         }
    9903           0 :         tevent_req_set_callback(subreq, dcerpc_samr_GetUserPwInfo_r_done, req);
    9904             : 
    9905           0 :         return req;
    9906             : }
    9907             : 
    9908           0 : static void dcerpc_samr_GetUserPwInfo_r_done(struct tevent_req *subreq)
    9909             : {
    9910           0 :         struct tevent_req *req =
    9911           0 :                 tevent_req_callback_data(subreq,
    9912             :                 struct tevent_req);
    9913           0 :         NTSTATUS status;
    9914             : 
    9915           0 :         status = dcerpc_binding_handle_call_recv(subreq);
    9916           0 :         TALLOC_FREE(subreq);
    9917           0 :         if (tevent_req_nterror(req, status)) {
    9918           0 :                 return;
    9919             :         }
    9920             : 
    9921           0 :         tevent_req_done(req);
    9922             : }
    9923             : 
    9924           0 : NTSTATUS dcerpc_samr_GetUserPwInfo_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
    9925             : {
    9926           0 :         struct dcerpc_samr_GetUserPwInfo_r_state *state =
    9927           0 :                 tevent_req_data(req,
    9928             :                 struct dcerpc_samr_GetUserPwInfo_r_state);
    9929           0 :         NTSTATUS status;
    9930             : 
    9931           0 :         if (tevent_req_is_nterror(req, &status)) {
    9932           0 :                 tevent_req_received(req);
    9933           0 :                 return status;
    9934             :         }
    9935             : 
    9936           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    9937             : 
    9938           0 :         tevent_req_received(req);
    9939           0 :         return NT_STATUS_OK;
    9940             : }
    9941             : 
    9942        1583 : NTSTATUS dcerpc_samr_GetUserPwInfo_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct samr_GetUserPwInfo *r)
    9943             : {
    9944          72 :         NTSTATUS status;
    9945             : 
    9946        1583 :         status = dcerpc_binding_handle_call(h,
    9947             :                         NULL, &ndr_table_samr,
    9948             :                         NDR_SAMR_GETUSERPWINFO, mem_ctx, r);
    9949             : 
    9950        1583 :         return status;
    9951             : }
    9952             : 
    9953             : struct dcerpc_samr_GetUserPwInfo_state {
    9954             :         struct samr_GetUserPwInfo orig;
    9955             :         struct samr_GetUserPwInfo tmp;
    9956             :         TALLOC_CTX *out_mem_ctx;
    9957             : };
    9958             : 
    9959             : static void dcerpc_samr_GetUserPwInfo_done(struct tevent_req *subreq);
    9960             : 
    9961           0 : struct tevent_req *dcerpc_samr_GetUserPwInfo_send(TALLOC_CTX *mem_ctx,
    9962             :                                                   struct tevent_context *ev,
    9963             :                                                   struct dcerpc_binding_handle *h,
    9964             :                                                   struct policy_handle *_user_handle /* [in] [ref] */,
    9965             :                                                   struct samr_PwInfo *_info /* [out] [ref] */)
    9966             : {
    9967           0 :         struct tevent_req *req;
    9968           0 :         struct dcerpc_samr_GetUserPwInfo_state *state;
    9969           0 :         struct tevent_req *subreq;
    9970             : 
    9971           0 :         req = tevent_req_create(mem_ctx, &state,
    9972             :                                 struct dcerpc_samr_GetUserPwInfo_state);
    9973           0 :         if (req == NULL) {
    9974           0 :                 return NULL;
    9975             :         }
    9976           0 :         state->out_mem_ctx = NULL;
    9977             : 
    9978             :         /* In parameters */
    9979           0 :         state->orig.in.user_handle = _user_handle;
    9980             : 
    9981             :         /* Out parameters */
    9982           0 :         state->orig.out.info = _info;
    9983             : 
    9984             :         /* Result */
    9985           0 :         NDR_ZERO_STRUCT(state->orig.out.result);
    9986             : 
    9987           0 :         state->out_mem_ctx = talloc_named_const(state, 0,
    9988             :                              "dcerpc_samr_GetUserPwInfo_out_memory");
    9989           0 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
    9990           0 :                 return tevent_req_post(req, ev);
    9991             :         }
    9992             : 
    9993             :         /* make a temporary copy, that we pass to the dispatch function */
    9994           0 :         state->tmp = state->orig;
    9995             : 
    9996           0 :         subreq = dcerpc_samr_GetUserPwInfo_r_send(state, ev, h, &state->tmp);
    9997           0 :         if (tevent_req_nomem(subreq, req)) {
    9998           0 :                 return tevent_req_post(req, ev);
    9999             :         }
   10000           0 :         tevent_req_set_callback(subreq, dcerpc_samr_GetUserPwInfo_done, req);
   10001           0 :         return req;
   10002             : }
   10003             : 
   10004           0 : static void dcerpc_samr_GetUserPwInfo_done(struct tevent_req *subreq)
   10005             : {
   10006           0 :         struct tevent_req *req = tevent_req_callback_data(
   10007             :                 subreq, struct tevent_req);
   10008           0 :         struct dcerpc_samr_GetUserPwInfo_state *state = tevent_req_data(
   10009             :                 req, struct dcerpc_samr_GetUserPwInfo_state);
   10010           0 :         NTSTATUS status;
   10011           0 :         TALLOC_CTX *mem_ctx;
   10012             : 
   10013           0 :         if (state->out_mem_ctx) {
   10014           0 :                 mem_ctx = state->out_mem_ctx;
   10015             :         } else {
   10016           0 :                 mem_ctx = state;
   10017             :         }
   10018             : 
   10019           0 :         status = dcerpc_samr_GetUserPwInfo_r_recv(subreq, mem_ctx);
   10020           0 :         TALLOC_FREE(subreq);
   10021           0 :         if (tevent_req_nterror(req, status)) {
   10022           0 :                 return;
   10023             :         }
   10024             : 
   10025             :         /* Copy out parameters */
   10026           0 :         *state->orig.out.info = *state->tmp.out.info;
   10027             : 
   10028             :         /* Copy result */
   10029           0 :         state->orig.out.result = state->tmp.out.result;
   10030             : 
   10031             :         /* Reset temporary structure */
   10032           0 :         NDR_ZERO_STRUCT(state->tmp);
   10033             : 
   10034           0 :         tevent_req_done(req);
   10035             : }
   10036             : 
   10037           0 : NTSTATUS dcerpc_samr_GetUserPwInfo_recv(struct tevent_req *req,
   10038             :                                         TALLOC_CTX *mem_ctx,
   10039             :                                         NTSTATUS *result)
   10040             : {
   10041           0 :         struct dcerpc_samr_GetUserPwInfo_state *state = tevent_req_data(
   10042             :                 req, struct dcerpc_samr_GetUserPwInfo_state);
   10043           0 :         NTSTATUS status;
   10044             : 
   10045           0 :         if (tevent_req_is_nterror(req, &status)) {
   10046           0 :                 tevent_req_received(req);
   10047           0 :                 return status;
   10048             :         }
   10049             : 
   10050             :         /* Steal possible out parameters to the callers context */
   10051           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
   10052             : 
   10053             :         /* Return result */
   10054           0 :         *result = state->orig.out.result;
   10055             : 
   10056           0 :         tevent_req_received(req);
   10057           0 :         return NT_STATUS_OK;
   10058             : }
   10059             : 
   10060           6 : NTSTATUS dcerpc_samr_GetUserPwInfo(struct dcerpc_binding_handle *h,
   10061             :                                    TALLOC_CTX *mem_ctx,
   10062             :                                    struct policy_handle *_user_handle /* [in] [ref] */,
   10063             :                                    struct samr_PwInfo *_info /* [out] [ref] */,
   10064             :                                    NTSTATUS *result)
   10065             : {
   10066           0 :         struct samr_GetUserPwInfo r;
   10067           0 :         NTSTATUS status;
   10068             : 
   10069             :         /* In parameters */
   10070           6 :         r.in.user_handle = _user_handle;
   10071             : 
   10072             :         /* Out parameters */
   10073           6 :         r.out.info = _info;
   10074             : 
   10075             :         /* Result */
   10076           6 :         NDR_ZERO_STRUCT(r.out.result);
   10077             : 
   10078           6 :         status = dcerpc_samr_GetUserPwInfo_r(h, mem_ctx, &r);
   10079           6 :         if (!NT_STATUS_IS_OK(status)) {
   10080           0 :                 return status;
   10081             :         }
   10082             : 
   10083             :         /* Return variables */
   10084           6 :         *_info = *r.out.info;
   10085             : 
   10086             :         /* Return result */
   10087           6 :         *result = r.out.result;
   10088             : 
   10089           6 :         return NT_STATUS_OK;
   10090             : }
   10091             : 
   10092             : struct dcerpc_samr_RemoveMemberFromForeignDomain_r_state {
   10093             :         TALLOC_CTX *out_mem_ctx;
   10094             : };
   10095             : 
   10096             : static void dcerpc_samr_RemoveMemberFromForeignDomain_r_done(struct tevent_req *subreq);
   10097             : 
   10098           0 : struct tevent_req *dcerpc_samr_RemoveMemberFromForeignDomain_r_send(TALLOC_CTX *mem_ctx,
   10099             :         struct tevent_context *ev,
   10100             :         struct dcerpc_binding_handle *h,
   10101             :         struct samr_RemoveMemberFromForeignDomain *r)
   10102             : {
   10103           0 :         struct tevent_req *req;
   10104           0 :         struct dcerpc_samr_RemoveMemberFromForeignDomain_r_state *state;
   10105           0 :         struct tevent_req *subreq;
   10106             : 
   10107           0 :         req = tevent_req_create(mem_ctx, &state,
   10108             :                                 struct dcerpc_samr_RemoveMemberFromForeignDomain_r_state);
   10109           0 :         if (req == NULL) {
   10110           0 :                 return NULL;
   10111             :         }
   10112             : 
   10113           0 :         state->out_mem_ctx = NULL;
   10114             : 
   10115           0 :         subreq = dcerpc_binding_handle_call_send(state, ev, h,
   10116             :                         NULL, &ndr_table_samr,
   10117             :                         NDR_SAMR_REMOVEMEMBERFROMFOREIGNDOMAIN, state, r);
   10118           0 :         if (tevent_req_nomem(subreq, req)) {
   10119           0 :                 return tevent_req_post(req, ev);
   10120             :         }
   10121           0 :         tevent_req_set_callback(subreq, dcerpc_samr_RemoveMemberFromForeignDomain_r_done, req);
   10122             : 
   10123           0 :         return req;
   10124             : }
   10125             : 
   10126           0 : static void dcerpc_samr_RemoveMemberFromForeignDomain_r_done(struct tevent_req *subreq)
   10127             : {
   10128           0 :         struct tevent_req *req =
   10129           0 :                 tevent_req_callback_data(subreq,
   10130             :                 struct tevent_req);
   10131           0 :         NTSTATUS status;
   10132             : 
   10133           0 :         status = dcerpc_binding_handle_call_recv(subreq);
   10134           0 :         TALLOC_FREE(subreq);
   10135           0 :         if (tevent_req_nterror(req, status)) {
   10136           0 :                 return;
   10137             :         }
   10138             : 
   10139           0 :         tevent_req_done(req);
   10140             : }
   10141             : 
   10142           0 : NTSTATUS dcerpc_samr_RemoveMemberFromForeignDomain_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
   10143             : {
   10144           0 :         struct dcerpc_samr_RemoveMemberFromForeignDomain_r_state *state =
   10145           0 :                 tevent_req_data(req,
   10146             :                 struct dcerpc_samr_RemoveMemberFromForeignDomain_r_state);
   10147           0 :         NTSTATUS status;
   10148             : 
   10149           0 :         if (tevent_req_is_nterror(req, &status)) {
   10150           0 :                 tevent_req_received(req);
   10151           0 :                 return status;
   10152             :         }
   10153             : 
   10154           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
   10155             : 
   10156           0 :         tevent_req_received(req);
   10157           0 :         return NT_STATUS_OK;
   10158             : }
   10159             : 
   10160          16 : NTSTATUS dcerpc_samr_RemoveMemberFromForeignDomain_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct samr_RemoveMemberFromForeignDomain *r)
   10161             : {
   10162           0 :         NTSTATUS status;
   10163             : 
   10164          16 :         status = dcerpc_binding_handle_call(h,
   10165             :                         NULL, &ndr_table_samr,
   10166             :                         NDR_SAMR_REMOVEMEMBERFROMFOREIGNDOMAIN, mem_ctx, r);
   10167             : 
   10168          16 :         return status;
   10169             : }
   10170             : 
   10171             : struct dcerpc_samr_RemoveMemberFromForeignDomain_state {
   10172             :         struct samr_RemoveMemberFromForeignDomain orig;
   10173             :         struct samr_RemoveMemberFromForeignDomain tmp;
   10174             :         TALLOC_CTX *out_mem_ctx;
   10175             : };
   10176             : 
   10177             : static void dcerpc_samr_RemoveMemberFromForeignDomain_done(struct tevent_req *subreq);
   10178             : 
   10179           0 : struct tevent_req *dcerpc_samr_RemoveMemberFromForeignDomain_send(TALLOC_CTX *mem_ctx,
   10180             :                                                                   struct tevent_context *ev,
   10181             :                                                                   struct dcerpc_binding_handle *h,
   10182             :                                                                   struct policy_handle *_domain_handle /* [in] [ref] */,
   10183             :                                                                   struct dom_sid2 *_sid /* [in] [ref] */)
   10184             : {
   10185           0 :         struct tevent_req *req;
   10186           0 :         struct dcerpc_samr_RemoveMemberFromForeignDomain_state *state;
   10187           0 :         struct tevent_req *subreq;
   10188             : 
   10189           0 :         req = tevent_req_create(mem_ctx, &state,
   10190             :                                 struct dcerpc_samr_RemoveMemberFromForeignDomain_state);
   10191           0 :         if (req == NULL) {
   10192           0 :                 return NULL;
   10193             :         }
   10194           0 :         state->out_mem_ctx = NULL;
   10195             : 
   10196             :         /* In parameters */
   10197           0 :         state->orig.in.domain_handle = _domain_handle;
   10198           0 :         state->orig.in.sid = _sid;
   10199             : 
   10200             :         /* Out parameters */
   10201             : 
   10202             :         /* Result */
   10203           0 :         NDR_ZERO_STRUCT(state->orig.out.result);
   10204             : 
   10205             :         /* make a temporary copy, that we pass to the dispatch function */
   10206           0 :         state->tmp = state->orig;
   10207             : 
   10208           0 :         subreq = dcerpc_samr_RemoveMemberFromForeignDomain_r_send(state, ev, h, &state->tmp);
   10209           0 :         if (tevent_req_nomem(subreq, req)) {
   10210           0 :                 return tevent_req_post(req, ev);
   10211             :         }
   10212           0 :         tevent_req_set_callback(subreq, dcerpc_samr_RemoveMemberFromForeignDomain_done, req);
   10213           0 :         return req;
   10214             : }
   10215             : 
   10216           0 : static void dcerpc_samr_RemoveMemberFromForeignDomain_done(struct tevent_req *subreq)
   10217             : {
   10218           0 :         struct tevent_req *req = tevent_req_callback_data(
   10219             :                 subreq, struct tevent_req);
   10220           0 :         struct dcerpc_samr_RemoveMemberFromForeignDomain_state *state = tevent_req_data(
   10221             :                 req, struct dcerpc_samr_RemoveMemberFromForeignDomain_state);
   10222           0 :         NTSTATUS status;
   10223           0 :         TALLOC_CTX *mem_ctx;
   10224             : 
   10225           0 :         if (state->out_mem_ctx) {
   10226           0 :                 mem_ctx = state->out_mem_ctx;
   10227             :         } else {
   10228           0 :                 mem_ctx = state;
   10229             :         }
   10230             : 
   10231           0 :         status = dcerpc_samr_RemoveMemberFromForeignDomain_r_recv(subreq, mem_ctx);
   10232           0 :         TALLOC_FREE(subreq);
   10233           0 :         if (tevent_req_nterror(req, status)) {
   10234           0 :                 return;
   10235             :         }
   10236             : 
   10237             :         /* Copy out parameters */
   10238             : 
   10239             :         /* Copy result */
   10240           0 :         state->orig.out.result = state->tmp.out.result;
   10241             : 
   10242             :         /* Reset temporary structure */
   10243           0 :         NDR_ZERO_STRUCT(state->tmp);
   10244             : 
   10245           0 :         tevent_req_done(req);
   10246             : }
   10247             : 
   10248           0 : NTSTATUS dcerpc_samr_RemoveMemberFromForeignDomain_recv(struct tevent_req *req,
   10249             :                                                         TALLOC_CTX *mem_ctx,
   10250             :                                                         NTSTATUS *result)
   10251             : {
   10252           0 :         struct dcerpc_samr_RemoveMemberFromForeignDomain_state *state = tevent_req_data(
   10253             :                 req, struct dcerpc_samr_RemoveMemberFromForeignDomain_state);
   10254           0 :         NTSTATUS status;
   10255             : 
   10256           0 :         if (tevent_req_is_nterror(req, &status)) {
   10257           0 :                 tevent_req_received(req);
   10258           0 :                 return status;
   10259             :         }
   10260             : 
   10261             :         /* Steal possible out parameters to the callers context */
   10262           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
   10263             : 
   10264             :         /* Return result */
   10265           0 :         *result = state->orig.out.result;
   10266             : 
   10267           0 :         tevent_req_received(req);
   10268           0 :         return NT_STATUS_OK;
   10269             : }
   10270             : 
   10271           6 : NTSTATUS dcerpc_samr_RemoveMemberFromForeignDomain(struct dcerpc_binding_handle *h,
   10272             :                                                    TALLOC_CTX *mem_ctx,
   10273             :                                                    struct policy_handle *_domain_handle /* [in] [ref] */,
   10274             :                                                    struct dom_sid2 *_sid /* [in] [ref] */,
   10275             :                                                    NTSTATUS *result)
   10276             : {
   10277           0 :         struct samr_RemoveMemberFromForeignDomain r;
   10278           0 :         NTSTATUS status;
   10279             : 
   10280             :         /* In parameters */
   10281           6 :         r.in.domain_handle = _domain_handle;
   10282           6 :         r.in.sid = _sid;
   10283             : 
   10284             :         /* Out parameters */
   10285             : 
   10286             :         /* Result */
   10287           6 :         NDR_ZERO_STRUCT(r.out.result);
   10288             : 
   10289           6 :         status = dcerpc_samr_RemoveMemberFromForeignDomain_r(h, mem_ctx, &r);
   10290           6 :         if (!NT_STATUS_IS_OK(status)) {
   10291           0 :                 return status;
   10292             :         }
   10293             : 
   10294             :         /* Return variables */
   10295             : 
   10296             :         /* Return result */
   10297           6 :         *result = r.out.result;
   10298             : 
   10299           6 :         return NT_STATUS_OK;
   10300             : }
   10301             : 
   10302             : struct dcerpc_samr_QueryDomainInfo2_r_state {
   10303             :         TALLOC_CTX *out_mem_ctx;
   10304             : };
   10305             : 
   10306             : static void dcerpc_samr_QueryDomainInfo2_r_done(struct tevent_req *subreq);
   10307             : 
   10308           0 : struct tevent_req *dcerpc_samr_QueryDomainInfo2_r_send(TALLOC_CTX *mem_ctx,
   10309             :         struct tevent_context *ev,
   10310             :         struct dcerpc_binding_handle *h,
   10311             :         struct samr_QueryDomainInfo2 *r)
   10312             : {
   10313           0 :         struct tevent_req *req;
   10314           0 :         struct dcerpc_samr_QueryDomainInfo2_r_state *state;
   10315           0 :         struct tevent_req *subreq;
   10316             : 
   10317           0 :         req = tevent_req_create(mem_ctx, &state,
   10318             :                                 struct dcerpc_samr_QueryDomainInfo2_r_state);
   10319           0 :         if (req == NULL) {
   10320           0 :                 return NULL;
   10321             :         }
   10322             : 
   10323           0 :         state->out_mem_ctx = talloc_new(state);
   10324           0 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
   10325           0 :                 return tevent_req_post(req, ev);
   10326             :         }
   10327             : 
   10328           0 :         subreq = dcerpc_binding_handle_call_send(state, ev, h,
   10329             :                         NULL, &ndr_table_samr,
   10330           0 :                         NDR_SAMR_QUERYDOMAININFO2, state->out_mem_ctx, r);
   10331           0 :         if (tevent_req_nomem(subreq, req)) {
   10332           0 :                 return tevent_req_post(req, ev);
   10333             :         }
   10334           0 :         tevent_req_set_callback(subreq, dcerpc_samr_QueryDomainInfo2_r_done, req);
   10335             : 
   10336           0 :         return req;
   10337             : }
   10338             : 
   10339           0 : static void dcerpc_samr_QueryDomainInfo2_r_done(struct tevent_req *subreq)
   10340             : {
   10341           0 :         struct tevent_req *req =
   10342           0 :                 tevent_req_callback_data(subreq,
   10343             :                 struct tevent_req);
   10344           0 :         NTSTATUS status;
   10345             : 
   10346           0 :         status = dcerpc_binding_handle_call_recv(subreq);
   10347           0 :         TALLOC_FREE(subreq);
   10348           0 :         if (tevent_req_nterror(req, status)) {
   10349           0 :                 return;
   10350             :         }
   10351             : 
   10352           0 :         tevent_req_done(req);
   10353             : }
   10354             : 
   10355           0 : NTSTATUS dcerpc_samr_QueryDomainInfo2_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
   10356             : {
   10357           0 :         struct dcerpc_samr_QueryDomainInfo2_r_state *state =
   10358           0 :                 tevent_req_data(req,
   10359             :                 struct dcerpc_samr_QueryDomainInfo2_r_state);
   10360           0 :         NTSTATUS status;
   10361             : 
   10362           0 :         if (tevent_req_is_nterror(req, &status)) {
   10363           0 :                 tevent_req_received(req);
   10364           0 :                 return status;
   10365             :         }
   10366             : 
   10367           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
   10368             : 
   10369           0 :         tevent_req_received(req);
   10370           0 :         return NT_STATUS_OK;
   10371             : }
   10372             : 
   10373         175 : NTSTATUS dcerpc_samr_QueryDomainInfo2_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct samr_QueryDomainInfo2 *r)
   10374             : {
   10375           0 :         NTSTATUS status;
   10376             : 
   10377         175 :         status = dcerpc_binding_handle_call(h,
   10378             :                         NULL, &ndr_table_samr,
   10379             :                         NDR_SAMR_QUERYDOMAININFO2, mem_ctx, r);
   10380             : 
   10381         175 :         return status;
   10382             : }
   10383             : 
   10384             : struct dcerpc_samr_QueryDomainInfo2_state {
   10385             :         struct samr_QueryDomainInfo2 orig;
   10386             :         struct samr_QueryDomainInfo2 tmp;
   10387             :         TALLOC_CTX *out_mem_ctx;
   10388             : };
   10389             : 
   10390             : static void dcerpc_samr_QueryDomainInfo2_done(struct tevent_req *subreq);
   10391             : 
   10392           0 : struct tevent_req *dcerpc_samr_QueryDomainInfo2_send(TALLOC_CTX *mem_ctx,
   10393             :                                                      struct tevent_context *ev,
   10394             :                                                      struct dcerpc_binding_handle *h,
   10395             :                                                      struct policy_handle *_domain_handle /* [in] [ref] */,
   10396             :                                                      enum samr_DomainInfoClass _level /* [in]  */,
   10397             :                                                      union samr_DomainInfo **_info /* [out] [ref,switch_is(level)] */)
   10398             : {
   10399           0 :         struct tevent_req *req;
   10400           0 :         struct dcerpc_samr_QueryDomainInfo2_state *state;
   10401           0 :         struct tevent_req *subreq;
   10402             : 
   10403           0 :         req = tevent_req_create(mem_ctx, &state,
   10404             :                                 struct dcerpc_samr_QueryDomainInfo2_state);
   10405           0 :         if (req == NULL) {
   10406           0 :                 return NULL;
   10407             :         }
   10408           0 :         state->out_mem_ctx = NULL;
   10409             : 
   10410             :         /* In parameters */
   10411           0 :         state->orig.in.domain_handle = _domain_handle;
   10412           0 :         state->orig.in.level = _level;
   10413             : 
   10414             :         /* Out parameters */
   10415           0 :         state->orig.out.info = _info;
   10416             : 
   10417             :         /* Result */
   10418           0 :         NDR_ZERO_STRUCT(state->orig.out.result);
   10419             : 
   10420           0 :         state->out_mem_ctx = talloc_named_const(state, 0,
   10421             :                              "dcerpc_samr_QueryDomainInfo2_out_memory");
   10422           0 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
   10423           0 :                 return tevent_req_post(req, ev);
   10424             :         }
   10425             : 
   10426             :         /* make a temporary copy, that we pass to the dispatch function */
   10427           0 :         state->tmp = state->orig;
   10428             : 
   10429           0 :         subreq = dcerpc_samr_QueryDomainInfo2_r_send(state, ev, h, &state->tmp);
   10430           0 :         if (tevent_req_nomem(subreq, req)) {
   10431           0 :                 return tevent_req_post(req, ev);
   10432             :         }
   10433           0 :         tevent_req_set_callback(subreq, dcerpc_samr_QueryDomainInfo2_done, req);
   10434           0 :         return req;
   10435             : }
   10436             : 
   10437           0 : static void dcerpc_samr_QueryDomainInfo2_done(struct tevent_req *subreq)
   10438             : {
   10439           0 :         struct tevent_req *req = tevent_req_callback_data(
   10440             :                 subreq, struct tevent_req);
   10441           0 :         struct dcerpc_samr_QueryDomainInfo2_state *state = tevent_req_data(
   10442             :                 req, struct dcerpc_samr_QueryDomainInfo2_state);
   10443           0 :         NTSTATUS status;
   10444           0 :         TALLOC_CTX *mem_ctx;
   10445             : 
   10446           0 :         if (state->out_mem_ctx) {
   10447           0 :                 mem_ctx = state->out_mem_ctx;
   10448             :         } else {
   10449           0 :                 mem_ctx = state;
   10450             :         }
   10451             : 
   10452           0 :         status = dcerpc_samr_QueryDomainInfo2_r_recv(subreq, mem_ctx);
   10453           0 :         TALLOC_FREE(subreq);
   10454           0 :         if (tevent_req_nterror(req, status)) {
   10455           0 :                 return;
   10456             :         }
   10457             : 
   10458             :         /* Copy out parameters */
   10459           0 :         *state->orig.out.info = *state->tmp.out.info;
   10460             : 
   10461             :         /* Copy result */
   10462           0 :         state->orig.out.result = state->tmp.out.result;
   10463             : 
   10464             :         /* Reset temporary structure */
   10465           0 :         NDR_ZERO_STRUCT(state->tmp);
   10466             : 
   10467           0 :         tevent_req_done(req);
   10468             : }
   10469             : 
   10470           0 : NTSTATUS dcerpc_samr_QueryDomainInfo2_recv(struct tevent_req *req,
   10471             :                                            TALLOC_CTX *mem_ctx,
   10472             :                                            NTSTATUS *result)
   10473             : {
   10474           0 :         struct dcerpc_samr_QueryDomainInfo2_state *state = tevent_req_data(
   10475             :                 req, struct dcerpc_samr_QueryDomainInfo2_state);
   10476           0 :         NTSTATUS status;
   10477             : 
   10478           0 :         if (tevent_req_is_nterror(req, &status)) {
   10479           0 :                 tevent_req_received(req);
   10480           0 :                 return status;
   10481             :         }
   10482             : 
   10483             :         /* Steal possible out parameters to the callers context */
   10484           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
   10485             : 
   10486             :         /* Return result */
   10487           0 :         *result = state->orig.out.result;
   10488             : 
   10489           0 :         tevent_req_received(req);
   10490           0 :         return NT_STATUS_OK;
   10491             : }
   10492             : 
   10493           1 : NTSTATUS dcerpc_samr_QueryDomainInfo2(struct dcerpc_binding_handle *h,
   10494             :                                       TALLOC_CTX *mem_ctx,
   10495             :                                       struct policy_handle *_domain_handle /* [in] [ref] */,
   10496             :                                       enum samr_DomainInfoClass _level /* [in]  */,
   10497             :                                       union samr_DomainInfo **_info /* [out] [ref,switch_is(level)] */,
   10498             :                                       NTSTATUS *result)
   10499             : {
   10500           0 :         struct samr_QueryDomainInfo2 r;
   10501           0 :         NTSTATUS status;
   10502             : 
   10503             :         /* In parameters */
   10504           1 :         r.in.domain_handle = _domain_handle;
   10505           1 :         r.in.level = _level;
   10506             : 
   10507             :         /* Out parameters */
   10508           1 :         r.out.info = _info;
   10509             : 
   10510             :         /* Result */
   10511           1 :         NDR_ZERO_STRUCT(r.out.result);
   10512             : 
   10513           1 :         status = dcerpc_samr_QueryDomainInfo2_r(h, mem_ctx, &r);
   10514           1 :         if (!NT_STATUS_IS_OK(status)) {
   10515           0 :                 return status;
   10516             :         }
   10517             : 
   10518             :         /* Return variables */
   10519           1 :         *_info = *r.out.info;
   10520             : 
   10521             :         /* Return result */
   10522           1 :         *result = r.out.result;
   10523             : 
   10524           1 :         return NT_STATUS_OK;
   10525             : }
   10526             : 
   10527             : struct dcerpc_samr_QueryUserInfo2_r_state {
   10528             :         TALLOC_CTX *out_mem_ctx;
   10529             : };
   10530             : 
   10531             : static void dcerpc_samr_QueryUserInfo2_r_done(struct tevent_req *subreq);
   10532             : 
   10533           0 : struct tevent_req *dcerpc_samr_QueryUserInfo2_r_send(TALLOC_CTX *mem_ctx,
   10534             :         struct tevent_context *ev,
   10535             :         struct dcerpc_binding_handle *h,
   10536             :         struct samr_QueryUserInfo2 *r)
   10537             : {
   10538           0 :         struct tevent_req *req;
   10539           0 :         struct dcerpc_samr_QueryUserInfo2_r_state *state;
   10540           0 :         struct tevent_req *subreq;
   10541             : 
   10542           0 :         req = tevent_req_create(mem_ctx, &state,
   10543             :                                 struct dcerpc_samr_QueryUserInfo2_r_state);
   10544           0 :         if (req == NULL) {
   10545           0 :                 return NULL;
   10546             :         }
   10547             : 
   10548           0 :         state->out_mem_ctx = talloc_new(state);
   10549           0 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
   10550           0 :                 return tevent_req_post(req, ev);
   10551             :         }
   10552             : 
   10553           0 :         subreq = dcerpc_binding_handle_call_send(state, ev, h,
   10554             :                         NULL, &ndr_table_samr,
   10555           0 :                         NDR_SAMR_QUERYUSERINFO2, state->out_mem_ctx, r);
   10556           0 :         if (tevent_req_nomem(subreq, req)) {
   10557           0 :                 return tevent_req_post(req, ev);
   10558             :         }
   10559           0 :         tevent_req_set_callback(subreq, dcerpc_samr_QueryUserInfo2_r_done, req);
   10560             : 
   10561           0 :         return req;
   10562             : }
   10563             : 
   10564           0 : static void dcerpc_samr_QueryUserInfo2_r_done(struct tevent_req *subreq)
   10565             : {
   10566           0 :         struct tevent_req *req =
   10567           0 :                 tevent_req_callback_data(subreq,
   10568             :                 struct tevent_req);
   10569           0 :         NTSTATUS status;
   10570             : 
   10571           0 :         status = dcerpc_binding_handle_call_recv(subreq);
   10572           0 :         TALLOC_FREE(subreq);
   10573           0 :         if (tevent_req_nterror(req, status)) {
   10574           0 :                 return;
   10575             :         }
   10576             : 
   10577           0 :         tevent_req_done(req);
   10578             : }
   10579             : 
   10580           0 : NTSTATUS dcerpc_samr_QueryUserInfo2_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
   10581             : {
   10582           0 :         struct dcerpc_samr_QueryUserInfo2_r_state *state =
   10583           0 :                 tevent_req_data(req,
   10584             :                 struct dcerpc_samr_QueryUserInfo2_r_state);
   10585           0 :         NTSTATUS status;
   10586             : 
   10587           0 :         if (tevent_req_is_nterror(req, &status)) {
   10588           0 :                 tevent_req_received(req);
   10589           0 :                 return status;
   10590             :         }
   10591             : 
   10592           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
   10593             : 
   10594           0 :         tevent_req_received(req);
   10595           0 :         return NT_STATUS_OK;
   10596             : }
   10597             : 
   10598        1132 : NTSTATUS dcerpc_samr_QueryUserInfo2_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct samr_QueryUserInfo2 *r)
   10599             : {
   10600           0 :         NTSTATUS status;
   10601             : 
   10602        1132 :         status = dcerpc_binding_handle_call(h,
   10603             :                         NULL, &ndr_table_samr,
   10604             :                         NDR_SAMR_QUERYUSERINFO2, mem_ctx, r);
   10605             : 
   10606        1132 :         return status;
   10607             : }
   10608             : 
   10609             : struct dcerpc_samr_QueryUserInfo2_state {
   10610             :         struct samr_QueryUserInfo2 orig;
   10611             :         struct samr_QueryUserInfo2 tmp;
   10612             :         TALLOC_CTX *out_mem_ctx;
   10613             : };
   10614             : 
   10615             : static void dcerpc_samr_QueryUserInfo2_done(struct tevent_req *subreq);
   10616             : 
   10617           0 : struct tevent_req *dcerpc_samr_QueryUserInfo2_send(TALLOC_CTX *mem_ctx,
   10618             :                                                    struct tevent_context *ev,
   10619             :                                                    struct dcerpc_binding_handle *h,
   10620             :                                                    struct policy_handle *_user_handle /* [in] [ref] */,
   10621             :                                                    enum samr_UserInfoLevel _level /* [in]  */,
   10622             :                                                    union samr_UserInfo **_info /* [out] [ref,switch_is(level)] */)
   10623             : {
   10624           0 :         struct tevent_req *req;
   10625           0 :         struct dcerpc_samr_QueryUserInfo2_state *state;
   10626           0 :         struct tevent_req *subreq;
   10627             : 
   10628           0 :         req = tevent_req_create(mem_ctx, &state,
   10629             :                                 struct dcerpc_samr_QueryUserInfo2_state);
   10630           0 :         if (req == NULL) {
   10631           0 :                 return NULL;
   10632             :         }
   10633           0 :         state->out_mem_ctx = NULL;
   10634             : 
   10635             :         /* In parameters */
   10636           0 :         state->orig.in.user_handle = _user_handle;
   10637           0 :         state->orig.in.level = _level;
   10638             : 
   10639             :         /* Out parameters */
   10640           0 :         state->orig.out.info = _info;
   10641             : 
   10642             :         /* Result */
   10643           0 :         NDR_ZERO_STRUCT(state->orig.out.result);
   10644             : 
   10645           0 :         state->out_mem_ctx = talloc_named_const(state, 0,
   10646             :                              "dcerpc_samr_QueryUserInfo2_out_memory");
   10647           0 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
   10648           0 :                 return tevent_req_post(req, ev);
   10649             :         }
   10650             : 
   10651             :         /* make a temporary copy, that we pass to the dispatch function */
   10652           0 :         state->tmp = state->orig;
   10653             : 
   10654           0 :         subreq = dcerpc_samr_QueryUserInfo2_r_send(state, ev, h, &state->tmp);
   10655           0 :         if (tevent_req_nomem(subreq, req)) {
   10656           0 :                 return tevent_req_post(req, ev);
   10657             :         }
   10658           0 :         tevent_req_set_callback(subreq, dcerpc_samr_QueryUserInfo2_done, req);
   10659           0 :         return req;
   10660             : }
   10661             : 
   10662           0 : static void dcerpc_samr_QueryUserInfo2_done(struct tevent_req *subreq)
   10663             : {
   10664           0 :         struct tevent_req *req = tevent_req_callback_data(
   10665             :                 subreq, struct tevent_req);
   10666           0 :         struct dcerpc_samr_QueryUserInfo2_state *state = tevent_req_data(
   10667             :                 req, struct dcerpc_samr_QueryUserInfo2_state);
   10668           0 :         NTSTATUS status;
   10669           0 :         TALLOC_CTX *mem_ctx;
   10670             : 
   10671           0 :         if (state->out_mem_ctx) {
   10672           0 :                 mem_ctx = state->out_mem_ctx;
   10673             :         } else {
   10674           0 :                 mem_ctx = state;
   10675             :         }
   10676             : 
   10677           0 :         status = dcerpc_samr_QueryUserInfo2_r_recv(subreq, mem_ctx);
   10678           0 :         TALLOC_FREE(subreq);
   10679           0 :         if (tevent_req_nterror(req, status)) {
   10680           0 :                 return;
   10681             :         }
   10682             : 
   10683             :         /* Copy out parameters */
   10684           0 :         *state->orig.out.info = *state->tmp.out.info;
   10685             : 
   10686             :         /* Copy result */
   10687           0 :         state->orig.out.result = state->tmp.out.result;
   10688             : 
   10689             :         /* Reset temporary structure */
   10690           0 :         NDR_ZERO_STRUCT(state->tmp);
   10691             : 
   10692           0 :         tevent_req_done(req);
   10693             : }
   10694             : 
   10695           0 : NTSTATUS dcerpc_samr_QueryUserInfo2_recv(struct tevent_req *req,
   10696             :                                          TALLOC_CTX *mem_ctx,
   10697             :                                          NTSTATUS *result)
   10698             : {
   10699           0 :         struct dcerpc_samr_QueryUserInfo2_state *state = tevent_req_data(
   10700             :                 req, struct dcerpc_samr_QueryUserInfo2_state);
   10701           0 :         NTSTATUS status;
   10702             : 
   10703           0 :         if (tevent_req_is_nterror(req, &status)) {
   10704           0 :                 tevent_req_received(req);
   10705           0 :                 return status;
   10706             :         }
   10707             : 
   10708             :         /* Steal possible out parameters to the callers context */
   10709           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
   10710             : 
   10711             :         /* Return result */
   10712           0 :         *result = state->orig.out.result;
   10713             : 
   10714           0 :         tevent_req_received(req);
   10715           0 :         return NT_STATUS_OK;
   10716             : }
   10717             : 
   10718         142 : NTSTATUS dcerpc_samr_QueryUserInfo2(struct dcerpc_binding_handle *h,
   10719             :                                     TALLOC_CTX *mem_ctx,
   10720             :                                     struct policy_handle *_user_handle /* [in] [ref] */,
   10721             :                                     enum samr_UserInfoLevel _level /* [in]  */,
   10722             :                                     union samr_UserInfo **_info /* [out] [ref,switch_is(level)] */,
   10723             :                                     NTSTATUS *result)
   10724             : {
   10725           0 :         struct samr_QueryUserInfo2 r;
   10726           0 :         NTSTATUS status;
   10727             : 
   10728             :         /* In parameters */
   10729         142 :         r.in.user_handle = _user_handle;
   10730         142 :         r.in.level = _level;
   10731             : 
   10732             :         /* Out parameters */
   10733         142 :         r.out.info = _info;
   10734             : 
   10735             :         /* Result */
   10736         142 :         NDR_ZERO_STRUCT(r.out.result);
   10737             : 
   10738         142 :         status = dcerpc_samr_QueryUserInfo2_r(h, mem_ctx, &r);
   10739         142 :         if (!NT_STATUS_IS_OK(status)) {
   10740           0 :                 return status;
   10741             :         }
   10742             : 
   10743             :         /* Return variables */
   10744         142 :         *_info = *r.out.info;
   10745             : 
   10746             :         /* Return result */
   10747         142 :         *result = r.out.result;
   10748             : 
   10749         142 :         return NT_STATUS_OK;
   10750             : }
   10751             : 
   10752             : struct dcerpc_samr_QueryDisplayInfo2_r_state {
   10753             :         TALLOC_CTX *out_mem_ctx;
   10754             : };
   10755             : 
   10756             : static void dcerpc_samr_QueryDisplayInfo2_r_done(struct tevent_req *subreq);
   10757             : 
   10758           0 : struct tevent_req *dcerpc_samr_QueryDisplayInfo2_r_send(TALLOC_CTX *mem_ctx,
   10759             :         struct tevent_context *ev,
   10760             :         struct dcerpc_binding_handle *h,
   10761             :         struct samr_QueryDisplayInfo2 *r)
   10762             : {
   10763           0 :         struct tevent_req *req;
   10764           0 :         struct dcerpc_samr_QueryDisplayInfo2_r_state *state;
   10765           0 :         struct tevent_req *subreq;
   10766             : 
   10767           0 :         req = tevent_req_create(mem_ctx, &state,
   10768             :                                 struct dcerpc_samr_QueryDisplayInfo2_r_state);
   10769           0 :         if (req == NULL) {
   10770           0 :                 return NULL;
   10771             :         }
   10772             : 
   10773           0 :         state->out_mem_ctx = talloc_new(state);
   10774           0 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
   10775           0 :                 return tevent_req_post(req, ev);
   10776             :         }
   10777             : 
   10778           0 :         subreq = dcerpc_binding_handle_call_send(state, ev, h,
   10779             :                         NULL, &ndr_table_samr,
   10780           0 :                         NDR_SAMR_QUERYDISPLAYINFO2, state->out_mem_ctx, r);
   10781           0 :         if (tevent_req_nomem(subreq, req)) {
   10782           0 :                 return tevent_req_post(req, ev);
   10783             :         }
   10784           0 :         tevent_req_set_callback(subreq, dcerpc_samr_QueryDisplayInfo2_r_done, req);
   10785             : 
   10786           0 :         return req;
   10787             : }
   10788             : 
   10789           0 : static void dcerpc_samr_QueryDisplayInfo2_r_done(struct tevent_req *subreq)
   10790             : {
   10791           0 :         struct tevent_req *req =
   10792           0 :                 tevent_req_callback_data(subreq,
   10793             :                 struct tevent_req);
   10794           0 :         NTSTATUS status;
   10795             : 
   10796           0 :         status = dcerpc_binding_handle_call_recv(subreq);
   10797           0 :         TALLOC_FREE(subreq);
   10798           0 :         if (tevent_req_nterror(req, status)) {
   10799           0 :                 return;
   10800             :         }
   10801             : 
   10802           0 :         tevent_req_done(req);
   10803             : }
   10804             : 
   10805           0 : NTSTATUS dcerpc_samr_QueryDisplayInfo2_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
   10806             : {
   10807           0 :         struct dcerpc_samr_QueryDisplayInfo2_r_state *state =
   10808           0 :                 tevent_req_data(req,
   10809             :                 struct dcerpc_samr_QueryDisplayInfo2_r_state);
   10810           0 :         NTSTATUS status;
   10811             : 
   10812           0 :         if (tevent_req_is_nterror(req, &status)) {
   10813           0 :                 tevent_req_received(req);
   10814           0 :                 return status;
   10815             :         }
   10816             : 
   10817           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
   10818             : 
   10819           0 :         tevent_req_received(req);
   10820           0 :         return NT_STATUS_OK;
   10821             : }
   10822             : 
   10823          54 : NTSTATUS dcerpc_samr_QueryDisplayInfo2_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct samr_QueryDisplayInfo2 *r)
   10824             : {
   10825           0 :         NTSTATUS status;
   10826             : 
   10827          54 :         status = dcerpc_binding_handle_call(h,
   10828             :                         NULL, &ndr_table_samr,
   10829             :                         NDR_SAMR_QUERYDISPLAYINFO2, mem_ctx, r);
   10830             : 
   10831          54 :         return status;
   10832             : }
   10833             : 
   10834             : struct dcerpc_samr_QueryDisplayInfo2_state {
   10835             :         struct samr_QueryDisplayInfo2 orig;
   10836             :         struct samr_QueryDisplayInfo2 tmp;
   10837             :         TALLOC_CTX *out_mem_ctx;
   10838             : };
   10839             : 
   10840             : static void dcerpc_samr_QueryDisplayInfo2_done(struct tevent_req *subreq);
   10841             : 
   10842           0 : struct tevent_req *dcerpc_samr_QueryDisplayInfo2_send(TALLOC_CTX *mem_ctx,
   10843             :                                                       struct tevent_context *ev,
   10844             :                                                       struct dcerpc_binding_handle *h,
   10845             :                                                       struct policy_handle *_domain_handle /* [in] [ref] */,
   10846             :                                                       uint16_t _level /* [in]  */,
   10847             :                                                       uint32_t _start_idx /* [in]  */,
   10848             :                                                       uint32_t _max_entries /* [in]  */,
   10849             :                                                       uint32_t _buf_size /* [in]  */,
   10850             :                                                       uint32_t *_total_size /* [out] [ref] */,
   10851             :                                                       uint32_t *_returned_size /* [out] [ref] */,
   10852             :                                                       union samr_DispInfo *_info /* [out] [ref,switch_is(level)] */)
   10853             : {
   10854           0 :         struct tevent_req *req;
   10855           0 :         struct dcerpc_samr_QueryDisplayInfo2_state *state;
   10856           0 :         struct tevent_req *subreq;
   10857             : 
   10858           0 :         req = tevent_req_create(mem_ctx, &state,
   10859             :                                 struct dcerpc_samr_QueryDisplayInfo2_state);
   10860           0 :         if (req == NULL) {
   10861           0 :                 return NULL;
   10862             :         }
   10863           0 :         state->out_mem_ctx = NULL;
   10864             : 
   10865             :         /* In parameters */
   10866           0 :         state->orig.in.domain_handle = _domain_handle;
   10867           0 :         state->orig.in.level = _level;
   10868           0 :         state->orig.in.start_idx = _start_idx;
   10869           0 :         state->orig.in.max_entries = _max_entries;
   10870           0 :         state->orig.in.buf_size = _buf_size;
   10871             : 
   10872             :         /* Out parameters */
   10873           0 :         state->orig.out.total_size = _total_size;
   10874           0 :         state->orig.out.returned_size = _returned_size;
   10875           0 :         state->orig.out.info = _info;
   10876             : 
   10877             :         /* Result */
   10878           0 :         NDR_ZERO_STRUCT(state->orig.out.result);
   10879             : 
   10880           0 :         state->out_mem_ctx = talloc_named_const(state, 0,
   10881             :                              "dcerpc_samr_QueryDisplayInfo2_out_memory");
   10882           0 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
   10883           0 :                 return tevent_req_post(req, ev);
   10884             :         }
   10885             : 
   10886             :         /* make a temporary copy, that we pass to the dispatch function */
   10887           0 :         state->tmp = state->orig;
   10888             : 
   10889           0 :         subreq = dcerpc_samr_QueryDisplayInfo2_r_send(state, ev, h, &state->tmp);
   10890           0 :         if (tevent_req_nomem(subreq, req)) {
   10891           0 :                 return tevent_req_post(req, ev);
   10892             :         }
   10893           0 :         tevent_req_set_callback(subreq, dcerpc_samr_QueryDisplayInfo2_done, req);
   10894           0 :         return req;
   10895             : }
   10896             : 
   10897           0 : static void dcerpc_samr_QueryDisplayInfo2_done(struct tevent_req *subreq)
   10898             : {
   10899           0 :         struct tevent_req *req = tevent_req_callback_data(
   10900             :                 subreq, struct tevent_req);
   10901           0 :         struct dcerpc_samr_QueryDisplayInfo2_state *state = tevent_req_data(
   10902             :                 req, struct dcerpc_samr_QueryDisplayInfo2_state);
   10903           0 :         NTSTATUS status;
   10904           0 :         TALLOC_CTX *mem_ctx;
   10905             : 
   10906           0 :         if (state->out_mem_ctx) {
   10907           0 :                 mem_ctx = state->out_mem_ctx;
   10908             :         } else {
   10909           0 :                 mem_ctx = state;
   10910             :         }
   10911             : 
   10912           0 :         status = dcerpc_samr_QueryDisplayInfo2_r_recv(subreq, mem_ctx);
   10913           0 :         TALLOC_FREE(subreq);
   10914           0 :         if (tevent_req_nterror(req, status)) {
   10915           0 :                 return;
   10916             :         }
   10917             : 
   10918             :         /* Copy out parameters */
   10919           0 :         *state->orig.out.total_size = *state->tmp.out.total_size;
   10920           0 :         *state->orig.out.returned_size = *state->tmp.out.returned_size;
   10921           0 :         *state->orig.out.info = *state->tmp.out.info;
   10922             : 
   10923             :         /* Copy result */
   10924           0 :         state->orig.out.result = state->tmp.out.result;
   10925             : 
   10926             :         /* Reset temporary structure */
   10927           0 :         NDR_ZERO_STRUCT(state->tmp);
   10928             : 
   10929           0 :         tevent_req_done(req);
   10930             : }
   10931             : 
   10932           0 : NTSTATUS dcerpc_samr_QueryDisplayInfo2_recv(struct tevent_req *req,
   10933             :                                             TALLOC_CTX *mem_ctx,
   10934             :                                             NTSTATUS *result)
   10935             : {
   10936           0 :         struct dcerpc_samr_QueryDisplayInfo2_state *state = tevent_req_data(
   10937             :                 req, struct dcerpc_samr_QueryDisplayInfo2_state);
   10938           0 :         NTSTATUS status;
   10939             : 
   10940           0 :         if (tevent_req_is_nterror(req, &status)) {
   10941           0 :                 tevent_req_received(req);
   10942           0 :                 return status;
   10943             :         }
   10944             : 
   10945             :         /* Steal possible out parameters to the callers context */
   10946           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
   10947             : 
   10948             :         /* Return result */
   10949           0 :         *result = state->orig.out.result;
   10950             : 
   10951           0 :         tevent_req_received(req);
   10952           0 :         return NT_STATUS_OK;
   10953             : }
   10954             : 
   10955           4 : NTSTATUS dcerpc_samr_QueryDisplayInfo2(struct dcerpc_binding_handle *h,
   10956             :                                        TALLOC_CTX *mem_ctx,
   10957             :                                        struct policy_handle *_domain_handle /* [in] [ref] */,
   10958             :                                        uint16_t _level /* [in]  */,
   10959             :                                        uint32_t _start_idx /* [in]  */,
   10960             :                                        uint32_t _max_entries /* [in]  */,
   10961             :                                        uint32_t _buf_size /* [in]  */,
   10962             :                                        uint32_t *_total_size /* [out] [ref] */,
   10963             :                                        uint32_t *_returned_size /* [out] [ref] */,
   10964             :                                        union samr_DispInfo *_info /* [out] [ref,switch_is(level)] */,
   10965             :                                        NTSTATUS *result)
   10966             : {
   10967           0 :         struct samr_QueryDisplayInfo2 r;
   10968           0 :         NTSTATUS status;
   10969             : 
   10970             :         /* In parameters */
   10971           4 :         r.in.domain_handle = _domain_handle;
   10972           4 :         r.in.level = _level;
   10973           4 :         r.in.start_idx = _start_idx;
   10974           4 :         r.in.max_entries = _max_entries;
   10975           4 :         r.in.buf_size = _buf_size;
   10976             : 
   10977             :         /* Out parameters */
   10978           4 :         r.out.total_size = _total_size;
   10979           4 :         r.out.returned_size = _returned_size;
   10980           4 :         r.out.info = _info;
   10981             : 
   10982             :         /* Result */
   10983           4 :         NDR_ZERO_STRUCT(r.out.result);
   10984             : 
   10985           4 :         status = dcerpc_samr_QueryDisplayInfo2_r(h, mem_ctx, &r);
   10986           4 :         if (!NT_STATUS_IS_OK(status)) {
   10987           0 :                 return status;
   10988             :         }
   10989             : 
   10990             :         /* Return variables */
   10991           4 :         *_total_size = *r.out.total_size;
   10992           4 :         *_returned_size = *r.out.returned_size;
   10993           4 :         *_info = *r.out.info;
   10994             : 
   10995             :         /* Return result */
   10996           4 :         *result = r.out.result;
   10997             : 
   10998           4 :         return NT_STATUS_OK;
   10999             : }
   11000             : 
   11001             : struct dcerpc_samr_GetDisplayEnumerationIndex2_r_state {
   11002             :         TALLOC_CTX *out_mem_ctx;
   11003             : };
   11004             : 
   11005             : static void dcerpc_samr_GetDisplayEnumerationIndex2_r_done(struct tevent_req *subreq);
   11006             : 
   11007           0 : struct tevent_req *dcerpc_samr_GetDisplayEnumerationIndex2_r_send(TALLOC_CTX *mem_ctx,
   11008             :         struct tevent_context *ev,
   11009             :         struct dcerpc_binding_handle *h,
   11010             :         struct samr_GetDisplayEnumerationIndex2 *r)
   11011             : {
   11012           0 :         struct tevent_req *req;
   11013           0 :         struct dcerpc_samr_GetDisplayEnumerationIndex2_r_state *state;
   11014           0 :         struct tevent_req *subreq;
   11015             : 
   11016           0 :         req = tevent_req_create(mem_ctx, &state,
   11017             :                                 struct dcerpc_samr_GetDisplayEnumerationIndex2_r_state);
   11018           0 :         if (req == NULL) {
   11019           0 :                 return NULL;
   11020             :         }
   11021             : 
   11022           0 :         state->out_mem_ctx = talloc_new(state);
   11023           0 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
   11024           0 :                 return tevent_req_post(req, ev);
   11025             :         }
   11026             : 
   11027           0 :         subreq = dcerpc_binding_handle_call_send(state, ev, h,
   11028             :                         NULL, &ndr_table_samr,
   11029           0 :                         NDR_SAMR_GETDISPLAYENUMERATIONINDEX2, state->out_mem_ctx, r);
   11030           0 :         if (tevent_req_nomem(subreq, req)) {
   11031           0 :                 return tevent_req_post(req, ev);
   11032             :         }
   11033           0 :         tevent_req_set_callback(subreq, dcerpc_samr_GetDisplayEnumerationIndex2_r_done, req);
   11034             : 
   11035           0 :         return req;
   11036             : }
   11037             : 
   11038           0 : static void dcerpc_samr_GetDisplayEnumerationIndex2_r_done(struct tevent_req *subreq)
   11039             : {
   11040           0 :         struct tevent_req *req =
   11041           0 :                 tevent_req_callback_data(subreq,
   11042             :                 struct tevent_req);
   11043           0 :         NTSTATUS status;
   11044             : 
   11045           0 :         status = dcerpc_binding_handle_call_recv(subreq);
   11046           0 :         TALLOC_FREE(subreq);
   11047           0 :         if (tevent_req_nterror(req, status)) {
   11048           0 :                 return;
   11049             :         }
   11050             : 
   11051           0 :         tevent_req_done(req);
   11052             : }
   11053             : 
   11054           0 : NTSTATUS dcerpc_samr_GetDisplayEnumerationIndex2_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
   11055             : {
   11056           0 :         struct dcerpc_samr_GetDisplayEnumerationIndex2_r_state *state =
   11057           0 :                 tevent_req_data(req,
   11058             :                 struct dcerpc_samr_GetDisplayEnumerationIndex2_r_state);
   11059           0 :         NTSTATUS status;
   11060             : 
   11061           0 :         if (tevent_req_is_nterror(req, &status)) {
   11062           0 :                 tevent_req_received(req);
   11063           0 :                 return status;
   11064             :         }
   11065             : 
   11066           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
   11067             : 
   11068           0 :         tevent_req_received(req);
   11069           0 :         return NT_STATUS_OK;
   11070             : }
   11071             : 
   11072          40 : NTSTATUS dcerpc_samr_GetDisplayEnumerationIndex2_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct samr_GetDisplayEnumerationIndex2 *r)
   11073             : {
   11074           0 :         NTSTATUS status;
   11075             : 
   11076          40 :         status = dcerpc_binding_handle_call(h,
   11077             :                         NULL, &ndr_table_samr,
   11078             :                         NDR_SAMR_GETDISPLAYENUMERATIONINDEX2, mem_ctx, r);
   11079             : 
   11080          40 :         return status;
   11081             : }
   11082             : 
   11083             : struct dcerpc_samr_GetDisplayEnumerationIndex2_state {
   11084             :         struct samr_GetDisplayEnumerationIndex2 orig;
   11085             :         struct samr_GetDisplayEnumerationIndex2 tmp;
   11086             :         TALLOC_CTX *out_mem_ctx;
   11087             : };
   11088             : 
   11089             : static void dcerpc_samr_GetDisplayEnumerationIndex2_done(struct tevent_req *subreq);
   11090             : 
   11091           0 : struct tevent_req *dcerpc_samr_GetDisplayEnumerationIndex2_send(TALLOC_CTX *mem_ctx,
   11092             :                                                                 struct tevent_context *ev,
   11093             :                                                                 struct dcerpc_binding_handle *h,
   11094             :                                                                 struct policy_handle *_domain_handle /* [in] [ref] */,
   11095             :                                                                 uint16_t _level /* [in]  */,
   11096             :                                                                 struct lsa_String *_name /* [in] [ref] */,
   11097             :                                                                 uint32_t *_idx /* [out] [ref] */)
   11098             : {
   11099           0 :         struct tevent_req *req;
   11100           0 :         struct dcerpc_samr_GetDisplayEnumerationIndex2_state *state;
   11101           0 :         struct tevent_req *subreq;
   11102             : 
   11103           0 :         req = tevent_req_create(mem_ctx, &state,
   11104             :                                 struct dcerpc_samr_GetDisplayEnumerationIndex2_state);
   11105           0 :         if (req == NULL) {
   11106           0 :                 return NULL;
   11107             :         }
   11108           0 :         state->out_mem_ctx = NULL;
   11109             : 
   11110             :         /* In parameters */
   11111           0 :         state->orig.in.domain_handle = _domain_handle;
   11112           0 :         state->orig.in.level = _level;
   11113           0 :         state->orig.in.name = _name;
   11114             : 
   11115             :         /* Out parameters */
   11116           0 :         state->orig.out.idx = _idx;
   11117             : 
   11118             :         /* Result */
   11119           0 :         NDR_ZERO_STRUCT(state->orig.out.result);
   11120             : 
   11121           0 :         state->out_mem_ctx = talloc_named_const(state, 0,
   11122             :                              "dcerpc_samr_GetDisplayEnumerationIndex2_out_memory");
   11123           0 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
   11124           0 :                 return tevent_req_post(req, ev);
   11125             :         }
   11126             : 
   11127             :         /* make a temporary copy, that we pass to the dispatch function */
   11128           0 :         state->tmp = state->orig;
   11129             : 
   11130           0 :         subreq = dcerpc_samr_GetDisplayEnumerationIndex2_r_send(state, ev, h, &state->tmp);
   11131           0 :         if (tevent_req_nomem(subreq, req)) {
   11132           0 :                 return tevent_req_post(req, ev);
   11133             :         }
   11134           0 :         tevent_req_set_callback(subreq, dcerpc_samr_GetDisplayEnumerationIndex2_done, req);
   11135           0 :         return req;
   11136             : }
   11137             : 
   11138           0 : static void dcerpc_samr_GetDisplayEnumerationIndex2_done(struct tevent_req *subreq)
   11139             : {
   11140           0 :         struct tevent_req *req = tevent_req_callback_data(
   11141             :                 subreq, struct tevent_req);
   11142           0 :         struct dcerpc_samr_GetDisplayEnumerationIndex2_state *state = tevent_req_data(
   11143             :                 req, struct dcerpc_samr_GetDisplayEnumerationIndex2_state);
   11144           0 :         NTSTATUS status;
   11145           0 :         TALLOC_CTX *mem_ctx;
   11146             : 
   11147           0 :         if (state->out_mem_ctx) {
   11148           0 :                 mem_ctx = state->out_mem_ctx;
   11149             :         } else {
   11150           0 :                 mem_ctx = state;
   11151             :         }
   11152             : 
   11153           0 :         status = dcerpc_samr_GetDisplayEnumerationIndex2_r_recv(subreq, mem_ctx);
   11154           0 :         TALLOC_FREE(subreq);
   11155           0 :         if (tevent_req_nterror(req, status)) {
   11156           0 :                 return;
   11157             :         }
   11158             : 
   11159             :         /* Copy out parameters */
   11160           0 :         *state->orig.out.idx = *state->tmp.out.idx;
   11161             : 
   11162             :         /* Copy result */
   11163           0 :         state->orig.out.result = state->tmp.out.result;
   11164             : 
   11165             :         /* Reset temporary structure */
   11166           0 :         NDR_ZERO_STRUCT(state->tmp);
   11167             : 
   11168           0 :         tevent_req_done(req);
   11169             : }
   11170             : 
   11171           0 : NTSTATUS dcerpc_samr_GetDisplayEnumerationIndex2_recv(struct tevent_req *req,
   11172             :                                                       TALLOC_CTX *mem_ctx,
   11173             :                                                       NTSTATUS *result)
   11174             : {
   11175           0 :         struct dcerpc_samr_GetDisplayEnumerationIndex2_state *state = tevent_req_data(
   11176             :                 req, struct dcerpc_samr_GetDisplayEnumerationIndex2_state);
   11177           0 :         NTSTATUS status;
   11178             : 
   11179           0 :         if (tevent_req_is_nterror(req, &status)) {
   11180           0 :                 tevent_req_received(req);
   11181           0 :                 return status;
   11182             :         }
   11183             : 
   11184             :         /* Steal possible out parameters to the callers context */
   11185           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
   11186             : 
   11187             :         /* Return result */
   11188           0 :         *result = state->orig.out.result;
   11189             : 
   11190           0 :         tevent_req_received(req);
   11191           0 :         return NT_STATUS_OK;
   11192             : }
   11193             : 
   11194           0 : NTSTATUS dcerpc_samr_GetDisplayEnumerationIndex2(struct dcerpc_binding_handle *h,
   11195             :                                                  TALLOC_CTX *mem_ctx,
   11196             :                                                  struct policy_handle *_domain_handle /* [in] [ref] */,
   11197             :                                                  uint16_t _level /* [in]  */,
   11198             :                                                  struct lsa_String *_name /* [in] [ref] */,
   11199             :                                                  uint32_t *_idx /* [out] [ref] */,
   11200             :                                                  NTSTATUS *result)
   11201             : {
   11202           0 :         struct samr_GetDisplayEnumerationIndex2 r;
   11203           0 :         NTSTATUS status;
   11204             : 
   11205             :         /* In parameters */
   11206           0 :         r.in.domain_handle = _domain_handle;
   11207           0 :         r.in.level = _level;
   11208           0 :         r.in.name = _name;
   11209             : 
   11210             :         /* Out parameters */
   11211           0 :         r.out.idx = _idx;
   11212             : 
   11213             :         /* Result */
   11214           0 :         NDR_ZERO_STRUCT(r.out.result);
   11215             : 
   11216           0 :         status = dcerpc_samr_GetDisplayEnumerationIndex2_r(h, mem_ctx, &r);
   11217           0 :         if (!NT_STATUS_IS_OK(status)) {
   11218           0 :                 return status;
   11219             :         }
   11220             : 
   11221             :         /* Return variables */
   11222           0 :         *_idx = *r.out.idx;
   11223             : 
   11224             :         /* Return result */
   11225           0 :         *result = r.out.result;
   11226             : 
   11227           0 :         return NT_STATUS_OK;
   11228             : }
   11229             : 
   11230             : struct dcerpc_samr_CreateUser2_r_state {
   11231             :         TALLOC_CTX *out_mem_ctx;
   11232             : };
   11233             : 
   11234             : static void dcerpc_samr_CreateUser2_r_done(struct tevent_req *subreq);
   11235             : 
   11236           0 : struct tevent_req *dcerpc_samr_CreateUser2_r_send(TALLOC_CTX *mem_ctx,
   11237             :         struct tevent_context *ev,
   11238             :         struct dcerpc_binding_handle *h,
   11239             :         struct samr_CreateUser2 *r)
   11240             : {
   11241           0 :         struct tevent_req *req;
   11242           0 :         struct dcerpc_samr_CreateUser2_r_state *state;
   11243           0 :         struct tevent_req *subreq;
   11244             : 
   11245           0 :         req = tevent_req_create(mem_ctx, &state,
   11246             :                                 struct dcerpc_samr_CreateUser2_r_state);
   11247           0 :         if (req == NULL) {
   11248           0 :                 return NULL;
   11249             :         }
   11250             : 
   11251           0 :         state->out_mem_ctx = talloc_new(state);
   11252           0 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
   11253           0 :                 return tevent_req_post(req, ev);
   11254             :         }
   11255             : 
   11256           0 :         subreq = dcerpc_binding_handle_call_send(state, ev, h,
   11257             :                         NULL, &ndr_table_samr,
   11258           0 :                         NDR_SAMR_CREATEUSER2, state->out_mem_ctx, r);
   11259           0 :         if (tevent_req_nomem(subreq, req)) {
   11260           0 :                 return tevent_req_post(req, ev);
   11261             :         }
   11262           0 :         tevent_req_set_callback(subreq, dcerpc_samr_CreateUser2_r_done, req);
   11263             : 
   11264           0 :         return req;
   11265             : }
   11266             : 
   11267           0 : static void dcerpc_samr_CreateUser2_r_done(struct tevent_req *subreq)
   11268             : {
   11269           0 :         struct tevent_req *req =
   11270           0 :                 tevent_req_callback_data(subreq,
   11271             :                 struct tevent_req);
   11272           0 :         NTSTATUS status;
   11273             : 
   11274           0 :         status = dcerpc_binding_handle_call_recv(subreq);
   11275           0 :         TALLOC_FREE(subreq);
   11276           0 :         if (tevent_req_nterror(req, status)) {
   11277           0 :                 return;
   11278             :         }
   11279             : 
   11280           0 :         tevent_req_done(req);
   11281             : }
   11282             : 
   11283           0 : NTSTATUS dcerpc_samr_CreateUser2_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
   11284             : {
   11285           0 :         struct dcerpc_samr_CreateUser2_r_state *state =
   11286           0 :                 tevent_req_data(req,
   11287             :                 struct dcerpc_samr_CreateUser2_r_state);
   11288           0 :         NTSTATUS status;
   11289             : 
   11290           0 :         if (tevent_req_is_nterror(req, &status)) {
   11291           0 :                 tevent_req_received(req);
   11292           0 :                 return status;
   11293             :         }
   11294             : 
   11295           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
   11296             : 
   11297           0 :         tevent_req_received(req);
   11298           0 :         return NT_STATUS_OK;
   11299             : }
   11300             : 
   11301         913 : NTSTATUS dcerpc_samr_CreateUser2_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct samr_CreateUser2 *r)
   11302             : {
   11303          72 :         NTSTATUS status;
   11304             : 
   11305         913 :         status = dcerpc_binding_handle_call(h,
   11306             :                         NULL, &ndr_table_samr,
   11307             :                         NDR_SAMR_CREATEUSER2, mem_ctx, r);
   11308             : 
   11309         913 :         return status;
   11310             : }
   11311             : 
   11312             : struct dcerpc_samr_CreateUser2_state {
   11313             :         struct samr_CreateUser2 orig;
   11314             :         struct samr_CreateUser2 tmp;
   11315             :         TALLOC_CTX *out_mem_ctx;
   11316             : };
   11317             : 
   11318             : static void dcerpc_samr_CreateUser2_done(struct tevent_req *subreq);
   11319             : 
   11320           0 : struct tevent_req *dcerpc_samr_CreateUser2_send(TALLOC_CTX *mem_ctx,
   11321             :                                                 struct tevent_context *ev,
   11322             :                                                 struct dcerpc_binding_handle *h,
   11323             :                                                 struct policy_handle *_domain_handle /* [in] [ref] */,
   11324             :                                                 struct lsa_String *_account_name /* [in] [ref] */,
   11325             :                                                 uint32_t _acct_flags /* [in]  */,
   11326             :                                                 uint32_t _access_mask /* [in]  */,
   11327             :                                                 struct policy_handle *_user_handle /* [out] [ref] */,
   11328             :                                                 uint32_t *_access_granted /* [out] [ref] */,
   11329             :                                                 uint32_t *_rid /* [out] [ref] */)
   11330             : {
   11331           0 :         struct tevent_req *req;
   11332           0 :         struct dcerpc_samr_CreateUser2_state *state;
   11333           0 :         struct tevent_req *subreq;
   11334             : 
   11335           0 :         req = tevent_req_create(mem_ctx, &state,
   11336             :                                 struct dcerpc_samr_CreateUser2_state);
   11337           0 :         if (req == NULL) {
   11338           0 :                 return NULL;
   11339             :         }
   11340           0 :         state->out_mem_ctx = NULL;
   11341             : 
   11342             :         /* In parameters */
   11343           0 :         state->orig.in.domain_handle = _domain_handle;
   11344           0 :         state->orig.in.account_name = _account_name;
   11345           0 :         state->orig.in.acct_flags = _acct_flags;
   11346           0 :         state->orig.in.access_mask = _access_mask;
   11347             : 
   11348             :         /* Out parameters */
   11349           0 :         state->orig.out.user_handle = _user_handle;
   11350           0 :         state->orig.out.access_granted = _access_granted;
   11351           0 :         state->orig.out.rid = _rid;
   11352             : 
   11353             :         /* Result */
   11354           0 :         NDR_ZERO_STRUCT(state->orig.out.result);
   11355             : 
   11356           0 :         state->out_mem_ctx = talloc_named_const(state, 0,
   11357             :                              "dcerpc_samr_CreateUser2_out_memory");
   11358           0 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
   11359           0 :                 return tevent_req_post(req, ev);
   11360             :         }
   11361             : 
   11362             :         /* make a temporary copy, that we pass to the dispatch function */
   11363           0 :         state->tmp = state->orig;
   11364             : 
   11365           0 :         subreq = dcerpc_samr_CreateUser2_r_send(state, ev, h, &state->tmp);
   11366           0 :         if (tevent_req_nomem(subreq, req)) {
   11367           0 :                 return tevent_req_post(req, ev);
   11368             :         }
   11369           0 :         tevent_req_set_callback(subreq, dcerpc_samr_CreateUser2_done, req);
   11370           0 :         return req;
   11371             : }
   11372             : 
   11373           0 : static void dcerpc_samr_CreateUser2_done(struct tevent_req *subreq)
   11374             : {
   11375           0 :         struct tevent_req *req = tevent_req_callback_data(
   11376             :                 subreq, struct tevent_req);
   11377           0 :         struct dcerpc_samr_CreateUser2_state *state = tevent_req_data(
   11378             :                 req, struct dcerpc_samr_CreateUser2_state);
   11379           0 :         NTSTATUS status;
   11380           0 :         TALLOC_CTX *mem_ctx;
   11381             : 
   11382           0 :         if (state->out_mem_ctx) {
   11383           0 :                 mem_ctx = state->out_mem_ctx;
   11384             :         } else {
   11385           0 :                 mem_ctx = state;
   11386             :         }
   11387             : 
   11388           0 :         status = dcerpc_samr_CreateUser2_r_recv(subreq, mem_ctx);
   11389           0 :         TALLOC_FREE(subreq);
   11390           0 :         if (tevent_req_nterror(req, status)) {
   11391           0 :                 return;
   11392             :         }
   11393             : 
   11394             :         /* Copy out parameters */
   11395           0 :         *state->orig.out.user_handle = *state->tmp.out.user_handle;
   11396           0 :         *state->orig.out.access_granted = *state->tmp.out.access_granted;
   11397           0 :         *state->orig.out.rid = *state->tmp.out.rid;
   11398             : 
   11399             :         /* Copy result */
   11400           0 :         state->orig.out.result = state->tmp.out.result;
   11401             : 
   11402             :         /* Reset temporary structure */
   11403           0 :         NDR_ZERO_STRUCT(state->tmp);
   11404             : 
   11405           0 :         tevent_req_done(req);
   11406             : }
   11407             : 
   11408           0 : NTSTATUS dcerpc_samr_CreateUser2_recv(struct tevent_req *req,
   11409             :                                       TALLOC_CTX *mem_ctx,
   11410             :                                       NTSTATUS *result)
   11411             : {
   11412           0 :         struct dcerpc_samr_CreateUser2_state *state = tevent_req_data(
   11413             :                 req, struct dcerpc_samr_CreateUser2_state);
   11414           0 :         NTSTATUS status;
   11415             : 
   11416           0 :         if (tevent_req_is_nterror(req, &status)) {
   11417           0 :                 tevent_req_received(req);
   11418           0 :                 return status;
   11419             :         }
   11420             : 
   11421             :         /* Steal possible out parameters to the callers context */
   11422           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
   11423             : 
   11424             :         /* Return result */
   11425           0 :         *result = state->orig.out.result;
   11426             : 
   11427           0 :         tevent_req_received(req);
   11428           0 :         return NT_STATUS_OK;
   11429             : }
   11430             : 
   11431          13 : NTSTATUS dcerpc_samr_CreateUser2(struct dcerpc_binding_handle *h,
   11432             :                                  TALLOC_CTX *mem_ctx,
   11433             :                                  struct policy_handle *_domain_handle /* [in] [ref] */,
   11434             :                                  struct lsa_String *_account_name /* [in] [ref] */,
   11435             :                                  uint32_t _acct_flags /* [in]  */,
   11436             :                                  uint32_t _access_mask /* [in]  */,
   11437             :                                  struct policy_handle *_user_handle /* [out] [ref] */,
   11438             :                                  uint32_t *_access_granted /* [out] [ref] */,
   11439             :                                  uint32_t *_rid /* [out] [ref] */,
   11440             :                                  NTSTATUS *result)
   11441             : {
   11442           0 :         struct samr_CreateUser2 r;
   11443           0 :         NTSTATUS status;
   11444             : 
   11445             :         /* In parameters */
   11446          13 :         r.in.domain_handle = _domain_handle;
   11447          13 :         r.in.account_name = _account_name;
   11448          13 :         r.in.acct_flags = _acct_flags;
   11449          13 :         r.in.access_mask = _access_mask;
   11450             : 
   11451             :         /* Out parameters */
   11452          13 :         r.out.user_handle = _user_handle;
   11453          13 :         r.out.access_granted = _access_granted;
   11454          13 :         r.out.rid = _rid;
   11455             : 
   11456             :         /* Result */
   11457          13 :         NDR_ZERO_STRUCT(r.out.result);
   11458             : 
   11459          13 :         status = dcerpc_samr_CreateUser2_r(h, mem_ctx, &r);
   11460          13 :         if (!NT_STATUS_IS_OK(status)) {
   11461           0 :                 return status;
   11462             :         }
   11463             : 
   11464             :         /* Return variables */
   11465          13 :         *_user_handle = *r.out.user_handle;
   11466          13 :         *_access_granted = *r.out.access_granted;
   11467          13 :         *_rid = *r.out.rid;
   11468             : 
   11469             :         /* Return result */
   11470          13 :         *result = r.out.result;
   11471             : 
   11472          13 :         return NT_STATUS_OK;
   11473             : }
   11474             : 
   11475             : struct dcerpc_samr_QueryDisplayInfo3_r_state {
   11476             :         TALLOC_CTX *out_mem_ctx;
   11477             : };
   11478             : 
   11479             : static void dcerpc_samr_QueryDisplayInfo3_r_done(struct tevent_req *subreq);
   11480             : 
   11481           0 : struct tevent_req *dcerpc_samr_QueryDisplayInfo3_r_send(TALLOC_CTX *mem_ctx,
   11482             :         struct tevent_context *ev,
   11483             :         struct dcerpc_binding_handle *h,
   11484             :         struct samr_QueryDisplayInfo3 *r)
   11485             : {
   11486           0 :         struct tevent_req *req;
   11487           0 :         struct dcerpc_samr_QueryDisplayInfo3_r_state *state;
   11488           0 :         struct tevent_req *subreq;
   11489             : 
   11490           0 :         req = tevent_req_create(mem_ctx, &state,
   11491             :                                 struct dcerpc_samr_QueryDisplayInfo3_r_state);
   11492           0 :         if (req == NULL) {
   11493           0 :                 return NULL;
   11494             :         }
   11495             : 
   11496           0 :         state->out_mem_ctx = talloc_new(state);
   11497           0 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
   11498           0 :                 return tevent_req_post(req, ev);
   11499             :         }
   11500             : 
   11501           0 :         subreq = dcerpc_binding_handle_call_send(state, ev, h,
   11502             :                         NULL, &ndr_table_samr,
   11503           0 :                         NDR_SAMR_QUERYDISPLAYINFO3, state->out_mem_ctx, r);
   11504           0 :         if (tevent_req_nomem(subreq, req)) {
   11505           0 :                 return tevent_req_post(req, ev);
   11506             :         }
   11507           0 :         tevent_req_set_callback(subreq, dcerpc_samr_QueryDisplayInfo3_r_done, req);
   11508             : 
   11509           0 :         return req;
   11510             : }
   11511             : 
   11512           0 : static void dcerpc_samr_QueryDisplayInfo3_r_done(struct tevent_req *subreq)
   11513             : {
   11514           0 :         struct tevent_req *req =
   11515           0 :                 tevent_req_callback_data(subreq,
   11516             :                 struct tevent_req);
   11517           0 :         NTSTATUS status;
   11518             : 
   11519           0 :         status = dcerpc_binding_handle_call_recv(subreq);
   11520           0 :         TALLOC_FREE(subreq);
   11521           0 :         if (tevent_req_nterror(req, status)) {
   11522           0 :                 return;
   11523             :         }
   11524             : 
   11525           0 :         tevent_req_done(req);
   11526             : }
   11527             : 
   11528           0 : NTSTATUS dcerpc_samr_QueryDisplayInfo3_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
   11529             : {
   11530           0 :         struct dcerpc_samr_QueryDisplayInfo3_r_state *state =
   11531           0 :                 tevent_req_data(req,
   11532             :                 struct dcerpc_samr_QueryDisplayInfo3_r_state);
   11533           0 :         NTSTATUS status;
   11534             : 
   11535           0 :         if (tevent_req_is_nterror(req, &status)) {
   11536           0 :                 tevent_req_received(req);
   11537           0 :                 return status;
   11538             :         }
   11539             : 
   11540           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
   11541             : 
   11542           0 :         tevent_req_received(req);
   11543           0 :         return NT_STATUS_OK;
   11544             : }
   11545             : 
   11546          50 : NTSTATUS dcerpc_samr_QueryDisplayInfo3_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct samr_QueryDisplayInfo3 *r)
   11547             : {
   11548           0 :         NTSTATUS status;
   11549             : 
   11550          50 :         status = dcerpc_binding_handle_call(h,
   11551             :                         NULL, &ndr_table_samr,
   11552             :                         NDR_SAMR_QUERYDISPLAYINFO3, mem_ctx, r);
   11553             : 
   11554          50 :         return status;
   11555             : }
   11556             : 
   11557             : struct dcerpc_samr_QueryDisplayInfo3_state {
   11558             :         struct samr_QueryDisplayInfo3 orig;
   11559             :         struct samr_QueryDisplayInfo3 tmp;
   11560             :         TALLOC_CTX *out_mem_ctx;
   11561             : };
   11562             : 
   11563             : static void dcerpc_samr_QueryDisplayInfo3_done(struct tevent_req *subreq);
   11564             : 
   11565           0 : struct tevent_req *dcerpc_samr_QueryDisplayInfo3_send(TALLOC_CTX *mem_ctx,
   11566             :                                                       struct tevent_context *ev,
   11567             :                                                       struct dcerpc_binding_handle *h,
   11568             :                                                       struct policy_handle *_domain_handle /* [in] [ref] */,
   11569             :                                                       uint16_t _level /* [in]  */,
   11570             :                                                       uint32_t _start_idx /* [in]  */,
   11571             :                                                       uint32_t _max_entries /* [in]  */,
   11572             :                                                       uint32_t _buf_size /* [in]  */,
   11573             :                                                       uint32_t *_total_size /* [out] [ref] */,
   11574             :                                                       uint32_t *_returned_size /* [out] [ref] */,
   11575             :                                                       union samr_DispInfo *_info /* [out] [ref,switch_is(level)] */)
   11576             : {
   11577           0 :         struct tevent_req *req;
   11578           0 :         struct dcerpc_samr_QueryDisplayInfo3_state *state;
   11579           0 :         struct tevent_req *subreq;
   11580             : 
   11581           0 :         req = tevent_req_create(mem_ctx, &state,
   11582             :                                 struct dcerpc_samr_QueryDisplayInfo3_state);
   11583           0 :         if (req == NULL) {
   11584           0 :                 return NULL;
   11585             :         }
   11586           0 :         state->out_mem_ctx = NULL;
   11587             : 
   11588             :         /* In parameters */
   11589           0 :         state->orig.in.domain_handle = _domain_handle;
   11590           0 :         state->orig.in.level = _level;
   11591           0 :         state->orig.in.start_idx = _start_idx;
   11592           0 :         state->orig.in.max_entries = _max_entries;
   11593           0 :         state->orig.in.buf_size = _buf_size;
   11594             : 
   11595             :         /* Out parameters */
   11596           0 :         state->orig.out.total_size = _total_size;
   11597           0 :         state->orig.out.returned_size = _returned_size;
   11598           0 :         state->orig.out.info = _info;
   11599             : 
   11600             :         /* Result */
   11601           0 :         NDR_ZERO_STRUCT(state->orig.out.result);
   11602             : 
   11603           0 :         state->out_mem_ctx = talloc_named_const(state, 0,
   11604             :                              "dcerpc_samr_QueryDisplayInfo3_out_memory");
   11605           0 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
   11606           0 :                 return tevent_req_post(req, ev);
   11607             :         }
   11608             : 
   11609             :         /* make a temporary copy, that we pass to the dispatch function */
   11610           0 :         state->tmp = state->orig;
   11611             : 
   11612           0 :         subreq = dcerpc_samr_QueryDisplayInfo3_r_send(state, ev, h, &state->tmp);
   11613           0 :         if (tevent_req_nomem(subreq, req)) {
   11614           0 :                 return tevent_req_post(req, ev);
   11615             :         }
   11616           0 :         tevent_req_set_callback(subreq, dcerpc_samr_QueryDisplayInfo3_done, req);
   11617           0 :         return req;
   11618             : }
   11619             : 
   11620           0 : static void dcerpc_samr_QueryDisplayInfo3_done(struct tevent_req *subreq)
   11621             : {
   11622           0 :         struct tevent_req *req = tevent_req_callback_data(
   11623             :                 subreq, struct tevent_req);
   11624           0 :         struct dcerpc_samr_QueryDisplayInfo3_state *state = tevent_req_data(
   11625             :                 req, struct dcerpc_samr_QueryDisplayInfo3_state);
   11626           0 :         NTSTATUS status;
   11627           0 :         TALLOC_CTX *mem_ctx;
   11628             : 
   11629           0 :         if (state->out_mem_ctx) {
   11630           0 :                 mem_ctx = state->out_mem_ctx;
   11631             :         } else {
   11632           0 :                 mem_ctx = state;
   11633             :         }
   11634             : 
   11635           0 :         status = dcerpc_samr_QueryDisplayInfo3_r_recv(subreq, mem_ctx);
   11636           0 :         TALLOC_FREE(subreq);
   11637           0 :         if (tevent_req_nterror(req, status)) {
   11638           0 :                 return;
   11639             :         }
   11640             : 
   11641             :         /* Copy out parameters */
   11642           0 :         *state->orig.out.total_size = *state->tmp.out.total_size;
   11643           0 :         *state->orig.out.returned_size = *state->tmp.out.returned_size;
   11644           0 :         *state->orig.out.info = *state->tmp.out.info;
   11645             : 
   11646             :         /* Copy result */
   11647           0 :         state->orig.out.result = state->tmp.out.result;
   11648             : 
   11649             :         /* Reset temporary structure */
   11650           0 :         NDR_ZERO_STRUCT(state->tmp);
   11651             : 
   11652           0 :         tevent_req_done(req);
   11653             : }
   11654             : 
   11655           0 : NTSTATUS dcerpc_samr_QueryDisplayInfo3_recv(struct tevent_req *req,
   11656             :                                             TALLOC_CTX *mem_ctx,
   11657             :                                             NTSTATUS *result)
   11658             : {
   11659           0 :         struct dcerpc_samr_QueryDisplayInfo3_state *state = tevent_req_data(
   11660             :                 req, struct dcerpc_samr_QueryDisplayInfo3_state);
   11661           0 :         NTSTATUS status;
   11662             : 
   11663           0 :         if (tevent_req_is_nterror(req, &status)) {
   11664           0 :                 tevent_req_received(req);
   11665           0 :                 return status;
   11666             :         }
   11667             : 
   11668             :         /* Steal possible out parameters to the callers context */
   11669           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
   11670             : 
   11671             :         /* Return result */
   11672           0 :         *result = state->orig.out.result;
   11673             : 
   11674           0 :         tevent_req_received(req);
   11675           0 :         return NT_STATUS_OK;
   11676             : }
   11677             : 
   11678           0 : NTSTATUS dcerpc_samr_QueryDisplayInfo3(struct dcerpc_binding_handle *h,
   11679             :                                        TALLOC_CTX *mem_ctx,
   11680             :                                        struct policy_handle *_domain_handle /* [in] [ref] */,
   11681             :                                        uint16_t _level /* [in]  */,
   11682             :                                        uint32_t _start_idx /* [in]  */,
   11683             :                                        uint32_t _max_entries /* [in]  */,
   11684             :                                        uint32_t _buf_size /* [in]  */,
   11685             :                                        uint32_t *_total_size /* [out] [ref] */,
   11686             :                                        uint32_t *_returned_size /* [out] [ref] */,
   11687             :                                        union samr_DispInfo *_info /* [out] [ref,switch_is(level)] */,
   11688             :                                        NTSTATUS *result)
   11689             : {
   11690           0 :         struct samr_QueryDisplayInfo3 r;
   11691           0 :         NTSTATUS status;
   11692             : 
   11693             :         /* In parameters */
   11694           0 :         r.in.domain_handle = _domain_handle;
   11695           0 :         r.in.level = _level;
   11696           0 :         r.in.start_idx = _start_idx;
   11697           0 :         r.in.max_entries = _max_entries;
   11698           0 :         r.in.buf_size = _buf_size;
   11699             : 
   11700             :         /* Out parameters */
   11701           0 :         r.out.total_size = _total_size;
   11702           0 :         r.out.returned_size = _returned_size;
   11703           0 :         r.out.info = _info;
   11704             : 
   11705             :         /* Result */
   11706           0 :         NDR_ZERO_STRUCT(r.out.result);
   11707             : 
   11708           0 :         status = dcerpc_samr_QueryDisplayInfo3_r(h, mem_ctx, &r);
   11709           0 :         if (!NT_STATUS_IS_OK(status)) {
   11710           0 :                 return status;
   11711             :         }
   11712             : 
   11713             :         /* Return variables */
   11714           0 :         *_total_size = *r.out.total_size;
   11715           0 :         *_returned_size = *r.out.returned_size;
   11716           0 :         *_info = *r.out.info;
   11717             : 
   11718             :         /* Return result */
   11719           0 :         *result = r.out.result;
   11720             : 
   11721           0 :         return NT_STATUS_OK;
   11722             : }
   11723             : 
   11724             : struct dcerpc_samr_AddMultipleMembersToAlias_r_state {
   11725             :         TALLOC_CTX *out_mem_ctx;
   11726             : };
   11727             : 
   11728             : static void dcerpc_samr_AddMultipleMembersToAlias_r_done(struct tevent_req *subreq);
   11729             : 
   11730           0 : struct tevent_req *dcerpc_samr_AddMultipleMembersToAlias_r_send(TALLOC_CTX *mem_ctx,
   11731             :         struct tevent_context *ev,
   11732             :         struct dcerpc_binding_handle *h,
   11733             :         struct samr_AddMultipleMembersToAlias *r)
   11734             : {
   11735           0 :         struct tevent_req *req;
   11736           0 :         struct dcerpc_samr_AddMultipleMembersToAlias_r_state *state;
   11737           0 :         struct tevent_req *subreq;
   11738             : 
   11739           0 :         req = tevent_req_create(mem_ctx, &state,
   11740             :                                 struct dcerpc_samr_AddMultipleMembersToAlias_r_state);
   11741           0 :         if (req == NULL) {
   11742           0 :                 return NULL;
   11743             :         }
   11744             : 
   11745           0 :         state->out_mem_ctx = NULL;
   11746             : 
   11747           0 :         subreq = dcerpc_binding_handle_call_send(state, ev, h,
   11748             :                         NULL, &ndr_table_samr,
   11749             :                         NDR_SAMR_ADDMULTIPLEMEMBERSTOALIAS, state, r);
   11750           0 :         if (tevent_req_nomem(subreq, req)) {
   11751           0 :                 return tevent_req_post(req, ev);
   11752             :         }
   11753           0 :         tevent_req_set_callback(subreq, dcerpc_samr_AddMultipleMembersToAlias_r_done, req);
   11754             : 
   11755           0 :         return req;
   11756             : }
   11757             : 
   11758           0 : static void dcerpc_samr_AddMultipleMembersToAlias_r_done(struct tevent_req *subreq)
   11759             : {
   11760           0 :         struct tevent_req *req =
   11761           0 :                 tevent_req_callback_data(subreq,
   11762             :                 struct tevent_req);
   11763           0 :         NTSTATUS status;
   11764             : 
   11765           0 :         status = dcerpc_binding_handle_call_recv(subreq);
   11766           0 :         TALLOC_FREE(subreq);
   11767           0 :         if (tevent_req_nterror(req, status)) {
   11768           0 :                 return;
   11769             :         }
   11770             : 
   11771           0 :         tevent_req_done(req);
   11772             : }
   11773             : 
   11774           0 : NTSTATUS dcerpc_samr_AddMultipleMembersToAlias_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
   11775             : {
   11776           0 :         struct dcerpc_samr_AddMultipleMembersToAlias_r_state *state =
   11777           0 :                 tevent_req_data(req,
   11778             :                 struct dcerpc_samr_AddMultipleMembersToAlias_r_state);
   11779           0 :         NTSTATUS status;
   11780             : 
   11781           0 :         if (tevent_req_is_nterror(req, &status)) {
   11782           0 :                 tevent_req_received(req);
   11783           0 :                 return status;
   11784             :         }
   11785             : 
   11786           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
   11787             : 
   11788           0 :         tevent_req_received(req);
   11789           0 :         return NT_STATUS_OK;
   11790             : }
   11791             : 
   11792           0 : NTSTATUS dcerpc_samr_AddMultipleMembersToAlias_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct samr_AddMultipleMembersToAlias *r)
   11793             : {
   11794           0 :         NTSTATUS status;
   11795             : 
   11796           0 :         status = dcerpc_binding_handle_call(h,
   11797             :                         NULL, &ndr_table_samr,
   11798             :                         NDR_SAMR_ADDMULTIPLEMEMBERSTOALIAS, mem_ctx, r);
   11799             : 
   11800           0 :         return status;
   11801             : }
   11802             : 
   11803             : struct dcerpc_samr_AddMultipleMembersToAlias_state {
   11804             :         struct samr_AddMultipleMembersToAlias orig;
   11805             :         struct samr_AddMultipleMembersToAlias tmp;
   11806             :         TALLOC_CTX *out_mem_ctx;
   11807             : };
   11808             : 
   11809             : static void dcerpc_samr_AddMultipleMembersToAlias_done(struct tevent_req *subreq);
   11810             : 
   11811           0 : struct tevent_req *dcerpc_samr_AddMultipleMembersToAlias_send(TALLOC_CTX *mem_ctx,
   11812             :                                                               struct tevent_context *ev,
   11813             :                                                               struct dcerpc_binding_handle *h,
   11814             :                                                               struct policy_handle *_alias_handle /* [in] [ref] */,
   11815             :                                                               struct lsa_SidArray *_sids /* [in] [ref] */)
   11816             : {
   11817           0 :         struct tevent_req *req;
   11818           0 :         struct dcerpc_samr_AddMultipleMembersToAlias_state *state;
   11819           0 :         struct tevent_req *subreq;
   11820             : 
   11821           0 :         req = tevent_req_create(mem_ctx, &state,
   11822             :                                 struct dcerpc_samr_AddMultipleMembersToAlias_state);
   11823           0 :         if (req == NULL) {
   11824           0 :                 return NULL;
   11825             :         }
   11826           0 :         state->out_mem_ctx = NULL;
   11827             : 
   11828             :         /* In parameters */
   11829           0 :         state->orig.in.alias_handle = _alias_handle;
   11830           0 :         state->orig.in.sids = _sids;
   11831             : 
   11832             :         /* Out parameters */
   11833             : 
   11834             :         /* Result */
   11835           0 :         NDR_ZERO_STRUCT(state->orig.out.result);
   11836             : 
   11837             :         /* make a temporary copy, that we pass to the dispatch function */
   11838           0 :         state->tmp = state->orig;
   11839             : 
   11840           0 :         subreq = dcerpc_samr_AddMultipleMembersToAlias_r_send(state, ev, h, &state->tmp);
   11841           0 :         if (tevent_req_nomem(subreq, req)) {
   11842           0 :                 return tevent_req_post(req, ev);
   11843             :         }
   11844           0 :         tevent_req_set_callback(subreq, dcerpc_samr_AddMultipleMembersToAlias_done, req);
   11845           0 :         return req;
   11846             : }
   11847             : 
   11848           0 : static void dcerpc_samr_AddMultipleMembersToAlias_done(struct tevent_req *subreq)
   11849             : {
   11850           0 :         struct tevent_req *req = tevent_req_callback_data(
   11851             :                 subreq, struct tevent_req);
   11852           0 :         struct dcerpc_samr_AddMultipleMembersToAlias_state *state = tevent_req_data(
   11853             :                 req, struct dcerpc_samr_AddMultipleMembersToAlias_state);
   11854           0 :         NTSTATUS status;
   11855           0 :         TALLOC_CTX *mem_ctx;
   11856             : 
   11857           0 :         if (state->out_mem_ctx) {
   11858           0 :                 mem_ctx = state->out_mem_ctx;
   11859             :         } else {
   11860           0 :                 mem_ctx = state;
   11861             :         }
   11862             : 
   11863           0 :         status = dcerpc_samr_AddMultipleMembersToAlias_r_recv(subreq, mem_ctx);
   11864           0 :         TALLOC_FREE(subreq);
   11865           0 :         if (tevent_req_nterror(req, status)) {
   11866           0 :                 return;
   11867             :         }
   11868             : 
   11869             :         /* Copy out parameters */
   11870             : 
   11871             :         /* Copy result */
   11872           0 :         state->orig.out.result = state->tmp.out.result;
   11873             : 
   11874             :         /* Reset temporary structure */
   11875           0 :         NDR_ZERO_STRUCT(state->tmp);
   11876             : 
   11877           0 :         tevent_req_done(req);
   11878             : }
   11879             : 
   11880           0 : NTSTATUS dcerpc_samr_AddMultipleMembersToAlias_recv(struct tevent_req *req,
   11881             :                                                     TALLOC_CTX *mem_ctx,
   11882             :                                                     NTSTATUS *result)
   11883             : {
   11884           0 :         struct dcerpc_samr_AddMultipleMembersToAlias_state *state = tevent_req_data(
   11885             :                 req, struct dcerpc_samr_AddMultipleMembersToAlias_state);
   11886           0 :         NTSTATUS status;
   11887             : 
   11888           0 :         if (tevent_req_is_nterror(req, &status)) {
   11889           0 :                 tevent_req_received(req);
   11890           0 :                 return status;
   11891             :         }
   11892             : 
   11893             :         /* Steal possible out parameters to the callers context */
   11894           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
   11895             : 
   11896             :         /* Return result */
   11897           0 :         *result = state->orig.out.result;
   11898             : 
   11899           0 :         tevent_req_received(req);
   11900           0 :         return NT_STATUS_OK;
   11901             : }
   11902             : 
   11903           0 : NTSTATUS dcerpc_samr_AddMultipleMembersToAlias(struct dcerpc_binding_handle *h,
   11904             :                                                TALLOC_CTX *mem_ctx,
   11905             :                                                struct policy_handle *_alias_handle /* [in] [ref] */,
   11906             :                                                struct lsa_SidArray *_sids /* [in] [ref] */,
   11907             :                                                NTSTATUS *result)
   11908             : {
   11909           0 :         struct samr_AddMultipleMembersToAlias r;
   11910           0 :         NTSTATUS status;
   11911             : 
   11912             :         /* In parameters */
   11913           0 :         r.in.alias_handle = _alias_handle;
   11914           0 :         r.in.sids = _sids;
   11915             : 
   11916             :         /* Out parameters */
   11917             : 
   11918             :         /* Result */
   11919           0 :         NDR_ZERO_STRUCT(r.out.result);
   11920             : 
   11921           0 :         status = dcerpc_samr_AddMultipleMembersToAlias_r(h, mem_ctx, &r);
   11922           0 :         if (!NT_STATUS_IS_OK(status)) {
   11923           0 :                 return status;
   11924             :         }
   11925             : 
   11926             :         /* Return variables */
   11927             : 
   11928             :         /* Return result */
   11929           0 :         *result = r.out.result;
   11930             : 
   11931           0 :         return NT_STATUS_OK;
   11932             : }
   11933             : 
   11934             : struct dcerpc_samr_RemoveMultipleMembersFromAlias_r_state {
   11935             :         TALLOC_CTX *out_mem_ctx;
   11936             : };
   11937             : 
   11938             : static void dcerpc_samr_RemoveMultipleMembersFromAlias_r_done(struct tevent_req *subreq);
   11939             : 
   11940           0 : struct tevent_req *dcerpc_samr_RemoveMultipleMembersFromAlias_r_send(TALLOC_CTX *mem_ctx,
   11941             :         struct tevent_context *ev,
   11942             :         struct dcerpc_binding_handle *h,
   11943             :         struct samr_RemoveMultipleMembersFromAlias *r)
   11944             : {
   11945           0 :         struct tevent_req *req;
   11946           0 :         struct dcerpc_samr_RemoveMultipleMembersFromAlias_r_state *state;
   11947           0 :         struct tevent_req *subreq;
   11948             : 
   11949           0 :         req = tevent_req_create(mem_ctx, &state,
   11950             :                                 struct dcerpc_samr_RemoveMultipleMembersFromAlias_r_state);
   11951           0 :         if (req == NULL) {
   11952           0 :                 return NULL;
   11953             :         }
   11954             : 
   11955           0 :         state->out_mem_ctx = NULL;
   11956             : 
   11957           0 :         subreq = dcerpc_binding_handle_call_send(state, ev, h,
   11958             :                         NULL, &ndr_table_samr,
   11959             :                         NDR_SAMR_REMOVEMULTIPLEMEMBERSFROMALIAS, state, r);
   11960           0 :         if (tevent_req_nomem(subreq, req)) {
   11961           0 :                 return tevent_req_post(req, ev);
   11962             :         }
   11963           0 :         tevent_req_set_callback(subreq, dcerpc_samr_RemoveMultipleMembersFromAlias_r_done, req);
   11964             : 
   11965           0 :         return req;
   11966             : }
   11967             : 
   11968           0 : static void dcerpc_samr_RemoveMultipleMembersFromAlias_r_done(struct tevent_req *subreq)
   11969             : {
   11970           0 :         struct tevent_req *req =
   11971           0 :                 tevent_req_callback_data(subreq,
   11972             :                 struct tevent_req);
   11973           0 :         NTSTATUS status;
   11974             : 
   11975           0 :         status = dcerpc_binding_handle_call_recv(subreq);
   11976           0 :         TALLOC_FREE(subreq);
   11977           0 :         if (tevent_req_nterror(req, status)) {
   11978           0 :                 return;
   11979             :         }
   11980             : 
   11981           0 :         tevent_req_done(req);
   11982             : }
   11983             : 
   11984           0 : NTSTATUS dcerpc_samr_RemoveMultipleMembersFromAlias_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
   11985             : {
   11986           0 :         struct dcerpc_samr_RemoveMultipleMembersFromAlias_r_state *state =
   11987           0 :                 tevent_req_data(req,
   11988             :                 struct dcerpc_samr_RemoveMultipleMembersFromAlias_r_state);
   11989           0 :         NTSTATUS status;
   11990             : 
   11991           0 :         if (tevent_req_is_nterror(req, &status)) {
   11992           0 :                 tevent_req_received(req);
   11993           0 :                 return status;
   11994             :         }
   11995             : 
   11996           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
   11997             : 
   11998           0 :         tevent_req_received(req);
   11999           0 :         return NT_STATUS_OK;
   12000             : }
   12001             : 
   12002           0 : NTSTATUS dcerpc_samr_RemoveMultipleMembersFromAlias_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct samr_RemoveMultipleMembersFromAlias *r)
   12003             : {
   12004           0 :         NTSTATUS status;
   12005             : 
   12006           0 :         status = dcerpc_binding_handle_call(h,
   12007             :                         NULL, &ndr_table_samr,
   12008             :                         NDR_SAMR_REMOVEMULTIPLEMEMBERSFROMALIAS, mem_ctx, r);
   12009             : 
   12010           0 :         return status;
   12011             : }
   12012             : 
   12013             : struct dcerpc_samr_RemoveMultipleMembersFromAlias_state {
   12014             :         struct samr_RemoveMultipleMembersFromAlias orig;
   12015             :         struct samr_RemoveMultipleMembersFromAlias tmp;
   12016             :         TALLOC_CTX *out_mem_ctx;
   12017             : };
   12018             : 
   12019             : static void dcerpc_samr_RemoveMultipleMembersFromAlias_done(struct tevent_req *subreq);
   12020             : 
   12021           0 : struct tevent_req *dcerpc_samr_RemoveMultipleMembersFromAlias_send(TALLOC_CTX *mem_ctx,
   12022             :                                                                    struct tevent_context *ev,
   12023             :                                                                    struct dcerpc_binding_handle *h,
   12024             :                                                                    struct policy_handle *_alias_handle /* [in] [ref] */,
   12025             :                                                                    struct lsa_SidArray *_sids /* [in] [ref] */)
   12026             : {
   12027           0 :         struct tevent_req *req;
   12028           0 :         struct dcerpc_samr_RemoveMultipleMembersFromAlias_state *state;
   12029           0 :         struct tevent_req *subreq;
   12030             : 
   12031           0 :         req = tevent_req_create(mem_ctx, &state,
   12032             :                                 struct dcerpc_samr_RemoveMultipleMembersFromAlias_state);
   12033           0 :         if (req == NULL) {
   12034           0 :                 return NULL;
   12035             :         }
   12036           0 :         state->out_mem_ctx = NULL;
   12037             : 
   12038             :         /* In parameters */
   12039           0 :         state->orig.in.alias_handle = _alias_handle;
   12040           0 :         state->orig.in.sids = _sids;
   12041             : 
   12042             :         /* Out parameters */
   12043             : 
   12044             :         /* Result */
   12045           0 :         NDR_ZERO_STRUCT(state->orig.out.result);
   12046             : 
   12047             :         /* make a temporary copy, that we pass to the dispatch function */
   12048           0 :         state->tmp = state->orig;
   12049             : 
   12050           0 :         subreq = dcerpc_samr_RemoveMultipleMembersFromAlias_r_send(state, ev, h, &state->tmp);
   12051           0 :         if (tevent_req_nomem(subreq, req)) {
   12052           0 :                 return tevent_req_post(req, ev);
   12053             :         }
   12054           0 :         tevent_req_set_callback(subreq, dcerpc_samr_RemoveMultipleMembersFromAlias_done, req);
   12055           0 :         return req;
   12056             : }
   12057             : 
   12058           0 : static void dcerpc_samr_RemoveMultipleMembersFromAlias_done(struct tevent_req *subreq)
   12059             : {
   12060           0 :         struct tevent_req *req = tevent_req_callback_data(
   12061             :                 subreq, struct tevent_req);
   12062           0 :         struct dcerpc_samr_RemoveMultipleMembersFromAlias_state *state = tevent_req_data(
   12063             :                 req, struct dcerpc_samr_RemoveMultipleMembersFromAlias_state);
   12064           0 :         NTSTATUS status;
   12065           0 :         TALLOC_CTX *mem_ctx;
   12066             : 
   12067           0 :         if (state->out_mem_ctx) {
   12068           0 :                 mem_ctx = state->out_mem_ctx;
   12069             :         } else {
   12070           0 :                 mem_ctx = state;
   12071             :         }
   12072             : 
   12073           0 :         status = dcerpc_samr_RemoveMultipleMembersFromAlias_r_recv(subreq, mem_ctx);
   12074           0 :         TALLOC_FREE(subreq);
   12075           0 :         if (tevent_req_nterror(req, status)) {
   12076           0 :                 return;
   12077             :         }
   12078             : 
   12079             :         /* Copy out parameters */
   12080             : 
   12081             :         /* Copy result */
   12082           0 :         state->orig.out.result = state->tmp.out.result;
   12083             : 
   12084             :         /* Reset temporary structure */
   12085           0 :         NDR_ZERO_STRUCT(state->tmp);
   12086             : 
   12087           0 :         tevent_req_done(req);
   12088             : }
   12089             : 
   12090           0 : NTSTATUS dcerpc_samr_RemoveMultipleMembersFromAlias_recv(struct tevent_req *req,
   12091             :                                                          TALLOC_CTX *mem_ctx,
   12092             :                                                          NTSTATUS *result)
   12093             : {
   12094           0 :         struct dcerpc_samr_RemoveMultipleMembersFromAlias_state *state = tevent_req_data(
   12095             :                 req, struct dcerpc_samr_RemoveMultipleMembersFromAlias_state);
   12096           0 :         NTSTATUS status;
   12097             : 
   12098           0 :         if (tevent_req_is_nterror(req, &status)) {
   12099           0 :                 tevent_req_received(req);
   12100           0 :                 return status;
   12101             :         }
   12102             : 
   12103             :         /* Steal possible out parameters to the callers context */
   12104           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
   12105             : 
   12106             :         /* Return result */
   12107           0 :         *result = state->orig.out.result;
   12108             : 
   12109           0 :         tevent_req_received(req);
   12110           0 :         return NT_STATUS_OK;
   12111             : }
   12112             : 
   12113           0 : NTSTATUS dcerpc_samr_RemoveMultipleMembersFromAlias(struct dcerpc_binding_handle *h,
   12114             :                                                     TALLOC_CTX *mem_ctx,
   12115             :                                                     struct policy_handle *_alias_handle /* [in] [ref] */,
   12116             :                                                     struct lsa_SidArray *_sids /* [in] [ref] */,
   12117             :                                                     NTSTATUS *result)
   12118             : {
   12119           0 :         struct samr_RemoveMultipleMembersFromAlias r;
   12120           0 :         NTSTATUS status;
   12121             : 
   12122             :         /* In parameters */
   12123           0 :         r.in.alias_handle = _alias_handle;
   12124           0 :         r.in.sids = _sids;
   12125             : 
   12126             :         /* Out parameters */
   12127             : 
   12128             :         /* Result */
   12129           0 :         NDR_ZERO_STRUCT(r.out.result);
   12130             : 
   12131           0 :         status = dcerpc_samr_RemoveMultipleMembersFromAlias_r(h, mem_ctx, &r);
   12132           0 :         if (!NT_STATUS_IS_OK(status)) {
   12133           0 :                 return status;
   12134             :         }
   12135             : 
   12136             :         /* Return variables */
   12137             : 
   12138             :         /* Return result */
   12139           0 :         *result = r.out.result;
   12140             : 
   12141           0 :         return NT_STATUS_OK;
   12142             : }
   12143             : 
   12144             : struct dcerpc_samr_OemChangePasswordUser2_r_state {
   12145             :         TALLOC_CTX *out_mem_ctx;
   12146             : };
   12147             : 
   12148             : static void dcerpc_samr_OemChangePasswordUser2_r_done(struct tevent_req *subreq);
   12149             : 
   12150           0 : struct tevent_req *dcerpc_samr_OemChangePasswordUser2_r_send(TALLOC_CTX *mem_ctx,
   12151             :         struct tevent_context *ev,
   12152             :         struct dcerpc_binding_handle *h,
   12153             :         struct samr_OemChangePasswordUser2 *r)
   12154             : {
   12155           0 :         struct tevent_req *req;
   12156           0 :         struct dcerpc_samr_OemChangePasswordUser2_r_state *state;
   12157           0 :         struct tevent_req *subreq;
   12158             : 
   12159           0 :         req = tevent_req_create(mem_ctx, &state,
   12160             :                                 struct dcerpc_samr_OemChangePasswordUser2_r_state);
   12161           0 :         if (req == NULL) {
   12162           0 :                 return NULL;
   12163             :         }
   12164             : 
   12165           0 :         state->out_mem_ctx = NULL;
   12166             : 
   12167           0 :         subreq = dcerpc_binding_handle_call_send(state, ev, h,
   12168             :                         NULL, &ndr_table_samr,
   12169             :                         NDR_SAMR_OEMCHANGEPASSWORDUSER2, state, r);
   12170           0 :         if (tevent_req_nomem(subreq, req)) {
   12171           0 :                 return tevent_req_post(req, ev);
   12172             :         }
   12173           0 :         tevent_req_set_callback(subreq, dcerpc_samr_OemChangePasswordUser2_r_done, req);
   12174             : 
   12175           0 :         return req;
   12176             : }
   12177             : 
   12178           0 : static void dcerpc_samr_OemChangePasswordUser2_r_done(struct tevent_req *subreq)
   12179             : {
   12180           0 :         struct tevent_req *req =
   12181           0 :                 tevent_req_callback_data(subreq,
   12182             :                 struct tevent_req);
   12183           0 :         NTSTATUS status;
   12184             : 
   12185           0 :         status = dcerpc_binding_handle_call_recv(subreq);
   12186           0 :         TALLOC_FREE(subreq);
   12187           0 :         if (tevent_req_nterror(req, status)) {
   12188           0 :                 return;
   12189             :         }
   12190             : 
   12191           0 :         tevent_req_done(req);
   12192             : }
   12193             : 
   12194           0 : NTSTATUS dcerpc_samr_OemChangePasswordUser2_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
   12195             : {
   12196           0 :         struct dcerpc_samr_OemChangePasswordUser2_r_state *state =
   12197           0 :                 tevent_req_data(req,
   12198             :                 struct dcerpc_samr_OemChangePasswordUser2_r_state);
   12199           0 :         NTSTATUS status;
   12200             : 
   12201           0 :         if (tevent_req_is_nterror(req, &status)) {
   12202           0 :                 tevent_req_received(req);
   12203           0 :                 return status;
   12204             :         }
   12205             : 
   12206           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
   12207             : 
   12208           0 :         tevent_req_received(req);
   12209           0 :         return NT_STATUS_OK;
   12210             : }
   12211             : 
   12212          56 : NTSTATUS dcerpc_samr_OemChangePasswordUser2_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct samr_OemChangePasswordUser2 *r)
   12213             : {
   12214           0 :         NTSTATUS status;
   12215             : 
   12216          56 :         status = dcerpc_binding_handle_call(h,
   12217             :                         NULL, &ndr_table_samr,
   12218             :                         NDR_SAMR_OEMCHANGEPASSWORDUSER2, mem_ctx, r);
   12219             : 
   12220          56 :         return status;
   12221             : }
   12222             : 
   12223             : struct dcerpc_samr_OemChangePasswordUser2_state {
   12224             :         struct samr_OemChangePasswordUser2 orig;
   12225             :         struct samr_OemChangePasswordUser2 tmp;
   12226             :         TALLOC_CTX *out_mem_ctx;
   12227             : };
   12228             : 
   12229             : static void dcerpc_samr_OemChangePasswordUser2_done(struct tevent_req *subreq);
   12230             : 
   12231           0 : struct tevent_req *dcerpc_samr_OemChangePasswordUser2_send(TALLOC_CTX *mem_ctx,
   12232             :                                                            struct tevent_context *ev,
   12233             :                                                            struct dcerpc_binding_handle *h,
   12234             :                                                            struct lsa_AsciiString *_server /* [in] [unique] */,
   12235             :                                                            struct lsa_AsciiString *_account /* [in] [ref] */,
   12236             :                                                            struct samr_CryptPassword *_password /* [in] [unique] */,
   12237             :                                                            struct samr_Password *_hash /* [in] [unique] */)
   12238             : {
   12239           0 :         struct tevent_req *req;
   12240           0 :         struct dcerpc_samr_OemChangePasswordUser2_state *state;
   12241           0 :         struct tevent_req *subreq;
   12242             : 
   12243           0 :         req = tevent_req_create(mem_ctx, &state,
   12244             :                                 struct dcerpc_samr_OemChangePasswordUser2_state);
   12245           0 :         if (req == NULL) {
   12246           0 :                 return NULL;
   12247             :         }
   12248           0 :         state->out_mem_ctx = NULL;
   12249             : 
   12250             :         /* In parameters */
   12251           0 :         state->orig.in.server = _server;
   12252           0 :         state->orig.in.account = _account;
   12253           0 :         state->orig.in.password = _password;
   12254           0 :         state->orig.in.hash = _hash;
   12255             : 
   12256             :         /* Out parameters */
   12257             : 
   12258             :         /* Result */
   12259           0 :         NDR_ZERO_STRUCT(state->orig.out.result);
   12260             : 
   12261             :         /* make a temporary copy, that we pass to the dispatch function */
   12262           0 :         state->tmp = state->orig;
   12263             : 
   12264           0 :         subreq = dcerpc_samr_OemChangePasswordUser2_r_send(state, ev, h, &state->tmp);
   12265           0 :         if (tevent_req_nomem(subreq, req)) {
   12266           0 :                 return tevent_req_post(req, ev);
   12267             :         }
   12268           0 :         tevent_req_set_callback(subreq, dcerpc_samr_OemChangePasswordUser2_done, req);
   12269           0 :         return req;
   12270             : }
   12271             : 
   12272           0 : static void dcerpc_samr_OemChangePasswordUser2_done(struct tevent_req *subreq)
   12273             : {
   12274           0 :         struct tevent_req *req = tevent_req_callback_data(
   12275             :                 subreq, struct tevent_req);
   12276           0 :         struct dcerpc_samr_OemChangePasswordUser2_state *state = tevent_req_data(
   12277             :                 req, struct dcerpc_samr_OemChangePasswordUser2_state);
   12278           0 :         NTSTATUS status;
   12279           0 :         TALLOC_CTX *mem_ctx;
   12280             : 
   12281           0 :         if (state->out_mem_ctx) {
   12282           0 :                 mem_ctx = state->out_mem_ctx;
   12283             :         } else {
   12284           0 :                 mem_ctx = state;
   12285             :         }
   12286             : 
   12287           0 :         status = dcerpc_samr_OemChangePasswordUser2_r_recv(subreq, mem_ctx);
   12288           0 :         TALLOC_FREE(subreq);
   12289           0 :         if (tevent_req_nterror(req, status)) {
   12290           0 :                 return;
   12291             :         }
   12292             : 
   12293             :         /* Copy out parameters */
   12294             : 
   12295             :         /* Copy result */
   12296           0 :         state->orig.out.result = state->tmp.out.result;
   12297             : 
   12298             :         /* Reset temporary structure */
   12299           0 :         NDR_ZERO_STRUCT(state->tmp);
   12300             : 
   12301           0 :         tevent_req_done(req);
   12302             : }
   12303             : 
   12304           0 : NTSTATUS dcerpc_samr_OemChangePasswordUser2_recv(struct tevent_req *req,
   12305             :                                                  TALLOC_CTX *mem_ctx,
   12306             :                                                  NTSTATUS *result)
   12307             : {
   12308           0 :         struct dcerpc_samr_OemChangePasswordUser2_state *state = tevent_req_data(
   12309             :                 req, struct dcerpc_samr_OemChangePasswordUser2_state);
   12310           0 :         NTSTATUS status;
   12311             : 
   12312           0 :         if (tevent_req_is_nterror(req, &status)) {
   12313           0 :                 tevent_req_received(req);
   12314           0 :                 return status;
   12315             :         }
   12316             : 
   12317             :         /* Steal possible out parameters to the callers context */
   12318           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
   12319             : 
   12320             :         /* Return result */
   12321           0 :         *result = state->orig.out.result;
   12322             : 
   12323           0 :         tevent_req_received(req);
   12324           0 :         return NT_STATUS_OK;
   12325             : }
   12326             : 
   12327           4 : NTSTATUS dcerpc_samr_OemChangePasswordUser2(struct dcerpc_binding_handle *h,
   12328             :                                             TALLOC_CTX *mem_ctx,
   12329             :                                             struct lsa_AsciiString *_server /* [in] [unique] */,
   12330             :                                             struct lsa_AsciiString *_account /* [in] [ref] */,
   12331             :                                             struct samr_CryptPassword *_password /* [in] [unique] */,
   12332             :                                             struct samr_Password *_hash /* [in] [unique] */,
   12333             :                                             NTSTATUS *result)
   12334             : {
   12335           0 :         struct samr_OemChangePasswordUser2 r;
   12336           0 :         NTSTATUS status;
   12337             : 
   12338             :         /* In parameters */
   12339           4 :         r.in.server = _server;
   12340           4 :         r.in.account = _account;
   12341           4 :         r.in.password = _password;
   12342           4 :         r.in.hash = _hash;
   12343             : 
   12344             :         /* Out parameters */
   12345             : 
   12346             :         /* Result */
   12347           4 :         NDR_ZERO_STRUCT(r.out.result);
   12348             : 
   12349           4 :         status = dcerpc_samr_OemChangePasswordUser2_r(h, mem_ctx, &r);
   12350           4 :         if (!NT_STATUS_IS_OK(status)) {
   12351           0 :                 return status;
   12352             :         }
   12353             : 
   12354             :         /* Return variables */
   12355             : 
   12356             :         /* Return result */
   12357           4 :         *result = r.out.result;
   12358             : 
   12359           4 :         return NT_STATUS_OK;
   12360             : }
   12361             : 
   12362             : struct dcerpc_samr_ChangePasswordUser2_r_state {
   12363             :         TALLOC_CTX *out_mem_ctx;
   12364             : };
   12365             : 
   12366             : static void dcerpc_samr_ChangePasswordUser2_r_done(struct tevent_req *subreq);
   12367             : 
   12368           0 : struct tevent_req *dcerpc_samr_ChangePasswordUser2_r_send(TALLOC_CTX *mem_ctx,
   12369             :         struct tevent_context *ev,
   12370             :         struct dcerpc_binding_handle *h,
   12371             :         struct samr_ChangePasswordUser2 *r)
   12372             : {
   12373           0 :         struct tevent_req *req;
   12374           0 :         struct dcerpc_samr_ChangePasswordUser2_r_state *state;
   12375           0 :         struct tevent_req *subreq;
   12376             : 
   12377           0 :         req = tevent_req_create(mem_ctx, &state,
   12378             :                                 struct dcerpc_samr_ChangePasswordUser2_r_state);
   12379           0 :         if (req == NULL) {
   12380           0 :                 return NULL;
   12381             :         }
   12382             : 
   12383           0 :         state->out_mem_ctx = NULL;
   12384             : 
   12385           0 :         subreq = dcerpc_binding_handle_call_send(state, ev, h,
   12386             :                         NULL, &ndr_table_samr,
   12387             :                         NDR_SAMR_CHANGEPASSWORDUSER2, state, r);
   12388           0 :         if (tevent_req_nomem(subreq, req)) {
   12389           0 :                 return tevent_req_post(req, ev);
   12390             :         }
   12391           0 :         tevent_req_set_callback(subreq, dcerpc_samr_ChangePasswordUser2_r_done, req);
   12392             : 
   12393           0 :         return req;
   12394             : }
   12395             : 
   12396           0 : static void dcerpc_samr_ChangePasswordUser2_r_done(struct tevent_req *subreq)
   12397             : {
   12398           0 :         struct tevent_req *req =
   12399           0 :                 tevent_req_callback_data(subreq,
   12400             :                 struct tevent_req);
   12401           0 :         NTSTATUS status;
   12402             : 
   12403           0 :         status = dcerpc_binding_handle_call_recv(subreq);
   12404           0 :         TALLOC_FREE(subreq);
   12405           0 :         if (tevent_req_nterror(req, status)) {
   12406           0 :                 return;
   12407             :         }
   12408             : 
   12409           0 :         tevent_req_done(req);
   12410             : }
   12411             : 
   12412           0 : NTSTATUS dcerpc_samr_ChangePasswordUser2_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
   12413             : {
   12414           0 :         struct dcerpc_samr_ChangePasswordUser2_r_state *state =
   12415           0 :                 tevent_req_data(req,
   12416             :                 struct dcerpc_samr_ChangePasswordUser2_r_state);
   12417           0 :         NTSTATUS status;
   12418             : 
   12419           0 :         if (tevent_req_is_nterror(req, &status)) {
   12420           0 :                 tevent_req_received(req);
   12421           0 :                 return status;
   12422             :         }
   12423             : 
   12424           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
   12425             : 
   12426           0 :         tevent_req_received(req);
   12427           0 :         return NT_STATUS_OK;
   12428             : }
   12429             : 
   12430         183 : NTSTATUS dcerpc_samr_ChangePasswordUser2_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct samr_ChangePasswordUser2 *r)
   12431             : {
   12432           0 :         NTSTATUS status;
   12433             : 
   12434         183 :         status = dcerpc_binding_handle_call(h,
   12435             :                         NULL, &ndr_table_samr,
   12436             :                         NDR_SAMR_CHANGEPASSWORDUSER2, mem_ctx, r);
   12437             : 
   12438         183 :         return status;
   12439             : }
   12440             : 
   12441             : struct dcerpc_samr_ChangePasswordUser2_state {
   12442             :         struct samr_ChangePasswordUser2 orig;
   12443             :         struct samr_ChangePasswordUser2 tmp;
   12444             :         TALLOC_CTX *out_mem_ctx;
   12445             : };
   12446             : 
   12447             : static void dcerpc_samr_ChangePasswordUser2_done(struct tevent_req *subreq);
   12448             : 
   12449           0 : struct tevent_req *dcerpc_samr_ChangePasswordUser2_send(TALLOC_CTX *mem_ctx,
   12450             :                                                         struct tevent_context *ev,
   12451             :                                                         struct dcerpc_binding_handle *h,
   12452             :                                                         struct lsa_String *_server /* [in] [unique] */,
   12453             :                                                         struct lsa_String *_account /* [in] [ref] */,
   12454             :                                                         struct samr_CryptPassword *_nt_password /* [in] [unique] */,
   12455             :                                                         struct samr_Password *_nt_verifier /* [in] [unique] */,
   12456             :                                                         uint8_t _lm_change /* [in]  */,
   12457             :                                                         struct samr_CryptPassword *_lm_password /* [in] [unique] */,
   12458             :                                                         struct samr_Password *_lm_verifier /* [in] [unique] */)
   12459             : {
   12460           0 :         struct tevent_req *req;
   12461           0 :         struct dcerpc_samr_ChangePasswordUser2_state *state;
   12462           0 :         struct tevent_req *subreq;
   12463             : 
   12464           0 :         req = tevent_req_create(mem_ctx, &state,
   12465             :                                 struct dcerpc_samr_ChangePasswordUser2_state);
   12466           0 :         if (req == NULL) {
   12467           0 :                 return NULL;
   12468             :         }
   12469           0 :         state->out_mem_ctx = NULL;
   12470             : 
   12471             :         /* In parameters */
   12472           0 :         state->orig.in.server = _server;
   12473           0 :         state->orig.in.account = _account;
   12474           0 :         state->orig.in.nt_password = _nt_password;
   12475           0 :         state->orig.in.nt_verifier = _nt_verifier;
   12476           0 :         state->orig.in.lm_change = _lm_change;
   12477           0 :         state->orig.in.lm_password = _lm_password;
   12478           0 :         state->orig.in.lm_verifier = _lm_verifier;
   12479             : 
   12480             :         /* Out parameters */
   12481             : 
   12482             :         /* Result */
   12483           0 :         NDR_ZERO_STRUCT(state->orig.out.result);
   12484             : 
   12485             :         /* make a temporary copy, that we pass to the dispatch function */
   12486           0 :         state->tmp = state->orig;
   12487             : 
   12488           0 :         subreq = dcerpc_samr_ChangePasswordUser2_r_send(state, ev, h, &state->tmp);
   12489           0 :         if (tevent_req_nomem(subreq, req)) {
   12490           0 :                 return tevent_req_post(req, ev);
   12491             :         }
   12492           0 :         tevent_req_set_callback(subreq, dcerpc_samr_ChangePasswordUser2_done, req);
   12493           0 :         return req;
   12494             : }
   12495             : 
   12496           0 : static void dcerpc_samr_ChangePasswordUser2_done(struct tevent_req *subreq)
   12497             : {
   12498           0 :         struct tevent_req *req = tevent_req_callback_data(
   12499             :                 subreq, struct tevent_req);
   12500           0 :         struct dcerpc_samr_ChangePasswordUser2_state *state = tevent_req_data(
   12501             :                 req, struct dcerpc_samr_ChangePasswordUser2_state);
   12502           0 :         NTSTATUS status;
   12503           0 :         TALLOC_CTX *mem_ctx;
   12504             : 
   12505           0 :         if (state->out_mem_ctx) {
   12506           0 :                 mem_ctx = state->out_mem_ctx;
   12507             :         } else {
   12508           0 :                 mem_ctx = state;
   12509             :         }
   12510             : 
   12511           0 :         status = dcerpc_samr_ChangePasswordUser2_r_recv(subreq, mem_ctx);
   12512           0 :         TALLOC_FREE(subreq);
   12513           0 :         if (tevent_req_nterror(req, status)) {
   12514           0 :                 return;
   12515             :         }
   12516             : 
   12517             :         /* Copy out parameters */
   12518             : 
   12519             :         /* Copy result */
   12520           0 :         state->orig.out.result = state->tmp.out.result;
   12521             : 
   12522             :         /* Reset temporary structure */
   12523           0 :         NDR_ZERO_STRUCT(state->tmp);
   12524             : 
   12525           0 :         tevent_req_done(req);
   12526             : }
   12527             : 
   12528           0 : NTSTATUS dcerpc_samr_ChangePasswordUser2_recv(struct tevent_req *req,
   12529             :                                               TALLOC_CTX *mem_ctx,
   12530             :                                               NTSTATUS *result)
   12531             : {
   12532           0 :         struct dcerpc_samr_ChangePasswordUser2_state *state = tevent_req_data(
   12533             :                 req, struct dcerpc_samr_ChangePasswordUser2_state);
   12534           0 :         NTSTATUS status;
   12535             : 
   12536           0 :         if (tevent_req_is_nterror(req, &status)) {
   12537           0 :                 tevent_req_received(req);
   12538           0 :                 return status;
   12539             :         }
   12540             : 
   12541             :         /* Steal possible out parameters to the callers context */
   12542           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
   12543             : 
   12544             :         /* Return result */
   12545           0 :         *result = state->orig.out.result;
   12546             : 
   12547           0 :         tevent_req_received(req);
   12548           0 :         return NT_STATUS_OK;
   12549             : }
   12550             : 
   12551           0 : NTSTATUS dcerpc_samr_ChangePasswordUser2(struct dcerpc_binding_handle *h,
   12552             :                                          TALLOC_CTX *mem_ctx,
   12553             :                                          struct lsa_String *_server /* [in] [unique] */,
   12554             :                                          struct lsa_String *_account /* [in] [ref] */,
   12555             :                                          struct samr_CryptPassword *_nt_password /* [in] [unique] */,
   12556             :                                          struct samr_Password *_nt_verifier /* [in] [unique] */,
   12557             :                                          uint8_t _lm_change /* [in]  */,
   12558             :                                          struct samr_CryptPassword *_lm_password /* [in] [unique] */,
   12559             :                                          struct samr_Password *_lm_verifier /* [in] [unique] */,
   12560             :                                          NTSTATUS *result)
   12561             : {
   12562           0 :         struct samr_ChangePasswordUser2 r;
   12563           0 :         NTSTATUS status;
   12564             : 
   12565             :         /* In parameters */
   12566           0 :         r.in.server = _server;
   12567           0 :         r.in.account = _account;
   12568           0 :         r.in.nt_password = _nt_password;
   12569           0 :         r.in.nt_verifier = _nt_verifier;
   12570           0 :         r.in.lm_change = _lm_change;
   12571           0 :         r.in.lm_password = _lm_password;
   12572           0 :         r.in.lm_verifier = _lm_verifier;
   12573             : 
   12574             :         /* Out parameters */
   12575             : 
   12576             :         /* Result */
   12577           0 :         NDR_ZERO_STRUCT(r.out.result);
   12578             : 
   12579           0 :         status = dcerpc_samr_ChangePasswordUser2_r(h, mem_ctx, &r);
   12580           0 :         if (!NT_STATUS_IS_OK(status)) {
   12581           0 :                 return status;
   12582             :         }
   12583             : 
   12584             :         /* Return variables */
   12585             : 
   12586             :         /* Return result */
   12587           0 :         *result = r.out.result;
   12588             : 
   12589           0 :         return NT_STATUS_OK;
   12590             : }
   12591             : 
   12592             : struct dcerpc_samr_GetDomPwInfo_r_state {
   12593             :         TALLOC_CTX *out_mem_ctx;
   12594             : };
   12595             : 
   12596             : static void dcerpc_samr_GetDomPwInfo_r_done(struct tevent_req *subreq);
   12597             : 
   12598           0 : struct tevent_req *dcerpc_samr_GetDomPwInfo_r_send(TALLOC_CTX *mem_ctx,
   12599             :         struct tevent_context *ev,
   12600             :         struct dcerpc_binding_handle *h,
   12601             :         struct samr_GetDomPwInfo *r)
   12602             : {
   12603           0 :         struct tevent_req *req;
   12604           0 :         struct dcerpc_samr_GetDomPwInfo_r_state *state;
   12605           0 :         struct tevent_req *subreq;
   12606             : 
   12607           0 :         req = tevent_req_create(mem_ctx, &state,
   12608             :                                 struct dcerpc_samr_GetDomPwInfo_r_state);
   12609           0 :         if (req == NULL) {
   12610           0 :                 return NULL;
   12611             :         }
   12612             : 
   12613           0 :         state->out_mem_ctx = talloc_new(state);
   12614           0 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
   12615           0 :                 return tevent_req_post(req, ev);
   12616             :         }
   12617             : 
   12618           0 :         subreq = dcerpc_binding_handle_call_send(state, ev, h,
   12619             :                         NULL, &ndr_table_samr,
   12620           0 :                         NDR_SAMR_GETDOMPWINFO, state->out_mem_ctx, r);
   12621           0 :         if (tevent_req_nomem(subreq, req)) {
   12622           0 :                 return tevent_req_post(req, ev);
   12623             :         }
   12624           0 :         tevent_req_set_callback(subreq, dcerpc_samr_GetDomPwInfo_r_done, req);
   12625             : 
   12626           0 :         return req;
   12627             : }
   12628             : 
   12629           0 : static void dcerpc_samr_GetDomPwInfo_r_done(struct tevent_req *subreq)
   12630             : {
   12631           0 :         struct tevent_req *req =
   12632           0 :                 tevent_req_callback_data(subreq,
   12633             :                 struct tevent_req);
   12634           0 :         NTSTATUS status;
   12635             : 
   12636           0 :         status = dcerpc_binding_handle_call_recv(subreq);
   12637           0 :         TALLOC_FREE(subreq);
   12638           0 :         if (tevent_req_nterror(req, status)) {
   12639           0 :                 return;
   12640             :         }
   12641             : 
   12642           0 :         tevent_req_done(req);
   12643             : }
   12644             : 
   12645           0 : NTSTATUS dcerpc_samr_GetDomPwInfo_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
   12646             : {
   12647           0 :         struct dcerpc_samr_GetDomPwInfo_r_state *state =
   12648           0 :                 tevent_req_data(req,
   12649             :                 struct dcerpc_samr_GetDomPwInfo_r_state);
   12650           0 :         NTSTATUS status;
   12651             : 
   12652           0 :         if (tevent_req_is_nterror(req, &status)) {
   12653           0 :                 tevent_req_received(req);
   12654           0 :                 return status;
   12655             :         }
   12656             : 
   12657           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
   12658             : 
   12659           0 :         tevent_req_received(req);
   12660           0 :         return NT_STATUS_OK;
   12661             : }
   12662             : 
   12663        3276 : NTSTATUS dcerpc_samr_GetDomPwInfo_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct samr_GetDomPwInfo *r)
   12664             : {
   12665         480 :         NTSTATUS status;
   12666             : 
   12667        3276 :         status = dcerpc_binding_handle_call(h,
   12668             :                         NULL, &ndr_table_samr,
   12669             :                         NDR_SAMR_GETDOMPWINFO, mem_ctx, r);
   12670             : 
   12671        3276 :         return status;
   12672             : }
   12673             : 
   12674             : struct dcerpc_samr_GetDomPwInfo_state {
   12675             :         struct samr_GetDomPwInfo orig;
   12676             :         struct samr_GetDomPwInfo tmp;
   12677             :         TALLOC_CTX *out_mem_ctx;
   12678             : };
   12679             : 
   12680             : static void dcerpc_samr_GetDomPwInfo_done(struct tevent_req *subreq);
   12681             : 
   12682           0 : struct tevent_req *dcerpc_samr_GetDomPwInfo_send(TALLOC_CTX *mem_ctx,
   12683             :                                                  struct tevent_context *ev,
   12684             :                                                  struct dcerpc_binding_handle *h,
   12685             :                                                  struct lsa_String *_domain_name /* [in] [unique] */,
   12686             :                                                  struct samr_PwInfo *_info /* [out] [ref] */)
   12687             : {
   12688           0 :         struct tevent_req *req;
   12689           0 :         struct dcerpc_samr_GetDomPwInfo_state *state;
   12690           0 :         struct tevent_req *subreq;
   12691             : 
   12692           0 :         req = tevent_req_create(mem_ctx, &state,
   12693             :                                 struct dcerpc_samr_GetDomPwInfo_state);
   12694           0 :         if (req == NULL) {
   12695           0 :                 return NULL;
   12696             :         }
   12697           0 :         state->out_mem_ctx = NULL;
   12698             : 
   12699             :         /* In parameters */
   12700           0 :         state->orig.in.domain_name = _domain_name;
   12701             : 
   12702             :         /* Out parameters */
   12703           0 :         state->orig.out.info = _info;
   12704             : 
   12705             :         /* Result */
   12706           0 :         NDR_ZERO_STRUCT(state->orig.out.result);
   12707             : 
   12708           0 :         state->out_mem_ctx = talloc_named_const(state, 0,
   12709             :                              "dcerpc_samr_GetDomPwInfo_out_memory");
   12710           0 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
   12711           0 :                 return tevent_req_post(req, ev);
   12712             :         }
   12713             : 
   12714             :         /* make a temporary copy, that we pass to the dispatch function */
   12715           0 :         state->tmp = state->orig;
   12716             : 
   12717           0 :         subreq = dcerpc_samr_GetDomPwInfo_r_send(state, ev, h, &state->tmp);
   12718           0 :         if (tevent_req_nomem(subreq, req)) {
   12719           0 :                 return tevent_req_post(req, ev);
   12720             :         }
   12721           0 :         tevent_req_set_callback(subreq, dcerpc_samr_GetDomPwInfo_done, req);
   12722           0 :         return req;
   12723             : }
   12724             : 
   12725           0 : static void dcerpc_samr_GetDomPwInfo_done(struct tevent_req *subreq)
   12726             : {
   12727           0 :         struct tevent_req *req = tevent_req_callback_data(
   12728             :                 subreq, struct tevent_req);
   12729           0 :         struct dcerpc_samr_GetDomPwInfo_state *state = tevent_req_data(
   12730             :                 req, struct dcerpc_samr_GetDomPwInfo_state);
   12731           0 :         NTSTATUS status;
   12732           0 :         TALLOC_CTX *mem_ctx;
   12733             : 
   12734           0 :         if (state->out_mem_ctx) {
   12735           0 :                 mem_ctx = state->out_mem_ctx;
   12736             :         } else {
   12737           0 :                 mem_ctx = state;
   12738             :         }
   12739             : 
   12740           0 :         status = dcerpc_samr_GetDomPwInfo_r_recv(subreq, mem_ctx);
   12741           0 :         TALLOC_FREE(subreq);
   12742           0 :         if (tevent_req_nterror(req, status)) {
   12743           0 :                 return;
   12744             :         }
   12745             : 
   12746             :         /* Copy out parameters */
   12747           0 :         *state->orig.out.info = *state->tmp.out.info;
   12748             : 
   12749             :         /* Copy result */
   12750           0 :         state->orig.out.result = state->tmp.out.result;
   12751             : 
   12752             :         /* Reset temporary structure */
   12753           0 :         NDR_ZERO_STRUCT(state->tmp);
   12754             : 
   12755           0 :         tevent_req_done(req);
   12756             : }
   12757             : 
   12758           0 : NTSTATUS dcerpc_samr_GetDomPwInfo_recv(struct tevent_req *req,
   12759             :                                        TALLOC_CTX *mem_ctx,
   12760             :                                        NTSTATUS *result)
   12761             : {
   12762           0 :         struct dcerpc_samr_GetDomPwInfo_state *state = tevent_req_data(
   12763             :                 req, struct dcerpc_samr_GetDomPwInfo_state);
   12764           0 :         NTSTATUS status;
   12765             : 
   12766           0 :         if (tevent_req_is_nterror(req, &status)) {
   12767           0 :                 tevent_req_received(req);
   12768           0 :                 return status;
   12769             :         }
   12770             : 
   12771             :         /* Steal possible out parameters to the callers context */
   12772           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
   12773             : 
   12774             :         /* Return result */
   12775           0 :         *result = state->orig.out.result;
   12776             : 
   12777           0 :         tevent_req_received(req);
   12778           0 :         return NT_STATUS_OK;
   12779             : }
   12780             : 
   12781           0 : NTSTATUS dcerpc_samr_GetDomPwInfo(struct dcerpc_binding_handle *h,
   12782             :                                   TALLOC_CTX *mem_ctx,
   12783             :                                   struct lsa_String *_domain_name /* [in] [unique] */,
   12784             :                                   struct samr_PwInfo *_info /* [out] [ref] */,
   12785             :                                   NTSTATUS *result)
   12786             : {
   12787           0 :         struct samr_GetDomPwInfo r;
   12788           0 :         NTSTATUS status;
   12789             : 
   12790             :         /* In parameters */
   12791           0 :         r.in.domain_name = _domain_name;
   12792             : 
   12793             :         /* Out parameters */
   12794           0 :         r.out.info = _info;
   12795             : 
   12796             :         /* Result */
   12797           0 :         NDR_ZERO_STRUCT(r.out.result);
   12798             : 
   12799           0 :         status = dcerpc_samr_GetDomPwInfo_r(h, mem_ctx, &r);
   12800           0 :         if (!NT_STATUS_IS_OK(status)) {
   12801           0 :                 return status;
   12802             :         }
   12803             : 
   12804             :         /* Return variables */
   12805           0 :         *_info = *r.out.info;
   12806             : 
   12807             :         /* Return result */
   12808           0 :         *result = r.out.result;
   12809             : 
   12810           0 :         return NT_STATUS_OK;
   12811             : }
   12812             : 
   12813             : struct dcerpc_samr_Connect2_r_state {
   12814             :         TALLOC_CTX *out_mem_ctx;
   12815             : };
   12816             : 
   12817             : static void dcerpc_samr_Connect2_r_done(struct tevent_req *subreq);
   12818             : 
   12819           0 : struct tevent_req *dcerpc_samr_Connect2_r_send(TALLOC_CTX *mem_ctx,
   12820             :         struct tevent_context *ev,
   12821             :         struct dcerpc_binding_handle *h,
   12822             :         struct samr_Connect2 *r)
   12823             : {
   12824           0 :         struct tevent_req *req;
   12825           0 :         struct dcerpc_samr_Connect2_r_state *state;
   12826           0 :         struct tevent_req *subreq;
   12827             : 
   12828           0 :         req = tevent_req_create(mem_ctx, &state,
   12829             :                                 struct dcerpc_samr_Connect2_r_state);
   12830           0 :         if (req == NULL) {
   12831           0 :                 return NULL;
   12832             :         }
   12833             : 
   12834           0 :         state->out_mem_ctx = talloc_new(state);
   12835           0 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
   12836           0 :                 return tevent_req_post(req, ev);
   12837             :         }
   12838             : 
   12839           0 :         subreq = dcerpc_binding_handle_call_send(state, ev, h,
   12840             :                         NULL, &ndr_table_samr,
   12841           0 :                         NDR_SAMR_CONNECT2, state->out_mem_ctx, r);
   12842           0 :         if (tevent_req_nomem(subreq, req)) {
   12843           0 :                 return tevent_req_post(req, ev);
   12844             :         }
   12845           0 :         tevent_req_set_callback(subreq, dcerpc_samr_Connect2_r_done, req);
   12846             : 
   12847           0 :         return req;
   12848             : }
   12849             : 
   12850           0 : static void dcerpc_samr_Connect2_r_done(struct tevent_req *subreq)
   12851             : {
   12852           0 :         struct tevent_req *req =
   12853           0 :                 tevent_req_callback_data(subreq,
   12854             :                 struct tevent_req);
   12855           0 :         NTSTATUS status;
   12856             : 
   12857           0 :         status = dcerpc_binding_handle_call_recv(subreq);
   12858           0 :         TALLOC_FREE(subreq);
   12859           0 :         if (tevent_req_nterror(req, status)) {
   12860           0 :                 return;
   12861             :         }
   12862             : 
   12863           0 :         tevent_req_done(req);
   12864             : }
   12865             : 
   12866           0 : NTSTATUS dcerpc_samr_Connect2_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
   12867             : {
   12868           0 :         struct dcerpc_samr_Connect2_r_state *state =
   12869           0 :                 tevent_req_data(req,
   12870             :                 struct dcerpc_samr_Connect2_r_state);
   12871           0 :         NTSTATUS status;
   12872             : 
   12873           0 :         if (tevent_req_is_nterror(req, &status)) {
   12874           0 :                 tevent_req_received(req);
   12875           0 :                 return status;
   12876             :         }
   12877             : 
   12878           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
   12879             : 
   12880           0 :         tevent_req_received(req);
   12881           0 :         return NT_STATUS_OK;
   12882             : }
   12883             : 
   12884         876 : NTSTATUS dcerpc_samr_Connect2_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct samr_Connect2 *r)
   12885             : {
   12886           0 :         NTSTATUS status;
   12887             : 
   12888         876 :         status = dcerpc_binding_handle_call(h,
   12889             :                         NULL, &ndr_table_samr,
   12890             :                         NDR_SAMR_CONNECT2, mem_ctx, r);
   12891             : 
   12892         876 :         return status;
   12893             : }
   12894             : 
   12895             : struct dcerpc_samr_Connect2_state {
   12896             :         struct samr_Connect2 orig;
   12897             :         struct samr_Connect2 tmp;
   12898             :         TALLOC_CTX *out_mem_ctx;
   12899             : };
   12900             : 
   12901             : static void dcerpc_samr_Connect2_done(struct tevent_req *subreq);
   12902             : 
   12903           0 : struct tevent_req *dcerpc_samr_Connect2_send(TALLOC_CTX *mem_ctx,
   12904             :                                              struct tevent_context *ev,
   12905             :                                              struct dcerpc_binding_handle *h,
   12906             :                                              const char *_system_name /* [in] [charset(UTF16),unique] */,
   12907             :                                              uint32_t _access_mask /* [in]  */,
   12908             :                                              struct policy_handle *_connect_handle /* [out] [ref] */)
   12909             : {
   12910           0 :         struct tevent_req *req;
   12911           0 :         struct dcerpc_samr_Connect2_state *state;
   12912           0 :         struct tevent_req *subreq;
   12913             : 
   12914           0 :         req = tevent_req_create(mem_ctx, &state,
   12915             :                                 struct dcerpc_samr_Connect2_state);
   12916           0 :         if (req == NULL) {
   12917           0 :                 return NULL;
   12918             :         }
   12919           0 :         state->out_mem_ctx = NULL;
   12920             : 
   12921             :         /* In parameters */
   12922           0 :         state->orig.in.system_name = _system_name;
   12923           0 :         state->orig.in.access_mask = _access_mask;
   12924             : 
   12925             :         /* Out parameters */
   12926           0 :         state->orig.out.connect_handle = _connect_handle;
   12927             : 
   12928             :         /* Result */
   12929           0 :         NDR_ZERO_STRUCT(state->orig.out.result);
   12930             : 
   12931           0 :         state->out_mem_ctx = talloc_named_const(state, 0,
   12932             :                              "dcerpc_samr_Connect2_out_memory");
   12933           0 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
   12934           0 :                 return tevent_req_post(req, ev);
   12935             :         }
   12936             : 
   12937             :         /* make a temporary copy, that we pass to the dispatch function */
   12938           0 :         state->tmp = state->orig;
   12939             : 
   12940           0 :         subreq = dcerpc_samr_Connect2_r_send(state, ev, h, &state->tmp);
   12941           0 :         if (tevent_req_nomem(subreq, req)) {
   12942           0 :                 return tevent_req_post(req, ev);
   12943             :         }
   12944           0 :         tevent_req_set_callback(subreq, dcerpc_samr_Connect2_done, req);
   12945           0 :         return req;
   12946             : }
   12947             : 
   12948           0 : static void dcerpc_samr_Connect2_done(struct tevent_req *subreq)
   12949             : {
   12950           0 :         struct tevent_req *req = tevent_req_callback_data(
   12951             :                 subreq, struct tevent_req);
   12952           0 :         struct dcerpc_samr_Connect2_state *state = tevent_req_data(
   12953             :                 req, struct dcerpc_samr_Connect2_state);
   12954           0 :         NTSTATUS status;
   12955           0 :         TALLOC_CTX *mem_ctx;
   12956             : 
   12957           0 :         if (state->out_mem_ctx) {
   12958           0 :                 mem_ctx = state->out_mem_ctx;
   12959             :         } else {
   12960           0 :                 mem_ctx = state;
   12961             :         }
   12962             : 
   12963           0 :         status = dcerpc_samr_Connect2_r_recv(subreq, mem_ctx);
   12964           0 :         TALLOC_FREE(subreq);
   12965           0 :         if (tevent_req_nterror(req, status)) {
   12966           0 :                 return;
   12967             :         }
   12968             : 
   12969             :         /* Copy out parameters */
   12970           0 :         *state->orig.out.connect_handle = *state->tmp.out.connect_handle;
   12971             : 
   12972             :         /* Copy result */
   12973           0 :         state->orig.out.result = state->tmp.out.result;
   12974             : 
   12975             :         /* Reset temporary structure */
   12976           0 :         NDR_ZERO_STRUCT(state->tmp);
   12977             : 
   12978           0 :         tevent_req_done(req);
   12979             : }
   12980             : 
   12981           0 : NTSTATUS dcerpc_samr_Connect2_recv(struct tevent_req *req,
   12982             :                                    TALLOC_CTX *mem_ctx,
   12983             :                                    NTSTATUS *result)
   12984             : {
   12985           0 :         struct dcerpc_samr_Connect2_state *state = tevent_req_data(
   12986             :                 req, struct dcerpc_samr_Connect2_state);
   12987           0 :         NTSTATUS status;
   12988             : 
   12989           0 :         if (tevent_req_is_nterror(req, &status)) {
   12990           0 :                 tevent_req_received(req);
   12991           0 :                 return status;
   12992             :         }
   12993             : 
   12994             :         /* Steal possible out parameters to the callers context */
   12995           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
   12996             : 
   12997             :         /* Return result */
   12998           0 :         *result = state->orig.out.result;
   12999             : 
   13000           0 :         tevent_req_received(req);
   13001           0 :         return NT_STATUS_OK;
   13002             : }
   13003             : 
   13004         247 : NTSTATUS dcerpc_samr_Connect2(struct dcerpc_binding_handle *h,
   13005             :                               TALLOC_CTX *mem_ctx,
   13006             :                               const char *_system_name /* [in] [charset(UTF16),unique] */,
   13007             :                               uint32_t _access_mask /* [in]  */,
   13008             :                               struct policy_handle *_connect_handle /* [out] [ref] */,
   13009             :                               NTSTATUS *result)
   13010             : {
   13011           0 :         struct samr_Connect2 r;
   13012           0 :         NTSTATUS status;
   13013             : 
   13014             :         /* In parameters */
   13015         247 :         r.in.system_name = _system_name;
   13016         247 :         r.in.access_mask = _access_mask;
   13017             : 
   13018             :         /* Out parameters */
   13019         247 :         r.out.connect_handle = _connect_handle;
   13020             : 
   13021             :         /* Result */
   13022         247 :         NDR_ZERO_STRUCT(r.out.result);
   13023             : 
   13024         247 :         status = dcerpc_samr_Connect2_r(h, mem_ctx, &r);
   13025         247 :         if (!NT_STATUS_IS_OK(status)) {
   13026           0 :                 return status;
   13027             :         }
   13028             : 
   13029             :         /* Return variables */
   13030         247 :         *_connect_handle = *r.out.connect_handle;
   13031             : 
   13032             :         /* Return result */
   13033         247 :         *result = r.out.result;
   13034             : 
   13035         247 :         return NT_STATUS_OK;
   13036             : }
   13037             : 
   13038             : struct dcerpc_samr_SetUserInfo2_r_state {
   13039             :         TALLOC_CTX *out_mem_ctx;
   13040             : };
   13041             : 
   13042             : static void dcerpc_samr_SetUserInfo2_r_done(struct tevent_req *subreq);
   13043             : 
   13044           0 : struct tevent_req *dcerpc_samr_SetUserInfo2_r_send(TALLOC_CTX *mem_ctx,
   13045             :         struct tevent_context *ev,
   13046             :         struct dcerpc_binding_handle *h,
   13047             :         struct samr_SetUserInfo2 *r)
   13048             : {
   13049           0 :         struct tevent_req *req;
   13050           0 :         struct dcerpc_samr_SetUserInfo2_r_state *state;
   13051           0 :         struct tevent_req *subreq;
   13052             : 
   13053           0 :         req = tevent_req_create(mem_ctx, &state,
   13054             :                                 struct dcerpc_samr_SetUserInfo2_r_state);
   13055           0 :         if (req == NULL) {
   13056           0 :                 return NULL;
   13057             :         }
   13058             : 
   13059           0 :         state->out_mem_ctx = NULL;
   13060             : 
   13061           0 :         subreq = dcerpc_binding_handle_call_send(state, ev, h,
   13062             :                         NULL, &ndr_table_samr,
   13063             :                         NDR_SAMR_SETUSERINFO2, state, r);
   13064           0 :         if (tevent_req_nomem(subreq, req)) {
   13065           0 :                 return tevent_req_post(req, ev);
   13066             :         }
   13067           0 :         tevent_req_set_callback(subreq, dcerpc_samr_SetUserInfo2_r_done, req);
   13068             : 
   13069           0 :         return req;
   13070             : }
   13071             : 
   13072           0 : static void dcerpc_samr_SetUserInfo2_r_done(struct tevent_req *subreq)
   13073             : {
   13074           0 :         struct tevent_req *req =
   13075           0 :                 tevent_req_callback_data(subreq,
   13076             :                 struct tevent_req);
   13077           0 :         NTSTATUS status;
   13078             : 
   13079           0 :         status = dcerpc_binding_handle_call_recv(subreq);
   13080           0 :         TALLOC_FREE(subreq);
   13081           0 :         if (tevent_req_nterror(req, status)) {
   13082           0 :                 return;
   13083             :         }
   13084             : 
   13085           0 :         tevent_req_done(req);
   13086             : }
   13087             : 
   13088           0 : NTSTATUS dcerpc_samr_SetUserInfo2_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
   13089             : {
   13090           0 :         struct dcerpc_samr_SetUserInfo2_r_state *state =
   13091           0 :                 tevent_req_data(req,
   13092             :                 struct dcerpc_samr_SetUserInfo2_r_state);
   13093           0 :         NTSTATUS status;
   13094             : 
   13095           0 :         if (tevent_req_is_nterror(req, &status)) {
   13096           0 :                 tevent_req_received(req);
   13097           0 :                 return status;
   13098             :         }
   13099             : 
   13100           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
   13101             : 
   13102           0 :         tevent_req_received(req);
   13103           0 :         return NT_STATUS_OK;
   13104             : }
   13105             : 
   13106        1912 : NTSTATUS dcerpc_samr_SetUserInfo2_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct samr_SetUserInfo2 *r)
   13107             : {
   13108          72 :         NTSTATUS status;
   13109             : 
   13110        1912 :         status = dcerpc_binding_handle_call(h,
   13111             :                         NULL, &ndr_table_samr,
   13112             :                         NDR_SAMR_SETUSERINFO2, mem_ctx, r);
   13113             : 
   13114        1912 :         return status;
   13115             : }
   13116             : 
   13117             : struct dcerpc_samr_SetUserInfo2_state {
   13118             :         struct samr_SetUserInfo2 orig;
   13119             :         struct samr_SetUserInfo2 tmp;
   13120             :         TALLOC_CTX *out_mem_ctx;
   13121             : };
   13122             : 
   13123             : static void dcerpc_samr_SetUserInfo2_done(struct tevent_req *subreq);
   13124             : 
   13125           0 : struct tevent_req *dcerpc_samr_SetUserInfo2_send(TALLOC_CTX *mem_ctx,
   13126             :                                                  struct tevent_context *ev,
   13127             :                                                  struct dcerpc_binding_handle *h,
   13128             :                                                  struct policy_handle *_user_handle /* [in] [ref] */,
   13129             :                                                  enum samr_UserInfoLevel _level /* [in]  */,
   13130             :                                                  union samr_UserInfo *_info /* [in] [ref,switch_is(level)] */)
   13131             : {
   13132           0 :         struct tevent_req *req;
   13133           0 :         struct dcerpc_samr_SetUserInfo2_state *state;
   13134           0 :         struct tevent_req *subreq;
   13135             : 
   13136           0 :         req = tevent_req_create(mem_ctx, &state,
   13137             :                                 struct dcerpc_samr_SetUserInfo2_state);
   13138           0 :         if (req == NULL) {
   13139           0 :                 return NULL;
   13140             :         }
   13141           0 :         state->out_mem_ctx = NULL;
   13142             : 
   13143             :         /* In parameters */
   13144           0 :         state->orig.in.user_handle = _user_handle;
   13145           0 :         state->orig.in.level = _level;
   13146           0 :         state->orig.in.info = _info;
   13147             : 
   13148             :         /* Out parameters */
   13149             : 
   13150             :         /* Result */
   13151           0 :         NDR_ZERO_STRUCT(state->orig.out.result);
   13152             : 
   13153             :         /* make a temporary copy, that we pass to the dispatch function */
   13154           0 :         state->tmp = state->orig;
   13155             : 
   13156           0 :         subreq = dcerpc_samr_SetUserInfo2_r_send(state, ev, h, &state->tmp);
   13157           0 :         if (tevent_req_nomem(subreq, req)) {
   13158           0 :                 return tevent_req_post(req, ev);
   13159             :         }
   13160           0 :         tevent_req_set_callback(subreq, dcerpc_samr_SetUserInfo2_done, req);
   13161           0 :         return req;
   13162             : }
   13163             : 
   13164           0 : static void dcerpc_samr_SetUserInfo2_done(struct tevent_req *subreq)
   13165             : {
   13166           0 :         struct tevent_req *req = tevent_req_callback_data(
   13167             :                 subreq, struct tevent_req);
   13168           0 :         struct dcerpc_samr_SetUserInfo2_state *state = tevent_req_data(
   13169             :                 req, struct dcerpc_samr_SetUserInfo2_state);
   13170           0 :         NTSTATUS status;
   13171           0 :         TALLOC_CTX *mem_ctx;
   13172             : 
   13173           0 :         if (state->out_mem_ctx) {
   13174           0 :                 mem_ctx = state->out_mem_ctx;
   13175             :         } else {
   13176           0 :                 mem_ctx = state;
   13177             :         }
   13178             : 
   13179           0 :         status = dcerpc_samr_SetUserInfo2_r_recv(subreq, mem_ctx);
   13180           0 :         TALLOC_FREE(subreq);
   13181           0 :         if (tevent_req_nterror(req, status)) {
   13182           0 :                 return;
   13183             :         }
   13184             : 
   13185             :         /* Copy out parameters */
   13186             : 
   13187             :         /* Copy result */
   13188           0 :         state->orig.out.result = state->tmp.out.result;
   13189             : 
   13190             :         /* Reset temporary structure */
   13191           0 :         NDR_ZERO_STRUCT(state->tmp);
   13192             : 
   13193           0 :         tevent_req_done(req);
   13194             : }
   13195             : 
   13196           0 : NTSTATUS dcerpc_samr_SetUserInfo2_recv(struct tevent_req *req,
   13197             :                                        TALLOC_CTX *mem_ctx,
   13198             :                                        NTSTATUS *result)
   13199             : {
   13200           0 :         struct dcerpc_samr_SetUserInfo2_state *state = tevent_req_data(
   13201             :                 req, struct dcerpc_samr_SetUserInfo2_state);
   13202           0 :         NTSTATUS status;
   13203             : 
   13204           0 :         if (tevent_req_is_nterror(req, &status)) {
   13205           0 :                 tevent_req_received(req);
   13206           0 :                 return status;
   13207             :         }
   13208             : 
   13209             :         /* Steal possible out parameters to the callers context */
   13210           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
   13211             : 
   13212             :         /* Return result */
   13213           0 :         *result = state->orig.out.result;
   13214             : 
   13215           0 :         tevent_req_received(req);
   13216           0 :         return NT_STATUS_OK;
   13217             : }
   13218             : 
   13219          32 : NTSTATUS dcerpc_samr_SetUserInfo2(struct dcerpc_binding_handle *h,
   13220             :                                   TALLOC_CTX *mem_ctx,
   13221             :                                   struct policy_handle *_user_handle /* [in] [ref] */,
   13222             :                                   enum samr_UserInfoLevel _level /* [in]  */,
   13223             :                                   union samr_UserInfo *_info /* [in] [ref,switch_is(level)] */,
   13224             :                                   NTSTATUS *result)
   13225             : {
   13226           0 :         struct samr_SetUserInfo2 r;
   13227           0 :         NTSTATUS status;
   13228             : 
   13229             :         /* In parameters */
   13230          32 :         r.in.user_handle = _user_handle;
   13231          32 :         r.in.level = _level;
   13232          32 :         r.in.info = _info;
   13233             : 
   13234             :         /* Out parameters */
   13235             : 
   13236             :         /* Result */
   13237          32 :         NDR_ZERO_STRUCT(r.out.result);
   13238             : 
   13239          32 :         status = dcerpc_samr_SetUserInfo2_r(h, mem_ctx, &r);
   13240          32 :         if (!NT_STATUS_IS_OK(status)) {
   13241           0 :                 return status;
   13242             :         }
   13243             : 
   13244             :         /* Return variables */
   13245             : 
   13246             :         /* Return result */
   13247          32 :         *result = r.out.result;
   13248             : 
   13249          32 :         return NT_STATUS_OK;
   13250             : }
   13251             : 
   13252             : struct dcerpc_samr_SetBootKeyInformation_r_state {
   13253             :         TALLOC_CTX *out_mem_ctx;
   13254             : };
   13255             : 
   13256             : static void dcerpc_samr_SetBootKeyInformation_r_done(struct tevent_req *subreq);
   13257             : 
   13258           0 : struct tevent_req *dcerpc_samr_SetBootKeyInformation_r_send(TALLOC_CTX *mem_ctx,
   13259             :         struct tevent_context *ev,
   13260             :         struct dcerpc_binding_handle *h,
   13261             :         struct samr_SetBootKeyInformation *r)
   13262             : {
   13263           0 :         struct tevent_req *req;
   13264           0 :         struct dcerpc_samr_SetBootKeyInformation_r_state *state;
   13265           0 :         struct tevent_req *subreq;
   13266             : 
   13267           0 :         req = tevent_req_create(mem_ctx, &state,
   13268             :                                 struct dcerpc_samr_SetBootKeyInformation_r_state);
   13269           0 :         if (req == NULL) {
   13270           0 :                 return NULL;
   13271             :         }
   13272             : 
   13273           0 :         state->out_mem_ctx = NULL;
   13274             : 
   13275           0 :         subreq = dcerpc_binding_handle_call_send(state, ev, h,
   13276             :                         NULL, &ndr_table_samr,
   13277             :                         NDR_SAMR_SETBOOTKEYINFORMATION, state, r);
   13278           0 :         if (tevent_req_nomem(subreq, req)) {
   13279           0 :                 return tevent_req_post(req, ev);
   13280             :         }
   13281           0 :         tevent_req_set_callback(subreq, dcerpc_samr_SetBootKeyInformation_r_done, req);
   13282             : 
   13283           0 :         return req;
   13284             : }
   13285             : 
   13286           0 : static void dcerpc_samr_SetBootKeyInformation_r_done(struct tevent_req *subreq)
   13287             : {
   13288           0 :         struct tevent_req *req =
   13289           0 :                 tevent_req_callback_data(subreq,
   13290             :                 struct tevent_req);
   13291           0 :         NTSTATUS status;
   13292             : 
   13293           0 :         status = dcerpc_binding_handle_call_recv(subreq);
   13294           0 :         TALLOC_FREE(subreq);
   13295           0 :         if (tevent_req_nterror(req, status)) {
   13296           0 :                 return;
   13297             :         }
   13298             : 
   13299           0 :         tevent_req_done(req);
   13300             : }
   13301             : 
   13302           0 : NTSTATUS dcerpc_samr_SetBootKeyInformation_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
   13303             : {
   13304           0 :         struct dcerpc_samr_SetBootKeyInformation_r_state *state =
   13305           0 :                 tevent_req_data(req,
   13306             :                 struct dcerpc_samr_SetBootKeyInformation_r_state);
   13307           0 :         NTSTATUS status;
   13308             : 
   13309           0 :         if (tevent_req_is_nterror(req, &status)) {
   13310           0 :                 tevent_req_received(req);
   13311           0 :                 return status;
   13312             :         }
   13313             : 
   13314           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
   13315             : 
   13316           0 :         tevent_req_received(req);
   13317           0 :         return NT_STATUS_OK;
   13318             : }
   13319             : 
   13320           0 : NTSTATUS dcerpc_samr_SetBootKeyInformation_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct samr_SetBootKeyInformation *r)
   13321             : {
   13322           0 :         NTSTATUS status;
   13323             : 
   13324           0 :         status = dcerpc_binding_handle_call(h,
   13325             :                         NULL, &ndr_table_samr,
   13326             :                         NDR_SAMR_SETBOOTKEYINFORMATION, mem_ctx, r);
   13327             : 
   13328           0 :         return status;
   13329             : }
   13330             : 
   13331             : struct dcerpc_samr_SetBootKeyInformation_state {
   13332             :         struct samr_SetBootKeyInformation orig;
   13333             :         struct samr_SetBootKeyInformation tmp;
   13334             :         TALLOC_CTX *out_mem_ctx;
   13335             : };
   13336             : 
   13337             : static void dcerpc_samr_SetBootKeyInformation_done(struct tevent_req *subreq);
   13338             : 
   13339           0 : struct tevent_req *dcerpc_samr_SetBootKeyInformation_send(TALLOC_CTX *mem_ctx,
   13340             :                                                           struct tevent_context *ev,
   13341             :                                                           struct dcerpc_binding_handle *h,
   13342             :                                                           struct policy_handle *_connect_handle /* [in] [ref] */,
   13343             :                                                           uint32_t _unknown1 /* [in]  */,
   13344             :                                                           uint32_t _unknown2 /* [in]  */,
   13345             :                                                           uint32_t _unknown3 /* [in]  */)
   13346             : {
   13347           0 :         struct tevent_req *req;
   13348           0 :         struct dcerpc_samr_SetBootKeyInformation_state *state;
   13349           0 :         struct tevent_req *subreq;
   13350             : 
   13351           0 :         req = tevent_req_create(mem_ctx, &state,
   13352             :                                 struct dcerpc_samr_SetBootKeyInformation_state);
   13353           0 :         if (req == NULL) {
   13354           0 :                 return NULL;
   13355             :         }
   13356           0 :         state->out_mem_ctx = NULL;
   13357             : 
   13358             :         /* In parameters */
   13359           0 :         state->orig.in.connect_handle = _connect_handle;
   13360           0 :         state->orig.in.unknown1 = _unknown1;
   13361           0 :         state->orig.in.unknown2 = _unknown2;
   13362           0 :         state->orig.in.unknown3 = _unknown3;
   13363             : 
   13364             :         /* Out parameters */
   13365             : 
   13366             :         /* Result */
   13367           0 :         NDR_ZERO_STRUCT(state->orig.out.result);
   13368             : 
   13369             :         /* make a temporary copy, that we pass to the dispatch function */
   13370           0 :         state->tmp = state->orig;
   13371             : 
   13372           0 :         subreq = dcerpc_samr_SetBootKeyInformation_r_send(state, ev, h, &state->tmp);
   13373           0 :         if (tevent_req_nomem(subreq, req)) {
   13374           0 :                 return tevent_req_post(req, ev);
   13375             :         }
   13376           0 :         tevent_req_set_callback(subreq, dcerpc_samr_SetBootKeyInformation_done, req);
   13377           0 :         return req;
   13378             : }
   13379             : 
   13380           0 : static void dcerpc_samr_SetBootKeyInformation_done(struct tevent_req *subreq)
   13381             : {
   13382           0 :         struct tevent_req *req = tevent_req_callback_data(
   13383             :                 subreq, struct tevent_req);
   13384           0 :         struct dcerpc_samr_SetBootKeyInformation_state *state = tevent_req_data(
   13385             :                 req, struct dcerpc_samr_SetBootKeyInformation_state);
   13386           0 :         NTSTATUS status;
   13387           0 :         TALLOC_CTX *mem_ctx;
   13388             : 
   13389           0 :         if (state->out_mem_ctx) {
   13390           0 :                 mem_ctx = state->out_mem_ctx;
   13391             :         } else {
   13392           0 :                 mem_ctx = state;
   13393             :         }
   13394             : 
   13395           0 :         status = dcerpc_samr_SetBootKeyInformation_r_recv(subreq, mem_ctx);
   13396           0 :         TALLOC_FREE(subreq);
   13397           0 :         if (tevent_req_nterror(req, status)) {
   13398           0 :                 return;
   13399             :         }
   13400             : 
   13401             :         /* Copy out parameters */
   13402             : 
   13403             :         /* Copy result */
   13404           0 :         state->orig.out.result = state->tmp.out.result;
   13405             : 
   13406             :         /* Reset temporary structure */
   13407           0 :         NDR_ZERO_STRUCT(state->tmp);
   13408             : 
   13409           0 :         tevent_req_done(req);
   13410             : }
   13411             : 
   13412           0 : NTSTATUS dcerpc_samr_SetBootKeyInformation_recv(struct tevent_req *req,
   13413             :                                                 TALLOC_CTX *mem_ctx,
   13414             :                                                 NTSTATUS *result)
   13415             : {
   13416           0 :         struct dcerpc_samr_SetBootKeyInformation_state *state = tevent_req_data(
   13417             :                 req, struct dcerpc_samr_SetBootKeyInformation_state);
   13418           0 :         NTSTATUS status;
   13419             : 
   13420           0 :         if (tevent_req_is_nterror(req, &status)) {
   13421           0 :                 tevent_req_received(req);
   13422           0 :                 return status;
   13423             :         }
   13424             : 
   13425             :         /* Steal possible out parameters to the callers context */
   13426           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
   13427             : 
   13428             :         /* Return result */
   13429           0 :         *result = state->orig.out.result;
   13430             : 
   13431           0 :         tevent_req_received(req);
   13432           0 :         return NT_STATUS_OK;
   13433             : }
   13434             : 
   13435           0 : NTSTATUS dcerpc_samr_SetBootKeyInformation(struct dcerpc_binding_handle *h,
   13436             :                                            TALLOC_CTX *mem_ctx,
   13437             :                                            struct policy_handle *_connect_handle /* [in] [ref] */,
   13438             :                                            uint32_t _unknown1 /* [in]  */,
   13439             :                                            uint32_t _unknown2 /* [in]  */,
   13440             :                                            uint32_t _unknown3 /* [in]  */,
   13441             :                                            NTSTATUS *result)
   13442             : {
   13443           0 :         struct samr_SetBootKeyInformation r;
   13444           0 :         NTSTATUS status;
   13445             : 
   13446             :         /* In parameters */
   13447           0 :         r.in.connect_handle = _connect_handle;
   13448           0 :         r.in.unknown1 = _unknown1;
   13449           0 :         r.in.unknown2 = _unknown2;
   13450           0 :         r.in.unknown3 = _unknown3;
   13451             : 
   13452             :         /* Out parameters */
   13453             : 
   13454             :         /* Result */
   13455           0 :         NDR_ZERO_STRUCT(r.out.result);
   13456             : 
   13457           0 :         status = dcerpc_samr_SetBootKeyInformation_r(h, mem_ctx, &r);
   13458           0 :         if (!NT_STATUS_IS_OK(status)) {
   13459           0 :                 return status;
   13460             :         }
   13461             : 
   13462             :         /* Return variables */
   13463             : 
   13464             :         /* Return result */
   13465           0 :         *result = r.out.result;
   13466             : 
   13467           0 :         return NT_STATUS_OK;
   13468             : }
   13469             : 
   13470             : struct dcerpc_samr_GetBootKeyInformation_r_state {
   13471             :         TALLOC_CTX *out_mem_ctx;
   13472             : };
   13473             : 
   13474             : static void dcerpc_samr_GetBootKeyInformation_r_done(struct tevent_req *subreq);
   13475             : 
   13476           0 : struct tevent_req *dcerpc_samr_GetBootKeyInformation_r_send(TALLOC_CTX *mem_ctx,
   13477             :         struct tevent_context *ev,
   13478             :         struct dcerpc_binding_handle *h,
   13479             :         struct samr_GetBootKeyInformation *r)
   13480             : {
   13481           0 :         struct tevent_req *req;
   13482           0 :         struct dcerpc_samr_GetBootKeyInformation_r_state *state;
   13483           0 :         struct tevent_req *subreq;
   13484             : 
   13485           0 :         req = tevent_req_create(mem_ctx, &state,
   13486             :                                 struct dcerpc_samr_GetBootKeyInformation_r_state);
   13487           0 :         if (req == NULL) {
   13488           0 :                 return NULL;
   13489             :         }
   13490             : 
   13491           0 :         state->out_mem_ctx = talloc_new(state);
   13492           0 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
   13493           0 :                 return tevent_req_post(req, ev);
   13494             :         }
   13495             : 
   13496           0 :         subreq = dcerpc_binding_handle_call_send(state, ev, h,
   13497             :                         NULL, &ndr_table_samr,
   13498           0 :                         NDR_SAMR_GETBOOTKEYINFORMATION, state->out_mem_ctx, r);
   13499           0 :         if (tevent_req_nomem(subreq, req)) {
   13500           0 :                 return tevent_req_post(req, ev);
   13501             :         }
   13502           0 :         tevent_req_set_callback(subreq, dcerpc_samr_GetBootKeyInformation_r_done, req);
   13503             : 
   13504           0 :         return req;
   13505             : }
   13506             : 
   13507           0 : static void dcerpc_samr_GetBootKeyInformation_r_done(struct tevent_req *subreq)
   13508             : {
   13509           0 :         struct tevent_req *req =
   13510           0 :                 tevent_req_callback_data(subreq,
   13511             :                 struct tevent_req);
   13512           0 :         NTSTATUS status;
   13513             : 
   13514           0 :         status = dcerpc_binding_handle_call_recv(subreq);
   13515           0 :         TALLOC_FREE(subreq);
   13516           0 :         if (tevent_req_nterror(req, status)) {
   13517           0 :                 return;
   13518             :         }
   13519             : 
   13520           0 :         tevent_req_done(req);
   13521             : }
   13522             : 
   13523           0 : NTSTATUS dcerpc_samr_GetBootKeyInformation_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
   13524             : {
   13525           0 :         struct dcerpc_samr_GetBootKeyInformation_r_state *state =
   13526           0 :                 tevent_req_data(req,
   13527             :                 struct dcerpc_samr_GetBootKeyInformation_r_state);
   13528           0 :         NTSTATUS status;
   13529             : 
   13530           0 :         if (tevent_req_is_nterror(req, &status)) {
   13531           0 :                 tevent_req_received(req);
   13532           0 :                 return status;
   13533             :         }
   13534             : 
   13535           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
   13536             : 
   13537           0 :         tevent_req_received(req);
   13538           0 :         return NT_STATUS_OK;
   13539             : }
   13540             : 
   13541          10 : NTSTATUS dcerpc_samr_GetBootKeyInformation_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct samr_GetBootKeyInformation *r)
   13542             : {
   13543           0 :         NTSTATUS status;
   13544             : 
   13545          10 :         status = dcerpc_binding_handle_call(h,
   13546             :                         NULL, &ndr_table_samr,
   13547             :                         NDR_SAMR_GETBOOTKEYINFORMATION, mem_ctx, r);
   13548             : 
   13549          10 :         return status;
   13550             : }
   13551             : 
   13552             : struct dcerpc_samr_GetBootKeyInformation_state {
   13553             :         struct samr_GetBootKeyInformation orig;
   13554             :         struct samr_GetBootKeyInformation tmp;
   13555             :         TALLOC_CTX *out_mem_ctx;
   13556             : };
   13557             : 
   13558             : static void dcerpc_samr_GetBootKeyInformation_done(struct tevent_req *subreq);
   13559             : 
   13560           0 : struct tevent_req *dcerpc_samr_GetBootKeyInformation_send(TALLOC_CTX *mem_ctx,
   13561             :                                                           struct tevent_context *ev,
   13562             :                                                           struct dcerpc_binding_handle *h,
   13563             :                                                           struct policy_handle *_domain_handle /* [in] [ref] */,
   13564             :                                                           uint32_t *_unknown /* [out] [ref] */)
   13565             : {
   13566           0 :         struct tevent_req *req;
   13567           0 :         struct dcerpc_samr_GetBootKeyInformation_state *state;
   13568           0 :         struct tevent_req *subreq;
   13569             : 
   13570           0 :         req = tevent_req_create(mem_ctx, &state,
   13571             :                                 struct dcerpc_samr_GetBootKeyInformation_state);
   13572           0 :         if (req == NULL) {
   13573           0 :                 return NULL;
   13574             :         }
   13575           0 :         state->out_mem_ctx = NULL;
   13576             : 
   13577             :         /* In parameters */
   13578           0 :         state->orig.in.domain_handle = _domain_handle;
   13579             : 
   13580             :         /* Out parameters */
   13581           0 :         state->orig.out.unknown = _unknown;
   13582             : 
   13583             :         /* Result */
   13584           0 :         NDR_ZERO_STRUCT(state->orig.out.result);
   13585             : 
   13586           0 :         state->out_mem_ctx = talloc_named_const(state, 0,
   13587             :                              "dcerpc_samr_GetBootKeyInformation_out_memory");
   13588           0 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
   13589           0 :                 return tevent_req_post(req, ev);
   13590             :         }
   13591             : 
   13592             :         /* make a temporary copy, that we pass to the dispatch function */
   13593           0 :         state->tmp = state->orig;
   13594             : 
   13595           0 :         subreq = dcerpc_samr_GetBootKeyInformation_r_send(state, ev, h, &state->tmp);
   13596           0 :         if (tevent_req_nomem(subreq, req)) {
   13597           0 :                 return tevent_req_post(req, ev);
   13598             :         }
   13599           0 :         tevent_req_set_callback(subreq, dcerpc_samr_GetBootKeyInformation_done, req);
   13600           0 :         return req;
   13601             : }
   13602             : 
   13603           0 : static void dcerpc_samr_GetBootKeyInformation_done(struct tevent_req *subreq)
   13604             : {
   13605           0 :         struct tevent_req *req = tevent_req_callback_data(
   13606             :                 subreq, struct tevent_req);
   13607           0 :         struct dcerpc_samr_GetBootKeyInformation_state *state = tevent_req_data(
   13608             :                 req, struct dcerpc_samr_GetBootKeyInformation_state);
   13609           0 :         NTSTATUS status;
   13610           0 :         TALLOC_CTX *mem_ctx;
   13611             : 
   13612           0 :         if (state->out_mem_ctx) {
   13613           0 :                 mem_ctx = state->out_mem_ctx;
   13614             :         } else {
   13615           0 :                 mem_ctx = state;
   13616             :         }
   13617             : 
   13618           0 :         status = dcerpc_samr_GetBootKeyInformation_r_recv(subreq, mem_ctx);
   13619           0 :         TALLOC_FREE(subreq);
   13620           0 :         if (tevent_req_nterror(req, status)) {
   13621           0 :                 return;
   13622             :         }
   13623             : 
   13624             :         /* Copy out parameters */
   13625           0 :         *state->orig.out.unknown = *state->tmp.out.unknown;
   13626             : 
   13627             :         /* Copy result */
   13628           0 :         state->orig.out.result = state->tmp.out.result;
   13629             : 
   13630             :         /* Reset temporary structure */
   13631           0 :         NDR_ZERO_STRUCT(state->tmp);
   13632             : 
   13633           0 :         tevent_req_done(req);
   13634             : }
   13635             : 
   13636           0 : NTSTATUS dcerpc_samr_GetBootKeyInformation_recv(struct tevent_req *req,
   13637             :                                                 TALLOC_CTX *mem_ctx,
   13638             :                                                 NTSTATUS *result)
   13639             : {
   13640           0 :         struct dcerpc_samr_GetBootKeyInformation_state *state = tevent_req_data(
   13641             :                 req, struct dcerpc_samr_GetBootKeyInformation_state);
   13642           0 :         NTSTATUS status;
   13643             : 
   13644           0 :         if (tevent_req_is_nterror(req, &status)) {
   13645           0 :                 tevent_req_received(req);
   13646           0 :                 return status;
   13647             :         }
   13648             : 
   13649             :         /* Steal possible out parameters to the callers context */
   13650           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
   13651             : 
   13652             :         /* Return result */
   13653           0 :         *result = state->orig.out.result;
   13654             : 
   13655           0 :         tevent_req_received(req);
   13656           0 :         return NT_STATUS_OK;
   13657             : }
   13658             : 
   13659           0 : NTSTATUS dcerpc_samr_GetBootKeyInformation(struct dcerpc_binding_handle *h,
   13660             :                                            TALLOC_CTX *mem_ctx,
   13661             :                                            struct policy_handle *_domain_handle /* [in] [ref] */,
   13662             :                                            uint32_t *_unknown /* [out] [ref] */,
   13663             :                                            NTSTATUS *result)
   13664             : {
   13665           0 :         struct samr_GetBootKeyInformation r;
   13666           0 :         NTSTATUS status;
   13667             : 
   13668             :         /* In parameters */
   13669           0 :         r.in.domain_handle = _domain_handle;
   13670             : 
   13671             :         /* Out parameters */
   13672           0 :         r.out.unknown = _unknown;
   13673             : 
   13674             :         /* Result */
   13675           0 :         NDR_ZERO_STRUCT(r.out.result);
   13676             : 
   13677           0 :         status = dcerpc_samr_GetBootKeyInformation_r(h, mem_ctx, &r);
   13678           0 :         if (!NT_STATUS_IS_OK(status)) {
   13679           0 :                 return status;
   13680             :         }
   13681             : 
   13682             :         /* Return variables */
   13683           0 :         *_unknown = *r.out.unknown;
   13684             : 
   13685             :         /* Return result */
   13686           0 :         *result = r.out.result;
   13687             : 
   13688           0 :         return NT_STATUS_OK;
   13689             : }
   13690             : 
   13691             : struct dcerpc_samr_Connect3_r_state {
   13692             :         TALLOC_CTX *out_mem_ctx;
   13693             : };
   13694             : 
   13695             : static void dcerpc_samr_Connect3_r_done(struct tevent_req *subreq);
   13696             : 
   13697           0 : struct tevent_req *dcerpc_samr_Connect3_r_send(TALLOC_CTX *mem_ctx,
   13698             :         struct tevent_context *ev,
   13699             :         struct dcerpc_binding_handle *h,
   13700             :         struct samr_Connect3 *r)
   13701             : {
   13702           0 :         struct tevent_req *req;
   13703           0 :         struct dcerpc_samr_Connect3_r_state *state;
   13704           0 :         struct tevent_req *subreq;
   13705             : 
   13706           0 :         req = tevent_req_create(mem_ctx, &state,
   13707             :                                 struct dcerpc_samr_Connect3_r_state);
   13708           0 :         if (req == NULL) {
   13709           0 :                 return NULL;
   13710             :         }
   13711             : 
   13712           0 :         state->out_mem_ctx = talloc_new(state);
   13713           0 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
   13714           0 :                 return tevent_req_post(req, ev);
   13715             :         }
   13716             : 
   13717           0 :         subreq = dcerpc_binding_handle_call_send(state, ev, h,
   13718             :                         NULL, &ndr_table_samr,
   13719           0 :                         NDR_SAMR_CONNECT3, state->out_mem_ctx, r);
   13720           0 :         if (tevent_req_nomem(subreq, req)) {
   13721           0 :                 return tevent_req_post(req, ev);
   13722             :         }
   13723           0 :         tevent_req_set_callback(subreq, dcerpc_samr_Connect3_r_done, req);
   13724             : 
   13725           0 :         return req;
   13726             : }
   13727             : 
   13728           0 : static void dcerpc_samr_Connect3_r_done(struct tevent_req *subreq)
   13729             : {
   13730           0 :         struct tevent_req *req =
   13731           0 :                 tevent_req_callback_data(subreq,
   13732             :                 struct tevent_req);
   13733           0 :         NTSTATUS status;
   13734             : 
   13735           0 :         status = dcerpc_binding_handle_call_recv(subreq);
   13736           0 :         TALLOC_FREE(subreq);
   13737           0 :         if (tevent_req_nterror(req, status)) {
   13738           0 :                 return;
   13739             :         }
   13740             : 
   13741           0 :         tevent_req_done(req);
   13742             : }
   13743             : 
   13744           0 : NTSTATUS dcerpc_samr_Connect3_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
   13745             : {
   13746           0 :         struct dcerpc_samr_Connect3_r_state *state =
   13747           0 :                 tevent_req_data(req,
   13748             :                 struct dcerpc_samr_Connect3_r_state);
   13749           0 :         NTSTATUS status;
   13750             : 
   13751           0 :         if (tevent_req_is_nterror(req, &status)) {
   13752           0 :                 tevent_req_received(req);
   13753           0 :                 return status;
   13754             :         }
   13755             : 
   13756           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
   13757             : 
   13758           0 :         tevent_req_received(req);
   13759           0 :         return NT_STATUS_OK;
   13760             : }
   13761             : 
   13762         126 : NTSTATUS dcerpc_samr_Connect3_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct samr_Connect3 *r)
   13763             : {
   13764           0 :         NTSTATUS status;
   13765             : 
   13766         126 :         status = dcerpc_binding_handle_call(h,
   13767             :                         NULL, &ndr_table_samr,
   13768             :                         NDR_SAMR_CONNECT3, mem_ctx, r);
   13769             : 
   13770         126 :         return status;
   13771             : }
   13772             : 
   13773             : struct dcerpc_samr_Connect3_state {
   13774             :         struct samr_Connect3 orig;
   13775             :         struct samr_Connect3 tmp;
   13776             :         TALLOC_CTX *out_mem_ctx;
   13777             : };
   13778             : 
   13779             : static void dcerpc_samr_Connect3_done(struct tevent_req *subreq);
   13780             : 
   13781           0 : struct tevent_req *dcerpc_samr_Connect3_send(TALLOC_CTX *mem_ctx,
   13782             :                                              struct tevent_context *ev,
   13783             :                                              struct dcerpc_binding_handle *h,
   13784             :                                              const char *_system_name /* [in] [charset(UTF16),unique] */,
   13785             :                                              uint32_t _unknown /* [in]  */,
   13786             :                                              uint32_t _access_mask /* [in]  */,
   13787             :                                              struct policy_handle *_connect_handle /* [out] [ref] */)
   13788             : {
   13789           0 :         struct tevent_req *req;
   13790           0 :         struct dcerpc_samr_Connect3_state *state;
   13791           0 :         struct tevent_req *subreq;
   13792             : 
   13793           0 :         req = tevent_req_create(mem_ctx, &state,
   13794             :                                 struct dcerpc_samr_Connect3_state);
   13795           0 :         if (req == NULL) {
   13796           0 :                 return NULL;
   13797             :         }
   13798           0 :         state->out_mem_ctx = NULL;
   13799             : 
   13800             :         /* In parameters */
   13801           0 :         state->orig.in.system_name = _system_name;
   13802           0 :         state->orig.in.unknown = _unknown;
   13803           0 :         state->orig.in.access_mask = _access_mask;
   13804             : 
   13805             :         /* Out parameters */
   13806           0 :         state->orig.out.connect_handle = _connect_handle;
   13807             : 
   13808             :         /* Result */
   13809           0 :         NDR_ZERO_STRUCT(state->orig.out.result);
   13810             : 
   13811           0 :         state->out_mem_ctx = talloc_named_const(state, 0,
   13812             :                              "dcerpc_samr_Connect3_out_memory");
   13813           0 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
   13814           0 :                 return tevent_req_post(req, ev);
   13815             :         }
   13816             : 
   13817             :         /* make a temporary copy, that we pass to the dispatch function */
   13818           0 :         state->tmp = state->orig;
   13819             : 
   13820           0 :         subreq = dcerpc_samr_Connect3_r_send(state, ev, h, &state->tmp);
   13821           0 :         if (tevent_req_nomem(subreq, req)) {
   13822           0 :                 return tevent_req_post(req, ev);
   13823             :         }
   13824           0 :         tevent_req_set_callback(subreq, dcerpc_samr_Connect3_done, req);
   13825           0 :         return req;
   13826             : }
   13827             : 
   13828           0 : static void dcerpc_samr_Connect3_done(struct tevent_req *subreq)
   13829             : {
   13830           0 :         struct tevent_req *req = tevent_req_callback_data(
   13831             :                 subreq, struct tevent_req);
   13832           0 :         struct dcerpc_samr_Connect3_state *state = tevent_req_data(
   13833             :                 req, struct dcerpc_samr_Connect3_state);
   13834           0 :         NTSTATUS status;
   13835           0 :         TALLOC_CTX *mem_ctx;
   13836             : 
   13837           0 :         if (state->out_mem_ctx) {
   13838           0 :                 mem_ctx = state->out_mem_ctx;
   13839             :         } else {
   13840           0 :                 mem_ctx = state;
   13841             :         }
   13842             : 
   13843           0 :         status = dcerpc_samr_Connect3_r_recv(subreq, mem_ctx);
   13844           0 :         TALLOC_FREE(subreq);
   13845           0 :         if (tevent_req_nterror(req, status)) {
   13846           0 :                 return;
   13847             :         }
   13848             : 
   13849             :         /* Copy out parameters */
   13850           0 :         *state->orig.out.connect_handle = *state->tmp.out.connect_handle;
   13851             : 
   13852             :         /* Copy result */
   13853           0 :         state->orig.out.result = state->tmp.out.result;
   13854             : 
   13855             :         /* Reset temporary structure */
   13856           0 :         NDR_ZERO_STRUCT(state->tmp);
   13857             : 
   13858           0 :         tevent_req_done(req);
   13859             : }
   13860             : 
   13861           0 : NTSTATUS dcerpc_samr_Connect3_recv(struct tevent_req *req,
   13862             :                                    TALLOC_CTX *mem_ctx,
   13863             :                                    NTSTATUS *result)
   13864             : {
   13865           0 :         struct dcerpc_samr_Connect3_state *state = tevent_req_data(
   13866             :                 req, struct dcerpc_samr_Connect3_state);
   13867           0 :         NTSTATUS status;
   13868             : 
   13869           0 :         if (tevent_req_is_nterror(req, &status)) {
   13870           0 :                 tevent_req_received(req);
   13871           0 :                 return status;
   13872             :         }
   13873             : 
   13874             :         /* Steal possible out parameters to the callers context */
   13875           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
   13876             : 
   13877             :         /* Return result */
   13878           0 :         *result = state->orig.out.result;
   13879             : 
   13880           0 :         tevent_req_received(req);
   13881           0 :         return NT_STATUS_OK;
   13882             : }
   13883             : 
   13884           0 : NTSTATUS dcerpc_samr_Connect3(struct dcerpc_binding_handle *h,
   13885             :                               TALLOC_CTX *mem_ctx,
   13886             :                               const char *_system_name /* [in] [charset(UTF16),unique] */,
   13887             :                               uint32_t _unknown /* [in]  */,
   13888             :                               uint32_t _access_mask /* [in]  */,
   13889             :                               struct policy_handle *_connect_handle /* [out] [ref] */,
   13890             :                               NTSTATUS *result)
   13891             : {
   13892           0 :         struct samr_Connect3 r;
   13893           0 :         NTSTATUS status;
   13894             : 
   13895             :         /* In parameters */
   13896           0 :         r.in.system_name = _system_name;
   13897           0 :         r.in.unknown = _unknown;
   13898           0 :         r.in.access_mask = _access_mask;
   13899             : 
   13900             :         /* Out parameters */
   13901           0 :         r.out.connect_handle = _connect_handle;
   13902             : 
   13903             :         /* Result */
   13904           0 :         NDR_ZERO_STRUCT(r.out.result);
   13905             : 
   13906           0 :         status = dcerpc_samr_Connect3_r(h, mem_ctx, &r);
   13907           0 :         if (!NT_STATUS_IS_OK(status)) {
   13908           0 :                 return status;
   13909             :         }
   13910             : 
   13911             :         /* Return variables */
   13912           0 :         *_connect_handle = *r.out.connect_handle;
   13913             : 
   13914             :         /* Return result */
   13915           0 :         *result = r.out.result;
   13916             : 
   13917           0 :         return NT_STATUS_OK;
   13918             : }
   13919             : 
   13920             : struct dcerpc_samr_Connect4_r_state {
   13921             :         TALLOC_CTX *out_mem_ctx;
   13922             : };
   13923             : 
   13924             : static void dcerpc_samr_Connect4_r_done(struct tevent_req *subreq);
   13925             : 
   13926           0 : struct tevent_req *dcerpc_samr_Connect4_r_send(TALLOC_CTX *mem_ctx,
   13927             :         struct tevent_context *ev,
   13928             :         struct dcerpc_binding_handle *h,
   13929             :         struct samr_Connect4 *r)
   13930             : {
   13931           0 :         struct tevent_req *req;
   13932           0 :         struct dcerpc_samr_Connect4_r_state *state;
   13933           0 :         struct tevent_req *subreq;
   13934             : 
   13935           0 :         req = tevent_req_create(mem_ctx, &state,
   13936             :                                 struct dcerpc_samr_Connect4_r_state);
   13937           0 :         if (req == NULL) {
   13938           0 :                 return NULL;
   13939             :         }
   13940             : 
   13941           0 :         state->out_mem_ctx = talloc_new(state);
   13942           0 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
   13943           0 :                 return tevent_req_post(req, ev);
   13944             :         }
   13945             : 
   13946           0 :         subreq = dcerpc_binding_handle_call_send(state, ev, h,
   13947             :                         NULL, &ndr_table_samr,
   13948           0 :                         NDR_SAMR_CONNECT4, state->out_mem_ctx, r);
   13949           0 :         if (tevent_req_nomem(subreq, req)) {
   13950           0 :                 return tevent_req_post(req, ev);
   13951             :         }
   13952           0 :         tevent_req_set_callback(subreq, dcerpc_samr_Connect4_r_done, req);
   13953             : 
   13954           0 :         return req;
   13955             : }
   13956             : 
   13957           0 : static void dcerpc_samr_Connect4_r_done(struct tevent_req *subreq)
   13958             : {
   13959           0 :         struct tevent_req *req =
   13960           0 :                 tevent_req_callback_data(subreq,
   13961             :                 struct tevent_req);
   13962           0 :         NTSTATUS status;
   13963             : 
   13964           0 :         status = dcerpc_binding_handle_call_recv(subreq);
   13965           0 :         TALLOC_FREE(subreq);
   13966           0 :         if (tevent_req_nterror(req, status)) {
   13967           0 :                 return;
   13968             :         }
   13969             : 
   13970           0 :         tevent_req_done(req);
   13971             : }
   13972             : 
   13973           0 : NTSTATUS dcerpc_samr_Connect4_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
   13974             : {
   13975           0 :         struct dcerpc_samr_Connect4_r_state *state =
   13976           0 :                 tevent_req_data(req,
   13977             :                 struct dcerpc_samr_Connect4_r_state);
   13978           0 :         NTSTATUS status;
   13979             : 
   13980           0 :         if (tevent_req_is_nterror(req, &status)) {
   13981           0 :                 tevent_req_received(req);
   13982           0 :                 return status;
   13983             :         }
   13984             : 
   13985           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
   13986             : 
   13987           0 :         tevent_req_received(req);
   13988           0 :         return NT_STATUS_OK;
   13989             : }
   13990             : 
   13991         126 : NTSTATUS dcerpc_samr_Connect4_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct samr_Connect4 *r)
   13992             : {
   13993           0 :         NTSTATUS status;
   13994             : 
   13995         126 :         status = dcerpc_binding_handle_call(h,
   13996             :                         NULL, &ndr_table_samr,
   13997             :                         NDR_SAMR_CONNECT4, mem_ctx, r);
   13998             : 
   13999         126 :         return status;
   14000             : }
   14001             : 
   14002             : struct dcerpc_samr_Connect4_state {
   14003             :         struct samr_Connect4 orig;
   14004             :         struct samr_Connect4 tmp;
   14005             :         TALLOC_CTX *out_mem_ctx;
   14006             : };
   14007             : 
   14008             : static void dcerpc_samr_Connect4_done(struct tevent_req *subreq);
   14009             : 
   14010           0 : struct tevent_req *dcerpc_samr_Connect4_send(TALLOC_CTX *mem_ctx,
   14011             :                                              struct tevent_context *ev,
   14012             :                                              struct dcerpc_binding_handle *h,
   14013             :                                              const char *_system_name /* [in] [charset(UTF16),unique] */,
   14014             :                                              enum samr_ConnectVersion _client_version /* [in]  */,
   14015             :                                              uint32_t _access_mask /* [in]  */,
   14016             :                                              struct policy_handle *_connect_handle /* [out] [ref] */)
   14017             : {
   14018           0 :         struct tevent_req *req;
   14019           0 :         struct dcerpc_samr_Connect4_state *state;
   14020           0 :         struct tevent_req *subreq;
   14021             : 
   14022           0 :         req = tevent_req_create(mem_ctx, &state,
   14023             :                                 struct dcerpc_samr_Connect4_state);
   14024           0 :         if (req == NULL) {
   14025           0 :                 return NULL;
   14026             :         }
   14027           0 :         state->out_mem_ctx = NULL;
   14028             : 
   14029             :         /* In parameters */
   14030           0 :         state->orig.in.system_name = _system_name;
   14031           0 :         state->orig.in.client_version = _client_version;
   14032           0 :         state->orig.in.access_mask = _access_mask;
   14033             : 
   14034             :         /* Out parameters */
   14035           0 :         state->orig.out.connect_handle = _connect_handle;
   14036             : 
   14037             :         /* Result */
   14038           0 :         NDR_ZERO_STRUCT(state->orig.out.result);
   14039             : 
   14040           0 :         state->out_mem_ctx = talloc_named_const(state, 0,
   14041             :                              "dcerpc_samr_Connect4_out_memory");
   14042           0 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
   14043           0 :                 return tevent_req_post(req, ev);
   14044             :         }
   14045             : 
   14046             :         /* make a temporary copy, that we pass to the dispatch function */
   14047           0 :         state->tmp = state->orig;
   14048             : 
   14049           0 :         subreq = dcerpc_samr_Connect4_r_send(state, ev, h, &state->tmp);
   14050           0 :         if (tevent_req_nomem(subreq, req)) {
   14051           0 :                 return tevent_req_post(req, ev);
   14052             :         }
   14053           0 :         tevent_req_set_callback(subreq, dcerpc_samr_Connect4_done, req);
   14054           0 :         return req;
   14055             : }
   14056             : 
   14057           0 : static void dcerpc_samr_Connect4_done(struct tevent_req *subreq)
   14058             : {
   14059           0 :         struct tevent_req *req = tevent_req_callback_data(
   14060             :                 subreq, struct tevent_req);
   14061           0 :         struct dcerpc_samr_Connect4_state *state = tevent_req_data(
   14062             :                 req, struct dcerpc_samr_Connect4_state);
   14063           0 :         NTSTATUS status;
   14064           0 :         TALLOC_CTX *mem_ctx;
   14065             : 
   14066           0 :         if (state->out_mem_ctx) {
   14067           0 :                 mem_ctx = state->out_mem_ctx;
   14068             :         } else {
   14069           0 :                 mem_ctx = state;
   14070             :         }
   14071             : 
   14072           0 :         status = dcerpc_samr_Connect4_r_recv(subreq, mem_ctx);
   14073           0 :         TALLOC_FREE(subreq);
   14074           0 :         if (tevent_req_nterror(req, status)) {
   14075           0 :                 return;
   14076             :         }
   14077             : 
   14078             :         /* Copy out parameters */
   14079           0 :         *state->orig.out.connect_handle = *state->tmp.out.connect_handle;
   14080             : 
   14081             :         /* Copy result */
   14082           0 :         state->orig.out.result = state->tmp.out.result;
   14083             : 
   14084             :         /* Reset temporary structure */
   14085           0 :         NDR_ZERO_STRUCT(state->tmp);
   14086             : 
   14087           0 :         tevent_req_done(req);
   14088             : }
   14089             : 
   14090           0 : NTSTATUS dcerpc_samr_Connect4_recv(struct tevent_req *req,
   14091             :                                    TALLOC_CTX *mem_ctx,
   14092             :                                    NTSTATUS *result)
   14093             : {
   14094           0 :         struct dcerpc_samr_Connect4_state *state = tevent_req_data(
   14095             :                 req, struct dcerpc_samr_Connect4_state);
   14096           0 :         NTSTATUS status;
   14097             : 
   14098           0 :         if (tevent_req_is_nterror(req, &status)) {
   14099           0 :                 tevent_req_received(req);
   14100           0 :                 return status;
   14101             :         }
   14102             : 
   14103             :         /* Steal possible out parameters to the callers context */
   14104           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
   14105             : 
   14106             :         /* Return result */
   14107           0 :         *result = state->orig.out.result;
   14108             : 
   14109           0 :         tevent_req_received(req);
   14110           0 :         return NT_STATUS_OK;
   14111             : }
   14112             : 
   14113           0 : NTSTATUS dcerpc_samr_Connect4(struct dcerpc_binding_handle *h,
   14114             :                               TALLOC_CTX *mem_ctx,
   14115             :                               const char *_system_name /* [in] [charset(UTF16),unique] */,
   14116             :                               enum samr_ConnectVersion _client_version /* [in]  */,
   14117             :                               uint32_t _access_mask /* [in]  */,
   14118             :                               struct policy_handle *_connect_handle /* [out] [ref] */,
   14119             :                               NTSTATUS *result)
   14120             : {
   14121           0 :         struct samr_Connect4 r;
   14122           0 :         NTSTATUS status;
   14123             : 
   14124             :         /* In parameters */
   14125           0 :         r.in.system_name = _system_name;
   14126           0 :         r.in.client_version = _client_version;
   14127           0 :         r.in.access_mask = _access_mask;
   14128             : 
   14129             :         /* Out parameters */
   14130           0 :         r.out.connect_handle = _connect_handle;
   14131             : 
   14132             :         /* Result */
   14133           0 :         NDR_ZERO_STRUCT(r.out.result);
   14134             : 
   14135           0 :         status = dcerpc_samr_Connect4_r(h, mem_ctx, &r);
   14136           0 :         if (!NT_STATUS_IS_OK(status)) {
   14137           0 :                 return status;
   14138             :         }
   14139             : 
   14140             :         /* Return variables */
   14141           0 :         *_connect_handle = *r.out.connect_handle;
   14142             : 
   14143             :         /* Return result */
   14144           0 :         *result = r.out.result;
   14145             : 
   14146           0 :         return NT_STATUS_OK;
   14147             : }
   14148             : 
   14149             : struct dcerpc_samr_ChangePasswordUser3_r_state {
   14150             :         TALLOC_CTX *out_mem_ctx;
   14151             : };
   14152             : 
   14153             : static void dcerpc_samr_ChangePasswordUser3_r_done(struct tevent_req *subreq);
   14154             : 
   14155           0 : struct tevent_req *dcerpc_samr_ChangePasswordUser3_r_send(TALLOC_CTX *mem_ctx,
   14156             :         struct tevent_context *ev,
   14157             :         struct dcerpc_binding_handle *h,
   14158             :         struct samr_ChangePasswordUser3 *r)
   14159             : {
   14160           0 :         struct tevent_req *req;
   14161           0 :         struct dcerpc_samr_ChangePasswordUser3_r_state *state;
   14162           0 :         struct tevent_req *subreq;
   14163             : 
   14164           0 :         req = tevent_req_create(mem_ctx, &state,
   14165             :                                 struct dcerpc_samr_ChangePasswordUser3_r_state);
   14166           0 :         if (req == NULL) {
   14167           0 :                 return NULL;
   14168             :         }
   14169             : 
   14170           0 :         state->out_mem_ctx = talloc_new(state);
   14171           0 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
   14172           0 :                 return tevent_req_post(req, ev);
   14173             :         }
   14174             : 
   14175           0 :         subreq = dcerpc_binding_handle_call_send(state, ev, h,
   14176             :                         NULL, &ndr_table_samr,
   14177           0 :                         NDR_SAMR_CHANGEPASSWORDUSER3, state->out_mem_ctx, r);
   14178           0 :         if (tevent_req_nomem(subreq, req)) {
   14179           0 :                 return tevent_req_post(req, ev);
   14180             :         }
   14181           0 :         tevent_req_set_callback(subreq, dcerpc_samr_ChangePasswordUser3_r_done, req);
   14182             : 
   14183           0 :         return req;
   14184             : }
   14185             : 
   14186           0 : static void dcerpc_samr_ChangePasswordUser3_r_done(struct tevent_req *subreq)
   14187             : {
   14188           0 :         struct tevent_req *req =
   14189           0 :                 tevent_req_callback_data(subreq,
   14190             :                 struct tevent_req);
   14191           0 :         NTSTATUS status;
   14192             : 
   14193           0 :         status = dcerpc_binding_handle_call_recv(subreq);
   14194           0 :         TALLOC_FREE(subreq);
   14195           0 :         if (tevent_req_nterror(req, status)) {
   14196           0 :                 return;
   14197             :         }
   14198             : 
   14199           0 :         tevent_req_done(req);
   14200             : }
   14201             : 
   14202           0 : NTSTATUS dcerpc_samr_ChangePasswordUser3_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
   14203             : {
   14204           0 :         struct dcerpc_samr_ChangePasswordUser3_r_state *state =
   14205           0 :                 tevent_req_data(req,
   14206             :                 struct dcerpc_samr_ChangePasswordUser3_r_state);
   14207           0 :         NTSTATUS status;
   14208             : 
   14209           0 :         if (tevent_req_is_nterror(req, &status)) {
   14210           0 :                 tevent_req_received(req);
   14211           0 :                 return status;
   14212             :         }
   14213             : 
   14214           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
   14215             : 
   14216           0 :         tevent_req_received(req);
   14217           0 :         return NT_STATUS_OK;
   14218             : }
   14219             : 
   14220        1436 : NTSTATUS dcerpc_samr_ChangePasswordUser3_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct samr_ChangePasswordUser3 *r)
   14221             : {
   14222           0 :         NTSTATUS status;
   14223             : 
   14224        1436 :         status = dcerpc_binding_handle_call(h,
   14225             :                         NULL, &ndr_table_samr,
   14226             :                         NDR_SAMR_CHANGEPASSWORDUSER3, mem_ctx, r);
   14227             : 
   14228        1436 :         return status;
   14229             : }
   14230             : 
   14231             : struct dcerpc_samr_ChangePasswordUser3_state {
   14232             :         struct samr_ChangePasswordUser3 orig;
   14233             :         struct samr_ChangePasswordUser3 tmp;
   14234             :         TALLOC_CTX *out_mem_ctx;
   14235             : };
   14236             : 
   14237             : static void dcerpc_samr_ChangePasswordUser3_done(struct tevent_req *subreq);
   14238             : 
   14239           0 : struct tevent_req *dcerpc_samr_ChangePasswordUser3_send(TALLOC_CTX *mem_ctx,
   14240             :                                                         struct tevent_context *ev,
   14241             :                                                         struct dcerpc_binding_handle *h,
   14242             :                                                         struct lsa_String *_server /* [in] [unique] */,
   14243             :                                                         struct lsa_String *_account /* [in] [ref] */,
   14244             :                                                         struct samr_CryptPassword *_nt_password /* [in] [unique] */,
   14245             :                                                         struct samr_Password *_nt_verifier /* [in] [unique] */,
   14246             :                                                         uint8_t _lm_change /* [in]  */,
   14247             :                                                         struct samr_CryptPassword *_lm_password /* [in] [unique] */,
   14248             :                                                         struct samr_Password *_lm_verifier /* [in] [unique] */,
   14249             :                                                         struct samr_CryptPassword *_password3 /* [in] [unique] */,
   14250             :                                                         struct samr_DomInfo1 **_dominfo /* [out] [ref] */,
   14251             :                                                         struct userPwdChangeFailureInformation **_reject /* [out] [ref] */)
   14252             : {
   14253           0 :         struct tevent_req *req;
   14254           0 :         struct dcerpc_samr_ChangePasswordUser3_state *state;
   14255           0 :         struct tevent_req *subreq;
   14256             : 
   14257           0 :         req = tevent_req_create(mem_ctx, &state,
   14258             :                                 struct dcerpc_samr_ChangePasswordUser3_state);
   14259           0 :         if (req == NULL) {
   14260           0 :                 return NULL;
   14261             :         }
   14262           0 :         state->out_mem_ctx = NULL;
   14263             : 
   14264             :         /* In parameters */
   14265           0 :         state->orig.in.server = _server;
   14266           0 :         state->orig.in.account = _account;
   14267           0 :         state->orig.in.nt_password = _nt_password;
   14268           0 :         state->orig.in.nt_verifier = _nt_verifier;
   14269           0 :         state->orig.in.lm_change = _lm_change;
   14270           0 :         state->orig.in.lm_password = _lm_password;
   14271           0 :         state->orig.in.lm_verifier = _lm_verifier;
   14272           0 :         state->orig.in.password3 = _password3;
   14273             : 
   14274             :         /* Out parameters */
   14275           0 :         state->orig.out.dominfo = _dominfo;
   14276           0 :         state->orig.out.reject = _reject;
   14277             : 
   14278             :         /* Result */
   14279           0 :         NDR_ZERO_STRUCT(state->orig.out.result);
   14280             : 
   14281           0 :         state->out_mem_ctx = talloc_named_const(state, 0,
   14282             :                              "dcerpc_samr_ChangePasswordUser3_out_memory");
   14283           0 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
   14284           0 :                 return tevent_req_post(req, ev);
   14285             :         }
   14286             : 
   14287             :         /* make a temporary copy, that we pass to the dispatch function */
   14288           0 :         state->tmp = state->orig;
   14289             : 
   14290           0 :         subreq = dcerpc_samr_ChangePasswordUser3_r_send(state, ev, h, &state->tmp);
   14291           0 :         if (tevent_req_nomem(subreq, req)) {
   14292           0 :                 return tevent_req_post(req, ev);
   14293             :         }
   14294           0 :         tevent_req_set_callback(subreq, dcerpc_samr_ChangePasswordUser3_done, req);
   14295           0 :         return req;
   14296             : }
   14297             : 
   14298           0 : static void dcerpc_samr_ChangePasswordUser3_done(struct tevent_req *subreq)
   14299             : {
   14300           0 :         struct tevent_req *req = tevent_req_callback_data(
   14301             :                 subreq, struct tevent_req);
   14302           0 :         struct dcerpc_samr_ChangePasswordUser3_state *state = tevent_req_data(
   14303             :                 req, struct dcerpc_samr_ChangePasswordUser3_state);
   14304           0 :         NTSTATUS status;
   14305           0 :         TALLOC_CTX *mem_ctx;
   14306             : 
   14307           0 :         if (state->out_mem_ctx) {
   14308           0 :                 mem_ctx = state->out_mem_ctx;
   14309             :         } else {
   14310           0 :                 mem_ctx = state;
   14311             :         }
   14312             : 
   14313           0 :         status = dcerpc_samr_ChangePasswordUser3_r_recv(subreq, mem_ctx);
   14314           0 :         TALLOC_FREE(subreq);
   14315           0 :         if (tevent_req_nterror(req, status)) {
   14316           0 :                 return;
   14317             :         }
   14318             : 
   14319             :         /* Copy out parameters */
   14320           0 :         *state->orig.out.dominfo = *state->tmp.out.dominfo;
   14321           0 :         *state->orig.out.reject = *state->tmp.out.reject;
   14322             : 
   14323             :         /* Copy result */
   14324           0 :         state->orig.out.result = state->tmp.out.result;
   14325             : 
   14326             :         /* Reset temporary structure */
   14327           0 :         NDR_ZERO_STRUCT(state->tmp);
   14328             : 
   14329           0 :         tevent_req_done(req);
   14330             : }
   14331             : 
   14332           0 : NTSTATUS dcerpc_samr_ChangePasswordUser3_recv(struct tevent_req *req,
   14333             :                                               TALLOC_CTX *mem_ctx,
   14334             :                                               NTSTATUS *result)
   14335             : {
   14336           0 :         struct dcerpc_samr_ChangePasswordUser3_state *state = tevent_req_data(
   14337             :                 req, struct dcerpc_samr_ChangePasswordUser3_state);
   14338           0 :         NTSTATUS status;
   14339             : 
   14340           0 :         if (tevent_req_is_nterror(req, &status)) {
   14341           0 :                 tevent_req_received(req);
   14342           0 :                 return status;
   14343             :         }
   14344             : 
   14345             :         /* Steal possible out parameters to the callers context */
   14346           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
   14347             : 
   14348             :         /* Return result */
   14349           0 :         *result = state->orig.out.result;
   14350             : 
   14351           0 :         tevent_req_received(req);
   14352           0 :         return NT_STATUS_OK;
   14353             : }
   14354             : 
   14355           0 : NTSTATUS dcerpc_samr_ChangePasswordUser3(struct dcerpc_binding_handle *h,
   14356             :                                          TALLOC_CTX *mem_ctx,
   14357             :                                          struct lsa_String *_server /* [in] [unique] */,
   14358             :                                          struct lsa_String *_account /* [in] [ref] */,
   14359             :                                          struct samr_CryptPassword *_nt_password /* [in] [unique] */,
   14360             :                                          struct samr_Password *_nt_verifier /* [in] [unique] */,
   14361             :                                          uint8_t _lm_change /* [in]  */,
   14362             :                                          struct samr_CryptPassword *_lm_password /* [in] [unique] */,
   14363             :                                          struct samr_Password *_lm_verifier /* [in] [unique] */,
   14364             :                                          struct samr_CryptPassword *_password3 /* [in] [unique] */,
   14365             :                                          struct samr_DomInfo1 **_dominfo /* [out] [ref] */,
   14366             :                                          struct userPwdChangeFailureInformation **_reject /* [out] [ref] */,
   14367             :                                          NTSTATUS *result)
   14368             : {
   14369           0 :         struct samr_ChangePasswordUser3 r;
   14370           0 :         NTSTATUS status;
   14371             : 
   14372             :         /* In parameters */
   14373           0 :         r.in.server = _server;
   14374           0 :         r.in.account = _account;
   14375           0 :         r.in.nt_password = _nt_password;
   14376           0 :         r.in.nt_verifier = _nt_verifier;
   14377           0 :         r.in.lm_change = _lm_change;
   14378           0 :         r.in.lm_password = _lm_password;
   14379           0 :         r.in.lm_verifier = _lm_verifier;
   14380           0 :         r.in.password3 = _password3;
   14381             : 
   14382             :         /* Out parameters */
   14383           0 :         r.out.dominfo = _dominfo;
   14384           0 :         r.out.reject = _reject;
   14385             : 
   14386             :         /* Result */
   14387           0 :         NDR_ZERO_STRUCT(r.out.result);
   14388             : 
   14389           0 :         status = dcerpc_samr_ChangePasswordUser3_r(h, mem_ctx, &r);
   14390           0 :         if (!NT_STATUS_IS_OK(status)) {
   14391           0 :                 return status;
   14392             :         }
   14393             : 
   14394             :         /* Return variables */
   14395           0 :         *_dominfo = *r.out.dominfo;
   14396           0 :         *_reject = *r.out.reject;
   14397             : 
   14398             :         /* Return result */
   14399           0 :         *result = r.out.result;
   14400             : 
   14401           0 :         return NT_STATUS_OK;
   14402             : }
   14403             : 
   14404             : struct dcerpc_samr_Connect5_r_state {
   14405             :         TALLOC_CTX *out_mem_ctx;
   14406             : };
   14407             : 
   14408             : static void dcerpc_samr_Connect5_r_done(struct tevent_req *subreq);
   14409             : 
   14410           0 : struct tevent_req *dcerpc_samr_Connect5_r_send(TALLOC_CTX *mem_ctx,
   14411             :         struct tevent_context *ev,
   14412             :         struct dcerpc_binding_handle *h,
   14413             :         struct samr_Connect5 *r)
   14414             : {
   14415           0 :         struct tevent_req *req;
   14416           0 :         struct dcerpc_samr_Connect5_r_state *state;
   14417           0 :         struct tevent_req *subreq;
   14418             : 
   14419           0 :         req = tevent_req_create(mem_ctx, &state,
   14420             :                                 struct dcerpc_samr_Connect5_r_state);
   14421           0 :         if (req == NULL) {
   14422           0 :                 return NULL;
   14423             :         }
   14424             : 
   14425           0 :         state->out_mem_ctx = talloc_new(state);
   14426           0 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
   14427           0 :                 return tevent_req_post(req, ev);
   14428             :         }
   14429             : 
   14430           0 :         subreq = dcerpc_binding_handle_call_send(state, ev, h,
   14431             :                         NULL, &ndr_table_samr,
   14432           0 :                         NDR_SAMR_CONNECT5, state->out_mem_ctx, r);
   14433           0 :         if (tevent_req_nomem(subreq, req)) {
   14434           0 :                 return tevent_req_post(req, ev);
   14435             :         }
   14436           0 :         tevent_req_set_callback(subreq, dcerpc_samr_Connect5_r_done, req);
   14437             : 
   14438           0 :         return req;
   14439             : }
   14440             : 
   14441           0 : static void dcerpc_samr_Connect5_r_done(struct tevent_req *subreq)
   14442             : {
   14443           0 :         struct tevent_req *req =
   14444           0 :                 tevent_req_callback_data(subreq,
   14445             :                 struct tevent_req);
   14446           0 :         NTSTATUS status;
   14447             : 
   14448           0 :         status = dcerpc_binding_handle_call_recv(subreq);
   14449           0 :         TALLOC_FREE(subreq);
   14450           0 :         if (tevent_req_nterror(req, status)) {
   14451           0 :                 return;
   14452             :         }
   14453             : 
   14454           0 :         tevent_req_done(req);
   14455             : }
   14456             : 
   14457           0 : NTSTATUS dcerpc_samr_Connect5_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
   14458             : {
   14459           0 :         struct dcerpc_samr_Connect5_r_state *state =
   14460           0 :                 tevent_req_data(req,
   14461             :                 struct dcerpc_samr_Connect5_r_state);
   14462           0 :         NTSTATUS status;
   14463             : 
   14464           0 :         if (tevent_req_is_nterror(req, &status)) {
   14465           0 :                 tevent_req_received(req);
   14466           0 :                 return status;
   14467             :         }
   14468             : 
   14469           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
   14470             : 
   14471           0 :         tevent_req_received(req);
   14472           0 :         return NT_STATUS_OK;
   14473             : }
   14474             : 
   14475         224 : NTSTATUS dcerpc_samr_Connect5_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct samr_Connect5 *r)
   14476             : {
   14477           0 :         NTSTATUS status;
   14478             : 
   14479         224 :         status = dcerpc_binding_handle_call(h,
   14480             :                         NULL, &ndr_table_samr,
   14481             :                         NDR_SAMR_CONNECT5, mem_ctx, r);
   14482             : 
   14483         224 :         return status;
   14484             : }
   14485             : 
   14486             : struct dcerpc_samr_Connect5_state {
   14487             :         struct samr_Connect5 orig;
   14488             :         struct samr_Connect5 tmp;
   14489             :         TALLOC_CTX *out_mem_ctx;
   14490             : };
   14491             : 
   14492             : static void dcerpc_samr_Connect5_done(struct tevent_req *subreq);
   14493             : 
   14494           0 : struct tevent_req *dcerpc_samr_Connect5_send(TALLOC_CTX *mem_ctx,
   14495             :                                              struct tevent_context *ev,
   14496             :                                              struct dcerpc_binding_handle *h,
   14497             :                                              const char *_system_name /* [in] [charset(UTF16),unique] */,
   14498             :                                              uint32_t _access_mask /* [in]  */,
   14499             :                                              uint32_t _level_in /* [in]  */,
   14500             :                                              union samr_ConnectInfo *_info_in /* [in] [ref,switch_is(level_in)] */,
   14501             :                                              uint32_t *_level_out /* [out] [ref] */,
   14502             :                                              union samr_ConnectInfo *_info_out /* [out] [ref,switch_is(*level_out)] */,
   14503             :                                              struct policy_handle *_connect_handle /* [out] [ref] */)
   14504             : {
   14505           0 :         struct tevent_req *req;
   14506           0 :         struct dcerpc_samr_Connect5_state *state;
   14507           0 :         struct tevent_req *subreq;
   14508             : 
   14509           0 :         req = tevent_req_create(mem_ctx, &state,
   14510             :                                 struct dcerpc_samr_Connect5_state);
   14511           0 :         if (req == NULL) {
   14512           0 :                 return NULL;
   14513             :         }
   14514           0 :         state->out_mem_ctx = NULL;
   14515             : 
   14516             :         /* In parameters */
   14517           0 :         state->orig.in.system_name = _system_name;
   14518           0 :         state->orig.in.access_mask = _access_mask;
   14519           0 :         state->orig.in.level_in = _level_in;
   14520           0 :         state->orig.in.info_in = _info_in;
   14521             : 
   14522             :         /* Out parameters */
   14523           0 :         state->orig.out.level_out = _level_out;
   14524           0 :         state->orig.out.info_out = _info_out;
   14525           0 :         state->orig.out.connect_handle = _connect_handle;
   14526             : 
   14527             :         /* Result */
   14528           0 :         NDR_ZERO_STRUCT(state->orig.out.result);
   14529             : 
   14530           0 :         state->out_mem_ctx = talloc_named_const(state, 0,
   14531             :                              "dcerpc_samr_Connect5_out_memory");
   14532           0 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
   14533           0 :                 return tevent_req_post(req, ev);
   14534             :         }
   14535             : 
   14536             :         /* make a temporary copy, that we pass to the dispatch function */
   14537           0 :         state->tmp = state->orig;
   14538             : 
   14539           0 :         subreq = dcerpc_samr_Connect5_r_send(state, ev, h, &state->tmp);
   14540           0 :         if (tevent_req_nomem(subreq, req)) {
   14541           0 :                 return tevent_req_post(req, ev);
   14542             :         }
   14543           0 :         tevent_req_set_callback(subreq, dcerpc_samr_Connect5_done, req);
   14544           0 :         return req;
   14545             : }
   14546             : 
   14547           0 : static void dcerpc_samr_Connect5_done(struct tevent_req *subreq)
   14548             : {
   14549           0 :         struct tevent_req *req = tevent_req_callback_data(
   14550             :                 subreq, struct tevent_req);
   14551           0 :         struct dcerpc_samr_Connect5_state *state = tevent_req_data(
   14552             :                 req, struct dcerpc_samr_Connect5_state);
   14553           0 :         NTSTATUS status;
   14554           0 :         TALLOC_CTX *mem_ctx;
   14555             : 
   14556           0 :         if (state->out_mem_ctx) {
   14557           0 :                 mem_ctx = state->out_mem_ctx;
   14558             :         } else {
   14559           0 :                 mem_ctx = state;
   14560             :         }
   14561             : 
   14562           0 :         status = dcerpc_samr_Connect5_r_recv(subreq, mem_ctx);
   14563           0 :         TALLOC_FREE(subreq);
   14564           0 :         if (tevent_req_nterror(req, status)) {
   14565           0 :                 return;
   14566             :         }
   14567             : 
   14568             :         /* Copy out parameters */
   14569           0 :         *state->orig.out.level_out = *state->tmp.out.level_out;
   14570           0 :         *state->orig.out.info_out = *state->tmp.out.info_out;
   14571           0 :         *state->orig.out.connect_handle = *state->tmp.out.connect_handle;
   14572             : 
   14573             :         /* Copy result */
   14574           0 :         state->orig.out.result = state->tmp.out.result;
   14575             : 
   14576             :         /* Reset temporary structure */
   14577           0 :         NDR_ZERO_STRUCT(state->tmp);
   14578             : 
   14579           0 :         tevent_req_done(req);
   14580             : }
   14581             : 
   14582           0 : NTSTATUS dcerpc_samr_Connect5_recv(struct tevent_req *req,
   14583             :                                    TALLOC_CTX *mem_ctx,
   14584             :                                    NTSTATUS *result)
   14585             : {
   14586           0 :         struct dcerpc_samr_Connect5_state *state = tevent_req_data(
   14587             :                 req, struct dcerpc_samr_Connect5_state);
   14588           0 :         NTSTATUS status;
   14589             : 
   14590           0 :         if (tevent_req_is_nterror(req, &status)) {
   14591           0 :                 tevent_req_received(req);
   14592           0 :                 return status;
   14593             :         }
   14594             : 
   14595             :         /* Steal possible out parameters to the callers context */
   14596           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
   14597             : 
   14598             :         /* Return result */
   14599           0 :         *result = state->orig.out.result;
   14600             : 
   14601           0 :         tevent_req_received(req);
   14602           0 :         return NT_STATUS_OK;
   14603             : }
   14604             : 
   14605          82 : NTSTATUS dcerpc_samr_Connect5(struct dcerpc_binding_handle *h,
   14606             :                               TALLOC_CTX *mem_ctx,
   14607             :                               const char *_system_name /* [in] [charset(UTF16),unique] */,
   14608             :                               uint32_t _access_mask /* [in]  */,
   14609             :                               uint32_t _level_in /* [in]  */,
   14610             :                               union samr_ConnectInfo *_info_in /* [in] [ref,switch_is(level_in)] */,
   14611             :                               uint32_t *_level_out /* [out] [ref] */,
   14612             :                               union samr_ConnectInfo *_info_out /* [out] [ref,switch_is(*level_out)] */,
   14613             :                               struct policy_handle *_connect_handle /* [out] [ref] */,
   14614             :                               NTSTATUS *result)
   14615             : {
   14616           0 :         struct samr_Connect5 r;
   14617           0 :         NTSTATUS status;
   14618             : 
   14619             :         /* In parameters */
   14620          82 :         r.in.system_name = _system_name;
   14621          82 :         r.in.access_mask = _access_mask;
   14622          82 :         r.in.level_in = _level_in;
   14623          82 :         r.in.info_in = _info_in;
   14624             : 
   14625             :         /* Out parameters */
   14626          82 :         r.out.level_out = _level_out;
   14627          82 :         r.out.info_out = _info_out;
   14628          82 :         r.out.connect_handle = _connect_handle;
   14629             : 
   14630             :         /* Result */
   14631          82 :         NDR_ZERO_STRUCT(r.out.result);
   14632             : 
   14633          82 :         status = dcerpc_samr_Connect5_r(h, mem_ctx, &r);
   14634          82 :         if (!NT_STATUS_IS_OK(status)) {
   14635           0 :                 return status;
   14636             :         }
   14637             : 
   14638             :         /* Return variables */
   14639          82 :         *_level_out = *r.out.level_out;
   14640          82 :         *_info_out = *r.out.info_out;
   14641          82 :         *_connect_handle = *r.out.connect_handle;
   14642             : 
   14643             :         /* Return result */
   14644          82 :         *result = r.out.result;
   14645             : 
   14646          82 :         return NT_STATUS_OK;
   14647             : }
   14648             : 
   14649             : struct dcerpc_samr_RidToSid_r_state {
   14650             :         TALLOC_CTX *out_mem_ctx;
   14651             : };
   14652             : 
   14653             : static void dcerpc_samr_RidToSid_r_done(struct tevent_req *subreq);
   14654             : 
   14655           0 : struct tevent_req *dcerpc_samr_RidToSid_r_send(TALLOC_CTX *mem_ctx,
   14656             :         struct tevent_context *ev,
   14657             :         struct dcerpc_binding_handle *h,
   14658             :         struct samr_RidToSid *r)
   14659             : {
   14660           0 :         struct tevent_req *req;
   14661           0 :         struct dcerpc_samr_RidToSid_r_state *state;
   14662           0 :         struct tevent_req *subreq;
   14663             : 
   14664           0 :         req = tevent_req_create(mem_ctx, &state,
   14665             :                                 struct dcerpc_samr_RidToSid_r_state);
   14666           0 :         if (req == NULL) {
   14667           0 :                 return NULL;
   14668             :         }
   14669             : 
   14670           0 :         state->out_mem_ctx = talloc_new(state);
   14671           0 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
   14672           0 :                 return tevent_req_post(req, ev);
   14673             :         }
   14674             : 
   14675           0 :         subreq = dcerpc_binding_handle_call_send(state, ev, h,
   14676             :                         NULL, &ndr_table_samr,
   14677           0 :                         NDR_SAMR_RIDTOSID, state->out_mem_ctx, r);
   14678           0 :         if (tevent_req_nomem(subreq, req)) {
   14679           0 :                 return tevent_req_post(req, ev);
   14680             :         }
   14681           0 :         tevent_req_set_callback(subreq, dcerpc_samr_RidToSid_r_done, req);
   14682             : 
   14683           0 :         return req;
   14684             : }
   14685             : 
   14686           0 : static void dcerpc_samr_RidToSid_r_done(struct tevent_req *subreq)
   14687             : {
   14688           0 :         struct tevent_req *req =
   14689           0 :                 tevent_req_callback_data(subreq,
   14690             :                 struct tevent_req);
   14691           0 :         NTSTATUS status;
   14692             : 
   14693           0 :         status = dcerpc_binding_handle_call_recv(subreq);
   14694           0 :         TALLOC_FREE(subreq);
   14695           0 :         if (tevent_req_nterror(req, status)) {
   14696           0 :                 return;
   14697             :         }
   14698             : 
   14699           0 :         tevent_req_done(req);
   14700             : }
   14701             : 
   14702           0 : NTSTATUS dcerpc_samr_RidToSid_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
   14703             : {
   14704           0 :         struct dcerpc_samr_RidToSid_r_state *state =
   14705           0 :                 tevent_req_data(req,
   14706             :                 struct dcerpc_samr_RidToSid_r_state);
   14707           0 :         NTSTATUS status;
   14708             : 
   14709           0 :         if (tevent_req_is_nterror(req, &status)) {
   14710           0 :                 tevent_req_received(req);
   14711           0 :                 return status;
   14712             :         }
   14713             : 
   14714           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
   14715             : 
   14716           0 :         tevent_req_received(req);
   14717           0 :         return NT_STATUS_OK;
   14718             : }
   14719             : 
   14720          40 : NTSTATUS dcerpc_samr_RidToSid_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct samr_RidToSid *r)
   14721             : {
   14722           0 :         NTSTATUS status;
   14723             : 
   14724          40 :         status = dcerpc_binding_handle_call(h,
   14725             :                         NULL, &ndr_table_samr,
   14726             :                         NDR_SAMR_RIDTOSID, mem_ctx, r);
   14727             : 
   14728          40 :         return status;
   14729             : }
   14730             : 
   14731             : struct dcerpc_samr_RidToSid_state {
   14732             :         struct samr_RidToSid orig;
   14733             :         struct samr_RidToSid tmp;
   14734             :         TALLOC_CTX *out_mem_ctx;
   14735             : };
   14736             : 
   14737             : static void dcerpc_samr_RidToSid_done(struct tevent_req *subreq);
   14738             : 
   14739           0 : struct tevent_req *dcerpc_samr_RidToSid_send(TALLOC_CTX *mem_ctx,
   14740             :                                              struct tevent_context *ev,
   14741             :                                              struct dcerpc_binding_handle *h,
   14742             :                                              struct policy_handle *_domain_handle /* [in] [ref] */,
   14743             :                                              uint32_t _rid /* [in]  */,
   14744             :                                              struct dom_sid2 **_sid /* [out] [ref] */)
   14745             : {
   14746           0 :         struct tevent_req *req;
   14747           0 :         struct dcerpc_samr_RidToSid_state *state;
   14748           0 :         struct tevent_req *subreq;
   14749             : 
   14750           0 :         req = tevent_req_create(mem_ctx, &state,
   14751             :                                 struct dcerpc_samr_RidToSid_state);
   14752           0 :         if (req == NULL) {
   14753           0 :                 return NULL;
   14754             :         }
   14755           0 :         state->out_mem_ctx = NULL;
   14756             : 
   14757             :         /* In parameters */
   14758           0 :         state->orig.in.domain_handle = _domain_handle;
   14759           0 :         state->orig.in.rid = _rid;
   14760             : 
   14761             :         /* Out parameters */
   14762           0 :         state->orig.out.sid = _sid;
   14763             : 
   14764             :         /* Result */
   14765           0 :         NDR_ZERO_STRUCT(state->orig.out.result);
   14766             : 
   14767           0 :         state->out_mem_ctx = talloc_named_const(state, 0,
   14768             :                              "dcerpc_samr_RidToSid_out_memory");
   14769           0 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
   14770           0 :                 return tevent_req_post(req, ev);
   14771             :         }
   14772             : 
   14773             :         /* make a temporary copy, that we pass to the dispatch function */
   14774           0 :         state->tmp = state->orig;
   14775             : 
   14776           0 :         subreq = dcerpc_samr_RidToSid_r_send(state, ev, h, &state->tmp);
   14777           0 :         if (tevent_req_nomem(subreq, req)) {
   14778           0 :                 return tevent_req_post(req, ev);
   14779             :         }
   14780           0 :         tevent_req_set_callback(subreq, dcerpc_samr_RidToSid_done, req);
   14781           0 :         return req;
   14782             : }
   14783             : 
   14784           0 : static void dcerpc_samr_RidToSid_done(struct tevent_req *subreq)
   14785             : {
   14786           0 :         struct tevent_req *req = tevent_req_callback_data(
   14787             :                 subreq, struct tevent_req);
   14788           0 :         struct dcerpc_samr_RidToSid_state *state = tevent_req_data(
   14789             :                 req, struct dcerpc_samr_RidToSid_state);
   14790           0 :         NTSTATUS status;
   14791           0 :         TALLOC_CTX *mem_ctx;
   14792             : 
   14793           0 :         if (state->out_mem_ctx) {
   14794           0 :                 mem_ctx = state->out_mem_ctx;
   14795             :         } else {
   14796           0 :                 mem_ctx = state;
   14797             :         }
   14798             : 
   14799           0 :         status = dcerpc_samr_RidToSid_r_recv(subreq, mem_ctx);
   14800           0 :         TALLOC_FREE(subreq);
   14801           0 :         if (tevent_req_nterror(req, status)) {
   14802           0 :                 return;
   14803             :         }
   14804             : 
   14805             :         /* Copy out parameters */
   14806           0 :         *state->orig.out.sid = *state->tmp.out.sid;
   14807             : 
   14808             :         /* Copy result */
   14809           0 :         state->orig.out.result = state->tmp.out.result;
   14810             : 
   14811             :         /* Reset temporary structure */
   14812           0 :         NDR_ZERO_STRUCT(state->tmp);
   14813             : 
   14814           0 :         tevent_req_done(req);
   14815             : }
   14816             : 
   14817           0 : NTSTATUS dcerpc_samr_RidToSid_recv(struct tevent_req *req,
   14818             :                                    TALLOC_CTX *mem_ctx,
   14819             :                                    NTSTATUS *result)
   14820             : {
   14821           0 :         struct dcerpc_samr_RidToSid_state *state = tevent_req_data(
   14822             :                 req, struct dcerpc_samr_RidToSid_state);
   14823           0 :         NTSTATUS status;
   14824             : 
   14825           0 :         if (tevent_req_is_nterror(req, &status)) {
   14826           0 :                 tevent_req_received(req);
   14827           0 :                 return status;
   14828             :         }
   14829             : 
   14830             :         /* Steal possible out parameters to the callers context */
   14831           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
   14832             : 
   14833             :         /* Return result */
   14834           0 :         *result = state->orig.out.result;
   14835             : 
   14836           0 :         tevent_req_received(req);
   14837           0 :         return NT_STATUS_OK;
   14838             : }
   14839             : 
   14840           0 : NTSTATUS dcerpc_samr_RidToSid(struct dcerpc_binding_handle *h,
   14841             :                               TALLOC_CTX *mem_ctx,
   14842             :                               struct policy_handle *_domain_handle /* [in] [ref] */,
   14843             :                               uint32_t _rid /* [in]  */,
   14844             :                               struct dom_sid2 **_sid /* [out] [ref] */,
   14845             :                               NTSTATUS *result)
   14846             : {
   14847           0 :         struct samr_RidToSid r;
   14848           0 :         NTSTATUS status;
   14849             : 
   14850             :         /* In parameters */
   14851           0 :         r.in.domain_handle = _domain_handle;
   14852           0 :         r.in.rid = _rid;
   14853             : 
   14854             :         /* Out parameters */
   14855           0 :         r.out.sid = _sid;
   14856             : 
   14857             :         /* Result */
   14858           0 :         NDR_ZERO_STRUCT(r.out.result);
   14859             : 
   14860           0 :         status = dcerpc_samr_RidToSid_r(h, mem_ctx, &r);
   14861           0 :         if (!NT_STATUS_IS_OK(status)) {
   14862           0 :                 return status;
   14863             :         }
   14864             : 
   14865             :         /* Return variables */
   14866           0 :         *_sid = *r.out.sid;
   14867             : 
   14868             :         /* Return result */
   14869           0 :         *result = r.out.result;
   14870             : 
   14871           0 :         return NT_STATUS_OK;
   14872             : }
   14873             : 
   14874             : struct dcerpc_samr_SetDsrmPassword_r_state {
   14875             :         TALLOC_CTX *out_mem_ctx;
   14876             : };
   14877             : 
   14878             : static void dcerpc_samr_SetDsrmPassword_r_done(struct tevent_req *subreq);
   14879             : 
   14880           0 : struct tevent_req *dcerpc_samr_SetDsrmPassword_r_send(TALLOC_CTX *mem_ctx,
   14881             :         struct tevent_context *ev,
   14882             :         struct dcerpc_binding_handle *h,
   14883             :         struct samr_SetDsrmPassword *r)
   14884             : {
   14885           0 :         struct tevent_req *req;
   14886           0 :         struct dcerpc_samr_SetDsrmPassword_r_state *state;
   14887           0 :         struct tevent_req *subreq;
   14888             : 
   14889           0 :         req = tevent_req_create(mem_ctx, &state,
   14890             :                                 struct dcerpc_samr_SetDsrmPassword_r_state);
   14891           0 :         if (req == NULL) {
   14892           0 :                 return NULL;
   14893             :         }
   14894             : 
   14895           0 :         state->out_mem_ctx = NULL;
   14896             : 
   14897           0 :         subreq = dcerpc_binding_handle_call_send(state, ev, h,
   14898             :                         NULL, &ndr_table_samr,
   14899             :                         NDR_SAMR_SETDSRMPASSWORD, state, r);
   14900           0 :         if (tevent_req_nomem(subreq, req)) {
   14901           0 :                 return tevent_req_post(req, ev);
   14902             :         }
   14903           0 :         tevent_req_set_callback(subreq, dcerpc_samr_SetDsrmPassword_r_done, req);
   14904             : 
   14905           0 :         return req;
   14906             : }
   14907             : 
   14908           0 : static void dcerpc_samr_SetDsrmPassword_r_done(struct tevent_req *subreq)
   14909             : {
   14910           0 :         struct tevent_req *req =
   14911           0 :                 tevent_req_callback_data(subreq,
   14912             :                 struct tevent_req);
   14913           0 :         NTSTATUS status;
   14914             : 
   14915           0 :         status = dcerpc_binding_handle_call_recv(subreq);
   14916           0 :         TALLOC_FREE(subreq);
   14917           0 :         if (tevent_req_nterror(req, status)) {
   14918           0 :                 return;
   14919             :         }
   14920             : 
   14921           0 :         tevent_req_done(req);
   14922             : }
   14923             : 
   14924           0 : NTSTATUS dcerpc_samr_SetDsrmPassword_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
   14925             : {
   14926           0 :         struct dcerpc_samr_SetDsrmPassword_r_state *state =
   14927           0 :                 tevent_req_data(req,
   14928             :                 struct dcerpc_samr_SetDsrmPassword_r_state);
   14929           0 :         NTSTATUS status;
   14930             : 
   14931           0 :         if (tevent_req_is_nterror(req, &status)) {
   14932           0 :                 tevent_req_received(req);
   14933           0 :                 return status;
   14934             :         }
   14935             : 
   14936           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
   14937             : 
   14938           0 :         tevent_req_received(req);
   14939           0 :         return NT_STATUS_OK;
   14940             : }
   14941             : 
   14942           0 : NTSTATUS dcerpc_samr_SetDsrmPassword_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct samr_SetDsrmPassword *r)
   14943             : {
   14944           0 :         NTSTATUS status;
   14945             : 
   14946           0 :         status = dcerpc_binding_handle_call(h,
   14947             :                         NULL, &ndr_table_samr,
   14948             :                         NDR_SAMR_SETDSRMPASSWORD, mem_ctx, r);
   14949             : 
   14950           0 :         return status;
   14951             : }
   14952             : 
   14953             : struct dcerpc_samr_SetDsrmPassword_state {
   14954             :         struct samr_SetDsrmPassword orig;
   14955             :         struct samr_SetDsrmPassword tmp;
   14956             :         TALLOC_CTX *out_mem_ctx;
   14957             : };
   14958             : 
   14959             : static void dcerpc_samr_SetDsrmPassword_done(struct tevent_req *subreq);
   14960             : 
   14961           0 : struct tevent_req *dcerpc_samr_SetDsrmPassword_send(TALLOC_CTX *mem_ctx,
   14962             :                                                     struct tevent_context *ev,
   14963             :                                                     struct dcerpc_binding_handle *h,
   14964             :                                                     struct lsa_String *_name /* [in] [unique] */,
   14965             :                                                     uint32_t _unknown /* [in]  */,
   14966             :                                                     struct samr_Password *_hash /* [in] [unique] */)
   14967             : {
   14968           0 :         struct tevent_req *req;
   14969           0 :         struct dcerpc_samr_SetDsrmPassword_state *state;
   14970           0 :         struct tevent_req *subreq;
   14971             : 
   14972           0 :         req = tevent_req_create(mem_ctx, &state,
   14973             :                                 struct dcerpc_samr_SetDsrmPassword_state);
   14974           0 :         if (req == NULL) {
   14975           0 :                 return NULL;
   14976             :         }
   14977           0 :         state->out_mem_ctx = NULL;
   14978             : 
   14979             :         /* In parameters */
   14980           0 :         state->orig.in.name = _name;
   14981           0 :         state->orig.in.unknown = _unknown;
   14982           0 :         state->orig.in.hash = _hash;
   14983             : 
   14984             :         /* Out parameters */
   14985             : 
   14986             :         /* Result */
   14987           0 :         NDR_ZERO_STRUCT(state->orig.out.result);
   14988             : 
   14989             :         /* make a temporary copy, that we pass to the dispatch function */
   14990           0 :         state->tmp = state->orig;
   14991             : 
   14992           0 :         subreq = dcerpc_samr_SetDsrmPassword_r_send(state, ev, h, &state->tmp);
   14993           0 :         if (tevent_req_nomem(subreq, req)) {
   14994           0 :                 return tevent_req_post(req, ev);
   14995             :         }
   14996           0 :         tevent_req_set_callback(subreq, dcerpc_samr_SetDsrmPassword_done, req);
   14997           0 :         return req;
   14998             : }
   14999             : 
   15000           0 : static void dcerpc_samr_SetDsrmPassword_done(struct tevent_req *subreq)
   15001             : {
   15002           0 :         struct tevent_req *req = tevent_req_callback_data(
   15003             :                 subreq, struct tevent_req);
   15004           0 :         struct dcerpc_samr_SetDsrmPassword_state *state = tevent_req_data(
   15005             :                 req, struct dcerpc_samr_SetDsrmPassword_state);
   15006           0 :         NTSTATUS status;
   15007           0 :         TALLOC_CTX *mem_ctx;
   15008             : 
   15009           0 :         if (state->out_mem_ctx) {
   15010           0 :                 mem_ctx = state->out_mem_ctx;
   15011             :         } else {
   15012           0 :                 mem_ctx = state;
   15013             :         }
   15014             : 
   15015           0 :         status = dcerpc_samr_SetDsrmPassword_r_recv(subreq, mem_ctx);
   15016           0 :         TALLOC_FREE(subreq);
   15017           0 :         if (tevent_req_nterror(req, status)) {
   15018           0 :                 return;
   15019             :         }
   15020             : 
   15021             :         /* Copy out parameters */
   15022             : 
   15023             :         /* Copy result */
   15024           0 :         state->orig.out.result = state->tmp.out.result;
   15025             : 
   15026             :         /* Reset temporary structure */
   15027           0 :         NDR_ZERO_STRUCT(state->tmp);
   15028             : 
   15029           0 :         tevent_req_done(req);
   15030             : }
   15031             : 
   15032           0 : NTSTATUS dcerpc_samr_SetDsrmPassword_recv(struct tevent_req *req,
   15033             :                                           TALLOC_CTX *mem_ctx,
   15034             :                                           NTSTATUS *result)
   15035             : {
   15036           0 :         struct dcerpc_samr_SetDsrmPassword_state *state = tevent_req_data(
   15037             :                 req, struct dcerpc_samr_SetDsrmPassword_state);
   15038           0 :         NTSTATUS status;
   15039             : 
   15040           0 :         if (tevent_req_is_nterror(req, &status)) {
   15041           0 :                 tevent_req_received(req);
   15042           0 :                 return status;
   15043             :         }
   15044             : 
   15045             :         /* Steal possible out parameters to the callers context */
   15046           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
   15047             : 
   15048             :         /* Return result */
   15049           0 :         *result = state->orig.out.result;
   15050             : 
   15051           0 :         tevent_req_received(req);
   15052           0 :         return NT_STATUS_OK;
   15053             : }
   15054             : 
   15055           0 : NTSTATUS dcerpc_samr_SetDsrmPassword(struct dcerpc_binding_handle *h,
   15056             :                                      TALLOC_CTX *mem_ctx,
   15057             :                                      struct lsa_String *_name /* [in] [unique] */,
   15058             :                                      uint32_t _unknown /* [in]  */,
   15059             :                                      struct samr_Password *_hash /* [in] [unique] */,
   15060             :                                      NTSTATUS *result)
   15061             : {
   15062           0 :         struct samr_SetDsrmPassword r;
   15063           0 :         NTSTATUS status;
   15064             : 
   15065             :         /* In parameters */
   15066           0 :         r.in.name = _name;
   15067           0 :         r.in.unknown = _unknown;
   15068           0 :         r.in.hash = _hash;
   15069             : 
   15070             :         /* Out parameters */
   15071             : 
   15072             :         /* Result */
   15073           0 :         NDR_ZERO_STRUCT(r.out.result);
   15074             : 
   15075           0 :         status = dcerpc_samr_SetDsrmPassword_r(h, mem_ctx, &r);
   15076           0 :         if (!NT_STATUS_IS_OK(status)) {
   15077           0 :                 return status;
   15078             :         }
   15079             : 
   15080             :         /* Return variables */
   15081             : 
   15082             :         /* Return result */
   15083           0 :         *result = r.out.result;
   15084             : 
   15085           0 :         return NT_STATUS_OK;
   15086             : }
   15087             : 
   15088             : struct dcerpc_samr_ValidatePassword_r_state {
   15089             :         TALLOC_CTX *out_mem_ctx;
   15090             : };
   15091             : 
   15092             : static void dcerpc_samr_ValidatePassword_r_done(struct tevent_req *subreq);
   15093             : 
   15094           0 : struct tevent_req *dcerpc_samr_ValidatePassword_r_send(TALLOC_CTX *mem_ctx,
   15095             :         struct tevent_context *ev,
   15096             :         struct dcerpc_binding_handle *h,
   15097             :         struct samr_ValidatePassword *r)
   15098             : {
   15099           0 :         struct tevent_req *req;
   15100           0 :         struct dcerpc_samr_ValidatePassword_r_state *state;
   15101           0 :         struct tevent_req *subreq;
   15102             : 
   15103           0 :         req = tevent_req_create(mem_ctx, &state,
   15104             :                                 struct dcerpc_samr_ValidatePassword_r_state);
   15105           0 :         if (req == NULL) {
   15106           0 :                 return NULL;
   15107             :         }
   15108             : 
   15109           0 :         state->out_mem_ctx = talloc_new(state);
   15110           0 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
   15111           0 :                 return tevent_req_post(req, ev);
   15112             :         }
   15113             : 
   15114           0 :         subreq = dcerpc_binding_handle_call_send(state, ev, h,
   15115             :                         NULL, &ndr_table_samr,
   15116           0 :                         NDR_SAMR_VALIDATEPASSWORD, state->out_mem_ctx, r);
   15117           0 :         if (tevent_req_nomem(subreq, req)) {
   15118           0 :                 return tevent_req_post(req, ev);
   15119             :         }
   15120           0 :         tevent_req_set_callback(subreq, dcerpc_samr_ValidatePassword_r_done, req);
   15121             : 
   15122           0 :         return req;
   15123             : }
   15124             : 
   15125           0 : static void dcerpc_samr_ValidatePassword_r_done(struct tevent_req *subreq)
   15126             : {
   15127           0 :         struct tevent_req *req =
   15128           0 :                 tevent_req_callback_data(subreq,
   15129             :                 struct tevent_req);
   15130           0 :         NTSTATUS status;
   15131             : 
   15132           0 :         status = dcerpc_binding_handle_call_recv(subreq);
   15133           0 :         TALLOC_FREE(subreq);
   15134           0 :         if (tevent_req_nterror(req, status)) {
   15135           0 :                 return;
   15136             :         }
   15137             : 
   15138           0 :         tevent_req_done(req);
   15139             : }
   15140             : 
   15141           0 : NTSTATUS dcerpc_samr_ValidatePassword_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
   15142             : {
   15143           0 :         struct dcerpc_samr_ValidatePassword_r_state *state =
   15144           0 :                 tevent_req_data(req,
   15145             :                 struct dcerpc_samr_ValidatePassword_r_state);
   15146           0 :         NTSTATUS status;
   15147             : 
   15148           0 :         if (tevent_req_is_nterror(req, &status)) {
   15149           0 :                 tevent_req_received(req);
   15150           0 :                 return status;
   15151             :         }
   15152             : 
   15153           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
   15154             : 
   15155           0 :         tevent_req_received(req);
   15156           0 :         return NT_STATUS_OK;
   15157             : }
   15158             : 
   15159          11 : NTSTATUS dcerpc_samr_ValidatePassword_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct samr_ValidatePassword *r)
   15160             : {
   15161           0 :         NTSTATUS status;
   15162             : 
   15163          11 :         status = dcerpc_binding_handle_call(h,
   15164             :                         NULL, &ndr_table_samr,
   15165             :                         NDR_SAMR_VALIDATEPASSWORD, mem_ctx, r);
   15166             : 
   15167          11 :         return status;
   15168             : }
   15169             : 
   15170             : struct dcerpc_samr_ValidatePassword_state {
   15171             :         struct samr_ValidatePassword orig;
   15172             :         struct samr_ValidatePassword tmp;
   15173             :         TALLOC_CTX *out_mem_ctx;
   15174             : };
   15175             : 
   15176             : static void dcerpc_samr_ValidatePassword_done(struct tevent_req *subreq);
   15177             : 
   15178           0 : struct tevent_req *dcerpc_samr_ValidatePassword_send(TALLOC_CTX *mem_ctx,
   15179             :                                                      struct tevent_context *ev,
   15180             :                                                      struct dcerpc_binding_handle *h,
   15181             :                                                      enum samr_ValidatePasswordLevel _level /* [in]  */,
   15182             :                                                      union samr_ValidatePasswordReq *_req /* [in] [ref,switch_is(level)] */,
   15183             :                                                      union samr_ValidatePasswordRep **_rep /* [out] [ref,switch_is(level)] */)
   15184             : {
   15185           0 :         struct tevent_req *req;
   15186           0 :         struct dcerpc_samr_ValidatePassword_state *state;
   15187           0 :         struct tevent_req *subreq;
   15188             : 
   15189           0 :         req = tevent_req_create(mem_ctx, &state,
   15190             :                                 struct dcerpc_samr_ValidatePassword_state);
   15191           0 :         if (req == NULL) {
   15192           0 :                 return NULL;
   15193             :         }
   15194           0 :         state->out_mem_ctx = NULL;
   15195             : 
   15196             :         /* In parameters */
   15197           0 :         state->orig.in.level = _level;
   15198           0 :         state->orig.in.req = _req;
   15199             : 
   15200             :         /* Out parameters */
   15201           0 :         state->orig.out.rep = _rep;
   15202             : 
   15203             :         /* Result */
   15204           0 :         NDR_ZERO_STRUCT(state->orig.out.result);
   15205             : 
   15206           0 :         state->out_mem_ctx = talloc_named_const(state, 0,
   15207             :                              "dcerpc_samr_ValidatePassword_out_memory");
   15208           0 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
   15209           0 :                 return tevent_req_post(req, ev);
   15210             :         }
   15211             : 
   15212             :         /* make a temporary copy, that we pass to the dispatch function */
   15213           0 :         state->tmp = state->orig;
   15214             : 
   15215           0 :         subreq = dcerpc_samr_ValidatePassword_r_send(state, ev, h, &state->tmp);
   15216           0 :         if (tevent_req_nomem(subreq, req)) {
   15217           0 :                 return tevent_req_post(req, ev);
   15218             :         }
   15219           0 :         tevent_req_set_callback(subreq, dcerpc_samr_ValidatePassword_done, req);
   15220           0 :         return req;
   15221             : }
   15222             : 
   15223           0 : static void dcerpc_samr_ValidatePassword_done(struct tevent_req *subreq)
   15224             : {
   15225           0 :         struct tevent_req *req = tevent_req_callback_data(
   15226             :                 subreq, struct tevent_req);
   15227           0 :         struct dcerpc_samr_ValidatePassword_state *state = tevent_req_data(
   15228             :                 req, struct dcerpc_samr_ValidatePassword_state);
   15229           0 :         NTSTATUS status;
   15230           0 :         TALLOC_CTX *mem_ctx;
   15231             : 
   15232           0 :         if (state->out_mem_ctx) {
   15233           0 :                 mem_ctx = state->out_mem_ctx;
   15234             :         } else {
   15235           0 :                 mem_ctx = state;
   15236             :         }
   15237             : 
   15238           0 :         status = dcerpc_samr_ValidatePassword_r_recv(subreq, mem_ctx);
   15239           0 :         TALLOC_FREE(subreq);
   15240           0 :         if (tevent_req_nterror(req, status)) {
   15241           0 :                 return;
   15242             :         }
   15243             : 
   15244             :         /* Copy out parameters */
   15245           0 :         *state->orig.out.rep = *state->tmp.out.rep;
   15246             : 
   15247             :         /* Copy result */
   15248           0 :         state->orig.out.result = state->tmp.out.result;
   15249             : 
   15250             :         /* Reset temporary structure */
   15251           0 :         NDR_ZERO_STRUCT(state->tmp);
   15252             : 
   15253           0 :         tevent_req_done(req);
   15254             : }
   15255             : 
   15256           0 : NTSTATUS dcerpc_samr_ValidatePassword_recv(struct tevent_req *req,
   15257             :                                            TALLOC_CTX *mem_ctx,
   15258             :                                            NTSTATUS *result)
   15259             : {
   15260           0 :         struct dcerpc_samr_ValidatePassword_state *state = tevent_req_data(
   15261             :                 req, struct dcerpc_samr_ValidatePassword_state);
   15262           0 :         NTSTATUS status;
   15263             : 
   15264           0 :         if (tevent_req_is_nterror(req, &status)) {
   15265           0 :                 tevent_req_received(req);
   15266           0 :                 return status;
   15267             :         }
   15268             : 
   15269             :         /* Steal possible out parameters to the callers context */
   15270           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
   15271             : 
   15272             :         /* Return result */
   15273           0 :         *result = state->orig.out.result;
   15274             : 
   15275           0 :         tevent_req_received(req);
   15276           0 :         return NT_STATUS_OK;
   15277             : }
   15278             : 
   15279           0 : NTSTATUS dcerpc_samr_ValidatePassword(struct dcerpc_binding_handle *h,
   15280             :                                       TALLOC_CTX *mem_ctx,
   15281             :                                       enum samr_ValidatePasswordLevel _level /* [in]  */,
   15282             :                                       union samr_ValidatePasswordReq *_req /* [in] [ref,switch_is(level)] */,
   15283             :                                       union samr_ValidatePasswordRep **_rep /* [out] [ref,switch_is(level)] */,
   15284             :                                       NTSTATUS *result)
   15285             : {
   15286           0 :         struct samr_ValidatePassword r;
   15287           0 :         NTSTATUS status;
   15288             : 
   15289             :         /* In parameters */
   15290           0 :         r.in.level = _level;
   15291           0 :         r.in.req = _req;
   15292             : 
   15293             :         /* Out parameters */
   15294           0 :         r.out.rep = _rep;
   15295             : 
   15296             :         /* Result */
   15297           0 :         NDR_ZERO_STRUCT(r.out.result);
   15298             : 
   15299           0 :         status = dcerpc_samr_ValidatePassword_r(h, mem_ctx, &r);
   15300           0 :         if (!NT_STATUS_IS_OK(status)) {
   15301           0 :                 return status;
   15302             :         }
   15303             : 
   15304             :         /* Return variables */
   15305           0 :         *_rep = *r.out.rep;
   15306             : 
   15307             :         /* Return result */
   15308           0 :         *result = r.out.result;
   15309             : 
   15310           0 :         return NT_STATUS_OK;
   15311             : }
   15312             : 
   15313             : struct dcerpc_samr_ChangePasswordUser4_r_state {
   15314             :         TALLOC_CTX *out_mem_ctx;
   15315             : };
   15316             : 
   15317             : static void dcerpc_samr_ChangePasswordUser4_r_done(struct tevent_req *subreq);
   15318             : 
   15319           0 : struct tevent_req *dcerpc_samr_ChangePasswordUser4_r_send(TALLOC_CTX *mem_ctx,
   15320             :         struct tevent_context *ev,
   15321             :         struct dcerpc_binding_handle *h,
   15322             :         struct samr_ChangePasswordUser4 *r)
   15323             : {
   15324           0 :         struct tevent_req *req;
   15325           0 :         struct dcerpc_samr_ChangePasswordUser4_r_state *state;
   15326           0 :         struct tevent_req *subreq;
   15327             : 
   15328           0 :         req = tevent_req_create(mem_ctx, &state,
   15329             :                                 struct dcerpc_samr_ChangePasswordUser4_r_state);
   15330           0 :         if (req == NULL) {
   15331           0 :                 return NULL;
   15332             :         }
   15333             : 
   15334           0 :         state->out_mem_ctx = NULL;
   15335             : 
   15336           0 :         subreq = dcerpc_binding_handle_call_send(state, ev, h,
   15337             :                         NULL, &ndr_table_samr,
   15338             :                         NDR_SAMR_CHANGEPASSWORDUSER4, state, r);
   15339           0 :         if (tevent_req_nomem(subreq, req)) {
   15340           0 :                 return tevent_req_post(req, ev);
   15341             :         }
   15342           0 :         tevent_req_set_callback(subreq, dcerpc_samr_ChangePasswordUser4_r_done, req);
   15343             : 
   15344           0 :         return req;
   15345             : }
   15346             : 
   15347           0 : static void dcerpc_samr_ChangePasswordUser4_r_done(struct tevent_req *subreq)
   15348             : {
   15349           0 :         struct tevent_req *req =
   15350           0 :                 tevent_req_callback_data(subreq,
   15351             :                 struct tevent_req);
   15352           0 :         NTSTATUS status;
   15353             : 
   15354           0 :         status = dcerpc_binding_handle_call_recv(subreq);
   15355           0 :         TALLOC_FREE(subreq);
   15356           0 :         if (tevent_req_nterror(req, status)) {
   15357           0 :                 return;
   15358             :         }
   15359             : 
   15360           0 :         tevent_req_done(req);
   15361             : }
   15362             : 
   15363           0 : NTSTATUS dcerpc_samr_ChangePasswordUser4_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
   15364             : {
   15365           0 :         struct dcerpc_samr_ChangePasswordUser4_r_state *state =
   15366           0 :                 tevent_req_data(req,
   15367             :                 struct dcerpc_samr_ChangePasswordUser4_r_state);
   15368           0 :         NTSTATUS status;
   15369             : 
   15370           0 :         if (tevent_req_is_nterror(req, &status)) {
   15371           0 :                 tevent_req_received(req);
   15372           0 :                 return status;
   15373             :         }
   15374             : 
   15375           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
   15376             : 
   15377           0 :         tevent_req_received(req);
   15378           0 :         return NT_STATUS_OK;
   15379             : }
   15380             : 
   15381          90 : NTSTATUS dcerpc_samr_ChangePasswordUser4_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct samr_ChangePasswordUser4 *r)
   15382             : {
   15383           0 :         NTSTATUS status;
   15384             : 
   15385          90 :         status = dcerpc_binding_handle_call(h,
   15386             :                         NULL, &ndr_table_samr,
   15387             :                         NDR_SAMR_CHANGEPASSWORDUSER4, mem_ctx, r);
   15388             : 
   15389          90 :         return status;
   15390             : }
   15391             : 
   15392             : struct dcerpc_samr_ChangePasswordUser4_state {
   15393             :         struct samr_ChangePasswordUser4 orig;
   15394             :         struct samr_ChangePasswordUser4 tmp;
   15395             :         TALLOC_CTX *out_mem_ctx;
   15396             : };
   15397             : 
   15398             : static void dcerpc_samr_ChangePasswordUser4_done(struct tevent_req *subreq);
   15399             : 
   15400           0 : struct tevent_req *dcerpc_samr_ChangePasswordUser4_send(TALLOC_CTX *mem_ctx,
   15401             :                                                         struct tevent_context *ev,
   15402             :                                                         struct dcerpc_binding_handle *h,
   15403             :                                                         struct lsa_String *_server /* [in] [unique] */,
   15404             :                                                         struct lsa_String *_account /* [in] [ref] */,
   15405             :                                                         struct samr_EncryptedPasswordAES *_password /* [in] [ref] */)
   15406             : {
   15407           0 :         struct tevent_req *req;
   15408           0 :         struct dcerpc_samr_ChangePasswordUser4_state *state;
   15409           0 :         struct tevent_req *subreq;
   15410             : 
   15411           0 :         req = tevent_req_create(mem_ctx, &state,
   15412             :                                 struct dcerpc_samr_ChangePasswordUser4_state);
   15413           0 :         if (req == NULL) {
   15414           0 :                 return NULL;
   15415             :         }
   15416           0 :         state->out_mem_ctx = NULL;
   15417             : 
   15418             :         /* In parameters */
   15419           0 :         state->orig.in.server = _server;
   15420           0 :         state->orig.in.account = _account;
   15421           0 :         state->orig.in.password = _password;
   15422             : 
   15423             :         /* Out parameters */
   15424             : 
   15425             :         /* Result */
   15426           0 :         NDR_ZERO_STRUCT(state->orig.out.result);
   15427             : 
   15428             :         /* make a temporary copy, that we pass to the dispatch function */
   15429           0 :         state->tmp = state->orig;
   15430             : 
   15431           0 :         subreq = dcerpc_samr_ChangePasswordUser4_r_send(state, ev, h, &state->tmp);
   15432           0 :         if (tevent_req_nomem(subreq, req)) {
   15433           0 :                 return tevent_req_post(req, ev);
   15434             :         }
   15435           0 :         tevent_req_set_callback(subreq, dcerpc_samr_ChangePasswordUser4_done, req);
   15436           0 :         return req;
   15437             : }
   15438             : 
   15439           0 : static void dcerpc_samr_ChangePasswordUser4_done(struct tevent_req *subreq)
   15440             : {
   15441           0 :         struct tevent_req *req = tevent_req_callback_data(
   15442             :                 subreq, struct tevent_req);
   15443           0 :         struct dcerpc_samr_ChangePasswordUser4_state *state = tevent_req_data(
   15444             :                 req, struct dcerpc_samr_ChangePasswordUser4_state);
   15445           0 :         NTSTATUS status;
   15446           0 :         TALLOC_CTX *mem_ctx;
   15447             : 
   15448           0 :         if (state->out_mem_ctx) {
   15449           0 :                 mem_ctx = state->out_mem_ctx;
   15450             :         } else {
   15451           0 :                 mem_ctx = state;
   15452             :         }
   15453             : 
   15454           0 :         status = dcerpc_samr_ChangePasswordUser4_r_recv(subreq, mem_ctx);
   15455           0 :         TALLOC_FREE(subreq);
   15456           0 :         if (tevent_req_nterror(req, status)) {
   15457           0 :                 return;
   15458             :         }
   15459             : 
   15460             :         /* Copy out parameters */
   15461             : 
   15462             :         /* Copy result */
   15463           0 :         state->orig.out.result = state->tmp.out.result;
   15464             : 
   15465             :         /* Reset temporary structure */
   15466           0 :         NDR_ZERO_STRUCT(state->tmp);
   15467             : 
   15468           0 :         tevent_req_done(req);
   15469             : }
   15470             : 
   15471           0 : NTSTATUS dcerpc_samr_ChangePasswordUser4_recv(struct tevent_req *req,
   15472             :                                               TALLOC_CTX *mem_ctx,
   15473             :                                               NTSTATUS *result)
   15474             : {
   15475           0 :         struct dcerpc_samr_ChangePasswordUser4_state *state = tevent_req_data(
   15476             :                 req, struct dcerpc_samr_ChangePasswordUser4_state);
   15477           0 :         NTSTATUS status;
   15478             : 
   15479           0 :         if (tevent_req_is_nterror(req, &status)) {
   15480           0 :                 tevent_req_received(req);
   15481           0 :                 return status;
   15482             :         }
   15483             : 
   15484             :         /* Steal possible out parameters to the callers context */
   15485           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
   15486             : 
   15487             :         /* Return result */
   15488           0 :         *result = state->orig.out.result;
   15489             : 
   15490           0 :         tevent_req_received(req);
   15491           0 :         return NT_STATUS_OK;
   15492             : }
   15493             : 
   15494           6 : NTSTATUS dcerpc_samr_ChangePasswordUser4(struct dcerpc_binding_handle *h,
   15495             :                                          TALLOC_CTX *mem_ctx,
   15496             :                                          struct lsa_String *_server /* [in] [unique] */,
   15497             :                                          struct lsa_String *_account /* [in] [ref] */,
   15498             :                                          struct samr_EncryptedPasswordAES *_password /* [in] [ref] */,
   15499             :                                          NTSTATUS *result)
   15500             : {
   15501           0 :         struct samr_ChangePasswordUser4 r;
   15502           0 :         NTSTATUS status;
   15503             : 
   15504             :         /* In parameters */
   15505           6 :         r.in.server = _server;
   15506           6 :         r.in.account = _account;
   15507           6 :         r.in.password = _password;
   15508             : 
   15509             :         /* Out parameters */
   15510             : 
   15511             :         /* Result */
   15512           6 :         NDR_ZERO_STRUCT(r.out.result);
   15513             : 
   15514           6 :         status = dcerpc_samr_ChangePasswordUser4_r(h, mem_ctx, &r);
   15515           6 :         if (!NT_STATUS_IS_OK(status)) {
   15516           0 :                 return status;
   15517             :         }
   15518             : 
   15519             :         /* Return variables */
   15520             : 
   15521             :         /* Return result */
   15522           6 :         *result = r.out.result;
   15523             : 
   15524           6 :         return NT_STATUS_OK;
   15525             : }
   15526             : 

Generated by: LCOV version 1.14