2 * Unix SMB/CIFS implementation.
3 * server auto-generated by pidl. DO NOT MODIFY!
7 #include "../librpc/gen_ndr/srv_initshutdown.h"
9 static bool api_initshutdown_Init(pipes_struct *p)
11 const struct ndr_interface_call *call;
12 struct ndr_pull *pull;
13 struct ndr_push *push;
14 enum ndr_err_code ndr_err;
16 struct initshutdown_Init *r;
18 call = &ndr_table_initshutdown.calls[NDR_INITSHUTDOWN_INIT];
20 r = talloc(talloc_tos(), struct initshutdown_Init);
25 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
30 pull = ndr_pull_init_blob(&blob, r, NULL);
36 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
37 ndr_err = call->ndr_pull(pull, NDR_IN, r);
38 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
43 if (DEBUGLEVEL >= 10) {
44 NDR_PRINT_IN_DEBUG(initshutdown_Init, r);
47 r->out.result = _initshutdown_Init(p, r);
49 if (p->rng_fault_state) {
51 /* Return true here, srv_pipe_hnd.c will take care */
55 if (DEBUGLEVEL >= 10) {
56 NDR_PRINT_OUT_DEBUG(initshutdown_Init, r);
59 push = ndr_push_init_ctx(r, NULL);
65 ndr_err = call->ndr_push(push, NDR_OUT, r);
66 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
71 blob = ndr_push_blob(push);
72 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
82 static bool api_initshutdown_Abort(pipes_struct *p)
84 const struct ndr_interface_call *call;
85 struct ndr_pull *pull;
86 struct ndr_push *push;
87 enum ndr_err_code ndr_err;
89 struct initshutdown_Abort *r;
91 call = &ndr_table_initshutdown.calls[NDR_INITSHUTDOWN_ABORT];
93 r = talloc(talloc_tos(), struct initshutdown_Abort);
98 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
103 pull = ndr_pull_init_blob(&blob, r, NULL);
109 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
110 ndr_err = call->ndr_pull(pull, NDR_IN, r);
111 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
116 if (DEBUGLEVEL >= 10) {
117 NDR_PRINT_IN_DEBUG(initshutdown_Abort, r);
120 r->out.result = _initshutdown_Abort(p, r);
122 if (p->rng_fault_state) {
124 /* Return true here, srv_pipe_hnd.c will take care */
128 if (DEBUGLEVEL >= 10) {
129 NDR_PRINT_OUT_DEBUG(initshutdown_Abort, r);
132 push = ndr_push_init_ctx(r, NULL);
138 ndr_err = call->ndr_push(push, NDR_OUT, r);
139 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
144 blob = ndr_push_blob(push);
145 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
155 static bool api_initshutdown_InitEx(pipes_struct *p)
157 const struct ndr_interface_call *call;
158 struct ndr_pull *pull;
159 struct ndr_push *push;
160 enum ndr_err_code ndr_err;
162 struct initshutdown_InitEx *r;
164 call = &ndr_table_initshutdown.calls[NDR_INITSHUTDOWN_INITEX];
166 r = talloc(talloc_tos(), struct initshutdown_InitEx);
171 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
176 pull = ndr_pull_init_blob(&blob, r, NULL);
182 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
183 ndr_err = call->ndr_pull(pull, NDR_IN, r);
184 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
189 if (DEBUGLEVEL >= 10) {
190 NDR_PRINT_IN_DEBUG(initshutdown_InitEx, r);
193 r->out.result = _initshutdown_InitEx(p, r);
195 if (p->rng_fault_state) {
197 /* Return true here, srv_pipe_hnd.c will take care */
201 if (DEBUGLEVEL >= 10) {
202 NDR_PRINT_OUT_DEBUG(initshutdown_InitEx, r);
205 push = ndr_push_init_ctx(r, NULL);
211 ndr_err = call->ndr_push(push, NDR_OUT, r);
212 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
217 blob = ndr_push_blob(push);
218 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
230 static struct api_struct api_initshutdown_cmds[] =
232 {"INITSHUTDOWN_INIT", NDR_INITSHUTDOWN_INIT, api_initshutdown_Init},
233 {"INITSHUTDOWN_ABORT", NDR_INITSHUTDOWN_ABORT, api_initshutdown_Abort},
234 {"INITSHUTDOWN_INITEX", NDR_INITSHUTDOWN_INITEX, api_initshutdown_InitEx},
237 void initshutdown_get_pipe_fns(struct api_struct **fns, int *n_fns)
239 *fns = api_initshutdown_cmds;
240 *n_fns = sizeof(api_initshutdown_cmds) / sizeof(struct api_struct);
243 NTSTATUS rpc_initshutdown_dispatch(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const struct ndr_interface_table *table, uint32_t opnum, void *_r)
245 if (cli->pipes_struct == NULL) {
246 return NT_STATUS_INVALID_PARAMETER;
251 case NDR_INITSHUTDOWN_INIT: {
252 struct initshutdown_Init *r = (struct initshutdown_Init *)_r;
253 r->out.result = _initshutdown_Init(cli->pipes_struct, r);
257 case NDR_INITSHUTDOWN_ABORT: {
258 struct initshutdown_Abort *r = (struct initshutdown_Abort *)_r;
259 r->out.result = _initshutdown_Abort(cli->pipes_struct, r);
263 case NDR_INITSHUTDOWN_INITEX: {
264 struct initshutdown_InitEx *r = (struct initshutdown_InitEx *)_r;
265 r->out.result = _initshutdown_InitEx(cli->pipes_struct, r);
270 return NT_STATUS_NOT_IMPLEMENTED;
274 NTSTATUS rpc_initshutdown_init(void)
276 return rpc_srv_register(SMB_RPC_INTERFACE_VERSION, "initshutdown", "initshutdown", &ndr_table_initshutdown, api_initshutdown_cmds, sizeof(api_initshutdown_cmds) / sizeof(struct api_struct));