diff options
-rw-r--r-- | librpc/gen_ndr/cli_winreg.c | 46 | ||||
-rw-r--r-- | librpc/gen_ndr/cli_winreg.h | 26 | ||||
-rw-r--r-- | librpc/gen_ndr/ndr_winreg.c | 155 | ||||
-rw-r--r-- | librpc/gen_ndr/winreg.h | 19 |
4 files changed, 240 insertions, 6 deletions
diff --git a/librpc/gen_ndr/cli_winreg.c b/librpc/gen_ndr/cli_winreg.c index 0afc00ce16..8ca72a90ca 100644 --- a/librpc/gen_ndr/cli_winreg.c +++ b/librpc/gen_ndr/cli_winreg.c @@ -2932,7 +2932,11 @@ static void rpccli_winreg_ReplaceKey_done(struct tevent_req *subreq); struct tevent_req *rpccli_winreg_ReplaceKey_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, - struct rpc_pipe_client *cli) + struct rpc_pipe_client *cli, + struct policy_handle *_handle /* [in] [ref] */, + struct winreg_String *_subkey /* [in] [ref] */, + struct winreg_String *_new_file /* [in] [ref] */, + struct winreg_String *_old_file /* [in] [ref] */) { struct tevent_req *req; struct rpccli_winreg_ReplaceKey_state *state; @@ -2947,6 +2951,10 @@ struct tevent_req *rpccli_winreg_ReplaceKey_send(TALLOC_CTX *mem_ctx, state->dispatch_recv = cli->dispatch_recv; /* In parameters */ + state->orig.in.handle = _handle; + state->orig.in.subkey = _subkey; + state->orig.in.new_file = _new_file; + state->orig.in.old_file = _old_file; /* Out parameters */ @@ -3025,12 +3033,20 @@ NTSTATUS rpccli_winreg_ReplaceKey_recv(struct tevent_req *req, NTSTATUS rpccli_winreg_ReplaceKey(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, + struct policy_handle *handle /* [in] [ref] */, + struct winreg_String *subkey /* [in] [ref] */, + struct winreg_String *new_file /* [in] [ref] */, + struct winreg_String *old_file /* [in] [ref] */, WERROR *werror) { struct winreg_ReplaceKey r; NTSTATUS status; /* In parameters */ + r.in.handle = handle; + r.in.subkey = subkey; + r.in.new_file = new_file; + r.in.old_file = old_file; status = cli->dispatch(cli, mem_ctx, @@ -3663,7 +3679,9 @@ static void rpccli_winreg_UnLoadKey_done(struct tevent_req *subreq); struct tevent_req *rpccli_winreg_UnLoadKey_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, - struct rpc_pipe_client *cli) + struct rpc_pipe_client *cli, + struct policy_handle *_handle /* [in] [ref] */, + struct winreg_String *_subkey /* [in] [ref] */) { struct tevent_req *req; struct rpccli_winreg_UnLoadKey_state *state; @@ -3678,6 +3696,8 @@ struct tevent_req *rpccli_winreg_UnLoadKey_send(TALLOC_CTX *mem_ctx, state->dispatch_recv = cli->dispatch_recv; /* In parameters */ + state->orig.in.handle = _handle; + state->orig.in.subkey = _subkey; /* Out parameters */ @@ -3756,12 +3776,16 @@ NTSTATUS rpccli_winreg_UnLoadKey_recv(struct tevent_req *req, NTSTATUS rpccli_winreg_UnLoadKey(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, + struct policy_handle *handle /* [in] [ref] */, + struct winreg_String *subkey /* [in] [ref] */, WERROR *werror) { struct winreg_UnLoadKey r; NTSTATUS status; /* In parameters */ + r.in.handle = handle; + r.in.subkey = subkey; status = cli->dispatch(cli, mem_ctx, @@ -4883,7 +4907,11 @@ static void rpccli_winreg_SaveKeyEx_done(struct tevent_req *subreq); struct tevent_req *rpccli_winreg_SaveKeyEx_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, - struct rpc_pipe_client *cli) + struct rpc_pipe_client *cli, + struct policy_handle *_handle /* [in] [ref] */, + struct winreg_String *_filename /* [in] [ref] */, + struct KeySecurityAttribute *_sec_attrib /* [in] [unique] */, + uint32_t _flags /* [in] */) { struct tevent_req *req; struct rpccli_winreg_SaveKeyEx_state *state; @@ -4898,6 +4926,10 @@ struct tevent_req *rpccli_winreg_SaveKeyEx_send(TALLOC_CTX *mem_ctx, state->dispatch_recv = cli->dispatch_recv; /* In parameters */ + state->orig.in.handle = _handle; + state->orig.in.filename = _filename; + state->orig.in.sec_attrib = _sec_attrib; + state->orig.in.flags = _flags; /* Out parameters */ @@ -4976,12 +5008,20 @@ NTSTATUS rpccli_winreg_SaveKeyEx_recv(struct tevent_req *req, NTSTATUS rpccli_winreg_SaveKeyEx(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, + struct policy_handle *handle /* [in] [ref] */, + struct winreg_String *filename /* [in] [ref] */, + struct KeySecurityAttribute *sec_attrib /* [in] [unique] */, + uint32_t flags /* [in] */, WERROR *werror) { struct winreg_SaveKeyEx r; NTSTATUS status; /* In parameters */ + r.in.handle = handle; + r.in.filename = filename; + r.in.sec_attrib = sec_attrib; + r.in.flags = flags; status = cli->dispatch(cli, mem_ctx, diff --git a/librpc/gen_ndr/cli_winreg.h b/librpc/gen_ndr/cli_winreg.h index bccdbc437b..7bbc33cffd 100644 --- a/librpc/gen_ndr/cli_winreg.h +++ b/librpc/gen_ndr/cli_winreg.h @@ -315,12 +315,20 @@ NTSTATUS rpccli_winreg_QueryValue(struct rpc_pipe_client *cli, WERROR *werror); struct tevent_req *rpccli_winreg_ReplaceKey_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, - struct rpc_pipe_client *cli); + struct rpc_pipe_client *cli, + struct policy_handle *_handle /* [in] [ref] */, + struct winreg_String *_subkey /* [in] [ref] */, + struct winreg_String *_new_file /* [in] [ref] */, + struct winreg_String *_old_file /* [in] [ref] */); NTSTATUS rpccli_winreg_ReplaceKey_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx, WERROR *result); NTSTATUS rpccli_winreg_ReplaceKey(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, + struct policy_handle *handle /* [in] [ref] */, + struct winreg_String *subkey /* [in] [ref] */, + struct winreg_String *new_file /* [in] [ref] */, + struct winreg_String *old_file /* [in] [ref] */, WERROR *werror); struct tevent_req *rpccli_winreg_RestoreKey_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, @@ -388,12 +396,16 @@ NTSTATUS rpccli_winreg_SetValue(struct rpc_pipe_client *cli, WERROR *werror); struct tevent_req *rpccli_winreg_UnLoadKey_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, - struct rpc_pipe_client *cli); + struct rpc_pipe_client *cli, + struct policy_handle *_handle /* [in] [ref] */, + struct winreg_String *_subkey /* [in] [ref] */); NTSTATUS rpccli_winreg_UnLoadKey_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx, WERROR *result); NTSTATUS rpccli_winreg_UnLoadKey(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, + struct policy_handle *handle /* [in] [ref] */, + struct winreg_String *subkey /* [in] [ref] */, WERROR *werror); struct tevent_req *rpccli_winreg_InitiateSystemShutdown_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, @@ -510,12 +522,20 @@ NTSTATUS rpccli_winreg_InitiateSystemShutdownEx(struct rpc_pipe_client *cli, WERROR *werror); struct tevent_req *rpccli_winreg_SaveKeyEx_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, - struct rpc_pipe_client *cli); + struct rpc_pipe_client *cli, + struct policy_handle *_handle /* [in] [ref] */, + struct winreg_String *_filename /* [in] [ref] */, + struct KeySecurityAttribute *_sec_attrib /* [in] [unique] */, + uint32_t _flags /* [in] */); NTSTATUS rpccli_winreg_SaveKeyEx_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx, WERROR *result); NTSTATUS rpccli_winreg_SaveKeyEx(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, + struct policy_handle *handle /* [in] [ref] */, + struct winreg_String *filename /* [in] [ref] */, + struct KeySecurityAttribute *sec_attrib /* [in] [unique] */, + uint32_t flags /* [in] */, WERROR *werror); struct tevent_req *rpccli_winreg_OpenHKPT_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, diff --git a/librpc/gen_ndr/ndr_winreg.c b/librpc/gen_ndr/ndr_winreg.c index 609cc59cc5..7088819dd0 100644 --- a/librpc/gen_ndr/ndr_winreg.c +++ b/librpc/gen_ndr/ndr_winreg.c @@ -2791,6 +2791,22 @@ _PUBLIC_ void ndr_print_winreg_QueryValue(struct ndr_print *ndr, const char *nam static enum ndr_err_code ndr_push_winreg_ReplaceKey(struct ndr_push *ndr, int flags, const struct winreg_ReplaceKey *r) { if (flags & NDR_IN) { + if (r->in.handle == NULL) { + return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer"); + } + NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle)); + if (r->in.subkey == NULL) { + return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer"); + } + NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.subkey)); + if (r->in.new_file == NULL) { + return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer"); + } + NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.new_file)); + if (r->in.old_file == NULL) { + return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer"); + } + NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.old_file)); } if (flags & NDR_OUT) { NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result)); @@ -2800,7 +2816,39 @@ static enum ndr_err_code ndr_push_winreg_ReplaceKey(struct ndr_push *ndr, int fl static enum ndr_err_code ndr_pull_winreg_ReplaceKey(struct ndr_pull *ndr, int flags, struct winreg_ReplaceKey *r) { + TALLOC_CTX *_mem_save_handle_0; + TALLOC_CTX *_mem_save_subkey_0; + TALLOC_CTX *_mem_save_new_file_0; + TALLOC_CTX *_mem_save_old_file_0; if (flags & NDR_IN) { + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { + NDR_PULL_ALLOC(ndr, r->in.handle); + } + _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC); + NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC); + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { + NDR_PULL_ALLOC(ndr, r->in.subkey); + } + _mem_save_subkey_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.subkey, LIBNDR_FLAG_REF_ALLOC); + NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.subkey)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_subkey_0, LIBNDR_FLAG_REF_ALLOC); + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { + NDR_PULL_ALLOC(ndr, r->in.new_file); + } + _mem_save_new_file_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.new_file, LIBNDR_FLAG_REF_ALLOC); + NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.new_file)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_new_file_0, LIBNDR_FLAG_REF_ALLOC); + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { + NDR_PULL_ALLOC(ndr, r->in.old_file); + } + _mem_save_old_file_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.old_file, LIBNDR_FLAG_REF_ALLOC); + NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.old_file)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_old_file_0, LIBNDR_FLAG_REF_ALLOC); } if (flags & NDR_OUT) { NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result)); @@ -2818,6 +2866,22 @@ _PUBLIC_ void ndr_print_winreg_ReplaceKey(struct ndr_print *ndr, const char *nam if (flags & NDR_IN) { ndr_print_struct(ndr, "in", "winreg_ReplaceKey"); ndr->depth++; + ndr_print_ptr(ndr, "handle", r->in.handle); + ndr->depth++; + ndr_print_policy_handle(ndr, "handle", r->in.handle); + ndr->depth--; + ndr_print_ptr(ndr, "subkey", r->in.subkey); + ndr->depth++; + ndr_print_winreg_String(ndr, "subkey", r->in.subkey); + ndr->depth--; + ndr_print_ptr(ndr, "new_file", r->in.new_file); + ndr->depth++; + ndr_print_winreg_String(ndr, "new_file", r->in.new_file); + ndr->depth--; + ndr_print_ptr(ndr, "old_file", r->in.old_file); + ndr->depth++; + ndr_print_winreg_String(ndr, "old_file", r->in.old_file); + ndr->depth--; ndr->depth--; } if (flags & NDR_OUT) { @@ -3164,6 +3228,14 @@ _PUBLIC_ void ndr_print_winreg_SetValue(struct ndr_print *ndr, const char *name, static enum ndr_err_code ndr_push_winreg_UnLoadKey(struct ndr_push *ndr, int flags, const struct winreg_UnLoadKey *r) { if (flags & NDR_IN) { + if (r->in.handle == NULL) { + return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer"); + } + NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle)); + if (r->in.subkey == NULL) { + return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer"); + } + NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.subkey)); } if (flags & NDR_OUT) { NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result)); @@ -3173,7 +3245,23 @@ static enum ndr_err_code ndr_push_winreg_UnLoadKey(struct ndr_push *ndr, int fla static enum ndr_err_code ndr_pull_winreg_UnLoadKey(struct ndr_pull *ndr, int flags, struct winreg_UnLoadKey *r) { + TALLOC_CTX *_mem_save_handle_0; + TALLOC_CTX *_mem_save_subkey_0; if (flags & NDR_IN) { + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { + NDR_PULL_ALLOC(ndr, r->in.handle); + } + _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC); + NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC); + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { + NDR_PULL_ALLOC(ndr, r->in.subkey); + } + _mem_save_subkey_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.subkey, LIBNDR_FLAG_REF_ALLOC); + NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.subkey)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_subkey_0, LIBNDR_FLAG_REF_ALLOC); } if (flags & NDR_OUT) { NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result)); @@ -3191,6 +3279,14 @@ _PUBLIC_ void ndr_print_winreg_UnLoadKey(struct ndr_print *ndr, const char *name if (flags & NDR_IN) { ndr_print_struct(ndr, "in", "winreg_UnLoadKey"); ndr->depth++; + ndr_print_ptr(ndr, "handle", r->in.handle); + ndr->depth++; + ndr_print_policy_handle(ndr, "handle", r->in.handle); + ndr->depth--; + ndr_print_ptr(ndr, "subkey", r->in.subkey); + ndr->depth++; + ndr_print_winreg_String(ndr, "subkey", r->in.subkey); + ndr->depth--; ndr->depth--; } if (flags & NDR_OUT) { @@ -3997,6 +4093,19 @@ _PUBLIC_ void ndr_print_winreg_InitiateSystemShutdownEx(struct ndr_print *ndr, c static enum ndr_err_code ndr_push_winreg_SaveKeyEx(struct ndr_push *ndr, int flags, const struct winreg_SaveKeyEx *r) { if (flags & NDR_IN) { + if (r->in.handle == NULL) { + return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer"); + } + NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle)); + if (r->in.filename == NULL) { + return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer"); + } + NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.filename)); + NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.sec_attrib)); + if (r->in.sec_attrib) { + NDR_CHECK(ndr_push_KeySecurityAttribute(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sec_attrib)); + } + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.flags)); } if (flags & NDR_OUT) { NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result)); @@ -4006,7 +4115,38 @@ static enum ndr_err_code ndr_push_winreg_SaveKeyEx(struct ndr_push *ndr, int fla static enum ndr_err_code ndr_pull_winreg_SaveKeyEx(struct ndr_pull *ndr, int flags, struct winreg_SaveKeyEx *r) { + uint32_t _ptr_sec_attrib; + TALLOC_CTX *_mem_save_handle_0; + TALLOC_CTX *_mem_save_filename_0; + TALLOC_CTX *_mem_save_sec_attrib_0; if (flags & NDR_IN) { + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { + NDR_PULL_ALLOC(ndr, r->in.handle); + } + _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC); + NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC); + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { + NDR_PULL_ALLOC(ndr, r->in.filename); + } + _mem_save_filename_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.filename, LIBNDR_FLAG_REF_ALLOC); + NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.filename)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_filename_0, LIBNDR_FLAG_REF_ALLOC); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sec_attrib)); + if (_ptr_sec_attrib) { + NDR_PULL_ALLOC(ndr, r->in.sec_attrib); + } else { + r->in.sec_attrib = NULL; + } + if (r->in.sec_attrib) { + _mem_save_sec_attrib_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.sec_attrib, 0); + NDR_CHECK(ndr_pull_KeySecurityAttribute(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sec_attrib)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sec_attrib_0, 0); + } + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.flags)); } if (flags & NDR_OUT) { NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result)); @@ -4024,6 +4164,21 @@ _PUBLIC_ void ndr_print_winreg_SaveKeyEx(struct ndr_print *ndr, const char *name if (flags & NDR_IN) { ndr_print_struct(ndr, "in", "winreg_SaveKeyEx"); ndr->depth++; + ndr_print_ptr(ndr, "handle", r->in.handle); + ndr->depth++; + ndr_print_policy_handle(ndr, "handle", r->in.handle); + ndr->depth--; + ndr_print_ptr(ndr, "filename", r->in.filename); + ndr->depth++; + ndr_print_winreg_String(ndr, "filename", r->in.filename); + ndr->depth--; + ndr_print_ptr(ndr, "sec_attrib", r->in.sec_attrib); + ndr->depth++; + if (r->in.sec_attrib) { + ndr_print_KeySecurityAttribute(ndr, "sec_attrib", r->in.sec_attrib); + } + ndr->depth--; + ndr_print_uint32(ndr, "flags", r->in.flags); ndr->depth--; } if (flags & NDR_OUT) { diff --git a/librpc/gen_ndr/winreg.h b/librpc/gen_ndr/winreg.h index 64d978f321..02596cdd8e 100644 --- a/librpc/gen_ndr/winreg.h +++ b/librpc/gen_ndr/winreg.h @@ -395,6 +395,13 @@ struct winreg_QueryValue { struct winreg_ReplaceKey { struct { + struct policy_handle *handle;/* [ref] */ + struct winreg_String *subkey;/* [ref] */ + struct winreg_String *new_file;/* [ref] */ + struct winreg_String *old_file;/* [ref] */ + } in; + + struct { WERROR result; } out; @@ -461,6 +468,11 @@ struct winreg_SetValue { struct winreg_UnLoadKey { struct { + struct policy_handle *handle;/* [ref] */ + struct winreg_String *subkey;/* [ref] */ + } in; + + struct { WERROR result; } out; @@ -574,6 +586,13 @@ struct winreg_InitiateSystemShutdownEx { struct winreg_SaveKeyEx { struct { + struct policy_handle *handle;/* [ref] */ + struct winreg_String *filename;/* [ref] */ + struct KeySecurityAttribute *sec_attrib;/* [unique] */ + uint32_t flags; + } in; + + struct { WERROR result; } out; |