/* * Unix SMB/CIFS implementation. * client auto-generated by pidl. DO NOT MODIFY! */ #include "includes.h" #include "../librpc/gen_ndr/cli_wkssvc.h" struct rpccli_wkssvc_NetWkstaGetInfo_state { struct wkssvc_NetWkstaGetInfo orig; struct wkssvc_NetWkstaGetInfo tmp; TALLOC_CTX *out_mem_ctx; NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx); }; static void rpccli_wkssvc_NetWkstaGetInfo_done(struct tevent_req *subreq); struct tevent_req *rpccli_wkssvc_NetWkstaGetInfo_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, struct rpc_pipe_client *cli, const char *_server_name /* [in] [unique,charset(UTF16)] */, uint32_t _level /* [in] */, union wkssvc_NetWkstaInfo *_info /* [out] [ref,switch_is(level)] */) { struct tevent_req *req; struct rpccli_wkssvc_NetWkstaGetInfo_state *state; struct tevent_req *subreq; req = tevent_req_create(mem_ctx, &state, struct rpccli_wkssvc_NetWkstaGetInfo_state); if (req == NULL) { return NULL; } state->out_mem_ctx = NULL; state->dispatch_recv = cli->dispatch_recv; /* In parameters */ state->orig.in.server_name = _server_name; state->orig.in.level = _level; /* Out parameters */ state->orig.out.info = _info; /* Result */ ZERO_STRUCT(state->orig.out.result); state->out_mem_ctx = talloc_named_const(state, 0, "rpccli_wkssvc_NetWkstaGetInfo_out_memory"); if (tevent_req_nomem(state->out_mem_ctx, req)) { return tevent_req_post(req, ev); } /* make a temporary copy, that we pass to the dispatch function */ state->tmp = state->orig; subreq = cli->dispatch_send(state, ev, cli, &ndr_table_wkssvc, NDR_WKSSVC_NETWKSTAGETINFO, &state->tmp); if (tevent_req_nomem(subreq, req)) { return tevent_req_post(req, ev); } tevent_req_set_callback(subreq, rpccli_wkssvc_NetWkstaGetInfo_done, req); return req; } static void rpccli_wkssvc_NetWkstaGetInfo_done(struct tevent_req *subreq) { struct tevent_req *req = tevent_req_callback_data( subreq, struct tevent_req); struct rpccli_wkssvc_NetWkstaGetInfo_state *state = tevent_req_data( req, struct rpccli_wkssvc_NetWkstaGetInfo_state); NTSTATUS status; TALLOC_CTX *mem_ctx; if (state->out_mem_ctx) { mem_ctx = state->out_mem_ctx; } else { mem_ctx = state; } status = state->dispatch_recv(subreq, mem_ctx); TALLOC_FREE(subreq); if (!NT_STATUS_IS_OK(status)) { tevent_req_nterror(req, status); return; } /* Copy out parameters */ *state->orig.out.info = *state->tmp.out.info; /* Copy result */ state->orig.out.result = state->tmp.out.result; /* Reset temporary structure */ ZERO_STRUCT(state->tmp); tevent_req_done(req); } NTSTATUS rpccli_wkssvc_NetWkstaGetInfo_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx, WERROR *result) { struct rpccli_wkssvc_NetWkstaGetInfo_state *state = tevent_req_data( req, struct rpccli_wkssvc_NetWkstaGetInfo_state); NTSTATUS status; if (tevent_req_is_nterror(req, &status)) { tevent_req_received(req); return status; } /* Steal possbile out parameters to the callers context */ talloc_steal(mem_ctx, state->out_mem_ctx); /* Return result */ *result = state->orig.out.result; tevent_req_received(req); return NT_STATUS_OK; } NTSTATUS rpccli_wkssvc_NetWkstaGetInfo(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name /* [in] [unique,charset(UTF16)] */, uint32_t level /* [in] */, union wkssvc_NetWkstaInfo *info /* [out] [ref,switch_is(level)] */, WERROR *werror) { struct wkssvc_NetWkstaGetInfo r; NTSTATUS status; /* In parameters */ r.in.server_name = server_name; r.in.level = level; status = cli->dispatch(cli, mem_ctx, &ndr_table_wkssvc, NDR_WKSSVC_NETWKSTAGETINFO, &r); if (!NT_STATUS_IS_OK(status)) { return status; } if (NT_STATUS_IS_ERR(status)) { return status; } /* Return variables */ *info = *r.out.info; /* Return result */ if (werror) { *werror = r.out.result; } return werror_to_ntstatus(r.out.result); } struct rpccli_wkssvc_NetWkstaSetInfo_state { struct wkssvc_NetWkstaSetInfo orig; struct wkssvc_NetWkstaSetInfo tmp; TALLOC_CTX *out_mem_ctx; NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx); }; static void rpccli_wkssvc_NetWkstaSetInfo_done(struct tevent_req *subreq); struct tevent_req *rpccli_wkssvc_NetWkstaSetInfo_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, struct rpc_pipe_client *cli, const char *_server_name /* [in] [unique,charset(UTF16)] */, uint32_t _level /* [in] */, union wkssvc_NetWkstaInfo *_info /* [in] [ref,switch_is(level)] */, uint32_t *_parm_error /* [in,out] [ref] */) { struct tevent_req *req; struct rpccli_wkssvc_NetWkstaSetInfo_state *state; struct tevent_req *subreq; req = tevent_req_create(mem_ctx, &state, struct rpccli_wkssvc_NetWkstaSetInfo_state); if (req == NULL) { return NULL; } state->out_mem_ctx = NULL; state->dispatch_recv = cli->dispatch_recv; /* In parameters */ state->orig.in.server_name = _server_name; state->orig.in.level = _level; state->orig.in.info = _info; state->orig.in.parm_error = _parm_error; /* Out parameters */ state->orig.out.parm_error = _parm_error; /* Result */ ZERO_STRUCT(state->orig.out.result); state->out_mem_ctx = talloc_named_const(state, 0, "rpccli_wkssvc_NetWkstaSetInfo_out_memory"); if (tevent_req_nomem(state->out_mem_ctx, req)) { return tevent_req_post(req, ev); } /* make a temporary copy, that we pass to the dispatch function */ state->tmp = state->orig; subreq = cli->dispatch_send(state, ev, cli, &ndr_table_wkssvc, NDR_WKSSVC_NETWKSTASETINFO, &state->tmp); if (tevent_req_nomem(subreq, req)) { return tevent_req_post(req, ev); } tevent_req_set_callback(subreq, rpccli_wkssvc_NetWkstaSetInfo_done, req); return req; } static void rpccli_wkssvc_NetWkstaSetInfo_done(struct tevent_req *subreq) { struct tevent_req *req = tevent_req_callback_data( subreq, struct tevent_req); struct rpccli_wkssvc_NetWkstaSetInfo_state *state = tevent_req_data( req, struct rpccli_wkssvc_NetWkstaSetInfo_state); NTSTATUS status; TALLOC_CTX *mem_ctx; if (state->out_mem_ctx) { mem_ctx = state->out_mem_ctx; } else { mem_ctx = state; } status = state->dispatch_recv(subreq, mem_ctx); TALLOC_FREE(subreq); if (!NT_STATUS_IS_OK(status)) { tevent_req_nterror(req, status); return; } /* Copy out parameters */ *state->orig.out.parm_error = *state->tmp.out.parm_error; /* Copy result */ state->orig.out.result = state->tmp.out.result; /* Reset temporary structure */ ZERO_STRUCT(state->tmp); tevent_req_done(req); } NTSTATUS rpccli_wkssvc_NetWkstaSetInfo_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx, WERROR *result) { struct rpccli_wkssvc_NetWkstaSetInfo_state *state = tevent_req_data( req, struct rpccli_wkssvc_NetWkstaSetInfo_state); NTSTATUS status; if (tevent_req_is_nterror(req, &status)) { tevent_req_received(req); return status; } /* Steal possbile out parameters to the callers context */ talloc_steal(mem_ctx, state->out_mem_ctx); /* Return result */ *result = state->orig.out.result; tevent_req_received(req); return NT_STATUS_OK; } NTSTATUS rpccli_wkssvc_NetWkstaSetInfo(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name /* [in] [unique,charset(UTF16)] */, uint32_t level /* [in] */, union wkssvc_NetWkstaInfo *info /* [in] [ref,switch_is(level)] */, uint32_t *parm_error /* [in,out] [ref] */, WERROR *werror) { struct wkssvc_NetWkstaSetInfo r; NTSTATUS status; /* In parameters */ r.in.server_name = server_name; r.in.level = level; r.in.info = info; r.in.parm_error = parm_error; status = cli->dispatch(cli, mem_ctx, &ndr_table_wkssvc, NDR_WKSSVC_NETWKSTASETINFO, &r); if (!NT_STATUS_IS_OK(status)) { return status; } if (NT_STATUS_IS_ERR(status)) { return status; } /* Return variables */ *parm_error = *r.out.parm_error; /* Return result */ if (werror) { *werror = r.out.result; } return werror_to_ntstatus(r.out.result); } struct rpccli_wkssvc_NetWkstaEnumUsers_state { struct wkssvc_NetWkstaEnumUsers orig; struct wkssvc_NetWkstaEnumUsers tmp; TALLOC_CTX *out_mem_ctx; NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx); }; static void rpccli_wkssvc_NetWkstaEnumUsers_done(struct tevent_req *subreq); struct tevent_req *rpccli_wkssvc_NetWkstaEnumUsers_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, struct rpc_pipe_client *cli, const char *_server_name /* [in] [unique,charset(UTF16)] */, struct wkssvc_NetWkstaEnumUsersInfo *_info /* [in,out] [ref] */, uint32_t _prefmaxlen /* [in] */, uint32_t *_entries_read /* [out] [ref] */, uint32_t *_resume_handle /* [in,out] [unique] */) { struct tevent_req *req; struct rpccli_wkssvc_NetWkstaEnumUsers_state *state; struct tevent_req *subreq; req = tevent_req_create(mem_ctx, &state, struct rpccli_wkssvc_NetWkstaEnumUsers_state); if (req == NULL) { return NULL; } state->out_mem_ctx = NULL; state->dispatch_recv = cli->dispatch_recv; /* In parameters */ state->orig.in.server_name = _server_name; state->orig.in.info = _info; state->orig.in.prefmaxlen = _prefmaxlen; state->orig.in.resume_handle = _resume_handle; /* Out parameters */ state->orig.out.info = _info; state->orig.out.entries_read = _entries_read; state->orig.out.resume_handle = _resume_handle; /* Result */ ZERO_STRUCT(state->orig.out.result); state->out_mem_ctx = talloc_named_const(state, 0, "rpccli_wkssvc_NetWkstaEnumUsers_out_memory"); if (tevent_req_nomem(state->out_mem_ctx, req)) { return tevent_req_post(req, ev); } /* make a temporary copy, that we pass to the dispatch function */ state->tmp = state->orig; subreq = cli->dispatch_send(state, ev, cli, &ndr_table_wkssvc, NDR_WKSSVC_NETWKSTAENUMUSERS, &state->tmp); if (tevent_req_nomem(subreq, req)) { return tevent_req_post(req, ev); } tevent_req_set_callback(subreq, rpccli_wkssvc_NetWkstaEnumUsers_done, req); return req; } static void rpccli_wkssvc_NetWkstaEnumUsers_done(struct tevent_req *subreq) { struct tevent_req *req = tevent_req_callback_data( subreq, struct tevent_req); struct rpccli_wkssvc_NetWkstaEnumUsers_state *state = tevent_req_data( req, struct rpccli_wkssvc_NetWkstaEnumUsers_state); NTSTATUS status; TALLOC_CTX *mem_ctx; if (state->out_mem_ctx) { mem_ctx = state->out_mem_ctx; } else { mem_ctx = state; } status = state->dispatch_recv(subreq, mem_ctx); TALLOC_FREE(subreq); if (!NT_STATUS_IS_OK(status)) { tevent_req_nterror(req, status); return; } /* Copy out parameters */ *state->orig.out.info = *state->tmp.out.info; *state->orig.out.entries_read = *state->tmp.out.entries_read; if (state->orig.out.resume_handle && state->tmp.out.resume_handle) { *state->orig.out.resume_handle = *state->tmp.out.resume_handle; } /* Copy result */ state->orig.out.result = state->tmp.out.result; /* Reset temporary structure */ ZERO_STRUCT(state->tmp); tevent_req_done(req); } NTSTATUS rpccli_wkssvc_NetWkstaEnumUsers_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx, WERROR *result) { struct rpccli_wkssvc_NetWkstaEnumUsers_state *state = tevent_req_data( req, struct rpccli_wkssvc_NetWkstaEnumUsers_state); NTSTATUS status; if (tevent_req_is_nterror(req, &status)) { tevent_req_received(req); return status; } /* Steal possbile out parameters to the callers context */ talloc_steal(mem_ctx, state->out_mem_ctx); /* Return result */ *result = state->orig.out.result; tevent_req_received(req); return NT_STATUS_OK; } NTSTATUS rpccli_wkssvc_NetWkstaEnumUsers(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name /* [in] [unique,charset(UTF16)] */, struct wkssvc_NetWkstaEnumUsersInfo *info /* [in,out] [ref] */, uint32_t prefmaxlen /* [in] */, uint32_t *entries_read /* [out] [ref] */, uint32_t *resume_handle /* [in,out] [unique] */, WERROR *werror) { struct wkssvc_NetWkstaEnumUsers r; NTSTATUS status; /* In parameters */ r.in.server_name = server_name; r.in.info = info; r.in.prefmaxlen = prefmaxlen; r.in.resume_handle = resume_handle; status = cli->dispatch(cli, mem_ctx, &ndr_table_wkssvc, NDR_WKSSVC_NETWKSTAENUMUSERS, &r); if (!NT_STATUS_IS_OK(status)) { return status; } if (NT_STATUS_IS_ERR(status)) { return status; } /* Return variables */ *info = *r.out.info; *entries_read = *r.out.entries_read; if (resume_handle && r.out.resume_handle) { *resume_handle = *r.out.resume_handle; } /* Return result */ if (werror) { *werror = r.out.result; } return werror_to_ntstatus(r.out.result); } struct rpccli_wkssvc_NetrWkstaUserGetInfo_state { struct wkssvc_NetrWkstaUserGetInfo orig; struct wkssvc_NetrWkstaUserGetInfo tmp; TALLOC_CTX *out_mem_ctx; NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx); }; static void rpccli_wkssvc_NetrWkstaUserGetInfo_done(struct tevent_req *subreq); struct tevent_req *rpccli_wkssvc_NetrWkstaUserGetInfo_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, struct rpc_pipe_client *cli, const char *_unknown /* [in] [unique,charset(UTF16)] */, uint32_t _level /* [in] */, union wkssvc_NetrWkstaUserInfo *_info /* [out] [ref,switch_is(level)] */) { struct tevent_req *req; struct rpccli_wkssvc_NetrWkstaUserGetInfo_state *state; struct tevent_req *subreq; req = tevent_req_create(mem_ctx, &state, struct rpccli_wkssvc_NetrWkstaUserGetInfo_state); if (req == NULL) { return NULL; } state->out_mem_ctx = NULL; state->dispatch_recv = cli->dispatch_recv; /* In parameters */ state->orig.in.unknown = _unknown; state->orig.in.level = _level; /* Out parameters */ state->orig.out.info = _info; /* Result */ ZERO_STRUCT(state->orig.out.result); state->out_mem_ctx = talloc_named_const(state, 0, "rpccli_wkssvc_NetrWkstaUserGetInfo_out_memory"); if (tevent_req_nomem(state->out_mem_ctx, req)) { return tevent_req_post(req, ev); } /* make a temporary copy, that we pass to the dispatch function */ state->tmp = state->orig; subreq = cli->dispatch_send(state, ev, cli, &ndr_table_wkssvc, NDR_WKSSVC_NETRWKSTAUSERGETINFO, &state->tmp); if (tevent_req_nomem(subreq, req)) { return tevent_req_post(req, ev); } tevent_req_set_callback(subreq, rpccli_wkssvc_NetrWkstaUserGetInfo_done, req); return req; } static void rpccli_wkssvc_NetrWkstaUserGetInfo_done(struct tevent_req *subreq) { struct tevent_req *req = tevent_req_callback_data( subreq, struct tevent_req); struct rpccli_wkssvc_NetrWkstaUserGetInfo_state *state = tevent_req_data( req, struct rpccli_wkssvc_NetrWkstaUserGetInfo_state); NTSTATUS status; TALLOC_CTX *mem_ctx; if (state->out_mem_ctx) { mem_ctx = state->out_mem_ctx; } else { mem_ctx = state; } status = state->dispatch_recv(subreq, mem_ctx); TALLOC_FREE(subreq); if (!NT_STATUS_IS_OK(status)) { tevent_req_nterror(req, status); return; } /* Copy out parameters */ *state->orig.out.info = *state->tmp.out.info; /* Copy result */ state->orig.out.result = state->tmp.out.result; /* Reset temporary structure */ ZERO_STRUCT(state->tmp); tevent_req_done(req); } NTSTATUS rpccli_wkssvc_NetrWkstaUserGetInfo_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx, WERROR *result) { struct rpccli_wkssvc_NetrWkstaUserGetInfo_state *state = tevent_req_data( req, struct rpccli_wkssvc_NetrWkstaUserGetInfo_state); NTSTATUS status; if (tevent_req_is_nterror(req, &status)) { tevent_req_received(req); return status; } /* Steal possbile out parameters to the callers context */ talloc_steal(mem_ctx, state->out_mem_ctx); /* Return result */ *result = state->orig.out.result; tevent_req_received(req); return NT_STATUS_OK; } NTSTATUS rpccli_wkssvc_NetrWkstaUserGetInfo(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *unknown /* [in] [unique,charset(UTF16)] */, uint32_t level /* [in] */, union wkssvc_NetrWkstaUserInfo *info /* [out] [ref,switch_is(level)] */, WERROR *werror) { struct wkssvc_NetrWkstaUserGetInfo r; NTSTATUS status; /* In parameters */ r.in.unknown = unknown; r.in.level = level; status = cli->dispatch(cli, mem_ctx, &ndr_table_wkssvc, NDR_WKSSVC_NETRWKSTAUSERGETINFO, &r); if (!NT_STATUS_IS_OK(status)) { return status; } if (NT_STATUS_IS_ERR(status)) { return status; } /* Return variables */ *info = *r.out.info; /* Return result */ if (werror) { *werror = r.out.result; } return werror_to_ntstatus(r.out.result); } struct rpccli_wkssvc_NetrWkstaUserSetInfo_state { struct wkssvc_NetrWkstaUserSetInfo orig; struct wkssvc_NetrWkstaUserSetInfo tmp; TALLOC_CTX *out_mem_ctx; NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx); }; static void rpccli_wkssvc_NetrWkstaUserSetInfo_done(struct tevent_req *subreq); struct tevent_req *rpccli_wkssvc_NetrWkstaUserSetInfo_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, struct rpc_pipe_client *cli, const char *_unknown /* [in] [unique,charset(UTF16)] */, uint32_t _level /* [in] */, union wkssvc_NetrWkstaUserInfo *_info /* [in] [ref,switch_is(level)] */, uint32_t *_parm_err /* [in,out] [unique] */) { struct tevent_req *req; struct rpccli_wkssvc_NetrWkstaUserSetInfo_state *state; struct tevent_req *subreq; req = tevent_req_create(mem_ctx, &state, struct rpccli_wkssvc_NetrWkstaUserSetInfo_state); if (req == NULL) { return NULL; } state->out_mem_ctx = NULL; state->dispatch_recv = cli->dispatch_recv; /* In parameters */ state->orig.in.unknown = _unknown; state->orig.in.level = _level; state->orig.in.info = _info; state->orig.in.parm_err = _parm_err; /* Out parameters */ state->orig.out.parm_err = _parm_err; /* Result */ ZERO_STRUCT(state->orig.out.result); state->out_mem_ctx = talloc_named_const(state, 0, "rpccli_wkssvc_NetrWkstaUserSetInfo_out_memory"); if (tevent_req_nomem(state->out_mem_ctx, req)) { return tevent_req_post(req, ev); } /* make a temporary copy, that we pass to the dispatch function */ state->tmp = state->orig; subreq = cli->dispatch_send(state, ev, cli, &ndr_table_wkssvc, NDR_WKSSVC_NETRWKSTAUSERSETINFO, &state->tmp); if (tevent_req_nomem(subreq, req)) { return tevent_req_post(req, ev); } tevent_req_set_callback(subreq, rpccli_wkssvc_NetrWkstaUserSetInfo_done, req); return req; } static void rpccli_wkssvc_NetrWkstaUserSetInfo_done(struct tevent_req *subreq) { struct tevent_req *req = tevent_req_callback_data( subreq, struct tevent_req); struct rpccli_wkssvc_NetrWkstaUserSetInfo_state *state = tevent_req_data( req, struct rpccli_wkssvc_NetrWkstaUserSetInfo_state); NTSTATUS status; TALLOC_CTX *mem_ctx; if (state->out_mem_ctx) { mem_ctx = state->out_mem_ctx; } else { mem_ctx = state; } status = state->dispatch_recv(subreq, mem_ctx); TALLOC_FREE(subreq); if (!NT_STATUS_IS_OK(status)) { tevent_req_nterror(req, status); return; } /* Copy out parameters */ if (state->orig.out.parm_err && state->tmp.out.parm_err) { *state->orig.out.parm_err = *state->tmp.out.parm_err; } /* Copy result */ state->orig.out.result = state->tmp.out.result; /* Reset temporary structure */ ZERO_STRUCT(state->tmp); tevent_req_done(req); } NTSTATUS rpccli_wkssvc_NetrWkstaUserSetInfo_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx, WERROR *result) { struct rpccli_wkssvc_NetrWkstaUserSetInfo_state *state = tevent_req_data( req, struct rpccli_wkssvc_NetrWkstaUserSetInfo_state); NTSTATUS status; if (tevent_req_is_nterror(req, &status)) { tevent_req_received(req); return status; } /* Steal possbile out parameters to the callers context */ talloc_steal(mem_ctx, state->out_mem_ctx); /* Return result */ *result = state->orig.out.result; tevent_req_received(req); return NT_STATUS_OK; } NTSTATUS rpccli_wkssvc_NetrWkstaUserSetInfo(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *unknown /* [in] [unique,charset(UTF16)] */, uint32_t level /* [in] */, union wkssvc_NetrWkstaUserInfo *info /* [in] [ref,switch_is(level)] */, uint32_t *parm_err /* [in,out] [unique] */, WERROR *werror) { struct wkssvc_NetrWkstaUserSetInfo r; NTSTATUS status; /* In parameters */ r.in.unknown = unknown; r.in.level = level; r.in.info = info; r.in.parm_err = parm_err; status = cli->dispatch(cli, mem_ctx, &ndr_table_wkssvc, NDR_WKSSVC_NETRWKSTAUSERSETINFO, &r); if (!NT_STATUS_IS_OK(status)) { return status; } if (NT_STATUS_IS_ERR(status)) { return status; } /* Return variables */ if (parm_err && r.out.parm_err) { *parm_err = *r.out.parm_err; } /* Return result */ if (werror) { *werror = r.out.result; } return werror_to_ntstatus(r.out.result); } struct rpccli_wkssvc_NetWkstaTransportEnum_state { struct wkssvc_NetWkstaTransportEnum orig; struct wkssvc_NetWkstaTransportEnum tmp; TALLOC_CTX *out_mem_ctx; NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx); }; static void rpccli_wkssvc_NetWkstaTransportEnum_done(struct tevent_req *subreq); struct tevent_req *rpccli_wkssvc_NetWkstaTransportEnum_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, struct rpc_pipe_client *cli, const char *_server_name /* [in] [unique,charset(UTF16)] */, struct wkssvc_NetWkstaTransportInfo *_info /* [in,out] [ref] */, uint32_t _max_buffer /* [in] */, uint32_t *_total_entries /* [out] [ref] */, uint32_t *_resume_handle /* [in,out] [unique] */) { struct tevent_req *req; struct rpccli_wkssvc_NetWkstaTransportEnum_state *state; struct tevent_req *subreq; req = tevent_req_create(mem_ctx, &state, struct rpccli_wkssvc_NetWkstaTransportEnum_state); if (req == NULL) { return NULL; } state->out_mem_ctx = NULL; state->dispatch_recv = cli->dispatch_recv; /* In parameters */ state->orig.in.server_name = _server_name; state->orig.in.info = _info; state->orig.in.max_buffer = _max_buffer; state->orig.in.resume_handle = _resume_handle; /* Out parameters */ state->orig.out.info = _info; state->orig.out.total_entries = _total_entries; state->orig.out.resume_handle = _resume_handle; /* Result */ ZERO_STRUCT(state->orig.out.result); state->out_mem_ctx = talloc_named_const(state, 0, "rpccli_wkssvc_NetWkstaTransportEnum_out_memory"); if (tevent_req_nomem(state->out_mem_ctx, req)) { return tevent_req_post(req, ev); } /* make a temporary copy, that we pass to the dispatch function */ state->tmp = state->orig; subreq = cli->dispatch_send(state, ev, cli, &ndr_table_wkssvc, NDR_WKSSVC_NETWKSTATRANSPORTENUM, &state->tmp); if (tevent_req_nomem(subreq, req)) { return tevent_req_post(req, ev); } tevent_req_set_callback(subreq, rpccli_wkssvc_NetWkstaTransportEnum_done, req); return req; } static void rpccli_wkssvc_NetWkstaTransportEnum_done(struct tevent_req *subreq) { struct tevent_req *req = tevent_req_callback_data( subreq, struct tevent_req); struct rpccli_wkssvc_NetWkstaTransportEnum_state *state = tevent_req_data( req, struct rpccli_wkssvc_NetWkstaTransportEnum_state); NTSTATUS status; TALLOC_CTX *mem_ctx; if (state->out_mem_ctx) { mem_ctx = state->out_mem_ctx; } else { mem_ctx = state; } status = state->dispatch_recv(subreq, mem_ctx); TALLOC_FREE(subreq); if (!NT_STATUS_IS_OK(status)) { tevent_req_nterror(req, status); return; } /* Copy out parameters */ *state->orig.out.info = *state->tmp.out.info; *state->orig.out.total_entries = *state->tmp.out.total_entries; if (state->orig.out.resume_handle && state->tmp.out.resume_handle) { *state->orig.out.resume_handle = *state->tmp.out.resume_handle; } /* Copy result */ state->orig.out.result = state->tmp.out.result; /* Reset temporary structure */ ZERO_STRUCT(state->tmp); tevent_req_done(req); } NTSTATUS rpccli_wkssvc_NetWkstaTransportEnum_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx, WERROR *result) { struct rpccli_wkssvc_NetWkstaTransportEnum_state *state = tevent_req_data( req, struct rpccli_wkssvc_NetWkstaTransportEnum_state); NTSTATUS status; if (tevent_req_is_nterror(req, &status)) { tevent_req_received(req); return status; } /* Steal possbile out parameters to the callers context */ talloc_steal(mem_ctx, state->out_mem_ctx); /* Return result */ *result = state->orig.out.result; tevent_req_received(req); return NT_STATUS_OK; } NTSTATUS rpccli_wkssvc_NetWkstaTransportEnum(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name /* [in] [unique,charset(UTF16)] */, struct wkssvc_NetWkstaTransportInfo *info /* [in,out] [ref] */, uint32_t max_buffer /* [in] */, uint32_t *total_entries /* [out] [ref] */, uint32_t *resume_handle /* [in,out] [unique] */, WERROR *werror) { struct wkssvc_NetWkstaTransportEnum r; NTSTATUS status; /* In parameters */ r.in.server_name = server_name; r.in.info = info; r.in.max_buffer = max_buffer; r.in.resume_handle = resume_handle; status = cli->dispatch(cli, mem_ctx, &ndr_table_wkssvc, NDR_WKSSVC_NETWKSTATRANSPORTENUM, &r); if (!NT_STATUS_IS_OK(status)) { return status; } if (NT_STATUS_IS_ERR(status)) { return status; } /* Return variables */ *info = *r.out.info; *total_entries = *r.out.total_entries; if (resume_handle && r.out.resume_handle) { *resume_handle = *r.out.resume_handle; } /* Return result */ if (werror) { *werror = r.out.result; } return werror_to_ntstatus(r.out.result); } struct rpccli_wkssvc_NetrWkstaTransportAdd_state { struct wkssvc_NetrWkstaTransportAdd orig; struct wkssvc_NetrWkstaTransportAdd tmp; TALLOC_CTX *out_mem_ctx; NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx); }; static void rpccli_wkssvc_NetrWkstaTransportAdd_done(struct tevent_req *subreq); struct tevent_req *rpccli_wkssvc_NetrWkstaTransportAdd_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, struct rpc_pipe_client *cli, const char *_server_name /* [in] [unique,charset(UTF16)] */, uint32_t _level /* [in] */, struct wkssvc_NetWkstaTransportInfo0 *_info0 /* [in] [ref] */, uint32_t *_parm_err /* [in,out] [unique] */) { struct tevent_req *req; struct rpccli_wkssvc_NetrWkstaTransportAdd_state *state; struct tevent_req *subreq; req = tevent_req_create(mem_ctx, &state, struct rpccli_wkssvc_NetrWkstaTransportAdd_state); if (req == NULL) { return NULL; } state->out_mem_ctx = NULL; state->dispatch_recv = cli->dispatch_recv; /* In parameters */ state->orig.in.server_name = _server_name; state->orig.in.level = _level; state->orig.in.info0 = _info0; state->orig.in.parm_err = _parm_err; /* Out parameters */ state->orig.out.parm_err = _parm_err; /* Result */ ZERO_STRUCT(state->orig.out.result); state->out_mem_ctx = talloc_named_const(state, 0, "rpccli_wkssvc_NetrWkstaTransportAdd_out_memory"); if (tevent_req_nomem(state->out_mem_ctx, req)) { return tevent_req_post(req, ev); } /* make a temporary copy, that we pass to the dispatch function */ state->tmp = state->orig; subreq = cli->dispatch_send(state, ev, cli, &ndr_table_wkssvc, NDR_WKSSVC_NETRWKSTATRANSPORTADD, &state->tmp); if (tevent_req_nomem(subreq, req)) { return tevent_req_post(req, ev); } tevent_req_set_callback(subreq, rpccli_wkssvc_NetrWkstaTransportAdd_done, req); return req; } static void rpccli_wkssvc_NetrWkstaTransportAdd_done(struct tevent_req *subreq) { struct tevent_req *req = tevent_req_callback_data( subreq, struct tevent_req); struct rpccli_wkssvc_NetrWkstaTransportAdd_state *state = tevent_req_data( req, struct rpccli_wkssvc_NetrWkstaTransportAdd_state); NTSTATUS status; TALLOC_CTX *mem_ctx; if (state->out_mem_ctx) { mem_ctx = state->out_mem_ctx; } else { mem_ctx = state; } status = state->dispatch_recv(subreq, mem_ctx); TALLOC_FREE(subreq); if (!NT_STATUS_IS_OK(status)) { tevent_req_nterror(req, status); return; } /* Copy out parameters */ if (state->orig.out.parm_err && state->tmp.out.parm_err) { *state->orig.out.parm_err = *state->tmp.out.parm_err; } /* Copy result */ state->orig.out.result = state->tmp.out.result; /* Reset temporary structure */ ZERO_STRUCT(state->tmp); tevent_req_done(req); } NTSTATUS rpccli_wkssvc_NetrWkstaTransportAdd_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx, WERROR *result) { struct rpccli_wkssvc_NetrWkstaTransportAdd_state *state = tevent_req_data( req, struct rpccli_wkssvc_NetrWkstaTransportAdd_state); NTSTATUS status; if (tevent_req_is_nterror(req, &status)) { tevent_req_received(req); return status; } /* Steal possbile out parameters to the callers context */ talloc_steal(mem_ctx, state->out_mem_ctx); /* Return result */ *result = state->orig.out.result; tevent_req_received(req); return NT_STATUS_OK; } NTSTATUS rpccli_wkssvc_NetrWkstaTransportAdd(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name /* [in] [unique,charset(UTF16)] */, uint32_t level /* [in] */, struct wkssvc_NetWkstaTransportInfo0 *info0 /* [in] [ref] */, uint32_t *parm_err /* [in,out] [unique] */, WERROR *werror) { struct wkssvc_NetrWkstaTransportAdd r; NTSTATUS status; /* In parameters */ r.in.server_name = server_name; r.in.level = level; r.in.info0 = info0; r.in.parm_err = parm_err; status = cli->dispatch(cli, mem_ctx, &ndr_table_wkssvc, NDR_WKSSVC_NETRWKSTATRANSPORTADD, &r); if (!NT_STATUS_IS_OK(status)) { return status; } if (NT_STATUS_IS_ERR(status)) { return status; } /* Return variables */ if (parm_err && r.out.parm_err) { *parm_err = *r.out.parm_err; } /* Return result */ if (werror) { *werror = r.out.result; } return werror_to_ntstatus(r.out.result); } struct rpccli_wkssvc_NetrWkstaTransportDel_state { struct wkssvc_NetrWkstaTransportDel orig; struct wkssvc_NetrWkstaTransportDel tmp; TALLOC_CTX *out_mem_ctx; NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx); }; static void rpccli_wkssvc_NetrWkstaTransportDel_done(struct tevent_req *subreq); struct tevent_req *rpccli_wkssvc_NetrWkstaTransportDel_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, struct rpc_pipe_client *cli, const char *_server_name /* [in] [unique,charset(UTF16)] */, const char *_transport_name /* [in] [unique,charset(UTF16)] */, uint32_t _unknown3 /* [in] */) { struct tevent_req *req; struct rpccli_wkssvc_NetrWkstaTransportDel_state *state; struct tevent_req *subreq; req = tevent_req_create(mem_ctx, &state, struct rpccli_wkssvc_NetrWkstaTransportDel_state); if (req == NULL) { return NULL; } state->out_mem_ctx = NULL; state->dispatch_recv = cli->dispatch_recv; /* In parameters */ state->orig.in.server_name = _server_name; state->orig.in.transport_name = _transport_name; state->orig.in.unknown3 = _unknown3; /* Out parameters */ /* Result */ ZERO_STRUCT(state->orig.out.result); /* make a temporary copy, that we pass to the dispatch function */ state->tmp = state->orig; subreq = cli->dispatch_send(state, ev, cli, &ndr_table_wkssvc, NDR_WKSSVC_NETRWKSTATRANSPORTDEL, &state->tmp); if (tevent_req_nomem(subreq, req)) { return tevent_req_post(req, ev); } tevent_req_set_callback(subreq, rpccli_wkssvc_NetrWkstaTransportDel_done, req); return req; } static void rpccli_wkssvc_NetrWkstaTransportDel_done(struct tevent_req *subreq) { struct tevent_req *req = tevent_req_callback_data( subreq, struct tevent_req); struct rpccli_wkssvc_NetrWkstaTransportDel_state *state = tevent_req_data( req, struct rpccli_wkssvc_NetrWkstaTransportDel_state); NTSTATUS status; TALLOC_CTX *mem_ctx; if (state->out_mem_ctx) { mem_ctx = state->out_mem_ctx; } else { mem_ctx = state; } status = state->dispatch_recv(subreq, mem_ctx); TALLOC_FREE(subreq); if (!NT_STATUS_IS_OK(status)) { tevent_req_nterror(req, status); return; } /* Copy out parameters */ /* Copy result */ state->orig.out.result = state->tmp.out.result; /* Reset temporary structure */ ZERO_STRUCT(state->tmp); tevent_req_done(req); } NTSTATUS rpccli_wkssvc_NetrWkstaTransportDel_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx, WERROR *result) { struct rpccli_wkssvc_NetrWkstaTransportDel_state *state = tevent_req_data( req, struct rpccli_wkssvc_NetrWkstaTransportDel_state); NTSTATUS status; if (tevent_req_is_nterror(req, &status)) { tevent_req_received(req); return status; } /* Steal possbile out parameters to the callers context */ talloc_steal(mem_ctx, state->out_mem_ctx); /* Return result */ *result = state->orig.out.result; tevent_req_received(req); return NT_STATUS_OK; } NTSTATUS rpccli_wkssvc_NetrWkstaTransportDel(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name /* [in] [unique,charset(UTF16)] */, const char *transport_name /* [in] [unique,charset(UTF16)] */, uint32_t unknown3 /* [in] */, WERROR *werror) { struct wkssvc_NetrWkstaTransportDel r; NTSTATUS status; /* In parameters */ r.in.server_name = server_name; r.in.transport_name = transport_name; r.in.unknown3 = unknown3; status = cli->dispatch(cli, mem_ctx, &ndr_table_wkssvc, NDR_WKSSVC_NETRWKSTATRANSPORTDEL, &r); if (!NT_STATUS_IS_OK(status)) { return status; } if (NT_STATUS_IS_ERR(status)) { return status; } /* Return variables */ /* Return result */ if (werror) { *werror = r.out.result; } return werror_to_ntstatus(r.out.result); } struct rpccli_wkssvc_NetrUseAdd_state { struct wkssvc_NetrUseAdd orig; struct wkssvc_NetrUseAdd tmp; TALLOC_CTX *out_mem_ctx; NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx); }; static void rpccli_wkssvc_NetrUseAdd_done(struct tevent_req *subreq); struct tevent_req *rpccli_wkssvc_NetrUseAdd_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, struct rpc_pipe_client *cli, const char *_server_name /* [in] [unique,charset(UTF16)] */, uint32_t _level /* [in] */, union wkssvc_NetrUseGetInfoCtr *_ctr /* [in] [ref,switch_is(level)] */, uint32_t *_parm_err /* [in,out] [unique] */) { struct tevent_req *req; struct rpccli_wkssvc_NetrUseAdd_state *state; struct tevent_req *subreq; req = tevent_req_create(mem_ctx, &state, struct rpccli_wkssvc_NetrUseAdd_state); if (req == NULL) { return NULL; } state->out_mem_ctx = NULL; state->dispatch_recv = cli->dispatch_recv; /* In parameters */ state->orig.in.server_name = _server_name; state->orig.in.level = _level; state->orig.in.ctr = _ctr; state->orig.in.parm_err = _parm_err; /* Out parameters */ state->orig.out.parm_err = _parm_err; /* Result */ ZERO_STRUCT(state->orig.out.result); state->out_mem_ctx = talloc_named_const(state, 0, "rpccli_wkssvc_NetrUseAdd_out_memory"); if (tevent_req_nomem(state->out_mem_ctx, req)) { return tevent_req_post(req, ev); } /* make a temporary copy, that we pass to the dispatch function */ state->tmp = state->orig; subreq = cli->dispatch_send(state, ev, cli, &ndr_table_wkssvc, NDR_WKSSVC_NETRUSEADD, &state->tmp); if (tevent_req_nomem(subreq, req)) { return tevent_req_post(req, ev); } tevent_req_set_callback(subreq, rpccli_wkssvc_NetrUseAdd_done, req); return req; } static void rpccli_wkssvc_NetrUseAdd_done(struct tevent_req *subreq) { struct tevent_req *req = tevent_req_callback_data( subreq, struct tevent_req); struct rpccli_wkssvc_NetrUseAdd_state *state = tevent_req_data( req, struct rpccli_wkssvc_NetrUseAdd_state); NTSTATUS status; TALLOC_CTX *mem_ctx; if (state->out_mem_ctx) { mem_ctx = state->out_mem_ctx; } else { mem_ctx = state; } status = state->dispatch_recv(subreq, mem_ctx); TALLOC_FREE(subreq); if (!NT_STATUS_IS_OK(status)) { tevent_req_nterror(req, status); return; } /* Copy out parameters */ if (state->orig.out.parm_err && state->tmp.out.parm_err) { *state->orig.out.parm_err = *state->tmp.out.parm_err; } /* Copy result */ state->orig.out.result = state->tmp.out.result; /* Reset temporary structure */ ZERO_STRUCT(state->tmp); tevent_req_done(req); } NTSTATUS rpccli_wkssvc_NetrUseAdd_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx, WERROR *result) { struct rpccli_wkssvc_NetrUseAdd_state *state = tevent_req_data( req, struct rpccli_wkssvc_NetrUseAdd_state); NTSTATUS status; if (tevent_req_is_nterror(req, &status)) { tevent_req_received(req); return status; } /* Steal possbile out parameters to the callers context */ talloc_steal(mem_ctx, state->out_mem_ctx); /* Return result */ *result = state->orig.out.result; tevent_req_received(req); return NT_STATUS_OK; } NTSTATUS rpccli_wkssvc_NetrUseAdd(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name /* [in] [unique,charset(UTF16)] */, uint32_t level /* [in] */, union wkssvc_NetrUseGetInfoCtr *ctr /* [in] [ref,switch_is(level)] */, uint32_t *parm_err /* [in,out] [unique] */, WERROR *werror) { struct wkssvc_NetrUseAdd r; NTSTATUS status; /* In parameters */ r.in.server_name = server_name; r.in.level = level; r.in.ctr = ctr; r.in.parm_err = parm_err; status = cli->dispatch(cli, mem_ctx, &ndr_table_wkssvc, NDR_WKSSVC_NETRUSEADD, &r); if (!NT_STATUS_IS_OK(status)) { return status; } if (NT_STATUS_IS_ERR(status)) { return status; } /* Return variables */ if (parm_err && r.out.parm_err) { *parm_err = *r.out.parm_err; } /* Return result */ if (werror) { *werror = r.out.result; } return werror_to_ntstatus(r.out.result); } struct rpccli_wkssvc_NetrUseGetInfo_state { struct wkssvc_NetrUseGetInfo orig; struct wkssvc_NetrUseGetInfo tmp; TALLOC_CTX *out_mem_ctx; NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx); }; static void rpccli_wkssvc_NetrUseGetInfo_done(struct tevent_req *subreq); struct tevent_req *rpccli_wkssvc_NetrUseGetInfo_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, struct rpc_pipe_client *cli, const char *_server_name /* [in] [unique,charset(UTF16)] */, const char *_use_name /* [in] [ref,charset(UTF16)] */, uint32_t _level /* [in] */, union wkssvc_NetrUseGetInfoCtr *_ctr /* [out] [ref,switch_is(level)] */) { struct tevent_req *req; struct rpccli_wkssvc_NetrUseGetInfo_state *state; struct tevent_req *subreq; req = tevent_req_create(mem_ctx, &state, struct rpccli_wkssvc_NetrUseGetInfo_state); if (req == NULL) { return NULL; } state->out_mem_ctx = NULL; state->dispatch_recv = cli->dispatch_recv; /* In parameters */ state->orig.in.server_name = _server_name; state->orig.in.use_name = _use_name; state->orig.in.level = _level; /* Out parameters */ state->orig.out.ctr = _ctr; /* Result */ ZERO_STRUCT(state->orig.out.result); state->out_mem_ctx = talloc_named_const(state, 0, "rpccli_wkssvc_NetrUseGetInfo_out_memory"); if (tevent_req_nomem(state->out_mem_ctx, req)) { return tevent_req_post(req, ev); } /* make a temporary copy, that we pass to the dispatch function */ state->tmp = state->orig; subreq = cli->dispatch_send(state, ev, cli, &ndr_table_wkssvc, NDR_WKSSVC_NETRUSEGETINFO, &state->tmp); if (tevent_req_nomem(subreq, req)) { return tevent_req_post(req, ev); } tevent_req_set_callback(subreq, rpccli_wkssvc_NetrUseGetInfo_done, req); return req; } static void rpccli_wkssvc_NetrUseGetInfo_done(struct tevent_req *subreq) { struct tevent_req *req = tevent_req_callback_data( subreq, struct tevent_req); struct rpccli_wkssvc_NetrUseGetInfo_state *state = tevent_req_data( req, struct rpccli_wkssvc_NetrUseGetInfo_state); NTSTATUS status; TALLOC_CTX *mem_ctx; if (state->out_mem_ctx) { mem_ctx = state->out_mem_ctx; } else { mem_ctx = state; } status = state->dispatch_recv(subreq, mem_ctx); TALLOC_FREE(subreq); if (!NT_STATUS_IS_OK(status)) { tevent_req_nterror(req, status); return; } /* Copy out parameters */ *state->orig.out.ctr = *state->tmp.out.ctr; /* Copy result */ state->orig.out.result = state->tmp.out.result; /* Reset temporary structure */ ZERO_STRUCT(state->tmp); tevent_req_done(req); } NTSTATUS rpccli_wkssvc_NetrUseGetInfo_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx, WERROR *result) { struct rpccli_wkssvc_NetrUseGetInfo_state *state = tevent_req_data( req, struct rpccli_wkssvc_NetrUseGetInfo_state); NTSTATUS status; if (tevent_req_is_nterror(req, &status)) { tevent_req_received(req); return status; } /* Steal possbile out parameters to the callers context */ talloc_steal(mem_ctx, state->out_mem_ctx); /* Return result */ *result = state->orig.out.result; tevent_req_received(req); return NT_STATUS_OK; } NTSTATUS rpccli_wkssvc_NetrUseGetInfo(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name /* [in] [unique,charset(UTF16)] */, const char *use_name /* [in] [ref,charset(UTF16)] */, uint32_t level /* [in] */, union wkssvc_NetrUseGetInfoCtr *ctr /* [out] [ref,switch_is(level)] */, WERROR *werror) { struct wkssvc_NetrUseGetInfo r; NTSTATUS status; /* In parameters */ r.in.server_name = server_name; r.in.use_name = use_name; r.in.level = level; status = cli->dispatch(cli, mem_ctx, &ndr_table_wkssvc, NDR_WKSSVC_NETRUSEGETINFO, &r); if (!NT_STATUS_IS_OK(status)) { return status; } if (NT_STATUS_IS_ERR(status)) { return status; } /* Return variables */ *ctr = *r.out.ctr; /* Return result */ if (werror) { *werror = r.out.result; } return werror_to_ntstatus(r.out.result); } struct rpccli_wkssvc_NetrUseDel_state { struct wkssvc_NetrUseDel orig; struct wkssvc_NetrUseDel tmp; TALLOC_CTX *out_mem_ctx; NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx); }; static void rpccli_wkssvc_NetrUseDel_done(struct tevent_req *subreq); struct tevent_req *rpccli_wkssvc_NetrUseDel_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, struct rpc_pipe_client *cli, const char *_server_name /* [in] [unique,charset(UTF16)] */, const char *_use_name /* [in] [ref,charset(UTF16)] */, uint32_t _force_cond /* [in] */) { struct tevent_req *req; struct rpccli_wkssvc_NetrUseDel_state *state; struct tevent_req *subreq; req = tevent_req_create(mem_ctx, &state, struct rpccli_wkssvc_NetrUseDel_state); if (req == NULL) { return NULL; } state->out_mem_ctx = NULL; state->dispatch_recv = cli->dispatch_recv; /* In parameters */ state->orig.in.server_name = _server_name; state->orig.in.use_name = _use_name; state->orig.in.force_cond = _force_cond; /* Out parameters */ /* Result */ ZERO_STRUCT(state->orig.out.result); /* make a temporary copy, that we pass to the dispatch function */ state->tmp = state->orig; subreq = cli->dispatch_send(state, ev, cli, &ndr_table_wkssvc, NDR_WKSSVC_NETRUSEDEL, &state->tmp); if (tevent_req_nomem(subreq, req)) { return tevent_req_post(req, ev); } tevent_req_set_callback(subreq, rpccli_wkssvc_NetrUseDel_done, req); return req; } static void rpccli_wkssvc_NetrUseDel_done(struct tevent_req *subreq) { struct tevent_req *req = tevent_req_callback_data( subreq, struct tevent_req); struct rpccli_wkssvc_NetrUseDel_state *state = tevent_req_data( req, struct rpccli_wkssvc_NetrUseDel_state); NTSTATUS status; TALLOC_CTX *mem_ctx; if (state->out_mem_ctx) { mem_ctx = state->out_mem_ctx; } else { mem_ctx = state; } status = state->dispatch_recv(subreq, mem_ctx); TALLOC_FREE(subreq); if (!NT_STATUS_IS_OK(status)) { tevent_req_nterror(req, status); return; } /* Copy out parameters */ /* Copy result */ state->orig.out.result = state->tmp.out.result; /* Reset temporary structure */ ZERO_STRUCT(state->tmp); tevent_req_done(req); } NTSTATUS rpccli_wkssvc_NetrUseDel_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx, WERROR *result) { struct rpccli_wkssvc_NetrUseDel_state *state = tevent_req_data( req, struct rpccli_wkssvc_NetrUseDel_state); NTSTATUS status; if (tevent_req_is_nterror(req, &status)) { tevent_req_received(req); return status; } /* Steal possbile out parameters to the callers context */ talloc_steal(mem_ctx, state->out_mem_ctx); /* Return result */ *result = state->orig.out.result; tevent_req_received(req); return NT_STATUS_OK; } NTSTATUS rpccli_wkssvc_NetrUseDel(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name /* [in] [unique,charset(UTF16)] */, const char *use_name /* [in] [ref,charset(UTF16)] */, uint32_t force_cond /* [in] */, WERROR *werror) { struct wkssvc_NetrUseDel r; NTSTATUS status; /* In parameters */ r.in.server_name = server_name; r.in.use_name = use_name; r.in.force_cond = force_cond; status = cli->dispatch(cli, mem_ctx, &ndr_table_wkssvc, NDR_WKSSVC_NETRUSEDEL, &r); if (!NT_STATUS_IS_OK(status)) { return status; } if (NT_STATUS_IS_ERR(status)) { return status; } /* Return variables */ /* Return result */ if (werror) { *werror = r.out.result; } return werror_to_ntstatus(r.out.result); } struct rpccli_wkssvc_NetrUseEnum_state { struct wkssvc_NetrUseEnum orig; struct wkssvc_NetrUseEnum tmp; TALLOC_CTX *out_mem_ctx; NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx); }; static void rpccli_wkssvc_NetrUseEnum_done(struct tevent_req *subreq); struct tevent_req *rpccli_wkssvc_NetrUseEnum_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, struct rpc_pipe_client *cli, const char *_server_name /* [in] [unique,charset(UTF16)] */, struct wkssvc_NetrUseEnumInfo *_info /* [in,out] [ref] */, uint32_t _prefmaxlen /* [in] */, uint32_t *_entries_read /* [out] [ref] */, uint32_t *_resume_handle /* [in,out] [unique] */) { struct tevent_req *req; struct rpccli_wkssvc_NetrUseEnum_state *state; struct tevent_req *subreq; req = tevent_req_create(mem_ctx, &state, struct rpccli_wkssvc_NetrUseEnum_state); if (req == NULL) { return NULL; } state->out_mem_ctx = NULL; state->dispatch_recv = cli->dispatch_recv; /* In parameters */ state->orig.in.server_name = _server_name; state->orig.in.info = _info; state->orig.in.prefmaxlen = _prefmaxlen; state->orig.in.resume_handle = _resume_handle; /* Out parameters */ state->orig.out.info = _info; state->orig.out.entries_read = _entries_read; state->orig.out.resume_handle = _resume_handle; /* Result */ ZERO_STRUCT(state->orig.out.result); state->out_mem_ctx = talloc_named_const(state, 0, "rpccli_wkssvc_NetrUseEnum_out_memory"); if (tevent_req_nomem(state->out_mem_ctx, req)) { return tevent_req_post(req, ev); } /* make a temporary copy, that we pass to the dispatch function */ state->tmp = state->orig; subreq = cli->dispatch_send(state, ev, cli, &ndr_table_wkssvc, NDR_WKSSVC_NETRUSEENUM, &state->tmp); if (tevent_req_nomem(subreq, req)) { return tevent_req_post(req, ev); } tevent_req_set_callback(subreq, rpccli_wkssvc_NetrUseEnum_done, req); return req; } static void rpccli_wkssvc_NetrUseEnum_done(struct tevent_req *subreq) { struct tevent_req *req = tevent_req_callback_data( subreq, struct tevent_req); struct rpccli_wkssvc_NetrUseEnum_state *state = tevent_req_data( req, struct rpccli_wkssvc_NetrUseEnum_state); NTSTATUS status; TALLOC_CTX *mem_ctx; if (state->out_mem_ctx) { mem_ctx = state->out_mem_ctx; } else { mem_ctx = state; } status = state->dispatch_recv(subreq, mem_ctx); TALLOC_FREE(subreq); if (!NT_STATUS_IS_OK(status)) { tevent_req_nterror(req, status); return; } /* Copy out parameters */ *state->orig.out.info = *state->tmp.out.info; *state->orig.out.entries_read = *state->tmp.out.entries_read; if (state->orig.out.resume_handle && state->tmp.out.resume_handle) { *state->orig.out.resume_handle = *state->tmp.out.resume_handle; } /* Copy result */ state->orig.out.result = state->tmp.out.result; /* Reset temporary structure */ ZERO_STRUCT(state->tmp); tevent_req_done(req); } NTSTATUS rpccli_wkssvc_NetrUseEnum_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx, WERROR *result) { struct rpccli_wkssvc_NetrUseEnum_state *state = tevent_req_data( req, struct rpccli_wkssvc_NetrUseEnum_state); NTSTATUS status; if (tevent_req_is_nterror(req, &status)) { tevent_req_received(req); return status; } /* Steal possbile out parameters to the callers context */ talloc_steal(mem_ctx, state->out_mem_ctx); /* Return result */ *result = state->orig.out.result; tevent_req_received(req); return NT_STATUS_OK; } NTSTATUS rpccli_wkssvc_NetrUseEnum(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name /* [in] [unique,charset(UTF16)] */, struct wkssvc_NetrUseEnumInfo *info /* [in,out] [ref] */, uint32_t prefmaxlen /* [in] */, uint32_t *entries_read /* [out] [ref] */, uint32_t *resume_handle /* [in,out] [unique] */, WERROR *werror) { struct wkssvc_NetrUseEnum r; NTSTATUS status; /* In parameters */ r.in.server_name = server_name; r.in.info = info; r.in.prefmaxlen = prefmaxlen; r.in.resume_handle = resume_handle; status = cli->dispatch(cli, mem_ctx, &ndr_table_wkssvc, NDR_WKSSVC_NETRUSEENUM, &r); if (!NT_STATUS_IS_OK(status)) { return status; } if (NT_STATUS_IS_ERR(status)) { return status; } /* Return variables */ *info = *r.out.info; *entries_read = *r.out.entries_read; if (resume_handle && r.out.resume_handle) { *resume_handle = *r.out.resume_handle; } /* Return result */ if (werror) { *werror = r.out.result; } return werror_to_ntstatus(r.out.result); } struct rpccli_wkssvc_NetrMessageBufferSend_state { struct wkssvc_NetrMessageBufferSend orig; struct wkssvc_NetrMessageBufferSend tmp; TALLOC_CTX *out_mem_ctx; NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx); }; static void rpccli_wkssvc_NetrMessageBufferSend_done(struct tevent_req *subreq); struct tevent_req *rpccli_wkssvc_NetrMessageBufferSend_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, struct rpc_pipe_client *cli, const char *_server_name /* [in] [unique,charset(UTF16)] */, const char *_message_name /* [in] [ref,charset(UTF16)] */, const char *_message_sender_name /* [in] [unique,charset(UTF16)] */, uint8_t *_message_buffer /* [in] [ref,size_is(message_size)] */, uint32_t _message_size /* [in] */) { struct tevent_req *req; struct rpccli_wkssvc_NetrMessageBufferSend_state *state; struct tevent_req *subreq; req = tevent_req_create(mem_ctx, &state, struct rpccli_wkssvc_NetrMessageBufferSend_state); if (req == NULL) { return NULL; } state->out_mem_ctx = NULL; state->dispatch_recv = cli->dispatch_recv; /* In parameters */ state->orig.in.server_name = _server_name; state->orig.in.message_name = _message_name; state->orig.in.message_sender_name = _message_sender_name; state->orig.in.message_buffer = _message_buffer; state->orig.in.message_size = _message_size; /* Out parameters */ /* Result */ ZERO_STRUCT(state->orig.out.result); /* make a temporary copy, that we pass to the dispatch function */ state->tmp = state->orig; subreq = cli->dispatch_send(state, ev, cli, &ndr_table_wkssvc, NDR_WKSSVC_NETRMESSAGEBUFFERSEND, &state->tmp); if (tevent_req_nomem(subreq, req)) { return tevent_req_post(req, ev); } tevent_req_set_callback(subreq, rpccli_wkssvc_NetrMessageBufferSend_done, req); return req; } static void rpccli_wkssvc_NetrMessageBufferSend_done(struct tevent_req *subreq) { struct tevent_req *req = tevent_req_callback_data( subreq, struct tevent_req); struct rpccli_wkssvc_NetrMessageBufferSend_state *state = tevent_req_data( req, struct rpccli_wkssvc_NetrMessageBufferSend_state); NTSTATUS status; TALLOC_CTX *mem_ctx; if (state->out_mem_ctx) { mem_ctx = state->out_mem_ctx; } else { mem_ctx = state; } status = state->dispatch_recv(subreq, mem_ctx); TALLOC_FREE(subreq); if (!NT_STATUS_IS_OK(status)) { tevent_req_nterror(req, status); return; } /* Copy out parameters */ /* Copy result */ state->orig.out.result = state->tmp.out.result; /* Reset temporary structure */ ZERO_STRUCT(state->tmp); tevent_req_done(req); } NTSTATUS rpccli_wkssvc_NetrMessageBufferSend_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx, WERROR *result) { struct rpccli_wkssvc_NetrMessageBufferSend_state *state = tevent_req_data( req, struct rpccli_wkssvc_NetrMessageBufferSend_state); NTSTATUS status; if (tevent_req_is_nterror(req, &status)) { tevent_req_received(req); return status; } /* Steal possbile out parameters to the callers context */ talloc_steal(mem_ctx, state->out_mem_ctx); /* Return result */ *result = state->orig.out.result; tevent_req_received(req); return NT_STATUS_OK; } NTSTATUS rpccli_wkssvc_NetrMessageBufferSend(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name /* [in] [unique,charset(UTF16)] */, const char *message_name /* [in] [ref,charset(UTF16)] */, const char *message_sender_name /* [in] [unique,charset(UTF16)] */, uint8_t *message_buffer /* [in] [ref,size_is(message_size)] */, uint32_t message_size /* [in] */, WERROR *werror) { struct wkssvc_NetrMessageBufferSend r; NTSTATUS status; /* In parameters */ r.in.server_name = server_name; r.in.message_name = message_name; r.in.message_sender_name = message_sender_name; r.in.message_buffer = message_buffer; r.in.message_size = message_size; status = cli->dispatch(cli, mem_ctx, &ndr_table_wkssvc, NDR_WKSSVC_NETRMESSAGEBUFFERSEND, &r); if (!NT_STATUS_IS_OK(status)) { return status; } if (NT_STATUS_IS_ERR(status)) { return status; } /* Return variables */ /* Return result */ if (werror) { *werror = r.out.result; } return werror_to_ntstatus(r.out.result); } struct rpccli_wkssvc_NetrWorkstationStatisticsGet_state { struct wkssvc_NetrWorkstationStatisticsGet orig; struct wkssvc_NetrWorkstationStatisticsGet tmp; TALLOC_CTX *out_mem_ctx; NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx); }; static void rpccli_wkssvc_NetrWorkstationStatisticsGet_done(struct tevent_req *subreq); struct tevent_req *rpccli_wkssvc_NetrWorkstationStatisticsGet_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, struct rpc_pipe_client *cli, const char *_server_name /* [in] [unique,charset(UTF16)] */, const char *_unknown2 /* [in] [unique,charset(UTF16)] */, uint32_t _unknown3 /* [in] */, uint32_t _unknown4 /* [in] */, struct wkssvc_NetrWorkstationStatistics **_info /* [out] [ref] */) { struct tevent_req *req; struct rpccli_wkssvc_NetrWorkstationStatisticsGet_state *state; struct tevent_req *subreq; req = tevent_req_create(mem_ctx, &state, struct rpccli_wkssvc_NetrWorkstationStatisticsGet_state); if (req == NULL) { return NULL; } state->out_mem_ctx = NULL; state->dispatch_recv = cli->dispatch_recv; /* In parameters */ state->orig.in.server_name = _server_name; state->orig.in.unknown2 = _unknown2; state->orig.in.unknown3 = _unknown3; state->orig.in.unknown4 = _unknown4; /* Out parameters */ state->orig.out.info = _info; /* Result */ ZERO_STRUCT(state->orig.out.result); state->out_mem_ctx = talloc_named_const(state, 0, "rpccli_wkssvc_NetrWorkstationStatisticsGet_out_memory"); if (tevent_req_nomem(state->out_mem_ctx, req)) { return tevent_req_post(req, ev); } /* make a temporary copy, that we pass to the dispatch function */ state->tmp = state->orig; subreq = cli->dispatch_send(state, ev, cli, &ndr_table_wkssvc, NDR_WKSSVC_NETRWORKSTATIONSTATISTICSGET, &state->tmp); if (tevent_req_nomem(subreq, req)) { return tevent_req_post(req, ev); } tevent_req_set_callback(subreq, rpccli_wkssvc_NetrWorkstationStatisticsGet_done, req); return req; } static void rpccli_wkssvc_NetrWorkstationStatisticsGet_done(struct tevent_req *subreq) { struct tevent_req *req = tevent_req_callback_data( subreq, struct tevent_req); struct rpccli_wkssvc_NetrWorkstationStatisticsGet_state *state = tevent_req_data( req, struct rpccli_wkssvc_NetrWorkstationStatisticsGet_state); NTSTATUS status; TALLOC_CTX *mem_ctx; if (state->out_mem_ctx) { mem_ctx = state->out_mem_ctx; } else { mem_ctx = state; } status = state->dispatch_recv(subreq, mem_ctx); TALLOC_FREE(subreq); if (!NT_STATUS_IS_OK(status)) { tevent_req_nterror(req, status); return; } /* Copy out parameters */ *state->orig.out.info = *state->tmp.out.info; /* Copy result */ state->orig.out.result = state->tmp.out.result; /* Reset temporary structure */ ZERO_STRUCT(state->tmp); tevent_req_done(req); } NTSTATUS rpccli_wkssvc_NetrWorkstationStatisticsGet_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx, WERROR *result) { struct rpccli_wkssvc_NetrWorkstationStatisticsGet_state *state = tevent_req_data( req, struct rpccli_wkssvc_NetrWorkstationStatisticsGet_state); NTSTATUS status; if (tevent_req_is_nterror(req, &status)) { tevent_req_received(req); return status; } /* Steal possbile out parameters to the callers context */ talloc_steal(mem_ctx, state->out_mem_ctx); /* Return result */ *result = state->orig.out.result; tevent_req_received(req); return NT_STATUS_OK; } NTSTATUS rpccli_wkssvc_NetrWorkstationStatisticsGet(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name /* [in] [unique,charset(UTF16)] */, const char *unknown2 /* [in] [unique,charset(UTF16)] */, uint32_t unknown3 /* [in] */, uint32_t unknown4 /* [in] */, struct wkssvc_NetrWorkstationStatistics **info /* [out] [ref] */, WERROR *werror) { struct wkssvc_NetrWorkstationStatisticsGet r; NTSTATUS status; /* In parameters */ r.in.server_name = server_name; r.in.unknown2 = unknown2; r.in.unknown3 = unknown3; r.in.unknown4 = unknown4; status = cli->dispatch(cli, mem_ctx, &ndr_table_wkssvc, NDR_WKSSVC_NETRWORKSTATIONSTATISTICSGET, &r); if (!NT_STATUS_IS_OK(status)) { return status; } if (NT_STATUS_IS_ERR(status)) { return status; } /* Return variables */ *info = *r.out.info; /* Return result */ if (werror) { *werror = r.out.result; } return werror_to_ntstatus(r.out.result); } struct rpccli_wkssvc_NetrLogonDomainNameAdd_state { struct wkssvc_NetrLogonDomainNameAdd orig; struct wkssvc_NetrLogonDomainNameAdd tmp; TALLOC_CTX *out_mem_ctx; NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx); }; static void rpccli_wkssvc_NetrLogonDomainNameAdd_done(struct tevent_req *subreq); struct tevent_req *rpccli_wkssvc_NetrLogonDomainNameAdd_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, struct rpc_pipe_client *cli, const char *_domain_name /* [in] [ref,charset(UTF16)] */) { struct tevent_req *req; struct rpccli_wkssvc_NetrLogonDomainNameAdd_state *state; struct tevent_req *subreq; req = tevent_req_create(mem_ctx, &state, struct rpccli_wkssvc_NetrLogonDomainNameAdd_state); if (req == NULL) { return NULL; } state->out_mem_ctx = NULL; state->dispatch_recv = cli->dispatch_recv; /* In parameters */ state->orig.in.domain_name = _domain_name; /* Out parameters */ /* Result */ ZERO_STRUCT(state->orig.out.result); /* make a temporary copy, that we pass to the dispatch function */ state->tmp = state->orig; subreq = cli->dispatch_send(state, ev, cli, &ndr_table_wkssvc, NDR_WKSSVC_NETRLOGONDOMAINNAMEADD, &state->tmp); if (tevent_req_nomem(subreq, req)) { return tevent_req_post(req, ev); } tevent_req_set_callback(subreq, rpccli_wkssvc_NetrLogonDomainNameAdd_done, req); return req; } static void rpccli_wkssvc_NetrLogonDomainNameAdd_done(struct tevent_req *subreq) { struct tevent_req *req = tevent_req_callback_data( subreq, struct tevent_req); struct rpccli_wkssvc_NetrLogonDomainNameAdd_state *state = tevent_req_data( req, struct rpccli_wkssvc_NetrLogonDomainNameAdd_state); NTSTATUS status; TALLOC_CTX *mem_ctx; if (state->out_mem_ctx) { mem_ctx = state->out_mem_ctx; } else { mem_ctx = state; } status = state->dispatch_recv(subreq, mem_ctx); TALLOC_FREE(subreq); if (!NT_STATUS_IS_OK(status)) { tevent_req_nterror(req, status); return; } /* Copy out parameters */ /* Copy result */ state->orig.out.result = state->tmp.out.result; /* Reset temporary structure */ ZERO_STRUCT(state->tmp); tevent_req_done(req); } NTSTATUS rpccli_wkssvc_NetrLogonDomainNameAdd_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx, WERROR *result) { struct rpccli_wkssvc_NetrLogonDomainNameAdd_state *state = tevent_req_data( req, struct rpccli_wkssvc_NetrLogonDomainNameAdd_state); NTSTATUS status; if (tevent_req_is_nterror(req, &status)) { tevent_req_received(req); return status; } /* Steal possbile out parameters to the callers context */ talloc_steal(mem_ctx, state->out_mem_ctx); /* Return result */ *result = state->orig.out.result; tevent_req_received(req); return NT_STATUS_OK; } NTSTATUS rpccli_wkssvc_NetrLogonDomainNameAdd(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *domain_name /* [in] [ref,charset(UTF16)] */, WERROR *werror) { struct wkssvc_NetrLogonDomainNameAdd r; NTSTATUS status; /* In parameters */ r.in.domain_name = domain_name; status = cli->dispatch(cli, mem_ctx, &ndr_table_wkssvc, NDR_WKSSVC_NETRLOGONDOMAINNAMEADD, &r); if (!NT_STATUS_IS_OK(status)) { return status; } if (NT_STATUS_IS_ERR(status)) { return status; } /* Return variables */ /* Return result */ if (werror) { *werror = r.out.result; } return werror_to_ntstatus(r.out.result); } struct rpccli_wkssvc_NetrLogonDomainNameDel_state { struct wkssvc_NetrLogonDomainNameDel orig; struct wkssvc_NetrLogonDomainNameDel tmp; TALLOC_CTX *out_mem_ctx; NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx); }; static void rpccli_wkssvc_NetrLogonDomainNameDel_done(struct tevent_req *subreq); struct tevent_req *rpccli_wkssvc_NetrLogonDomainNameDel_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, struct rpc_pipe_client *cli, const char *_domain_name /* [in] [ref,charset(UTF16)] */) { struct tevent_req *req; struct rpccli_wkssvc_NetrLogonDomainNameDel_state *state; struct tevent_req *subreq; req = tevent_req_create(mem_ctx, &state, struct rpccli_wkssvc_NetrLogonDomainNameDel_state); if (req == NULL) { return NULL; } state->out_mem_ctx = NULL; state->dispatch_recv = cli->dispatch_recv; /* In parameters */ state->orig.in.domain_name = _domain_name; /* Out parameters */ /* Result */ ZERO_STRUCT(state->orig.out.result); /* make a temporary copy, that we pass to the dispatch function */ state->tmp = state->orig; subreq = cli->dispatch_send(state, ev, cli, &ndr_table_wkssvc, NDR_WKSSVC_NETRLOGONDOMAINNAMEDEL, &state->tmp); if (tevent_req_nomem(subreq, req)) { return tevent_req_post(req, ev); } tevent_req_set_callback(subreq, rpccli_wkssvc_NetrLogonDomainNameDel_done, req); return req; } static void rpccli_wkssvc_NetrLogonDomainNameDel_done(struct tevent_req *subreq) { struct tevent_req *req = tevent_req_callback_data( subreq, struct tevent_req); struct rpccli_wkssvc_NetrLogonDomainNameDel_state *state = tevent_req_data( req, struct rpccli_wkssvc_NetrLogonDomainNameDel_state); NTSTATUS status; TALLOC_CTX *mem_ctx; if (state->out_mem_ctx) { mem_ctx = state->out_mem_ctx; } else { mem_ctx = state; } status = state->dispatch_recv(subreq, mem_ctx); TALLOC_FREE(subreq); if (!NT_STATUS_IS_OK(status)) { tevent_req_nterror(req, status); return; } /* Copy out parameters */ /* Copy result */ state->orig.out.result = state->tmp.out.result; /* Reset temporary structure */ ZERO_STRUCT(state->tmp); tevent_req_done(req); } NTSTATUS rpccli_wkssvc_NetrLogonDomainNameDel_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx, WERROR *result) { struct rpccli_wkssvc_NetrLogonDomainNameDel_state *state = tevent_req_data( req, struct rpccli_wkssvc_NetrLogonDomainNameDel_state); NTSTATUS status; if (tevent_req_is_nterror(req, &status)) { tevent_req_received(req); return status; } /* Steal possbile out parameters to the callers context */ talloc_steal(mem_ctx, state->out_mem_ctx); /* Return result */ *result = state->orig.out.result; tevent_req_received(req); return NT_STATUS_OK; } NTSTATUS rpccli_wkssvc_NetrLogonDomainNameDel(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *domain_name /* [in] [ref,charset(UTF16)] */, WERROR *werror) { struct wkssvc_NetrLogonDomainNameDel r; NTSTATUS status; /* In parameters */ r.in.domain_name = domain_name; status = cli->dispatch(cli, mem_ctx, &ndr_table_wkssvc, NDR_WKSSVC_NETRLOGONDOMAINNAMEDEL, &r); if (!NT_STATUS_IS_OK(status)) { return status; } if (NT_STATUS_IS_ERR(status)) { return status; } /* Return variables */ /* Return result */ if (werror) { *werror = r.out.result; } return werror_to_ntstatus(r.out.result); } struct rpccli_wkssvc_NetrJoinDomain_state { struct wkssvc_NetrJoinDomain orig; struct wkssvc_NetrJoinDomain tmp; TALLOC_CTX *out_mem_ctx; NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx); }; static void rpccli_wkssvc_NetrJoinDomain_done(struct tevent_req *subreq); struct tevent_req *rpccli_wkssvc_NetrJoinDomain_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, struct rpc_pipe_client *cli, const char *_server_name /* [in] [unique,charset(UTF16)] */, const char *_domain_name /* [in] [ref,charset(UTF16)] */, const char *_account_ou /* [in] [unique,charset(UTF16)] */, const char *_Account /* [in] [unique,charset(UTF16)] */, const char *_password /* [in] [unique,charset(UTF16)] */, uint32_t _join_flags /* [in] */) { struct tevent_req *req; struct rpccli_wkssvc_NetrJoinDomain_state *state; struct tevent_req *subreq; req = tevent_req_create(mem_ctx, &state, struct rpccli_wkssvc_NetrJoinDomain_state); if (req == NULL) { return NULL; } state->out_mem_ctx = NULL; state->dispatch_recv = cli->dispatch_recv; /* In parameters */ state->orig.in.server_name = _server_name; state->orig.in.domain_name = _domain_name; state->orig.in.account_ou = _account_ou; state->orig.in.Account = _Account; state->orig.in.password = _password; state->orig.in.join_flags = _join_flags; /* Out parameters */ /* Result */ ZERO_STRUCT(state->orig.out.result); /* make a temporary copy, that we pass to the dispatch function */ state->tmp = state->orig; subreq = cli->dispatch_send(state, ev, cli, &ndr_table_wkssvc, NDR_WKSSVC_NETRJOINDOMAIN, &state->tmp); if (tevent_req_nomem(subreq, req)) { return tevent_req_post(req, ev); } tevent_req_set_callback(subreq, rpccli_wkssvc_NetrJoinDomain_done, req); return req; } static void rpccli_wkssvc_NetrJoinDomain_done(struct tevent_req *subreq) { struct tevent_req *req = tevent_req_callback_data( subreq, struct tevent_req); struct rpccli_wkssvc_NetrJoinDomain_state *state = tevent_req_data( req, struct rpccli_wkssvc_NetrJoinDomain_state); NTSTATUS status; TALLOC_CTX *mem_ctx; if (state->out_mem_ctx) { mem_ctx = state->out_mem_ctx; } else { mem_ctx = state; } status = state->dispatch_recv(subreq, mem_ctx); TALLOC_FREE(subreq); if (!NT_STATUS_IS_OK(status)) { tevent_req_nterror(req, status); return; } /* Copy out parameters */ /* Copy result */ state->orig.out.result = state->tmp.out.result; /* Reset temporary structure */ ZERO_STRUCT(state->tmp); tevent_req_done(req); } NTSTATUS rpccli_wkssvc_NetrJoinDomain_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx, WERROR *result) { struct rpccli_wkssvc_NetrJoinDomain_state *state = tevent_req_data( req, struct rpccli_wkssvc_NetrJoinDomain_state); NTSTATUS status; if (tevent_req_is_nterror(req, &status)) { tevent_req_received(req); return status; } /* Steal possbile out parameters to the callers context */ talloc_steal(mem_ctx, state->out_mem_ctx); /* Return result */ *result = state->orig.out.result; tevent_req_received(req); return NT_STATUS_OK; } NTSTATUS rpccli_wkssvc_NetrJoinDomain(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name /* [in] [unique,charset(UTF16)] */, const char *domain_name /* [in] [ref,charset(UTF16)] */, const char *account_ou /* [in] [unique,charset(UTF16)] */, const char *Account /* [in] [unique,charset(UTF16)] */, const char *password /* [in] [unique,charset(UTF16)] */, uint32_t join_flags /* [in] */, WERROR *werror) { struct wkssvc_NetrJoinDomain r; NTSTATUS status; /* In parameters */ r.in.server_name = server_name; r.in.domain_name = domain_name; r.in.account_ou = account_ou; r.in.Account = Account; r.in.password = password; r.in.join_flags = join_flags; status = cli->dispatch(cli, mem_ctx, &ndr_table_wkssvc, NDR_WKSSVC_NETRJOINDOMAIN, &r); if (!NT_STATUS_IS_OK(status)) { return status; } if (NT_STATUS_IS_ERR(status)) { return status; } /* Return variables */ /* Return result */ if (werror) { *werror = r.out.result; } return werror_to_ntstatus(r.out.result); } struct rpccli_wkssvc_NetrUnjoinDomain_state { struct wkssvc_NetrUnjoinDomain orig; struct wkssvc_NetrUnjoinDomain tmp; TALLOC_CTX *out_mem_ctx; NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx); }; static void rpccli_wkssvc_NetrUnjoinDomain_done(struct tevent_req *subreq); struct tevent_req *rpccli_wkssvc_NetrUnjoinDomain_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, struct rpc_pipe_client *cli, const char *_server_name /* [in] [unique,charset(UTF16)] */, const char *_Account /* [in] [unique,charset(UTF16)] */, const char *_password /* [in] [unique,charset(UTF16)] */, uint32_t _unjoin_flags /* [in] */) { struct tevent_req *req; struct rpccli_wkssvc_NetrUnjoinDomain_state *state; struct tevent_req *subreq; req = tevent_req_create(mem_ctx, &state, struct rpccli_wkssvc_NetrUnjoinDomain_state); if (req == NULL) { return NULL; } state->out_mem_ctx = NULL; state->dispatch_recv = cli->dispatch_recv; /* In parameters */ state->orig.in.server_name = _server_name; state->orig.in.Account = _Account; state->orig.in.password = _password; state->orig.in.unjoin_flags = _unjoin_flags; /* Out parameters */ /* Result */ ZERO_STRUCT(state->orig.out.result); /* make a temporary copy, that we pass to the dispatch function */ state->tmp = state->orig; subreq = cli->dispatch_send(state, ev, cli, &ndr_table_wkssvc, NDR_WKSSVC_NETRUNJOINDOMAIN, &state->tmp); if (tevent_req_nomem(subreq, req)) { return tevent_req_post(req, ev); } tevent_req_set_callback(subreq, rpccli_wkssvc_NetrUnjoinDomain_done, req); return req; } static void rpccli_wkssvc_NetrUnjoinDomain_done(struct tevent_req *subreq) { struct tevent_req *req = tevent_req_callback_data( subreq, struct tevent_req); struct rpccli_wkssvc_NetrUnjoinDomain_state *state = tevent_req_data( req, struct rpccli_wkssvc_NetrUnjoinDomain_state); NTSTATUS status; TALLOC_CTX *mem_ctx; if (state->out_mem_ctx) { mem_ctx = state->out_mem_ctx; } else { mem_ctx = state; } status = state->dispatch_recv(subreq, mem_ctx); TALLOC_FREE(subreq); if (!NT_STATUS_IS_OK(status)) { tevent_req_nterror(req, status); return; } /* Copy out parameters */ /* Copy result */ state->orig.out.result = state->tmp.out.result; /* Reset temporary structure */ ZERO_STRUCT(state->tmp); tevent_req_done(req); } NTSTATUS rpccli_wkssvc_NetrUnjoinDomain_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx, WERROR *result) { struct rpccli_wkssvc_NetrUnjoinDomain_state *state = tevent_req_data( req, struct rpccli_wkssvc_NetrUnjoinDomain_state); NTSTATUS status; if (tevent_req_is_nterror(req, &status)) { tevent_req_received(req); return status; } /* Steal possbile out parameters to the callers context */ talloc_steal(mem_ctx, state->out_mem_ctx); /* Return result */ *result = state->orig.out.result; tevent_req_received(req); return NT_STATUS_OK; } NTSTATUS rpccli_wkssvc_NetrUnjoinDomain(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name /* [in] [unique,charset(UTF16)] */, const char *Account /* [in] [unique,charset(UTF16)] */, const char *password /* [in] [unique,charset(UTF16)] */, uint32_t unjoin_flags /* [in] */, WERROR *werror) { struct wkssvc_NetrUnjoinDomain r; NTSTATUS status; /* In parameters */ r.in.server_name = server_name; r.in.Account = Account; r.in.password = password; r.in.unjoin_flags = unjoin_flags; status = cli->dispatch(cli, mem_ctx, &ndr_table_wkssvc, NDR_WKSSVC_NETRUNJOINDOMAIN, &r); if (!NT_STATUS_IS_OK(status)) { return status; } if (NT_STATUS_IS_ERR(status)) { return status; } /* Return variables */ /* Return result */ if (werror) { *werror = r.out.result; } return werror_to_ntstatus(r.out.result); } struct rpccli_wkssvc_NetrRenameMachineInDomain_state { struct wkssvc_NetrRenameMachineInDomain orig; struct wkssvc_NetrRenameMachineInDomain tmp; TALLOC_CTX *out_mem_ctx; NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx); }; static void rpccli_wkssvc_NetrRenameMachineInDomain_done(struct tevent_req *subreq); struct tevent_req *rpccli_wkssvc_NetrRenameMachineInDomain_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, struct rpc_pipe_client *cli, const char *_server_name /* [in] [unique,charset(UTF16)] */, const char *_NewMachineName /* [in] [unique,charset(UTF16)] */, const char *_Account /* [in] [unique,charset(UTF16)] */, const char *_password /* [in] [unique,charset(UTF16)] */, uint32_t _RenameOptions /* [in] */) { struct tevent_req *req; struct rpccli_wkssvc_NetrRenameMachineInDomain_state *state; struct tevent_req *subreq; req = tevent_req_create(mem_ctx, &state, struct rpccli_wkssvc_NetrRenameMachineInDomain_state); if (req == NULL) { return NULL; } state->out_mem_ctx = NULL; state->dispatch_recv = cli->dispatch_recv; /* In parameters */ state->orig.in.server_name = _server_name; state->orig.in.NewMachineName = _NewMachineName; state->orig.in.Account = _Account; state->orig.in.password = _password; state->orig.in.RenameOptions = _RenameOptions; /* Out parameters */ /* Result */ ZERO_STRUCT(state->orig.out.result); /* make a temporary copy, that we pass to the dispatch function */ state->tmp = state->orig; subreq = cli->dispatch_send(state, ev, cli, &ndr_table_wkssvc, NDR_WKSSVC_NETRRENAMEMACHINEINDOMAIN, &state->tmp); if (tevent_req_nomem(subreq, req)) { return tevent_req_post(req, ev); } tevent_req_set_callback(subreq, rpccli_wkssvc_NetrRenameMachineInDomain_done, req); return req; } static void rpccli_wkssvc_NetrRenameMachineInDomain_done(struct tevent_req *subreq) { struct tevent_req *req = tevent_req_callback_data( subreq, struct tevent_req); struct rpccli_wkssvc_NetrRenameMachineInDomain_state *state = tevent_req_data( req, struct rpccli_wkssvc_NetrRenameMachineInDomain_state); NTSTATUS status; TALLOC_CTX *mem_ctx; if (state->out_mem_ctx) { mem_ctx = state->out_mem_ctx; } else { mem_ctx = state; } status = state->dispatch_recv(subreq, mem_ctx); TALLOC_FREE(subreq); if (!NT_STATUS_IS_OK(status)) { tevent_req_nterror(req, status); return; } /* Copy out parameters */ /* Copy result */ state->orig.out.result = state->tmp.out.result; /* Reset temporary structure */ ZERO_STRUCT(state->tmp); tevent_req_done(req); } NTSTATUS rpccli_wkssvc_NetrRenameMachineInDomain_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx, WERROR *result) { struct rpccli_wkssvc_NetrRenameMachineInDomain_state *state = tevent_req_data( req, struct rpccli_wkssvc_NetrRenameMachineInDomain_state); NTSTATUS status; if (tevent_req_is_nterror(req, &status)) { tevent_req_received(req); return status; } /* Steal possbile out parameters to the callers context */ talloc_steal(mem_ctx, state->out_mem_ctx); /* Return result */ *result = state->orig.out.result; tevent_req_received(req); return NT_STATUS_OK; } NTSTATUS rpccli_wkssvc_NetrRenameMachineInDomain(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name /* [in] [unique,charset(UTF16)] */, const char *NewMachineName /* [in] [unique,charset(UTF16)] */, const char *Account /* [in] [unique,charset(UTF16)] */, const char *password /* [in] [unique,charset(UTF16)] */, uint32_t RenameOptions /* [in] */, WERROR *werror) { struct wkssvc_NetrRenameMachineInDomain r; NTSTATUS status; /* In parameters */ r.in.server_name = server_name; r.in.NewMachineName = NewMachineName; r.in.Account = Account; r.in.password = password; r.in.RenameOptions = RenameOptions; status = cli->dispatch(cli, mem_ctx, &ndr_table_wkssvc, NDR_WKSSVC_NETRRENAMEMACHINEINDOMAIN, &r); if (!NT_STATUS_IS_OK(status)) { return status; } if (NT_STATUS_IS_ERR(status)) { return status; } /* Return variables */ /* Return result */ if (werror) { *werror = r.out.result; } return werror_to_ntstatus(r.out.result); } struct rpccli_wkssvc_NetrValidateName_state { struct wkssvc_NetrValidateName orig; struct wkssvc_NetrValidateName tmp; TALLOC_CTX *out_mem_ctx; NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx); }; static void rpccli_wkssvc_NetrValidateName_done(struct tevent_req *subreq); struct tevent_req *rpccli_wkssvc_NetrValidateName_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, struct rpc_pipe_client *cli, const char *_server_name /* [in] [unique,charset(UTF16)] */, const char *_name /* [in] [ref,charset(UTF16)] */, const char *_Account /* [in] [unique,charset(UTF16)] */, const char *_Password /* [in] [unique,charset(UTF16)] */, enum wkssvc_NetValidateNameType _name_type /* [in] */) { struct tevent_req *req; struct rpccli_wkssvc_NetrValidateName_state *state; struct tevent_req *subreq; req = tevent_req_create(mem_ctx, &state, struct rpccli_wkssvc_NetrValidateName_state); if (req == NULL) { return NULL; } state->out_mem_ctx = NULL; state->dispatch_recv = cli->dispatch_recv; /* In parameters */ state->orig.in.server_name = _server_name; state->orig.in.name = _name; state->orig.in.Account = _Account; state->orig.in.Password = _Password; state->orig.in.name_type = _name_type; /* Out parameters */ /* Result */ ZERO_STRUCT(state->orig.out.result); /* make a temporary copy, that we pass to the dispatch function */ state->tmp = state->orig; subreq = cli->dispatch_send(state, ev, cli, &ndr_table_wkssvc, NDR_WKSSVC_NETRVALIDATENAME, &state->tmp); if (tevent_req_nomem(subreq, req)) { return tevent_req_post(req, ev); } tevent_req_set_callback(subreq, rpccli_wkssvc_NetrValidateName_done, req); return req; } static void rpccli_wkssvc_NetrValidateName_done(struct tevent_req *subreq) { struct tevent_req *req = tevent_req_callback_data( subreq, struct tevent_req); struct rpccli_wkssvc_NetrValidateName_state *state = tevent_req_data( req, struct rpccli_wkssvc_NetrValidateName_state); NTSTATUS status; TALLOC_CTX *mem_ctx; if (state->out_mem_ctx) { mem_ctx = state->out_mem_ctx; } else { mem_ctx = state; } status = state->dispatch_recv(subreq, mem_ctx); TALLOC_FREE(subreq); if (!NT_STATUS_IS_OK(status)) { tevent_req_nterror(req, status); return; } /* Copy out parameters */ /* Copy result */ state->orig.out.result = state->tmp.out.result; /* Reset temporary structure */ ZERO_STRUCT(state->tmp); tevent_req_done(req); } NTSTATUS rpccli_wkssvc_NetrValidateName_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx, WERROR *result) { struct rpccli_wkssvc_NetrValidateName_state *state = tevent_req_data( req, struct rpccli_wkssvc_NetrValidateName_state); NTSTATUS status; if (tevent_req_is_nterror(req, &status)) { tevent_req_received(req); return status; } /* Steal possbile out parameters to the callers context */ talloc_steal(mem_ctx, state->out_mem_ctx); /* Return result */ *result = state->orig.out.result; tevent_req_received(req); return NT_STATUS_OK; } NTSTATUS rpccli_wkssvc_NetrValidateName(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name /* [in] [unique,charset(UTF16)] */, const char *name /* [in] [ref,charset(UTF16)] */, const char *Account /* [in] [unique,charset(UTF16)] */, const char *Password /* [in] [unique,charset(UTF16)] */, enum wkssvc_NetValidateNameType name_type /* [in] */, WERROR *werror) { struct wkssvc_NetrValidateName r; NTSTATUS status; /* In parameters */ r.in.server_name = server_name; r.in.name = name; r.in.Account = Account; r.in.Password = Password; r.in.name_type = name_type; status = cli->dispatch(cli, mem_ctx, &ndr_table_wkssvc, NDR_WKSSVC_NETRVALIDATENAME, &r); if (!NT_STATUS_IS_OK(status)) { return status; } if (NT_STATUS_IS_ERR(status)) { return status; } /* Return variables */ /* Return result */ if (werror) { *werror = r.out.result; } return werror_to_ntstatus(r.out.result); } struct rpccli_wkssvc_NetrGetJoinInformation_state { struct wkssvc_NetrGetJoinInformation orig; struct wkssvc_NetrGetJoinInformation tmp; TALLOC_CTX *out_mem_ctx; NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx); }; static void rpccli_wkssvc_NetrGetJoinInformation_done(struct tevent_req *subreq); struct tevent_req *rpccli_wkssvc_NetrGetJoinInformation_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, struct rpc_pipe_client *cli, const char *_server_name /* [in] [unique,charset(UTF16)] */, const char **_name_buffer /* [in,out] [ref,charset(UTF16)] */, enum wkssvc_NetJoinStatus *_name_type /* [out] [ref] */) { struct tevent_req *req; struct rpccli_wkssvc_NetrGetJoinInformation_state *state; struct tevent_req *subreq; req = tevent_req_create(mem_ctx, &state, struct rpccli_wkssvc_NetrGetJoinInformation_state); if (req == NULL) { return NULL; } state->out_mem_ctx = NULL; state->dispatch_recv = cli->dispatch_recv; /* In parameters */ state->orig.in.server_name = _server_name; state->orig.in.name_buffer = _name_buffer; /* Out parameters */ state->orig.out.name_buffer = _name_buffer; state->orig.out.name_type = _name_type; /* Result */ ZERO_STRUCT(state->orig.out.result); state->out_mem_ctx = talloc_named_const(state, 0, "rpccli_wkssvc_NetrGetJoinInformation_out_memory"); if (tevent_req_nomem(state->out_mem_ctx, req)) { return tevent_req_post(req, ev); } /* make a temporary copy, that we pass to the dispatch function */ state->tmp = state->orig; subreq = cli->dispatch_send(state, ev, cli, &ndr_table_wkssvc, NDR_WKSSVC_NETRGETJOININFORMATION, &state->tmp); if (tevent_req_nomem(subreq, req)) { return tevent_req_post(req, ev); } tevent_req_set_callback(subreq, rpccli_wkssvc_NetrGetJoinInformation_done, req); return req; } static void rpccli_wkssvc_NetrGetJoinInformation_done(struct tevent_req *subreq) { struct tevent_req *req = tevent_req_callback_data( subreq, struct tevent_req); struct rpccli_wkssvc_NetrGetJoinInformation_state *state = tevent_req_data( req, struct rpccli_wkssvc_NetrGetJoinInformation_state); NTSTATUS status; TALLOC_CTX *mem_ctx; if (state->out_mem_ctx) { mem_ctx = state->out_mem_ctx; } else { mem_ctx = state; } status = state->dispatch_recv(subreq, mem_ctx); TALLOC_FREE(subreq); if (!NT_STATUS_IS_OK(status)) { tevent_req_nterror(req, status); return; } /* Copy out parameters */ *state->orig.out.name_buffer = *state->tmp.out.name_buffer; *state->orig.out.name_type = *state->tmp.out.name_type; /* Copy result */ state->orig.out.result = state->tmp.out.result; /* Reset temporary structure */ ZERO_STRUCT(state->tmp); tevent_req_done(req); } NTSTATUS rpccli_wkssvc_NetrGetJoinInformation_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx, WERROR *result) { struct rpccli_wkssvc_NetrGetJoinInformation_state *state = tevent_req_data( req, struct rpccli_wkssvc_NetrGetJoinInformation_state); NTSTATUS status; if (tevent_req_is_nterror(req, &status)) { tevent_req_received(req); return status; } /* Steal possbile out parameters to the callers context */ talloc_steal(mem_ctx, state->out_mem_ctx); /* Return result */ *result = state->orig.out.result; tevent_req_received(req); return NT_STATUS_OK; } NTSTATUS rpccli_wkssvc_NetrGetJoinInformation(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name /* [in] [unique,charset(UTF16)] */, const char **name_buffer /* [in,out] [ref,charset(UTF16)] */, enum wkssvc_NetJoinStatus *name_type /* [out] [ref] */, WERROR *werror) { struct wkssvc_NetrGetJoinInformation r; NTSTATUS status; /* In parameters */ r.in.server_name = server_name; r.in.name_buffer = name_buffer; status = cli->dispatch(cli, mem_ctx, &ndr_table_wkssvc, NDR_WKSSVC_NETRGETJOININFORMATION, &r); if (!NT_STATUS_IS_OK(status)) { return status; } if (NT_STATUS_IS_ERR(status)) { return status; } /* Return variables */ *name_buffer = *r.out.name_buffer; *name_type = *r.out.name_type; /* Return result */ if (werror) { *werror = r.out.result; } return werror_to_ntstatus(r.out.result); } struct rpccli_wkssvc_NetrGetJoinableOus_state { struct wkssvc_NetrGetJoinableOus orig; struct wkssvc_NetrGetJoinableOus tmp; TALLOC_CTX *out_mem_ctx; NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx); }; static void rpccli_wkssvc_NetrGetJoinableOus_done(struct tevent_req *subreq); struct tevent_req *rpccli_wkssvc_NetrGetJoinableOus_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, struct rpc_pipe_client *cli, const char *_server_name /* [in] [unique,charset(UTF16)] */, const char *_domain_name /* [in] [ref,charset(UTF16)] */, const char *_Account /* [in] [unique,charset(UTF16)] */, const char *_unknown /* [in] [unique,charset(UTF16)] */, uint32_t *_num_ous /* [in,out] [ref] */, const char ***_ous /* [out] [ref,charset(UTF16),size_is(,*num_ous)] */) { struct tevent_req *req; struct rpccli_wkssvc_NetrGetJoinableOus_state *state; struct tevent_req *subreq; req = tevent_req_create(mem_ctx, &state, struct rpccli_wkssvc_NetrGetJoinableOus_state); if (req == NULL) { return NULL; } state->out_mem_ctx = NULL; state->dispatch_recv = cli->dispatch_recv; /* In parameters */ state->orig.in.server_name = _server_name; state->orig.in.domain_name = _domain_name; state->orig.in.Account = _Account; state->orig.in.unknown = _unknown; state->orig.in.num_ous = _num_ous; /* Out parameters */ state->orig.out.num_ous = _num_ous; state->orig.out.ous = _ous; /* Result */ ZERO_STRUCT(state->orig.out.result); state->out_mem_ctx = talloc_named_const(state, 0, "rpccli_wkssvc_NetrGetJoinableOus_out_memory"); if (tevent_req_nomem(state->out_mem_ctx, req)) { return tevent_req_post(req, ev); } /* make a temporary copy, that we pass to the dispatch function */ state->tmp = state->orig; subreq = cli->dispatch_send(state, ev, cli, &ndr_table_wkssvc, NDR_WKSSVC_NETRGETJOINABLEOUS, &state->tmp); if (tevent_req_nomem(subreq, req)) { return tevent_req_post(req, ev); } tevent_req_set_callback(subreq, rpccli_wkssvc_NetrGetJoinableOus_done, req); return req; } static void rpccli_wkssvc_NetrGetJoinableOus_done(struct tevent_req *subreq) { struct tevent_req *req = tevent_req_callback_data( subreq, struct tevent_req); struct rpccli_wkssvc_NetrGetJoinableOus_state *state = tevent_req_data( req, struct rpccli_wkssvc_NetrGetJoinableOus_state); NTSTATUS status; TALLOC_CTX *mem_ctx; if (state->out_mem_ctx) { mem_ctx = state->out_mem_ctx; } else { mem_ctx = state; } status = state->dispatch_recv(subreq, mem_ctx); TALLOC_FREE(subreq); if (!NT_STATUS_IS_OK(status)) { tevent_req_nterror(req, status); return; } /* Copy out parameters */ *state->orig.out.num_ous = *state->tmp.out.num_ous; *state->orig.out.ous = *state->tmp.out.ous; /* Copy result */ state->orig.out.result = state->tmp.out.result; /* Reset temporary structure */ ZERO_STRUCT(state->tmp); tevent_req_done(req); } NTSTATUS rpccli_wkssvc_NetrGetJoinableOus_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx, WERROR *result) { struct rpccli_wkssvc_NetrGetJoinableOus_state *state = tevent_req_data( req, struct rpccli_wkssvc_NetrGetJoinableOus_state); NTSTATUS status; if (tevent_req_is_nterror(req, &status)) { tevent_req_received(req); return status; } /* Steal possbile out parameters to the callers context */ talloc_steal(mem_ctx, state->out_mem_ctx); /* Return result */ *result = state->orig.out.result; tevent_req_received(req); return NT_STATUS_OK; } NTSTATUS rpccli_wkssvc_NetrGetJoinableOus(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name /* [in] [unique,charset(UTF16)] */, const char *domain_name /* [in] [ref,charset(UTF16)] */, const char *Account /* [in] [unique,charset(UTF16)] */, const char *unknown /* [in] [unique,charset(UTF16)] */, uint32_t *num_ous /* [in,out] [ref] */, const char ***ous /* [out] [ref,charset(UTF16),size_is(,*num_ous)] */, WERROR *werror) { struct wkssvc_NetrGetJoinableOus r; NTSTATUS status; /* In parameters */ r.in.server_name = server_name; r.in.domain_name = domain_name; r.in.Account = Account; r.in.unknown = unknown; r.in.num_ous = num_ous; status = cli->dispatch(cli, mem_ctx, &ndr_table_wkssvc, NDR_WKSSVC_NETRGETJOINABLEOUS, &r); if (!NT_STATUS_IS_OK(status)) { return status; } if (NT_STATUS_IS_ERR(status)) { return status; } /* Return variables */ *num_ous = *r.out.num_ous; *ous = *r.out.ous; /* Return result */ if (werror) { *werror = r.out.result; } return werror_to_ntstatus(r.out.result); } struct rpccli_wkssvc_NetrJoinDomain2_state { struct wkssvc_NetrJoinDomain2 orig; struct wkssvc_NetrJoinDomain2 tmp; TALLOC_CTX *out_mem_ctx; NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx); }; static void rpccli_wkssvc_NetrJoinDomain2_done(struct tevent_req *subreq); struct tevent_req *rpccli_wkssvc_NetrJoinDomain2_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, struct rpc_pipe_client *cli, const char *_server_name /* [in] [unique,charset(UTF16)] */, const char *_domain_name /* [in] [ref,charset(UTF16)] */, const char *_account_ou /* [in] [unique,charset(UTF16)] */, const char *_admin_account /* [in] [unique,charset(UTF16)] */, struct wkssvc_PasswordBuffer *_encrypted_password /* [in] [unique] */, uint32_t _join_flags /* [in] */) { struct tevent_req *req; struct rpccli_wkssvc_NetrJoinDomain2_state *state; struct tevent_req *subreq; req = tevent_req_create(mem_ctx, &state, struct rpccli_wkssvc_NetrJoinDomain2_state); if (req == NULL) { return NULL; } state->out_mem_ctx = NULL; state->dispatch_recv = cli->dispatch_recv; /* In parameters */ state->orig.in.server_name = _server_name; state->orig.in.domain_name = _domain_name; state->orig.in.account_ou = _account_ou; state->orig.in.admin_account = _admin_account; state->orig.in.encrypted_password = _encrypted_password; state->orig.in.join_flags = _join_flags; /* Out parameters */ /* Result */ ZERO_STRUCT(state->orig.out.result); /* make a temporary copy, that we pass to the dispatch function */ state->tmp = state->orig; subreq = cli->dispatch_send(state, ev, cli, &ndr_table_wkssvc, NDR_WKSSVC_NETRJOINDOMAIN2, &state->tmp); if (tevent_req_nomem(subreq, req)) { return tevent_req_post(req, ev); } tevent_req_set_callback(subreq, rpccli_wkssvc_NetrJoinDomain2_done, req); return req; } static void rpccli_wkssvc_NetrJoinDomain2_done(struct tevent_req *subreq) { struct tevent_req *req = tevent_req_callback_data( subreq, struct tevent_req); struct rpccli_wkssvc_NetrJoinDomain2_state *state = tevent_req_data( req, struct rpccli_wkssvc_NetrJoinDomain2_state); NTSTATUS status; TALLOC_CTX *mem_ctx; if (state->out_mem_ctx) { mem_ctx = state->out_mem_ctx; } else { mem_ctx = state; } status = state->dispatch_recv(subreq, mem_ctx); TALLOC_FREE(subreq); if (!NT_STATUS_IS_OK(status)) { tevent_req_nterror(req, status); return; } /* Copy out parameters */ /* Copy result */ state->orig.out.result = state->tmp.out.result; /* Reset temporary structure */ ZERO_STRUCT(state->tmp); tevent_req_done(req); } NTSTATUS rpccli_wkssvc_NetrJoinDomain2_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx, WERROR *result) { struct rpccli_wkssvc_NetrJoinDomain2_state *state = tevent_req_data( req, struct rpccli_wkssvc_NetrJoinDomain2_state); NTSTATUS status; if (tevent_req_is_nterror(req, &status)) { tevent_req_received(req); return status; } /* Steal possbile out parameters to the callers context */ talloc_steal(mem_ctx, state->out_mem_ctx); /* Return result */ *result = state->orig.out.result; tevent_req_received(req); return NT_STATUS_OK; } NTSTATUS rpccli_wkssvc_NetrJoinDomain2(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name /* [in] [unique,charset(UTF16)] */, const char *domain_name /* [in] [ref,charset(UTF16)] */, const char *account_ou /* [in] [unique,charset(UTF16)] */, const char *admin_account /* [in] [unique,charset(UTF16)] */, struct wkssvc_PasswordBuffer *encrypted_password /* [in] [unique] */, uint32_t join_flags /* [in] */, WERROR *werror) { struct wkssvc_NetrJoinDomain2 r; NTSTATUS status; /* In parameters */ r.in.server_name = server_name; r.in.domain_name = domain_name; r.in.account_ou = account_ou; r.in.admin_account = admin_account; r.in.encrypted_password = encrypted_password; r.in.join_flags = join_flags; status = cli->dispatch(cli, mem_ctx, &ndr_table_wkssvc, NDR_WKSSVC_NETRJOINDOMAIN2, &r); if (!NT_STATUS_IS_OK(status)) { return status; } if (NT_STATUS_IS_ERR(status)) { return status; } /* Return variables */ /* Return result */ if (werror) { *werror = r.out.result; } return werror_to_ntstatus(r.out.result); } struct rpccli_wkssvc_NetrUnjoinDomain2_state { struct wkssvc_NetrUnjoinDomain2 orig; struct wkssvc_NetrUnjoinDomain2 tmp; TALLOC_CTX *out_mem_ctx; NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx); }; static void rpccli_wkssvc_NetrUnjoinDomain2_done(struct tevent_req *subreq); struct tevent_req *rpccli_wkssvc_NetrUnjoinDomain2_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, struct rpc_pipe_client *cli, const char *_server_name /* [in] [unique,charset(UTF16)] */, const char *_account /* [in] [unique,charset(UTF16)] */, struct wkssvc_PasswordBuffer *_encrypted_password /* [in] [unique] */, uint32_t _unjoin_flags /* [in] */) { struct tevent_req *req; struct rpccli_wkssvc_NetrUnjoinDomain2_state *state; struct tevent_req *subreq; req = tevent_req_create(mem_ctx, &state, struct rpccli_wkssvc_NetrUnjoinDomain2_state); if (req == NULL) { return NULL; } state->out_mem_ctx = NULL; state->dispatch_recv = cli->dispatch_recv; /* In parameters */ state->orig.in.server_name = _server_name; state->orig.in.account = _account; state->orig.in.encrypted_password = _encrypted_password; state->orig.in.unjoin_flags = _unjoin_flags; /* Out parameters */ /* Result */ ZERO_STRUCT(state->orig.out.result); /* make a temporary copy, that we pass to the dispatch function */ state->tmp = state->orig; subreq = cli->dispatch_send(state, ev, cli, &ndr_table_wkssvc, NDR_WKSSVC_NETRUNJOINDOMAIN2, &state->tmp); if (tevent_req_nomem(subreq, req)) { return tevent_req_post(req, ev); } tevent_req_set_callback(subreq, rpccli_wkssvc_NetrUnjoinDomain2_done, req); return req; } static void rpccli_wkssvc_NetrUnjoinDomain2_done(struct tevent_req *subreq) { struct tevent_req *req = tevent_req_callback_data( subreq, struct tevent_req); struct rpccli_wkssvc_NetrUnjoinDomain2_state *state = tevent_req_data( req, struct rpccli_wkssvc_NetrUnjoinDomain2_state); NTSTATUS status; TALLOC_CTX *mem_ctx; if (state->out_mem_ctx) { mem_ctx = state->out_mem_ctx; } else { mem_ctx = state; } status = state->dispatch_recv(subreq, mem_ctx); TALLOC_FREE(subreq); if (!NT_STATUS_IS_OK(status)) { tevent_req_nterror(req, status); return; } /* Copy out parameters */ /* Copy result */ state->orig.out.result = state->tmp.out.result; /* Reset temporary structure */ ZERO_STRUCT(state->tmp); tevent_req_done(req); } NTSTATUS rpccli_wkssvc_NetrUnjoinDomain2_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx, WERROR *result) { struct rpccli_wkssvc_NetrUnjoinDomain2_state *state = tevent_req_data( req, struct rpccli_wkssvc_NetrUnjoinDomain2_state); NTSTATUS status; if (tevent_req_is_nterror(req, &status)) { tevent_req_received(req); return status; } /* Steal possbile out parameters to the callers context */ talloc_steal(mem_ctx, state->out_mem_ctx); /* Return result */ *result = state->orig.out.result; tevent_req_received(req); return NT_STATUS_OK; } NTSTATUS rpccli_wkssvc_NetrUnjoinDomain2(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name /* [in] [unique,charset(UTF16)] */, const char *account /* [in] [unique,charset(UTF16)] */, struct wkssvc_PasswordBuffer *encrypted_password /* [in] [unique] */, uint32_t unjoin_flags /* [in] */, WERROR *werror) { struct wkssvc_NetrUnjoinDomain2 r; NTSTATUS status; /* In parameters */ r.in.server_name = server_name; r.in.account = account; r.in.encrypted_password = encrypted_password; r.in.unjoin_flags = unjoin_flags; status = cli->dispatch(cli, mem_ctx, &ndr_table_wkssvc, NDR_WKSSVC_NETRUNJOINDOMAIN2, &r); if (!NT_STATUS_IS_OK(status)) { return status; } if (NT_STATUS_IS_ERR(status)) { return status; } /* Return variables */ /* Return result */ if (werror) { *werror = r.out.result; } return werror_to_ntstatus(r.out.result); } struct rpccli_wkssvc_NetrRenameMachineInDomain2_state { struct wkssvc_NetrRenameMachineInDomain2 orig; struct wkssvc_NetrRenameMachineInDomain2 tmp; TALLOC_CTX *out_mem_ctx; NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx); }; static void rpccli_wkssvc_NetrRenameMachineInDomain2_done(struct tevent_req *subreq); struct tevent_req *rpccli_wkssvc_NetrRenameMachineInDomain2_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, struct rpc_pipe_client *cli, const char *_server_name /* [in] [unique,charset(UTF16)] */, const char *_NewMachineName /* [in] [unique,charset(UTF16)] */, const char *_Account /* [in] [unique,charset(UTF16)] */, struct wkssvc_PasswordBuffer *_EncryptedPassword /* [in] [unique] */, uint32_t _RenameOptions /* [in] */) { struct tevent_req *req; struct rpccli_wkssvc_NetrRenameMachineInDomain2_state *state; struct tevent_req *subreq; req = tevent_req_create(mem_ctx, &state, struct rpccli_wkssvc_NetrRenameMachineInDomain2_state); if (req == NULL) { return NULL; } state->out_mem_ctx = NULL; state->dispatch_recv = cli->dispatch_recv; /* In parameters */ state->orig.in.server_name = _server_name; state->orig.in.NewMachineName = _NewMachineName; state->orig.in.Account = _Account; state->orig.in.EncryptedPassword = _EncryptedPassword; state->orig.in.RenameOptions = _RenameOptions; /* Out parameters */ /* Result */ ZERO_STRUCT(state->orig.out.result); /* make a temporary copy, that we pass to the dispatch function */ state->tmp = state->orig; subreq = cli->dispatch_send(state, ev, cli, &ndr_table_wkssvc, NDR_WKSSVC_NETRRENAMEMACHINEINDOMAIN2, &state->tmp); if (tevent_req_nomem(subreq, req)) { return tevent_req_post(req, ev); } tevent_req_set_callback(subreq, rpccli_wkssvc_NetrRenameMachineInDomain2_done, req); return req; } static void rpccli_wkssvc_NetrRenameMachineInDomain2_done(struct tevent_req *subreq) { struct tevent_req *req = tevent_req_callback_data( subreq, struct tevent_req); struct rpccli_wkssvc_NetrRenameMachineInDomain2_state *state = tevent_req_data( req, struct rpccli_wkssvc_NetrRenameMachineInDomain2_state); NTSTATUS status; TALLOC_CTX *mem_ctx; if (state->out_mem_ctx) { mem_ctx = state->out_mem_ctx; } else { mem_ctx = state; } status = state->dispatch_recv(subreq, mem_ctx); TALLOC_FREE(subreq); if (!NT_STATUS_IS_OK(status)) { tevent_req_nterror(req, status); return; } /* Copy out parameters */ /* Copy result */ state->orig.out.result = state->tmp.out.result; /* Reset temporary structure */ ZERO_STRUCT(state->tmp); tevent_req_done(req); } NTSTATUS rpccli_wkssvc_NetrRenameMachineInDomain2_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx, WERROR *result) { struct rpccli_wkssvc_NetrRenameMachineInDomain2_state *state = tevent_req_data( req, struct rpccli_wkssvc_NetrRenameMachineInDomain2_state); NTSTATUS status; if (tevent_req_is_nterror(req, &status)) { tevent_req_received(req); return status; } /* Steal possbile out parameters to the callers context */ talloc_steal(mem_ctx, state->out_mem_ctx); /* Return result */ *result = state->orig.out.result; tevent_req_received(req); return NT_STATUS_OK; } NTSTATUS rpccli_wkssvc_NetrRenameMachineInDomain2(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name /* [in] [unique,charset(UTF16)] */, const char *NewMachineName /* [in] [unique,charset(UTF16)] */, const char *Account /* [in] [unique,charset(UTF16)] */, struct wkssvc_PasswordBuffer *EncryptedPassword /* [in] [unique] */, uint32_t RenameOptions /* [in] */, WERROR *werror) { struct wkssvc_NetrRenameMachineInDomain2 r; NTSTATUS status; /* In parameters */ r.in.server_name = server_name; r.in.NewMachineName = NewMachineName; r.in.Account = Account; r.in.EncryptedPassword = EncryptedPassword; r.in.RenameOptions = RenameOptions; status = cli->dispatch(cli, mem_ctx, &ndr_table_wkssvc, NDR_WKSSVC_NETRRENAMEMACHINEINDOMAIN2, &r); if (!NT_STATUS_IS_OK(status)) { return status; } if (NT_STATUS_IS_ERR(status)) { return status; } /* Return variables */ /* Return result */ if (werror) { *werror = r.out.result; } return werror_to_ntstatus(r.out.result); } struct rpccli_wkssvc_NetrValidateName2_state { struct wkssvc_NetrValidateName2 orig; struct wkssvc_NetrValidateName2 tmp; TALLOC_CTX *out_mem_ctx; NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx); }; static void rpccli_wkssvc_NetrValidateName2_done(struct tevent_req *subreq); struct tevent_req *rpccli_wkssvc_NetrValidateName2_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, struct rpc_pipe_client *cli, const char *_server_name /* [in] [unique,charset(UTF16)] */, const char *_name /* [in] [ref,charset(UTF16)] */, const char *_Account /* [in] [unique,charset(UTF16)] */, struct wkssvc_PasswordBuffer *_EncryptedPassword /* [in] [unique] */, enum wkssvc_NetValidateNameType _name_type /* [in] */) { struct tevent_req *req; struct rpccli_wkssvc_NetrValidateName2_state *state; struct tevent_req *subreq; req = tevent_req_create(mem_ctx, &state, struct rpccli_wkssvc_NetrValidateName2_state); if (req == NULL) { return NULL; } state->out_mem_ctx = NULL; state->dispatch_recv = cli->dispatch_recv; /* In parameters */ state->orig.in.server_name = _server_name; state->orig.in.name = _name; state->orig.in.Account = _Account; state->orig.in.EncryptedPassword = _EncryptedPassword; state->orig.in.name_type = _name_type; /* Out parameters */ /* Result */ ZERO_STRUCT(state->orig.out.result); /* make a temporary copy, that we pass to the dispatch function */ state->tmp = state->orig; subreq = cli->dispatch_send(state, ev, cli, &ndr_table_wkssvc, NDR_WKSSVC_NETRVALIDATENAME2, &state->tmp); if (tevent_req_nomem(subreq, req)) { return tevent_req_post(req, ev); } tevent_req_set_callback(subreq, rpccli_wkssvc_NetrValidateName2_done, req); return req; } static void rpccli_wkssvc_NetrValidateName2_done(struct tevent_req *subreq) { struct tevent_req *req = tevent_req_callback_data( subreq, struct tevent_req); struct rpccli_wkssvc_NetrValidateName2_state *state = tevent_req_data( req, struct rpccli_wkssvc_NetrValidateName2_state); NTSTATUS status; TALLOC_CTX *mem_ctx; if (state->out_mem_ctx) { mem_ctx = state->out_mem_ctx; } else { mem_ctx = state; } status = state->dispatch_recv(subreq, mem_ctx); TALLOC_FREE(subreq); if (!NT_STATUS_IS_OK(status)) { tevent_req_nterror(req, status); return; } /* Copy out parameters */ /* Copy result */ state->orig.out.result = state->tmp.out.result; /* Reset temporary structure */ ZERO_STRUCT(state->tmp); tevent_req_done(req); } NTSTATUS rpccli_wkssvc_NetrValidateName2_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx, WERROR *result) { struct rpccli_wkssvc_NetrValidateName2_state *state = tevent_req_data( req, struct rpccli_wkssvc_NetrValidateName2_state); NTSTATUS status; if (tevent_req_is_nterror(req, &status)) { tevent_req_received(req); return status; } /* Steal possbile out parameters to the callers context */ talloc_steal(mem_ctx, state->out_mem_ctx); /* Return result */ *result = state->orig.out.result; tevent_req_received(req); return NT_STATUS_OK; } NTSTATUS rpccli_wkssvc_NetrValidateName2(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name /* [in] [unique,charset(UTF16)] */, const char *name /* [in] [ref,charset(UTF16)] */, const char *Account /* [in] [unique,charset(UTF16)] */, struct wkssvc_PasswordBuffer *EncryptedPassword /* [in] [unique] */, enum wkssvc_NetValidateNameType name_type /* [in] */, WERROR *werror) { struct wkssvc_NetrValidateName2 r; NTSTATUS status; /* In parameters */ r.in.server_name = server_name; r.in.name = name; r.in.Account = Account; r.in.EncryptedPassword = EncryptedPassword; r.in.name_type = name_type; status = cli->dispatch(cli, mem_ctx, &ndr_table_wkssvc, NDR_WKSSVC_NETRVALIDATENAME2, &r); if (!NT_STATUS_IS_OK(status)) { return status; } if (NT_STATUS_IS_ERR(status)) { return status; } /* Return variables */ /* Return result */ if (werror) { *werror = r.out.result; } return werror_to_ntstatus(r.out.result); } struct rpccli_wkssvc_NetrGetJoinableOus2_state { struct wkssvc_NetrGetJoinableOus2 orig; struct wkssvc_NetrGetJoinableOus2 tmp; TALLOC_CTX *out_mem_ctx; NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx); }; static void rpccli_wkssvc_NetrGetJoinableOus2_done(struct tevent_req *subreq); struct tevent_req *rpccli_wkssvc_NetrGetJoinableOus2_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, struct rpc_pipe_client *cli, const char *_server_name /* [in] [unique,charset(UTF16)] */, const char *_domain_name /* [in] [ref,charset(UTF16)] */, const char *_Account /* [in] [unique,charset(UTF16)] */, struct wkssvc_PasswordBuffer *_EncryptedPassword /* [in] [unique] */, uint32_t *_num_ous /* [in,out] [ref] */, const char ***_ous /* [out] [ref,charset(UTF16),size_is(,*num_ous)] */) { struct tevent_req *req; struct rpccli_wkssvc_NetrGetJoinableOus2_state *state; struct tevent_req *subreq; req = tevent_req_create(mem_ctx, &state, struct rpccli_wkssvc_NetrGetJoinableOus2_state); if (req == NULL) { return NULL; } state->out_mem_ctx = NULL; state->dispatch_recv = cli->dispatch_recv; /* In parameters */ state->orig.in.server_name = _server_name; state->orig.in.domain_name = _domain_name; state->orig.in.Account = _Account; state->orig.in.EncryptedPassword = _EncryptedPassword; state->orig.in.num_ous = _num_ous; /* Out parameters */ state->orig.out.num_ous = _num_ous; state->orig.out.ous = _ous; /* Result */ ZERO_STRUCT(state->orig.out.result); state->out_mem_ctx = talloc_named_const(state, 0, "rpccli_wkssvc_NetrGetJoinableOus2_out_memory"); if (tevent_req_nomem(state->out_mem_ctx, req)) { return tevent_req_post(req, ev); } /* make a temporary copy, that we pass to the dispatch function */ state->tmp = state->orig; subreq = cli->dispatch_send(state, ev, cli, &ndr_table_wkssvc, NDR_WKSSVC_NETRGETJOINABLEOUS2, &state->tmp); if (tevent_req_nomem(subreq, req)) { return tevent_req_post(req, ev); } tevent_req_set_callback(subreq, rpccli_wkssvc_NetrGetJoinableOus2_done, req); return req; } static void rpccli_wkssvc_NetrGetJoinableOus2_done(struct tevent_req *subreq) { struct tevent_req *req = tevent_req_callback_data( subreq, struct tevent_req); struct rpccli_wkssvc_NetrGetJoinableOus2_state *state = tevent_req_data( req, struct rpccli_wkssvc_NetrGetJoinableOus2_state); NTSTATUS status; TALLOC_CTX *mem_ctx; if (state->out_mem_ctx) { mem_ctx = state->out_mem_ctx; } else { mem_ctx = state; } status = state->dispatch_recv(subreq, mem_ctx); TALLOC_FREE(subreq); if (!NT_STATUS_IS_OK(status)) { tevent_req_nterror(req, status); return; } /* Copy out parameters */ *state->orig.out.num_ous = *state->tmp.out.num_ous; *state->orig.out.ous = *state->tmp.out.ous; /* Copy result */ state->orig.out.result = state->tmp.out.result; /* Reset temporary structure */ ZERO_STRUCT(state->tmp); tevent_req_done(req); } NTSTATUS rpccli_wkssvc_NetrGetJoinableOus2_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx, WERROR *result) { struct rpccli_wkssvc_NetrGetJoinableOus2_state *state = tevent_req_data( req, struct rpccli_wkssvc_NetrGetJoinableOus2_state); NTSTATUS status; if (tevent_req_is_nterror(req, &status)) { tevent_req_received(req); return status; } /* Steal possbile out parameters to the callers context */ talloc_steal(mem_ctx, state->out_mem_ctx); /* Return result */ *result = state->orig.out.result; tevent_req_received(req); return NT_STATUS_OK; } NTSTATUS rpccli_wkssvc_NetrGetJoinableOus2(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name /* [in] [unique,charset(UTF16)] */, const char *domain_name /* [in] [ref,charset(UTF16)] */, const char *Account /* [in] [unique,charset(UTF16)] */, struct wkssvc_PasswordBuffer *EncryptedPassword /* [in] [unique] */, uint32_t *num_ous /* [in,out] [ref] */, const char ***ous /* [out] [ref,charset(UTF16),size_is(,*num_ous)] */, WERROR *werror) { struct wkssvc_NetrGetJoinableOus2 r; NTSTATUS status; /* In parameters */ r.in.server_name = server_name; r.in.domain_name = domain_name; r.in.Account = Account; r.in.EncryptedPassword = EncryptedPassword; r.in.num_ous = num_ous; status = cli->dispatch(cli, mem_ctx, &ndr_table_wkssvc, NDR_WKSSVC_NETRGETJOINABLEOUS2, &r); if (!NT_STATUS_IS_OK(status)) { return status; } if (NT_STATUS_IS_ERR(status)) { return status; } /* Return variables */ *num_ous = *r.out.num_ous; *ous = *r.out.ous; /* Return result */ if (werror) { *werror = r.out.result; } return werror_to_ntstatus(r.out.result); } struct rpccli_wkssvc_NetrAddAlternateComputerName_state { struct wkssvc_NetrAddAlternateComputerName orig; struct wkssvc_NetrAddAlternateComputerName tmp; TALLOC_CTX *out_mem_ctx; NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx); }; static void rpccli_wkssvc_NetrAddAlternateComputerName_done(struct tevent_req *subreq); struct tevent_req *rpccli_wkssvc_NetrAddAlternateComputerName_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, struct rpc_pipe_client *cli, const char *_server_name /* [in] [unique,charset(UTF16)] */, const char *_NewAlternateMachineName /* [in] [unique,charset(UTF16)] */, const char *_Account /* [in] [unique,charset(UTF16)] */, struct wkssvc_PasswordBuffer *_EncryptedPassword /* [in] [unique] */, uint32_t _Reserved /* [in] */) { struct tevent_req *req; struct rpccli_wkssvc_NetrAddAlternateComputerName_state *state; struct tevent_req *subreq; req = tevent_req_create(mem_ctx, &state, struct rpccli_wkssvc_NetrAddAlternateComputerName_state); if (req == NULL) { return NULL; } state->out_mem_ctx = NULL; state->dispatch_recv = cli->dispatch_recv; /* In parameters */ state->orig.in.server_name = _server_name; state->orig.in.NewAlternateMachineName = _NewAlternateMachineName; state->orig.in.Account = _Account; state->orig.in.EncryptedPassword = _EncryptedPassword; state->orig.in.Reserved = _Reserved; /* Out parameters */ /* Result */ ZERO_STRUCT(state->orig.out.result); /* make a temporary copy, that we pass to the dispatch function */ state->tmp = state->orig; subreq = cli->dispatch_send(state, ev, cli, &ndr_table_wkssvc, NDR_WKSSVC_NETRADDALTERNATECOMPUTERNAME, &state->tmp); if (tevent_req_nomem(subreq, req)) { return tevent_req_post(req, ev); } tevent_req_set_callback(subreq, rpccli_wkssvc_NetrAddAlternateComputerName_done, req); return req; } static void rpccli_wkssvc_NetrAddAlternateComputerName_done(struct tevent_req *subreq) { struct tevent_req *req = tevent_req_callback_data( subreq, struct tevent_req); struct rpccli_wkssvc_NetrAddAlternateComputerName_state *state = tevent_req_data( req, struct rpccli_wkssvc_NetrAddAlternateComputerName_state); NTSTATUS status; TALLOC_CTX *mem_ctx; if (state->out_mem_ctx) { mem_ctx = state->out_mem_ctx; } else { mem_ctx = state; } status = state->dispatch_recv(subreq, mem_ctx); TALLOC_FREE(subreq); if (!NT_STATUS_IS_OK(status)) { tevent_req_nterror(req, status); return; } /* Copy out parameters */ /* Copy result */ state->orig.out.result = state->tmp.out.result; /* Reset temporary structure */ ZERO_STRUCT(state->tmp); tevent_req_done(req); } NTSTATUS rpccli_wkssvc_NetrAddAlternateComputerName_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx, WERROR *result) { struct rpccli_wkssvc_NetrAddAlternateComputerName_state *state = tevent_req_data( req, struct rpccli_wkssvc_NetrAddAlternateComputerName_state); NTSTATUS status; if (tevent_req_is_nterror(req, &status)) { tevent_req_received(req); return status; } /* Steal possbile out parameters to the callers context */ talloc_steal(mem_ctx, state->out_mem_ctx); /* Return result */ *result = state->orig.out.result; tevent_req_received(req); return NT_STATUS_OK; } NTSTATUS rpccli_wkssvc_NetrAddAlternateComputerName(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name /* [in] [unique,charset(UTF16)] */, const char *NewAlternateMachineName /* [in] [unique,charset(UTF16)] */, const char *Account /* [in] [unique,charset(UTF16)] */, struct wkssvc_PasswordBuffer *EncryptedPassword /* [in] [unique] */, uint32_t Reserved /* [in] */, WERROR *werror) { struct wkssvc_NetrAddAlternateComputerName r; NTSTATUS status; /* In parameters */ r.in.server_name = server_name; r.in.NewAlternateMachineName = NewAlternateMachineName; r.in.Account = Account; r.in.EncryptedPassword = EncryptedPassword; r.in.Reserved = Reserved; status = cli->dispatch(cli, mem_ctx, &ndr_table_wkssvc, NDR_WKSSVC_NETRADDALTERNATECOMPUTERNAME, &r); if (!NT_STATUS_IS_OK(status)) { return status; } if (NT_STATUS_IS_ERR(status)) { return status; } /* Return variables */ /* Return result */ if (werror) { *werror = r.out.result; } return werror_to_ntstatus(r.out.result); } struct rpccli_wkssvc_NetrRemoveAlternateComputerName_state { struct wkssvc_NetrRemoveAlternateComputerName orig; struct wkssvc_NetrRemoveAlternateComputerName tmp; TALLOC_CTX *out_mem_ctx; NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx); }; static void rpccli_wkssvc_NetrRemoveAlternateComputerName_done(struct tevent_req *subreq); struct tevent_req *rpccli_wkssvc_NetrRemoveAlternateComputerName_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, struct rpc_pipe_client *cli, const char *_server_name /* [in] [unique,charset(UTF16)] */, const char *_AlternateMachineNameToRemove /* [in] [unique,charset(UTF16)] */, const char *_Account /* [in] [unique,charset(UTF16)] */, struct wkssvc_PasswordBuffer *_EncryptedPassword /* [in] [unique] */, uint32_t _Reserved /* [in] */) { struct tevent_req *req; struct rpccli_wkssvc_NetrRemoveAlternateComputerName_state *state; struct tevent_req *subreq; req = tevent_req_create(mem_ctx, &state, struct rpccli_wkssvc_NetrRemoveAlternateComputerName_state); if (req == NULL) { return NULL; } state->out_mem_ctx = NULL; state->dispatch_recv = cli->dispatch_recv; /* In parameters */ state->orig.in.server_name = _server_name; state->orig.in.AlternateMachineNameToRemove = _AlternateMachineNameToRemove; state->orig.in.Account = _Account; state->orig.in.EncryptedPassword = _EncryptedPassword; state->orig.in.Reserved = _Reserved; /* Out parameters */ /* Result */ ZERO_STRUCT(state->orig.out.result); /* make a temporary copy, that we pass to the dispatch function */ state->tmp = state->orig; subreq = cli->dispatch_send(state, ev, cli, &ndr_table_wkssvc, NDR_WKSSVC_NETRREMOVEALTERNATECOMPUTERNAME, &state->tmp); if (tevent_req_nomem(subreq, req)) { return tevent_req_post(req, ev); } tevent_req_set_callback(subreq, rpccli_wkssvc_NetrRemoveAlternateComputerName_done, req); return req; } static void rpccli_wkssvc_NetrRemoveAlternateComputerName_done(struct tevent_req *subreq) { struct tevent_req *req = tevent_req_callback_data( subreq, struct tevent_req); struct rpccli_wkssvc_NetrRemoveAlternateComputerName_state *state = tevent_req_data( req, struct rpccli_wkssvc_NetrRemoveAlternateComputerName_state); NTSTATUS status; TALLOC_CTX *mem_ctx; if (state->out_mem_ctx) { mem_ctx = state->out_mem_ctx; } else { mem_ctx = state; } status = state->dispatch_recv(subreq, mem_ctx); TALLOC_FREE(subreq); if (!NT_STATUS_IS_OK(status)) { tevent_req_nterror(req, status); return; } /* Copy out parameters */ /* Copy result */ state->orig.out.result = state->tmp.out.result; /* Reset temporary structure */ ZERO_STRUCT(state->tmp); tevent_req_done(req); } NTSTATUS rpccli_wkssvc_NetrRemoveAlternateComputerName_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx, WERROR *result) { struct rpccli_wkssvc_NetrRemoveAlternateComputerName_state *state = tevent_req_data( req, struct rpccli_wkssvc_NetrRemoveAlternateComputerName_state); NTSTATUS status; if (tevent_req_is_nterror(req, &status)) { tevent_req_received(req); return status; } /* Steal possbile out parameters to the callers context */ talloc_steal(mem_ctx, state->out_mem_ctx); /* Return result */ *result = state->orig.out.result; tevent_req_received(req); return NT_STATUS_OK; } NTSTATUS rpccli_wkssvc_NetrRemoveAlternateComputerName(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name /* [in] [unique,charset(UTF16)] */, const char *AlternateMachineNameToRemove /* [in] [unique,charset(UTF16)] */, const char *Account /* [in] [unique,charset(UTF16)] */, struct wkssvc_PasswordBuffer *EncryptedPassword /* [in] [unique] */, uint32_t Reserved /* [in] */, WERROR *werror) { struct wkssvc_NetrRemoveAlternateComputerName r; NTSTATUS status; /* In parameters */ r.in.server_name = server_name; r.in.AlternateMachineNameToRemove = AlternateMachineNameToRemove; r.in.Account = Account; r.in.EncryptedPassword = EncryptedPassword; r.in.Reserved = Reserved; status = cli->dispatch(cli, mem_ctx, &ndr_table_wkssvc, NDR_WKSSVC_NETRREMOVEALTERNATECOMPUTERNAME, &r); if (!NT_STATUS_IS_OK(status)) { return status; } if (NT_STATUS_IS_ERR(status)) { return status; } /* Return variables */ /* Return result */ if (werror) { *werror = r.out.result; } return werror_to_ntstatus(r.out.result); } struct rpccli_wkssvc_NetrSetPrimaryComputername_state { struct wkssvc_NetrSetPrimaryComputername orig; struct wkssvc_NetrSetPrimaryComputername tmp; TALLOC_CTX *out_mem_ctx; NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx); }; static void rpccli_wkssvc_NetrSetPrimaryComputername_done(struct tevent_req *subreq); struct tevent_req *rpccli_wkssvc_NetrSetPrimaryComputername_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, struct rpc_pipe_client *cli, const char *_server_name /* [in] [unique,charset(UTF16)] */, const char *_primary_name /* [in] [unique,charset(UTF16)] */, const char *_Account /* [in] [unique,charset(UTF16)] */, struct wkssvc_PasswordBuffer *_EncryptedPassword /* [in] [unique] */, uint32_t _Reserved /* [in] */) { struct tevent_req *req; struct rpccli_wkssvc_NetrSetPrimaryComputername_state *state; struct tevent_req *subreq; req = tevent_req_create(mem_ctx, &state, struct rpccli_wkssvc_NetrSetPrimaryComputername_state); if (req == NULL) { return NULL; } state->out_mem_ctx = NULL; state->dispatch_recv = cli->dispatch_recv; /* In parameters */ state->orig.in.server_name = _server_name; state->orig.in.primary_name = _primary_name; state->orig.in.Account = _Account; state->orig.in.EncryptedPassword = _EncryptedPassword; state->orig.in.Reserved = _Reserved; /* Out parameters */ /* Result */ ZERO_STRUCT(state->orig.out.result); /* make a temporary copy, that we pass to the dispatch function */ state->tmp = state->orig; subreq = cli->dispatch_send(state, ev, cli, &ndr_table_wkssvc, NDR_WKSSVC_NETRSETPRIMARYCOMPUTERNAME, &state->tmp); if (tevent_req_nomem(subreq, req)) { return tevent_req_post(req, ev); } tevent_req_set_callback(subreq, rpccli_wkssvc_NetrSetPrimaryComputername_done, req); return req; } static void rpccli_wkssvc_NetrSetPrimaryComputername_done(struct tevent_req *subreq) { struct tevent_req *req = tevent_req_callback_data( subreq, struct tevent_req); struct rpccli_wkssvc_NetrSetPrimaryComputername_state *state = tevent_req_data( req, struct rpccli_wkssvc_NetrSetPrimaryComputername_state); NTSTATUS status; TALLOC_CTX *mem_ctx; if (state->out_mem_ctx) { mem_ctx = state->out_mem_ctx; } else { mem_ctx = state; } status = state->dispatch_recv(subreq, mem_ctx); TALLOC_FREE(subreq); if (!NT_STATUS_IS_OK(status)) { tevent_req_nterror(req, status); return; } /* Copy out parameters */ /* Copy result */ state->orig.out.result = state->tmp.out.result; /* Reset temporary structure */ ZERO_STRUCT(state->tmp); tevent_req_done(req); } NTSTATUS rpccli_wkssvc_NetrSetPrimaryComputername_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx, WERROR *result) { struct rpccli_wkssvc_NetrSetPrimaryComputername_state *state = tevent_req_data( req, struct rpccli_wkssvc_NetrSetPrimaryComputername_state); NTSTATUS status; if (tevent_req_is_nterror(req, &status)) { tevent_req_received(req); return status; } /* Steal possbile out parameters to the callers context */ talloc_steal(mem_ctx, state->out_mem_ctx); /* Return result */ *result = state->orig.out.result; tevent_req_received(req); return NT_STATUS_OK; } NTSTATUS rpccli_wkssvc_NetrSetPrimaryComputername(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name /* [in] [unique,charset(UTF16)] */, const char *primary_name /* [in] [unique,charset(UTF16)] */, const char *Account /* [in] [unique,charset(UTF16)] */, struct wkssvc_PasswordBuffer *EncryptedPassword /* [in] [unique] */, uint32_t Reserved /* [in] */, WERROR *werror) { struct wkssvc_NetrSetPrimaryComputername r; NTSTATUS status; /* In parameters */ r.in.server_name = server_name; r.in.primary_name = primary_name; r.in.Account = Account; r.in.EncryptedPassword = EncryptedPassword; r.in.Reserved = Reserved; status = cli->dispatch(cli, mem_ctx, &ndr_table_wkssvc, NDR_WKSSVC_NETRSETPRIMARYCOMPUTERNAME, &r); if (!NT_STATUS_IS_OK(status)) { return status; } if (NT_STATUS_IS_ERR(status)) { return status; } /* Return variables */ /* Return result */ if (werror) { *werror = r.out.result; } return werror_to_ntstatus(r.out.result); } struct rpccli_wkssvc_NetrEnumerateComputerNames_state { struct wkssvc_NetrEnumerateComputerNames orig; struct wkssvc_NetrEnumerateComputerNames tmp; TALLOC_CTX *out_mem_ctx; NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx); }; static void rpccli_wkssvc_NetrEnumerateComputerNames_done(struct tevent_req *subreq); struct tevent_req *rpccli_wkssvc_NetrEnumerateComputerNames_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, struct rpc_pipe_client *cli, const char *_server_name /* [in] [unique,charset(UTF16)] */, enum wkssvc_ComputerNameType _name_type /* [in] */, uint32_t _Reserved /* [in] */, struct wkssvc_ComputerNamesCtr **_ctr /* [out] [ref] */) { struct tevent_req *req; struct rpccli_wkssvc_NetrEnumerateComputerNames_state *state; struct tevent_req *subreq; req = tevent_req_create(mem_ctx, &state, struct rpccli_wkssvc_NetrEnumerateComputerNames_state); if (req == NULL) { return NULL; } state->out_mem_ctx = NULL; state->dispatch_recv = cli->dispatch_recv; /* In parameters */ state->orig.in.server_name = _server_name; state->orig.in.name_type = _name_type; state->orig.in.Reserved = _Reserved; /* Out parameters */ state->orig.out.ctr = _ctr; /* Result */ ZERO_STRUCT(state->orig.out.result); state->out_mem_ctx = talloc_named_const(state, 0, "rpccli_wkssvc_NetrEnumerateComputerNames_out_memory"); if (tevent_req_nomem(state->out_mem_ctx, req)) { return tevent_req_post(req, ev); } /* make a temporary copy, that we pass to the dispatch function */ state->tmp = state->orig; subreq = cli->dispatch_send(state, ev, cli, &ndr_table_wkssvc, NDR_WKSSVC_NETRENUMERATECOMPUTERNAMES, &state->tmp); if (tevent_req_nomem(subreq, req)) { return tevent_req_post(req, ev); } tevent_req_set_callback(subreq, rpccli_wkssvc_NetrEnumerateComputerNames_done, req); return req; } static void rpccli_wkssvc_NetrEnumerateComputerNames_done(struct tevent_req *subreq) { struct tevent_req *req = tevent_req_callback_data( subreq, struct tevent_req); struct rpccli_wkssvc_NetrEnumerateComputerNames_state *state = tevent_req_data( req, struct rpccli_wkssvc_NetrEnumerateComputerNames_state); NTSTATUS status; TALLOC_CTX *mem_ctx; if (state->out_mem_ctx) { mem_ctx = state->out_mem_ctx; } else { mem_ctx = state; } status = state->dispatch_recv(subreq, mem_ctx); TALLOC_FREE(subreq); if (!NT_STATUS_IS_OK(status)) { tevent_req_nterror(req, status); return; } /* Copy out parameters */ *state->orig.out.ctr = *state->tmp.out.ctr; /* Copy result */ state->orig.out.result = state->tmp.out.result; /* Reset temporary structure */ ZERO_STRUCT(state->tmp); tevent_req_done(req); } NTSTATUS rpccli_wkssvc_NetrEnumerateComputerNames_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx, WERROR *result) { struct rpccli_wkssvc_NetrEnumerateComputerNames_state *state = tevent_req_data( req, struct rpccli_wkssvc_NetrEnumerateComputerNames_state); NTSTATUS status; if (tevent_req_is_nterror(req, &status)) { tevent_req_received(req); return status; } /* Steal possbile out parameters to the callers context */ talloc_steal(mem_ctx, state->out_mem_ctx); /* Return result */ *result = state->orig.out.result; tevent_req_received(req); return NT_STATUS_OK; } NTSTATUS rpccli_wkssvc_NetrEnumerateComputerNames(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name /* [in] [unique,charset(UTF16)] */, enum wkssvc_ComputerNameType name_type /* [in] */, uint32_t Reserved /* [in] */, struct wkssvc_ComputerNamesCtr **ctr /* [out] [ref] */, WERROR *werror) { struct wkssvc_NetrEnumerateComputerNames r; NTSTATUS status; /* In parameters */ r.in.server_name = server_name; r.in.name_type = name_type; r.in.Reserved = Reserved; status = cli->dispatch(cli, mem_ctx, &ndr_table_wkssvc, NDR_WKSSVC_NETRENUMERATECOMPUTERNAMES, &r); if (!NT_STATUS_IS_OK(status)) { return status; } if (NT_STATUS_IS_ERR(status)) { return status; } /* Return variables */ *ctr = *r.out.ctr; /* Return result */ if (werror) { *werror = r.out.result; } return werror_to_ntstatus(r.out.result); }