1 /* client functions auto-generated by pidl */
5 #include "lib/util/tevent_ntstatus.h"
6 #include "bin/default/librpc/gen_ndr/ndr_trkwks.h"
7 #include "bin/default/librpc/gen_ndr/ndr_trkwks_c.h"
9 /* trkwks - client functions generated by pidl */
11 struct dcerpc_trkwks_Unknown0_r_state {
12 TALLOC_CTX *out_mem_ctx;
15 static void dcerpc_trkwks_Unknown0_r_done(struct tevent_req *subreq);
17 struct tevent_req *dcerpc_trkwks_Unknown0_r_send(TALLOC_CTX *mem_ctx,
18 struct tevent_context *ev,
19 struct dcerpc_binding_handle *h,
20 struct trkwks_Unknown0 *r)
22 struct tevent_req *req;
23 struct dcerpc_trkwks_Unknown0_r_state *state;
24 struct tevent_req *subreq;
26 req = tevent_req_create(mem_ctx, &state,
27 struct dcerpc_trkwks_Unknown0_r_state);
32 state->out_mem_ctx = NULL;
34 subreq = dcerpc_binding_handle_call_send(state, ev, h,
35 NULL, &ndr_table_trkwks,
36 NDR_TRKWKS_UNKNOWN0, state, r);
37 if (tevent_req_nomem(subreq, req)) {
38 return tevent_req_post(req, ev);
40 tevent_req_set_callback(subreq, dcerpc_trkwks_Unknown0_r_done, req);
45 static void dcerpc_trkwks_Unknown0_r_done(struct tevent_req *subreq)
47 struct tevent_req *req =
48 tevent_req_callback_data(subreq,
52 status = dcerpc_binding_handle_call_recv(subreq);
54 if (tevent_req_nterror(req, status)) {
61 NTSTATUS dcerpc_trkwks_Unknown0_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
63 struct dcerpc_trkwks_Unknown0_r_state *state =
65 struct dcerpc_trkwks_Unknown0_r_state);
68 if (tevent_req_is_nterror(req, &status)) {
69 tevent_req_received(req);
73 talloc_steal(mem_ctx, state->out_mem_ctx);
75 tevent_req_received(req);
79 NTSTATUS dcerpc_trkwks_Unknown0_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct trkwks_Unknown0 *r)
83 status = dcerpc_binding_handle_call(h,
84 NULL, &ndr_table_trkwks,
85 NDR_TRKWKS_UNKNOWN0, mem_ctx, r);
90 struct dcerpc_trkwks_Unknown0_state {
91 struct trkwks_Unknown0 orig;
92 struct trkwks_Unknown0 tmp;
93 TALLOC_CTX *out_mem_ctx;
96 static void dcerpc_trkwks_Unknown0_done(struct tevent_req *subreq);
98 struct tevent_req *dcerpc_trkwks_Unknown0_send(TALLOC_CTX *mem_ctx,
99 struct tevent_context *ev,
100 struct dcerpc_binding_handle *h)
102 struct tevent_req *req;
103 struct dcerpc_trkwks_Unknown0_state *state;
104 struct tevent_req *subreq;
106 req = tevent_req_create(mem_ctx, &state,
107 struct dcerpc_trkwks_Unknown0_state);
111 state->out_mem_ctx = NULL;
118 ZERO_STRUCT(state->orig.out.result);
120 /* make a temporary copy, that we pass to the dispatch function */
121 state->tmp = state->orig;
123 subreq = dcerpc_trkwks_Unknown0_r_send(state, ev, h, &state->tmp);
124 if (tevent_req_nomem(subreq, req)) {
125 return tevent_req_post(req, ev);
127 tevent_req_set_callback(subreq, dcerpc_trkwks_Unknown0_done, req);
131 static void dcerpc_trkwks_Unknown0_done(struct tevent_req *subreq)
133 struct tevent_req *req = tevent_req_callback_data(
134 subreq, struct tevent_req);
135 struct dcerpc_trkwks_Unknown0_state *state = tevent_req_data(
136 req, struct dcerpc_trkwks_Unknown0_state);
140 if (state->out_mem_ctx) {
141 mem_ctx = state->out_mem_ctx;
146 status = dcerpc_trkwks_Unknown0_r_recv(subreq, mem_ctx);
148 if (tevent_req_nterror(req, status)) {
152 /* Copy out parameters */
155 state->orig.out.result = state->tmp.out.result;
157 /* Reset temporary structure */
158 ZERO_STRUCT(state->tmp);
160 tevent_req_done(req);
163 NTSTATUS dcerpc_trkwks_Unknown0_recv(struct tevent_req *req,
167 struct dcerpc_trkwks_Unknown0_state *state = tevent_req_data(
168 req, struct dcerpc_trkwks_Unknown0_state);
171 if (tevent_req_is_nterror(req, &status)) {
172 tevent_req_received(req);
176 /* Steal possible out parameters to the callers context */
177 talloc_steal(mem_ctx, state->out_mem_ctx);
180 *result = state->orig.out.result;
182 tevent_req_received(req);
186 NTSTATUS dcerpc_trkwks_Unknown0(struct dcerpc_binding_handle *h,
190 struct trkwks_Unknown0 r;
195 status = dcerpc_trkwks_Unknown0_r(h, mem_ctx, &r);
196 if (!NT_STATUS_IS_OK(status)) {
200 /* Return variables */
203 *result = r.out.result;