1/* 2 * Unix SMB/CIFS implementation. 3 * client auto-generated by pidl. DO NOT MODIFY! 4 */ 5 6#include "includes.h" 7#include "../librpc/gen_ndr/cli_initshutdown.h" 8 9struct rpccli_initshutdown_Init_state { 10 struct initshutdown_Init orig; 11 struct initshutdown_Init tmp; 12 TALLOC_CTX *out_mem_ctx; 13 NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx); 14}; 15 16static void rpccli_initshutdown_Init_done(struct tevent_req *subreq); 17 18struct tevent_req *rpccli_initshutdown_Init_send(TALLOC_CTX *mem_ctx, 19 struct tevent_context *ev, 20 struct rpc_pipe_client *cli, 21 uint16_t *_hostname /* [in] [unique] */, 22 struct lsa_StringLarge *_message /* [in] [unique] */, 23 uint32_t _timeout /* [in] */, 24 uint8_t _force_apps /* [in] */, 25 uint8_t _do_reboot /* [in] */) 26{ 27 struct tevent_req *req; 28 struct rpccli_initshutdown_Init_state *state; 29 struct tevent_req *subreq; 30 31 req = tevent_req_create(mem_ctx, &state, 32 struct rpccli_initshutdown_Init_state); 33 if (req == NULL) { 34 return NULL; 35 } 36 state->out_mem_ctx = NULL; 37 state->dispatch_recv = cli->dispatch_recv; 38 39 /* In parameters */ 40 state->orig.in.hostname = _hostname; 41 state->orig.in.message = _message; 42 state->orig.in.timeout = _timeout; 43 state->orig.in.force_apps = _force_apps; 44 state->orig.in.do_reboot = _do_reboot; 45 46 /* Out parameters */ 47 48 /* Result */ 49 ZERO_STRUCT(state->orig.out.result); 50 51 /* make a temporary copy, that we pass to the dispatch function */ 52 state->tmp = state->orig; 53 54 subreq = cli->dispatch_send(state, ev, cli, 55 &ndr_table_initshutdown, 56 NDR_INITSHUTDOWN_INIT, 57 &state->tmp); 58 if (tevent_req_nomem(subreq, req)) { 59 return tevent_req_post(req, ev); 60 } 61 tevent_req_set_callback(subreq, rpccli_initshutdown_Init_done, req); 62 return req; 63} 64 65static void rpccli_initshutdown_Init_done(struct tevent_req *subreq) 66{ 67 struct tevent_req *req = tevent_req_callback_data( 68 subreq, struct tevent_req); 69 struct rpccli_initshutdown_Init_state *state = tevent_req_data( 70 req, struct rpccli_initshutdown_Init_state); 71 NTSTATUS status; 72 TALLOC_CTX *mem_ctx; 73 74 if (state->out_mem_ctx) { 75 mem_ctx = state->out_mem_ctx; 76 } else { 77 mem_ctx = state; 78 } 79 80 status = state->dispatch_recv(subreq, mem_ctx); 81 TALLOC_FREE(subreq); 82 if (!NT_STATUS_IS_OK(status)) { 83 tevent_req_nterror(req, status); 84 return; 85 } 86 87 /* Copy out parameters */ 88 89 /* Copy result */ 90 state->orig.out.result = state->tmp.out.result; 91 92 /* Reset temporary structure */ 93 ZERO_STRUCT(state->tmp); 94 95 tevent_req_done(req); 96} 97 98NTSTATUS rpccli_initshutdown_Init_recv(struct tevent_req *req, 99 TALLOC_CTX *mem_ctx, 100 WERROR *result) 101{ 102 struct rpccli_initshutdown_Init_state *state = tevent_req_data( 103 req, struct rpccli_initshutdown_Init_state); 104 NTSTATUS status; 105 106 if (tevent_req_is_nterror(req, &status)) { 107 tevent_req_received(req); 108 return status; 109 } 110 111 /* Steal possbile out parameters to the callers context */ 112 talloc_steal(mem_ctx, state->out_mem_ctx); 113 114 /* Return result */ 115 *result = state->orig.out.result; 116 117 tevent_req_received(req); 118 return NT_STATUS_OK; 119} 120 121NTSTATUS rpccli_initshutdown_Init(struct rpc_pipe_client *cli, 122 TALLOC_CTX *mem_ctx, 123 uint16_t *hostname /* [in] [unique] */, 124 struct lsa_StringLarge *message /* [in] [unique] */, 125 uint32_t timeout /* [in] */, 126 uint8_t force_apps /* [in] */, 127 uint8_t do_reboot /* [in] */, 128 WERROR *werror) 129{ 130 struct initshutdown_Init r; 131 NTSTATUS status; 132 133 /* In parameters */ 134 r.in.hostname = hostname; 135 r.in.message = message; 136 r.in.timeout = timeout; 137 r.in.force_apps = force_apps; 138 r.in.do_reboot = do_reboot; 139 140 status = cli->dispatch(cli, 141 mem_ctx, 142 &ndr_table_initshutdown, 143 NDR_INITSHUTDOWN_INIT, 144 &r); 145 146 if (!NT_STATUS_IS_OK(status)) { 147 return status; 148 } 149 150 if (NT_STATUS_IS_ERR(status)) { 151 return status; 152 } 153 154 /* Return variables */ 155 156 /* Return result */ 157 if (werror) { 158 *werror = r.out.result; 159 } 160 161 return werror_to_ntstatus(r.out.result); 162} 163 164struct rpccli_initshutdown_Abort_state { 165 struct initshutdown_Abort orig; 166 struct initshutdown_Abort tmp; 167 TALLOC_CTX *out_mem_ctx; 168 NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx); 169}; 170 171static void rpccli_initshutdown_Abort_done(struct tevent_req *subreq); 172 173struct tevent_req *rpccli_initshutdown_Abort_send(TALLOC_CTX *mem_ctx, 174 struct tevent_context *ev, 175 struct rpc_pipe_client *cli, 176 uint16_t *_server /* [in] [unique] */) 177{ 178 struct tevent_req *req; 179 struct rpccli_initshutdown_Abort_state *state; 180 struct tevent_req *subreq; 181 182 req = tevent_req_create(mem_ctx, &state, 183 struct rpccli_initshutdown_Abort_state); 184 if (req == NULL) { 185 return NULL; 186 } 187 state->out_mem_ctx = NULL; 188 state->dispatch_recv = cli->dispatch_recv; 189 190 /* In parameters */ 191 state->orig.in.server = _server; 192 193 /* Out parameters */ 194 195 /* Result */ 196 ZERO_STRUCT(state->orig.out.result); 197 198 /* make a temporary copy, that we pass to the dispatch function */ 199 state->tmp = state->orig; 200 201 subreq = cli->dispatch_send(state, ev, cli, 202 &ndr_table_initshutdown, 203 NDR_INITSHUTDOWN_ABORT, 204 &state->tmp); 205 if (tevent_req_nomem(subreq, req)) { 206 return tevent_req_post(req, ev); 207 } 208 tevent_req_set_callback(subreq, rpccli_initshutdown_Abort_done, req); 209 return req; 210} 211 212static void rpccli_initshutdown_Abort_done(struct tevent_req *subreq) 213{ 214 struct tevent_req *req = tevent_req_callback_data( 215 subreq, struct tevent_req); 216 struct rpccli_initshutdown_Abort_state *state = tevent_req_data( 217 req, struct rpccli_initshutdown_Abort_state); 218 NTSTATUS status; 219 TALLOC_CTX *mem_ctx; 220 221 if (state->out_mem_ctx) { 222 mem_ctx = state->out_mem_ctx; 223 } else { 224 mem_ctx = state; 225 } 226 227 status = state->dispatch_recv(subreq, mem_ctx); 228 TALLOC_FREE(subreq); 229 if (!NT_STATUS_IS_OK(status)) { 230 tevent_req_nterror(req, status); 231 return; 232 } 233 234 /* Copy out parameters */ 235 236 /* Copy result */ 237 state->orig.out.result = state->tmp.out.result; 238 239 /* Reset temporary structure */ 240 ZERO_STRUCT(state->tmp); 241 242 tevent_req_done(req); 243} 244 245NTSTATUS rpccli_initshutdown_Abort_recv(struct tevent_req *req, 246 TALLOC_CTX *mem_ctx, 247 WERROR *result) 248{ 249 struct rpccli_initshutdown_Abort_state *state = tevent_req_data( 250 req, struct rpccli_initshutdown_Abort_state); 251 NTSTATUS status; 252 253 if (tevent_req_is_nterror(req, &status)) { 254 tevent_req_received(req); 255 return status; 256 } 257 258 /* Steal possbile out parameters to the callers context */ 259 talloc_steal(mem_ctx, state->out_mem_ctx); 260 261 /* Return result */ 262 *result = state->orig.out.result; 263 264 tevent_req_received(req); 265 return NT_STATUS_OK; 266} 267 268NTSTATUS rpccli_initshutdown_Abort(struct rpc_pipe_client *cli, 269 TALLOC_CTX *mem_ctx, 270 uint16_t *server /* [in] [unique] */, 271 WERROR *werror) 272{ 273 struct initshutdown_Abort r; 274 NTSTATUS status; 275 276 /* In parameters */ 277 r.in.server = server; 278 279 status = cli->dispatch(cli, 280 mem_ctx, 281 &ndr_table_initshutdown, 282 NDR_INITSHUTDOWN_ABORT, 283 &r); 284 285 if (!NT_STATUS_IS_OK(status)) { 286 return status; 287 } 288 289 if (NT_STATUS_IS_ERR(status)) { 290 return status; 291 } 292 293 /* Return variables */ 294 295 /* Return result */ 296 if (werror) { 297 *werror = r.out.result; 298 } 299 300 return werror_to_ntstatus(r.out.result); 301} 302 303struct rpccli_initshutdown_InitEx_state { 304 struct initshutdown_InitEx orig; 305 struct initshutdown_InitEx tmp; 306 TALLOC_CTX *out_mem_ctx; 307 NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx); 308}; 309 310static void rpccli_initshutdown_InitEx_done(struct tevent_req *subreq); 311 312struct tevent_req *rpccli_initshutdown_InitEx_send(TALLOC_CTX *mem_ctx, 313 struct tevent_context *ev, 314 struct rpc_pipe_client *cli, 315 uint16_t *_hostname /* [in] [unique] */, 316 struct lsa_StringLarge *_message /* [in] [unique] */, 317 uint32_t _timeout /* [in] */, 318 uint8_t _force_apps /* [in] */, 319 uint8_t _do_reboot /* [in] */, 320 uint32_t _reason /* [in] */) 321{ 322 struct tevent_req *req; 323 struct rpccli_initshutdown_InitEx_state *state; 324 struct tevent_req *subreq; 325 326 req = tevent_req_create(mem_ctx, &state, 327 struct rpccli_initshutdown_InitEx_state); 328 if (req == NULL) { 329 return NULL; 330 } 331 state->out_mem_ctx = NULL; 332 state->dispatch_recv = cli->dispatch_recv; 333 334 /* In parameters */ 335 state->orig.in.hostname = _hostname; 336 state->orig.in.message = _message; 337 state->orig.in.timeout = _timeout; 338 state->orig.in.force_apps = _force_apps; 339 state->orig.in.do_reboot = _do_reboot; 340 state->orig.in.reason = _reason; 341 342 /* Out parameters */ 343 344 /* Result */ 345 ZERO_STRUCT(state->orig.out.result); 346 347 /* make a temporary copy, that we pass to the dispatch function */ 348 state->tmp = state->orig; 349 350 subreq = cli->dispatch_send(state, ev, cli, 351 &ndr_table_initshutdown, 352 NDR_INITSHUTDOWN_INITEX, 353 &state->tmp); 354 if (tevent_req_nomem(subreq, req)) { 355 return tevent_req_post(req, ev); 356 } 357 tevent_req_set_callback(subreq, rpccli_initshutdown_InitEx_done, req); 358 return req; 359} 360 361static void rpccli_initshutdown_InitEx_done(struct tevent_req *subreq) 362{ 363 struct tevent_req *req = tevent_req_callback_data( 364 subreq, struct tevent_req); 365 struct rpccli_initshutdown_InitEx_state *state = tevent_req_data( 366 req, struct rpccli_initshutdown_InitEx_state); 367 NTSTATUS status; 368 TALLOC_CTX *mem_ctx; 369 370 if (state->out_mem_ctx) { 371 mem_ctx = state->out_mem_ctx; 372 } else { 373 mem_ctx = state; 374 } 375 376 status = state->dispatch_recv(subreq, mem_ctx); 377 TALLOC_FREE(subreq); 378 if (!NT_STATUS_IS_OK(status)) { 379 tevent_req_nterror(req, status); 380 return; 381 } 382 383 /* Copy out parameters */ 384 385 /* Copy result */ 386 state->orig.out.result = state->tmp.out.result; 387 388 /* Reset temporary structure */ 389 ZERO_STRUCT(state->tmp); 390 391 tevent_req_done(req); 392} 393 394NTSTATUS rpccli_initshutdown_InitEx_recv(struct tevent_req *req, 395 TALLOC_CTX *mem_ctx, 396 WERROR *result) 397{ 398 struct rpccli_initshutdown_InitEx_state *state = tevent_req_data( 399 req, struct rpccli_initshutdown_InitEx_state); 400 NTSTATUS status; 401 402 if (tevent_req_is_nterror(req, &status)) { 403 tevent_req_received(req); 404 return status; 405 } 406 407 /* Steal possbile out parameters to the callers context */ 408 talloc_steal(mem_ctx, state->out_mem_ctx); 409 410 /* Return result */ 411 *result = state->orig.out.result; 412 413 tevent_req_received(req); 414 return NT_STATUS_OK; 415} 416 417NTSTATUS rpccli_initshutdown_InitEx(struct rpc_pipe_client *cli, 418 TALLOC_CTX *mem_ctx, 419 uint16_t *hostname /* [in] [unique] */, 420 struct lsa_StringLarge *message /* [in] [unique] */, 421 uint32_t timeout /* [in] */, 422 uint8_t force_apps /* [in] */, 423 uint8_t do_reboot /* [in] */, 424 uint32_t reason /* [in] */, 425 WERROR *werror) 426{ 427 struct initshutdown_InitEx r; 428 NTSTATUS status; 429 430 /* In parameters */ 431 r.in.hostname = hostname; 432 r.in.message = message; 433 r.in.timeout = timeout; 434 r.in.force_apps = force_apps; 435 r.in.do_reboot = do_reboot; 436 r.in.reason = reason; 437 438 status = cli->dispatch(cli, 439 mem_ctx, 440 &ndr_table_initshutdown, 441 NDR_INITSHUTDOWN_INITEX, 442 &r); 443 444 if (!NT_STATUS_IS_OK(status)) { 445 return status; 446 } 447 448 if (NT_STATUS_IS_ERR(status)) { 449 return status; 450 } 451 452 /* Return variables */ 453 454 /* Return result */ 455 if (werror) { 456 *werror = r.out.result; 457 } 458 459 return werror_to_ntstatus(r.out.result); 460} 461 462