1 /* parser auto-generated by pidl */
4 #include "librpc/gen_ndr/ndr_winreg.h"
6 #include "librpc/gen_ndr/ndr_lsa.h"
7 #include "librpc/gen_ndr/ndr_initshutdown.h"
8 #include "librpc/gen_ndr/ndr_security.h"
9 NTSTATUS ndr_push_winreg_AccessMask(struct ndr_push *ndr, int ndr_flags, uint32_t r)
11 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
15 NTSTATUS ndr_pull_winreg_AccessMask(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
18 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
23 _PUBLIC_ void ndr_print_winreg_AccessMask(struct ndr_print *ndr, const char *name, uint32_t r)
25 ndr_print_uint32(ndr, name, r);
30 NTSTATUS ndr_push_winreg_Type(struct ndr_push *ndr, int ndr_flags, enum winreg_Type r)
32 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
36 NTSTATUS ndr_pull_winreg_Type(struct ndr_pull *ndr, int ndr_flags, enum winreg_Type *r)
39 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
44 _PUBLIC_ void ndr_print_winreg_Type(struct ndr_print *ndr, const char *name, enum winreg_Type r)
46 const char *val = NULL;
49 case REG_NONE: val = "REG_NONE"; break;
50 case REG_SZ: val = "REG_SZ"; break;
51 case REG_EXPAND_SZ: val = "REG_EXPAND_SZ"; break;
52 case REG_BINARY: val = "REG_BINARY"; break;
53 case REG_DWORD: val = "REG_DWORD"; break;
54 case REG_DWORD_BIG_ENDIAN: val = "REG_DWORD_BIG_ENDIAN"; break;
55 case REG_LINK: val = "REG_LINK"; break;
56 case REG_MULTI_SZ: val = "REG_MULTI_SZ"; break;
57 case REG_RESOURCE_LIST: val = "REG_RESOURCE_LIST"; break;
58 case REG_FULL_RESOURCE_DESCRIPTOR: val = "REG_FULL_RESOURCE_DESCRIPTOR"; break;
59 case REG_RESOURCE_REQUIREMENTS_LIST: val = "REG_RESOURCE_REQUIREMENTS_LIST"; break;
60 case REG_QWORD: val = "REG_QWORD"; break;
62 ndr_print_enum(ndr, name, "ENUM", val, r);
65 _PUBLIC_ NTSTATUS ndr_push_winreg_String(struct ndr_push *ndr, int ndr_flags, const struct winreg_String *r)
67 if (ndr_flags & NDR_SCALARS) {
68 NDR_CHECK(ndr_push_align(ndr, 4));
69 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, strlen_m_term(r->name)*2));
70 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, strlen_m_term(r->name)*2));
71 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
73 if (ndr_flags & NDR_BUFFERS) {
75 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
76 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
77 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
78 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, ndr_charset_length(r->name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
84 _PUBLIC_ NTSTATUS ndr_pull_winreg_String(struct ndr_pull *ndr, int ndr_flags, struct winreg_String *r)
87 TALLOC_CTX *_mem_save_name_0;
88 if (ndr_flags & NDR_SCALARS) {
89 NDR_CHECK(ndr_pull_align(ndr, 4));
90 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->name_len));
91 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->name_size));
92 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
94 NDR_PULL_ALLOC(ndr, r->name);
99 if (ndr_flags & NDR_BUFFERS) {
101 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
102 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
103 NDR_CHECK(ndr_pull_array_size(ndr, &r->name));
104 NDR_CHECK(ndr_pull_array_length(ndr, &r->name));
105 if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) {
106 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->name), ndr_get_array_length(ndr, &r->name));
108 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t)));
109 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16));
110 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
116 _PUBLIC_ void ndr_print_winreg_String(struct ndr_print *ndr, const char *name, const struct winreg_String *r)
118 ndr_print_struct(ndr, name, "winreg_String");
120 ndr_print_uint16(ndr, "name_len", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?strlen_m_term(r->name)*2:r->name_len);
121 ndr_print_uint16(ndr, "name_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?strlen_m_term(r->name)*2:r->name_size);
122 ndr_print_ptr(ndr, "name", r->name);
125 ndr_print_string(ndr, "name", r->name);
131 NTSTATUS ndr_push_KeySecurityData(struct ndr_push *ndr, int ndr_flags, const struct KeySecurityData *r)
133 if (ndr_flags & NDR_SCALARS) {
134 NDR_CHECK(ndr_push_align(ndr, 4));
135 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
136 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
137 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->len));
139 if (ndr_flags & NDR_BUFFERS) {
141 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
142 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
143 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->len));
144 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, r->len));
150 NTSTATUS ndr_pull_KeySecurityData(struct ndr_pull *ndr, int ndr_flags, struct KeySecurityData *r)
153 TALLOC_CTX *_mem_save_data_0;
154 if (ndr_flags & NDR_SCALARS) {
155 NDR_CHECK(ndr_pull_align(ndr, 4));
156 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
158 NDR_PULL_ALLOC(ndr, r->data);
162 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
163 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->len));
165 if (ndr_flags & NDR_BUFFERS) {
167 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
168 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
169 NDR_CHECK(ndr_pull_array_size(ndr, &r->data));
170 NDR_CHECK(ndr_pull_array_length(ndr, &r->data));
171 if (ndr_get_array_length(ndr, &r->data) > ndr_get_array_size(ndr, &r->data)) {
172 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->data), ndr_get_array_length(ndr, &r->data));
174 NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data));
175 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, ndr_get_array_length(ndr, &r->data)));
176 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
179 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->size));
182 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->data, r->len));
188 _PUBLIC_ void ndr_print_KeySecurityData(struct ndr_print *ndr, const char *name, const struct KeySecurityData *r)
190 ndr_print_struct(ndr, name, "KeySecurityData");
192 ndr_print_ptr(ndr, "data", r->data);
195 ndr_print_array_uint8(ndr, "data", r->data, r->len);
198 ndr_print_uint32(ndr, "size", r->size);
199 ndr_print_uint32(ndr, "len", r->len);
203 NTSTATUS ndr_push_winreg_SecBuf(struct ndr_push *ndr, int ndr_flags, const struct winreg_SecBuf *r)
205 if (ndr_flags & NDR_SCALARS) {
206 NDR_CHECK(ndr_push_align(ndr, 4));
207 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
208 NDR_CHECK(ndr_push_KeySecurityData(ndr, NDR_SCALARS, &r->sd));
209 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->inherit));
211 if (ndr_flags & NDR_BUFFERS) {
212 NDR_CHECK(ndr_push_KeySecurityData(ndr, NDR_BUFFERS, &r->sd));
217 NTSTATUS ndr_pull_winreg_SecBuf(struct ndr_pull *ndr, int ndr_flags, struct winreg_SecBuf *r)
219 if (ndr_flags & NDR_SCALARS) {
220 NDR_CHECK(ndr_pull_align(ndr, 4));
221 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
222 NDR_CHECK(ndr_pull_KeySecurityData(ndr, NDR_SCALARS, &r->sd));
223 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->inherit));
225 if (ndr_flags & NDR_BUFFERS) {
226 NDR_CHECK(ndr_pull_KeySecurityData(ndr, NDR_BUFFERS, &r->sd));
231 _PUBLIC_ void ndr_print_winreg_SecBuf(struct ndr_print *ndr, const char *name, const struct winreg_SecBuf *r)
233 ndr_print_struct(ndr, name, "winreg_SecBuf");
235 ndr_print_uint32(ndr, "length", r->length);
236 ndr_print_KeySecurityData(ndr, "sd", &r->sd);
237 ndr_print_uint8(ndr, "inherit", r->inherit);
241 NTSTATUS ndr_push_winreg_CreateAction(struct ndr_push *ndr, int ndr_flags, enum winreg_CreateAction r)
243 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
247 NTSTATUS ndr_pull_winreg_CreateAction(struct ndr_pull *ndr, int ndr_flags, enum winreg_CreateAction *r)
250 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
255 _PUBLIC_ void ndr_print_winreg_CreateAction(struct ndr_print *ndr, const char *name, enum winreg_CreateAction r)
257 const char *val = NULL;
260 case REG_ACTION_NONE: val = "REG_ACTION_NONE"; break;
261 case REG_CREATED_NEW_KEY: val = "REG_CREATED_NEW_KEY"; break;
262 case REG_OPENED_EXISTING_KEY: val = "REG_OPENED_EXISTING_KEY"; break;
264 ndr_print_enum(ndr, name, "ENUM", val, r);
267 NTSTATUS ndr_push_winreg_StringBuf(struct ndr_push *ndr, int ndr_flags, const struct winreg_StringBuf *r)
269 if (ndr_flags & NDR_SCALARS) {
270 NDR_CHECK(ndr_push_align(ndr, 4));
271 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, strlen_m_term(r->name)*2));
272 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->size));
273 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
275 if (ndr_flags & NDR_BUFFERS) {
277 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size/2));
278 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
279 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, strlen_m_term(r->name)*2/2));
280 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, strlen_m_term(r->name)*2/2, sizeof(uint16_t), CH_UTF16));
286 NTSTATUS ndr_pull_winreg_StringBuf(struct ndr_pull *ndr, int ndr_flags, struct winreg_StringBuf *r)
289 TALLOC_CTX *_mem_save_name_0;
290 if (ndr_flags & NDR_SCALARS) {
291 NDR_CHECK(ndr_pull_align(ndr, 4));
292 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
293 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
294 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
296 NDR_PULL_ALLOC(ndr, r->name);
301 if (ndr_flags & NDR_BUFFERS) {
303 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
304 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
305 NDR_CHECK(ndr_pull_array_size(ndr, &r->name));
306 NDR_CHECK(ndr_pull_array_length(ndr, &r->name));
307 if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) {
308 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->name), ndr_get_array_length(ndr, &r->name));
310 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16));
311 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
314 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->name, r->size/2));
317 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->name, r->length/2));
323 _PUBLIC_ void ndr_print_winreg_StringBuf(struct ndr_print *ndr, const char *name, const struct winreg_StringBuf *r)
325 ndr_print_struct(ndr, name, "winreg_StringBuf");
327 ndr_print_uint16(ndr, "length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?strlen_m_term(r->name)*2:r->length);
328 ndr_print_uint16(ndr, "size", r->size);
329 ndr_print_ptr(ndr, "name", r->name);
332 ndr_print_string(ndr, "name", r->name);
338 NTSTATUS ndr_push_KeySecurityAttribute(struct ndr_push *ndr, int ndr_flags, const struct KeySecurityAttribute *r)
340 if (ndr_flags & NDR_SCALARS) {
341 NDR_CHECK(ndr_push_align(ndr, 4));
342 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->data_size));
343 NDR_CHECK(ndr_push_KeySecurityData(ndr, NDR_SCALARS, &r->sec_data));
344 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->inherit));
346 if (ndr_flags & NDR_BUFFERS) {
347 NDR_CHECK(ndr_push_KeySecurityData(ndr, NDR_BUFFERS, &r->sec_data));
352 NTSTATUS ndr_pull_KeySecurityAttribute(struct ndr_pull *ndr, int ndr_flags, struct KeySecurityAttribute *r)
354 if (ndr_flags & NDR_SCALARS) {
355 NDR_CHECK(ndr_pull_align(ndr, 4));
356 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->data_size));
357 NDR_CHECK(ndr_pull_KeySecurityData(ndr, NDR_SCALARS, &r->sec_data));
358 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->inherit));
360 if (ndr_flags & NDR_BUFFERS) {
361 NDR_CHECK(ndr_pull_KeySecurityData(ndr, NDR_BUFFERS, &r->sec_data));
366 _PUBLIC_ void ndr_print_KeySecurityAttribute(struct ndr_print *ndr, const char *name, const struct KeySecurityAttribute *r)
368 ndr_print_struct(ndr, name, "KeySecurityAttribute");
370 ndr_print_uint32(ndr, "data_size", r->data_size);
371 ndr_print_KeySecurityData(ndr, "sec_data", &r->sec_data);
372 ndr_print_uint8(ndr, "inherit", r->inherit);
376 NTSTATUS ndr_push_QueryMultipleValue(struct ndr_push *ndr, int ndr_flags, const struct QueryMultipleValue *r)
378 if (ndr_flags & NDR_SCALARS) {
379 NDR_CHECK(ndr_push_align(ndr, 4));
380 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
381 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->type));
382 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->offset));
383 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
385 if (ndr_flags & NDR_BUFFERS) {
387 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->name));
393 NTSTATUS ndr_pull_QueryMultipleValue(struct ndr_pull *ndr, int ndr_flags, struct QueryMultipleValue *r)
396 TALLOC_CTX *_mem_save_name_0;
397 if (ndr_flags & NDR_SCALARS) {
398 NDR_CHECK(ndr_pull_align(ndr, 4));
399 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
401 NDR_PULL_ALLOC(ndr, r->name);
405 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->type));
406 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->offset));
407 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
409 if (ndr_flags & NDR_BUFFERS) {
411 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
412 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
413 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->name));
414 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
420 _PUBLIC_ void ndr_print_QueryMultipleValue(struct ndr_print *ndr, const char *name, const struct QueryMultipleValue *r)
422 ndr_print_struct(ndr, name, "QueryMultipleValue");
424 ndr_print_ptr(ndr, "name", r->name);
427 ndr_print_winreg_String(ndr, "name", r->name);
430 ndr_print_winreg_Type(ndr, "type", r->type);
431 ndr_print_uint32(ndr, "offset", r->offset);
432 ndr_print_uint32(ndr, "length", r->length);
436 NTSTATUS ndr_push_winreg_OpenHKCR(struct ndr_push *ndr, int flags, const struct winreg_OpenHKCR *r)
438 if (flags & NDR_IN) {
439 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.system_name));
440 if (r->in.system_name) {
441 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.system_name));
443 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
445 if (flags & NDR_OUT) {
446 if (r->out.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
447 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.handle));
448 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
453 NTSTATUS ndr_pull_winreg_OpenHKCR(struct ndr_pull *ndr, int flags, struct winreg_OpenHKCR *r)
455 uint32_t _ptr_system_name;
456 TALLOC_CTX *_mem_save_system_name_0;
457 TALLOC_CTX *_mem_save_handle_0;
458 if (flags & NDR_IN) {
461 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_system_name));
462 if (_ptr_system_name) {
463 NDR_PULL_ALLOC(ndr, r->in.system_name);
465 r->in.system_name = NULL;
467 if (r->in.system_name) {
468 _mem_save_system_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
469 NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0);
470 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.system_name));
471 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0);
473 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
474 NDR_PULL_ALLOC(ndr, r->out.handle);
475 ZERO_STRUCTP(r->out.handle);
477 if (flags & NDR_OUT) {
478 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
479 NDR_PULL_ALLOC(ndr, r->out.handle);
481 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
482 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
483 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.handle));
484 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
485 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
490 _PUBLIC_ void ndr_print_winreg_OpenHKCR(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenHKCR *r)
492 ndr_print_struct(ndr, name, "winreg_OpenHKCR");
494 if (flags & NDR_SET_VALUES) {
495 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
497 if (flags & NDR_IN) {
498 ndr_print_struct(ndr, "in", "winreg_OpenHKCR");
500 ndr_print_ptr(ndr, "system_name", r->in.system_name);
502 if (r->in.system_name) {
503 ndr_print_uint16(ndr, "system_name", *r->in.system_name);
506 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
509 if (flags & NDR_OUT) {
510 ndr_print_struct(ndr, "out", "winreg_OpenHKCR");
512 ndr_print_ptr(ndr, "handle", r->out.handle);
514 ndr_print_policy_handle(ndr, "handle", r->out.handle);
516 ndr_print_WERROR(ndr, "result", r->out.result);
522 NTSTATUS ndr_push_winreg_OpenHKCU(struct ndr_push *ndr, int flags, const struct winreg_OpenHKCU *r)
524 if (flags & NDR_IN) {
525 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.system_name));
526 if (r->in.system_name) {
527 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.system_name));
529 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
531 if (flags & NDR_OUT) {
532 if (r->out.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
533 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.handle));
534 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
539 NTSTATUS ndr_pull_winreg_OpenHKCU(struct ndr_pull *ndr, int flags, struct winreg_OpenHKCU *r)
541 uint32_t _ptr_system_name;
542 TALLOC_CTX *_mem_save_system_name_0;
543 TALLOC_CTX *_mem_save_handle_0;
544 if (flags & NDR_IN) {
547 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_system_name));
548 if (_ptr_system_name) {
549 NDR_PULL_ALLOC(ndr, r->in.system_name);
551 r->in.system_name = NULL;
553 if (r->in.system_name) {
554 _mem_save_system_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
555 NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0);
556 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.system_name));
557 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0);
559 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
560 NDR_PULL_ALLOC(ndr, r->out.handle);
561 ZERO_STRUCTP(r->out.handle);
563 if (flags & NDR_OUT) {
564 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
565 NDR_PULL_ALLOC(ndr, r->out.handle);
567 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
568 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
569 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.handle));
570 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
571 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
576 _PUBLIC_ void ndr_print_winreg_OpenHKCU(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenHKCU *r)
578 ndr_print_struct(ndr, name, "winreg_OpenHKCU");
580 if (flags & NDR_SET_VALUES) {
581 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
583 if (flags & NDR_IN) {
584 ndr_print_struct(ndr, "in", "winreg_OpenHKCU");
586 ndr_print_ptr(ndr, "system_name", r->in.system_name);
588 if (r->in.system_name) {
589 ndr_print_uint16(ndr, "system_name", *r->in.system_name);
592 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
595 if (flags & NDR_OUT) {
596 ndr_print_struct(ndr, "out", "winreg_OpenHKCU");
598 ndr_print_ptr(ndr, "handle", r->out.handle);
600 ndr_print_policy_handle(ndr, "handle", r->out.handle);
602 ndr_print_WERROR(ndr, "result", r->out.result);
608 NTSTATUS ndr_push_winreg_OpenHKLM(struct ndr_push *ndr, int flags, const struct winreg_OpenHKLM *r)
610 if (flags & NDR_IN) {
611 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.system_name));
612 if (r->in.system_name) {
613 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.system_name));
615 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
617 if (flags & NDR_OUT) {
618 if (r->out.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
619 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.handle));
620 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
625 NTSTATUS ndr_pull_winreg_OpenHKLM(struct ndr_pull *ndr, int flags, struct winreg_OpenHKLM *r)
627 uint32_t _ptr_system_name;
628 TALLOC_CTX *_mem_save_system_name_0;
629 TALLOC_CTX *_mem_save_handle_0;
630 if (flags & NDR_IN) {
633 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_system_name));
634 if (_ptr_system_name) {
635 NDR_PULL_ALLOC(ndr, r->in.system_name);
637 r->in.system_name = NULL;
639 if (r->in.system_name) {
640 _mem_save_system_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
641 NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0);
642 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.system_name));
643 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0);
645 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
646 NDR_PULL_ALLOC(ndr, r->out.handle);
647 ZERO_STRUCTP(r->out.handle);
649 if (flags & NDR_OUT) {
650 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
651 NDR_PULL_ALLOC(ndr, r->out.handle);
653 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
654 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
655 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.handle));
656 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
657 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
662 _PUBLIC_ void ndr_print_winreg_OpenHKLM(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenHKLM *r)
664 ndr_print_struct(ndr, name, "winreg_OpenHKLM");
666 if (flags & NDR_SET_VALUES) {
667 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
669 if (flags & NDR_IN) {
670 ndr_print_struct(ndr, "in", "winreg_OpenHKLM");
672 ndr_print_ptr(ndr, "system_name", r->in.system_name);
674 if (r->in.system_name) {
675 ndr_print_uint16(ndr, "system_name", *r->in.system_name);
678 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
681 if (flags & NDR_OUT) {
682 ndr_print_struct(ndr, "out", "winreg_OpenHKLM");
684 ndr_print_ptr(ndr, "handle", r->out.handle);
686 ndr_print_policy_handle(ndr, "handle", r->out.handle);
688 ndr_print_WERROR(ndr, "result", r->out.result);
694 NTSTATUS ndr_push_winreg_OpenHKPD(struct ndr_push *ndr, int flags, const struct winreg_OpenHKPD *r)
696 if (flags & NDR_IN) {
697 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.system_name));
698 if (r->in.system_name) {
699 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.system_name));
701 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
703 if (flags & NDR_OUT) {
704 if (r->out.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
705 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.handle));
706 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
711 NTSTATUS ndr_pull_winreg_OpenHKPD(struct ndr_pull *ndr, int flags, struct winreg_OpenHKPD *r)
713 uint32_t _ptr_system_name;
714 TALLOC_CTX *_mem_save_system_name_0;
715 TALLOC_CTX *_mem_save_handle_0;
716 if (flags & NDR_IN) {
719 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_system_name));
720 if (_ptr_system_name) {
721 NDR_PULL_ALLOC(ndr, r->in.system_name);
723 r->in.system_name = NULL;
725 if (r->in.system_name) {
726 _mem_save_system_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
727 NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0);
728 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.system_name));
729 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0);
731 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
732 NDR_PULL_ALLOC(ndr, r->out.handle);
733 ZERO_STRUCTP(r->out.handle);
735 if (flags & NDR_OUT) {
736 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
737 NDR_PULL_ALLOC(ndr, r->out.handle);
739 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
740 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
741 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.handle));
742 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
743 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
748 _PUBLIC_ void ndr_print_winreg_OpenHKPD(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenHKPD *r)
750 ndr_print_struct(ndr, name, "winreg_OpenHKPD");
752 if (flags & NDR_SET_VALUES) {
753 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
755 if (flags & NDR_IN) {
756 ndr_print_struct(ndr, "in", "winreg_OpenHKPD");
758 ndr_print_ptr(ndr, "system_name", r->in.system_name);
760 if (r->in.system_name) {
761 ndr_print_uint16(ndr, "system_name", *r->in.system_name);
764 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
767 if (flags & NDR_OUT) {
768 ndr_print_struct(ndr, "out", "winreg_OpenHKPD");
770 ndr_print_ptr(ndr, "handle", r->out.handle);
772 ndr_print_policy_handle(ndr, "handle", r->out.handle);
774 ndr_print_WERROR(ndr, "result", r->out.result);
780 NTSTATUS ndr_push_winreg_OpenHKU(struct ndr_push *ndr, int flags, const struct winreg_OpenHKU *r)
782 if (flags & NDR_IN) {
783 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.system_name));
784 if (r->in.system_name) {
785 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.system_name));
787 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
789 if (flags & NDR_OUT) {
790 if (r->out.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
791 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.handle));
792 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
797 NTSTATUS ndr_pull_winreg_OpenHKU(struct ndr_pull *ndr, int flags, struct winreg_OpenHKU *r)
799 uint32_t _ptr_system_name;
800 TALLOC_CTX *_mem_save_system_name_0;
801 TALLOC_CTX *_mem_save_handle_0;
802 if (flags & NDR_IN) {
805 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_system_name));
806 if (_ptr_system_name) {
807 NDR_PULL_ALLOC(ndr, r->in.system_name);
809 r->in.system_name = NULL;
811 if (r->in.system_name) {
812 _mem_save_system_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
813 NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0);
814 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.system_name));
815 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0);
817 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
818 NDR_PULL_ALLOC(ndr, r->out.handle);
819 ZERO_STRUCTP(r->out.handle);
821 if (flags & NDR_OUT) {
822 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
823 NDR_PULL_ALLOC(ndr, r->out.handle);
825 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
826 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
827 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.handle));
828 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
829 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
834 _PUBLIC_ void ndr_print_winreg_OpenHKU(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenHKU *r)
836 ndr_print_struct(ndr, name, "winreg_OpenHKU");
838 if (flags & NDR_SET_VALUES) {
839 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
841 if (flags & NDR_IN) {
842 ndr_print_struct(ndr, "in", "winreg_OpenHKU");
844 ndr_print_ptr(ndr, "system_name", r->in.system_name);
846 if (r->in.system_name) {
847 ndr_print_uint16(ndr, "system_name", *r->in.system_name);
850 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
853 if (flags & NDR_OUT) {
854 ndr_print_struct(ndr, "out", "winreg_OpenHKU");
856 ndr_print_ptr(ndr, "handle", r->out.handle);
858 ndr_print_policy_handle(ndr, "handle", r->out.handle);
860 ndr_print_WERROR(ndr, "result", r->out.result);
866 NTSTATUS ndr_push_winreg_CloseKey(struct ndr_push *ndr, int flags, const struct winreg_CloseKey *r)
868 if (flags & NDR_IN) {
869 if (r->in.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
870 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
872 if (flags & NDR_OUT) {
873 if (r->out.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
874 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.handle));
875 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
880 NTSTATUS ndr_pull_winreg_CloseKey(struct ndr_pull *ndr, int flags, struct winreg_CloseKey *r)
882 TALLOC_CTX *_mem_save_handle_0;
883 if (flags & NDR_IN) {
886 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
887 NDR_PULL_ALLOC(ndr, r->in.handle);
889 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
890 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
891 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
892 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
893 NDR_PULL_ALLOC(ndr, r->out.handle);
894 *r->out.handle = *r->in.handle;
896 if (flags & NDR_OUT) {
897 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
898 NDR_PULL_ALLOC(ndr, r->out.handle);
900 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
901 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
902 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.handle));
903 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
904 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
909 _PUBLIC_ void ndr_print_winreg_CloseKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_CloseKey *r)
911 ndr_print_struct(ndr, name, "winreg_CloseKey");
913 if (flags & NDR_SET_VALUES) {
914 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
916 if (flags & NDR_IN) {
917 ndr_print_struct(ndr, "in", "winreg_CloseKey");
919 ndr_print_ptr(ndr, "handle", r->in.handle);
921 ndr_print_policy_handle(ndr, "handle", r->in.handle);
925 if (flags & NDR_OUT) {
926 ndr_print_struct(ndr, "out", "winreg_CloseKey");
928 ndr_print_ptr(ndr, "handle", r->out.handle);
930 ndr_print_policy_handle(ndr, "handle", r->out.handle);
932 ndr_print_WERROR(ndr, "result", r->out.result);
938 NTSTATUS ndr_push_winreg_CreateKey(struct ndr_push *ndr, int flags, const struct winreg_CreateKey *r)
940 if (flags & NDR_IN) {
941 if (r->in.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
942 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
943 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.name));
944 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.keyclass));
945 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.options));
946 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
947 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.secdesc));
949 NDR_CHECK(ndr_push_winreg_SecBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc));
951 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.action_taken));
952 if (r->in.action_taken) {
953 NDR_CHECK(ndr_push_winreg_CreateAction(ndr, NDR_SCALARS, *r->in.action_taken));
956 if (flags & NDR_OUT) {
957 if (r->out.new_handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
958 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.new_handle));
959 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.action_taken));
960 if (r->out.action_taken) {
961 NDR_CHECK(ndr_push_winreg_CreateAction(ndr, NDR_SCALARS, *r->out.action_taken));
963 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
968 NTSTATUS ndr_pull_winreg_CreateKey(struct ndr_pull *ndr, int flags, struct winreg_CreateKey *r)
970 uint32_t _ptr_secdesc;
971 uint32_t _ptr_action_taken;
972 TALLOC_CTX *_mem_save_handle_0;
973 TALLOC_CTX *_mem_save_secdesc_0;
974 TALLOC_CTX *_mem_save_new_handle_0;
975 TALLOC_CTX *_mem_save_action_taken_0;
976 if (flags & NDR_IN) {
979 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
980 NDR_PULL_ALLOC(ndr, r->in.handle);
982 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
983 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
984 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
985 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
986 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.name));
987 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.keyclass));
988 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.options));
989 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
990 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
992 NDR_PULL_ALLOC(ndr, r->in.secdesc);
994 r->in.secdesc = NULL;
997 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
998 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc, 0);
999 NDR_CHECK(ndr_pull_winreg_SecBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc));
1000 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
1002 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_action_taken));
1003 if (_ptr_action_taken) {
1004 NDR_PULL_ALLOC(ndr, r->in.action_taken);
1006 r->in.action_taken = NULL;
1008 if (r->in.action_taken) {
1009 _mem_save_action_taken_0 = NDR_PULL_GET_MEM_CTX(ndr);
1010 NDR_PULL_SET_MEM_CTX(ndr, r->in.action_taken, 0);
1011 NDR_CHECK(ndr_pull_winreg_CreateAction(ndr, NDR_SCALARS, r->in.action_taken));
1012 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_action_taken_0, 0);
1014 NDR_PULL_ALLOC(ndr, r->out.new_handle);
1015 ZERO_STRUCTP(r->out.new_handle);
1017 if (flags & NDR_OUT) {
1018 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1019 NDR_PULL_ALLOC(ndr, r->out.new_handle);
1021 _mem_save_new_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
1022 NDR_PULL_SET_MEM_CTX(ndr, r->out.new_handle, LIBNDR_FLAG_REF_ALLOC);
1023 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.new_handle));
1024 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_new_handle_0, LIBNDR_FLAG_REF_ALLOC);
1025 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_action_taken));
1026 if (_ptr_action_taken) {
1027 NDR_PULL_ALLOC(ndr, r->out.action_taken);
1029 r->out.action_taken = NULL;
1031 if (r->out.action_taken) {
1032 _mem_save_action_taken_0 = NDR_PULL_GET_MEM_CTX(ndr);
1033 NDR_PULL_SET_MEM_CTX(ndr, r->out.action_taken, 0);
1034 NDR_CHECK(ndr_pull_winreg_CreateAction(ndr, NDR_SCALARS, r->out.action_taken));
1035 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_action_taken_0, 0);
1037 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
1039 return NT_STATUS_OK;
1042 _PUBLIC_ void ndr_print_winreg_CreateKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_CreateKey *r)
1044 ndr_print_struct(ndr, name, "winreg_CreateKey");
1046 if (flags & NDR_SET_VALUES) {
1047 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1049 if (flags & NDR_IN) {
1050 ndr_print_struct(ndr, "in", "winreg_CreateKey");
1052 ndr_print_ptr(ndr, "handle", r->in.handle);
1054 ndr_print_policy_handle(ndr, "handle", r->in.handle);
1056 ndr_print_winreg_String(ndr, "name", &r->in.name);
1057 ndr_print_winreg_String(ndr, "keyclass", &r->in.keyclass);
1058 ndr_print_uint32(ndr, "options", r->in.options);
1059 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
1060 ndr_print_ptr(ndr, "secdesc", r->in.secdesc);
1062 if (r->in.secdesc) {
1063 ndr_print_winreg_SecBuf(ndr, "secdesc", r->in.secdesc);
1066 ndr_print_ptr(ndr, "action_taken", r->in.action_taken);
1068 if (r->in.action_taken) {
1069 ndr_print_winreg_CreateAction(ndr, "action_taken", *r->in.action_taken);
1074 if (flags & NDR_OUT) {
1075 ndr_print_struct(ndr, "out", "winreg_CreateKey");
1077 ndr_print_ptr(ndr, "new_handle", r->out.new_handle);
1079 ndr_print_policy_handle(ndr, "new_handle", r->out.new_handle);
1081 ndr_print_ptr(ndr, "action_taken", r->out.action_taken);
1083 if (r->out.action_taken) {
1084 ndr_print_winreg_CreateAction(ndr, "action_taken", *r->out.action_taken);
1087 ndr_print_WERROR(ndr, "result", r->out.result);
1093 NTSTATUS ndr_push_winreg_DeleteKey(struct ndr_push *ndr, int flags, const struct winreg_DeleteKey *r)
1095 if (flags & NDR_IN) {
1096 if (r->in.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
1097 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
1098 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.key));
1100 if (flags & NDR_OUT) {
1101 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
1103 return NT_STATUS_OK;
1106 NTSTATUS ndr_pull_winreg_DeleteKey(struct ndr_pull *ndr, int flags, struct winreg_DeleteKey *r)
1108 TALLOC_CTX *_mem_save_handle_0;
1109 if (flags & NDR_IN) {
1110 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1111 NDR_PULL_ALLOC(ndr, r->in.handle);
1113 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
1114 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
1115 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
1116 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
1117 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.key));
1119 if (flags & NDR_OUT) {
1120 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
1122 return NT_STATUS_OK;
1125 _PUBLIC_ void ndr_print_winreg_DeleteKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_DeleteKey *r)
1127 ndr_print_struct(ndr, name, "winreg_DeleteKey");
1129 if (flags & NDR_SET_VALUES) {
1130 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1132 if (flags & NDR_IN) {
1133 ndr_print_struct(ndr, "in", "winreg_DeleteKey");
1135 ndr_print_ptr(ndr, "handle", r->in.handle);
1137 ndr_print_policy_handle(ndr, "handle", r->in.handle);
1139 ndr_print_winreg_String(ndr, "key", &r->in.key);
1142 if (flags & NDR_OUT) {
1143 ndr_print_struct(ndr, "out", "winreg_DeleteKey");
1145 ndr_print_WERROR(ndr, "result", r->out.result);
1151 NTSTATUS ndr_push_winreg_DeleteValue(struct ndr_push *ndr, int flags, const struct winreg_DeleteValue *r)
1153 if (flags & NDR_IN) {
1154 if (r->in.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
1155 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
1156 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.value));
1158 if (flags & NDR_OUT) {
1159 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
1161 return NT_STATUS_OK;
1164 NTSTATUS ndr_pull_winreg_DeleteValue(struct ndr_pull *ndr, int flags, struct winreg_DeleteValue *r)
1166 TALLOC_CTX *_mem_save_handle_0;
1167 if (flags & NDR_IN) {
1168 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1169 NDR_PULL_ALLOC(ndr, r->in.handle);
1171 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
1172 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
1173 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
1174 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
1175 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.value));
1177 if (flags & NDR_OUT) {
1178 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
1180 return NT_STATUS_OK;
1183 _PUBLIC_ void ndr_print_winreg_DeleteValue(struct ndr_print *ndr, const char *name, int flags, const struct winreg_DeleteValue *r)
1185 ndr_print_struct(ndr, name, "winreg_DeleteValue");
1187 if (flags & NDR_SET_VALUES) {
1188 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1190 if (flags & NDR_IN) {
1191 ndr_print_struct(ndr, "in", "winreg_DeleteValue");
1193 ndr_print_ptr(ndr, "handle", r->in.handle);
1195 ndr_print_policy_handle(ndr, "handle", r->in.handle);
1197 ndr_print_winreg_String(ndr, "value", &r->in.value);
1200 if (flags & NDR_OUT) {
1201 ndr_print_struct(ndr, "out", "winreg_DeleteValue");
1203 ndr_print_WERROR(ndr, "result", r->out.result);
1209 NTSTATUS ndr_push_winreg_EnumKey(struct ndr_push *ndr, int flags, const struct winreg_EnumKey *r)
1211 if (flags & NDR_IN) {
1212 if (r->in.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
1213 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
1214 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.enum_index));
1215 if (r->in.name == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
1216 NDR_CHECK(ndr_push_winreg_StringBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.name));
1217 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.keyclass));
1218 if (r->in.keyclass) {
1219 NDR_CHECK(ndr_push_winreg_StringBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.keyclass));
1221 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.last_changed_time));
1222 if (r->in.last_changed_time) {
1223 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, *r->in.last_changed_time));
1226 if (flags & NDR_OUT) {
1227 if (r->out.name == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
1228 NDR_CHECK(ndr_push_winreg_StringBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.name));
1229 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.keyclass));
1230 if (r->out.keyclass) {
1231 NDR_CHECK(ndr_push_winreg_StringBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.keyclass));
1233 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.last_changed_time));
1234 if (r->out.last_changed_time) {
1235 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, *r->out.last_changed_time));
1237 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
1239 return NT_STATUS_OK;
1242 NTSTATUS ndr_pull_winreg_EnumKey(struct ndr_pull *ndr, int flags, struct winreg_EnumKey *r)
1244 uint32_t _ptr_keyclass;
1245 uint32_t _ptr_last_changed_time;
1246 TALLOC_CTX *_mem_save_handle_0;
1247 TALLOC_CTX *_mem_save_name_0;
1248 TALLOC_CTX *_mem_save_keyclass_0;
1249 TALLOC_CTX *_mem_save_last_changed_time_0;
1250 if (flags & NDR_IN) {
1251 ZERO_STRUCT(r->out);
1253 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1254 NDR_PULL_ALLOC(ndr, r->in.handle);
1256 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
1257 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
1258 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
1259 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
1260 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.enum_index));
1261 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1262 NDR_PULL_ALLOC(ndr, r->in.name);
1264 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
1265 NDR_PULL_SET_MEM_CTX(ndr, r->in.name, LIBNDR_FLAG_REF_ALLOC);
1266 NDR_CHECK(ndr_pull_winreg_StringBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.name));
1267 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, LIBNDR_FLAG_REF_ALLOC);
1268 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_keyclass));
1269 if (_ptr_keyclass) {
1270 NDR_PULL_ALLOC(ndr, r->in.keyclass);
1272 r->in.keyclass = NULL;
1274 if (r->in.keyclass) {
1275 _mem_save_keyclass_0 = NDR_PULL_GET_MEM_CTX(ndr);
1276 NDR_PULL_SET_MEM_CTX(ndr, r->in.keyclass, 0);
1277 NDR_CHECK(ndr_pull_winreg_StringBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.keyclass));
1278 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_keyclass_0, 0);
1280 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_last_changed_time));
1281 if (_ptr_last_changed_time) {
1282 NDR_PULL_ALLOC(ndr, r->in.last_changed_time);
1284 r->in.last_changed_time = NULL;
1286 if (r->in.last_changed_time) {
1287 _mem_save_last_changed_time_0 = NDR_PULL_GET_MEM_CTX(ndr);
1288 NDR_PULL_SET_MEM_CTX(ndr, r->in.last_changed_time, 0);
1289 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, r->in.last_changed_time));
1290 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_last_changed_time_0, 0);
1292 NDR_PULL_ALLOC(ndr, r->out.name);
1293 *r->out.name = *r->in.name;
1295 if (flags & NDR_OUT) {
1296 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1297 NDR_PULL_ALLOC(ndr, r->out.name);
1299 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
1300 NDR_PULL_SET_MEM_CTX(ndr, r->out.name, LIBNDR_FLAG_REF_ALLOC);
1301 NDR_CHECK(ndr_pull_winreg_StringBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.name));
1302 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, LIBNDR_FLAG_REF_ALLOC);
1303 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_keyclass));
1304 if (_ptr_keyclass) {
1305 NDR_PULL_ALLOC(ndr, r->out.keyclass);
1307 r->out.keyclass = NULL;
1309 if (r->out.keyclass) {
1310 _mem_save_keyclass_0 = NDR_PULL_GET_MEM_CTX(ndr);
1311 NDR_PULL_SET_MEM_CTX(ndr, r->out.keyclass, 0);
1312 NDR_CHECK(ndr_pull_winreg_StringBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.keyclass));
1313 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_keyclass_0, 0);
1315 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_last_changed_time));
1316 if (_ptr_last_changed_time) {
1317 NDR_PULL_ALLOC(ndr, r->out.last_changed_time);
1319 r->out.last_changed_time = NULL;
1321 if (r->out.last_changed_time) {
1322 _mem_save_last_changed_time_0 = NDR_PULL_GET_MEM_CTX(ndr);
1323 NDR_PULL_SET_MEM_CTX(ndr, r->out.last_changed_time, 0);
1324 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, r->out.last_changed_time));
1325 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_last_changed_time_0, 0);
1327 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
1329 return NT_STATUS_OK;
1332 _PUBLIC_ void ndr_print_winreg_EnumKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_EnumKey *r)
1334 ndr_print_struct(ndr, name, "winreg_EnumKey");
1336 if (flags & NDR_SET_VALUES) {
1337 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1339 if (flags & NDR_IN) {
1340 ndr_print_struct(ndr, "in", "winreg_EnumKey");
1342 ndr_print_ptr(ndr, "handle", r->in.handle);
1344 ndr_print_policy_handle(ndr, "handle", r->in.handle);
1346 ndr_print_uint32(ndr, "enum_index", r->in.enum_index);
1347 ndr_print_ptr(ndr, "name", r->in.name);
1349 ndr_print_winreg_StringBuf(ndr, "name", r->in.name);
1351 ndr_print_ptr(ndr, "keyclass", r->in.keyclass);
1353 if (r->in.keyclass) {
1354 ndr_print_winreg_StringBuf(ndr, "keyclass", r->in.keyclass);
1357 ndr_print_ptr(ndr, "last_changed_time", r->in.last_changed_time);
1359 if (r->in.last_changed_time) {
1360 ndr_print_NTTIME(ndr, "last_changed_time", *r->in.last_changed_time);
1365 if (flags & NDR_OUT) {
1366 ndr_print_struct(ndr, "out", "winreg_EnumKey");
1368 ndr_print_ptr(ndr, "name", r->out.name);
1370 ndr_print_winreg_StringBuf(ndr, "name", r->out.name);
1372 ndr_print_ptr(ndr, "keyclass", r->out.keyclass);
1374 if (r->out.keyclass) {
1375 ndr_print_winreg_StringBuf(ndr, "keyclass", r->out.keyclass);
1378 ndr_print_ptr(ndr, "last_changed_time", r->out.last_changed_time);
1380 if (r->out.last_changed_time) {
1381 ndr_print_NTTIME(ndr, "last_changed_time", *r->out.last_changed_time);
1384 ndr_print_WERROR(ndr, "result", r->out.result);
1390 NTSTATUS ndr_push_winreg_EnumValue(struct ndr_push *ndr, int flags, const struct winreg_EnumValue *r)
1392 if (flags & NDR_IN) {
1393 if (r->in.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
1394 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
1395 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.enum_index));
1396 if (r->in.name == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
1397 NDR_CHECK(ndr_push_winreg_StringBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.name));
1398 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.type));
1400 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->in.type));
1402 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.data));
1404 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.data_size));
1405 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
1406 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.value_length));
1407 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.data, *r->in.value_length));
1409 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.data_size));
1410 if (r->in.data_size) {
1411 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.data_size));
1413 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.value_length));
1414 if (r->in.value_length) {
1415 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.value_length));
1418 if (flags & NDR_OUT) {
1419 if (r->out.name == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
1420 NDR_CHECK(ndr_push_winreg_StringBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.name));
1421 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.type));
1423 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
1425 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.data));
1427 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.data_size));
1428 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
1429 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.value_length));
1430 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, *r->out.value_length));
1432 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.data_size));
1433 if (r->out.data_size) {
1434 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.data_size));
1436 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.value_length));
1437 if (r->out.value_length) {
1438 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.value_length));
1440 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
1442 return NT_STATUS_OK;
1445 NTSTATUS ndr_pull_winreg_EnumValue(struct ndr_pull *ndr, int flags, struct winreg_EnumValue *r)
1449 uint32_t _ptr_data_size;
1450 uint32_t _ptr_value_length;
1451 TALLOC_CTX *_mem_save_handle_0;
1452 TALLOC_CTX *_mem_save_name_0;
1453 TALLOC_CTX *_mem_save_type_0;
1454 TALLOC_CTX *_mem_save_data_0;
1455 TALLOC_CTX *_mem_save_data_size_0;
1456 TALLOC_CTX *_mem_save_value_length_0;
1457 if (flags & NDR_IN) {
1458 ZERO_STRUCT(r->out);
1460 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1461 NDR_PULL_ALLOC(ndr, r->in.handle);
1463 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
1464 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
1465 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
1466 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
1467 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.enum_index));
1468 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1469 NDR_PULL_ALLOC(ndr, r->in.name);
1471 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
1472 NDR_PULL_SET_MEM_CTX(ndr, r->in.name, LIBNDR_FLAG_REF_ALLOC);
1473 NDR_CHECK(ndr_pull_winreg_StringBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.name));
1474 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, LIBNDR_FLAG_REF_ALLOC);
1475 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_type));
1477 NDR_PULL_ALLOC(ndr, r->in.type);
1482 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
1483 NDR_PULL_SET_MEM_CTX(ndr, r->in.type, 0);
1484 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->in.type));
1485 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, 0);
1487 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
1489 NDR_PULL_ALLOC(ndr, r->in.data);
1494 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
1495 NDR_PULL_SET_MEM_CTX(ndr, r->in.data, 0);
1496 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.data));
1497 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.data));
1498 if (ndr_get_array_length(ndr, &r->in.data) > ndr_get_array_size(ndr, &r->in.data)) {
1499 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.data), ndr_get_array_length(ndr, &r->in.data));
1501 NDR_PULL_ALLOC_N(ndr, r->in.data, ndr_get_array_size(ndr, &r->in.data));
1502 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.data, ndr_get_array_length(ndr, &r->in.data)));
1503 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
1505 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_size));
1506 if (_ptr_data_size) {
1507 NDR_PULL_ALLOC(ndr, r->in.data_size);
1509 r->in.data_size = NULL;
1511 if (r->in.data_size) {
1512 _mem_save_data_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
1513 NDR_PULL_SET_MEM_CTX(ndr, r->in.data_size, 0);
1514 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.data_size));
1515 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_size_0, 0);
1517 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_value_length));
1518 if (_ptr_value_length) {
1519 NDR_PULL_ALLOC(ndr, r->in.value_length);
1521 r->in.value_length = NULL;
1523 if (r->in.value_length) {
1524 _mem_save_value_length_0 = NDR_PULL_GET_MEM_CTX(ndr);
1525 NDR_PULL_SET_MEM_CTX(ndr, r->in.value_length, 0);
1526 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.value_length));
1527 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_length_0, 0);
1529 NDR_PULL_ALLOC(ndr, r->out.name);
1530 *r->out.name = *r->in.name;
1532 if (r->in.data_size == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
1533 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.data, *r->in.data_size));
1536 if (r->in.value_length == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
1537 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->in.data, *r->in.value_length));
1540 if (flags & NDR_OUT) {
1541 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1542 NDR_PULL_ALLOC(ndr, r->out.name);
1544 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
1545 NDR_PULL_SET_MEM_CTX(ndr, r->out.name, LIBNDR_FLAG_REF_ALLOC);
1546 NDR_CHECK(ndr_pull_winreg_StringBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.name));
1547 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, LIBNDR_FLAG_REF_ALLOC);
1548 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_type));
1550 NDR_PULL_ALLOC(ndr, r->out.type);
1555 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
1556 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, 0);
1557 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
1558 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, 0);
1560 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
1562 NDR_PULL_ALLOC(ndr, r->out.data);
1567 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
1568 NDR_PULL_SET_MEM_CTX(ndr, r->out.data, 0);
1569 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
1570 NDR_CHECK(ndr_pull_array_length(ndr, &r->out.data));
1571 if (ndr_get_array_length(ndr, &r->out.data) > ndr_get_array_size(ndr, &r->out.data)) {
1572 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->out.data), ndr_get_array_length(ndr, &r->out.data));
1574 NDR_PULL_ALLOC_N(ndr, r->out.data, ndr_get_array_size(ndr, &r->out.data));
1575 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, ndr_get_array_length(ndr, &r->out.data)));
1576 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
1578 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_size));
1579 if (_ptr_data_size) {
1580 NDR_PULL_ALLOC(ndr, r->out.data_size);
1582 r->out.data_size = NULL;
1584 if (r->out.data_size) {
1585 _mem_save_data_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
1586 NDR_PULL_SET_MEM_CTX(ndr, r->out.data_size, 0);
1587 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.data_size));
1588 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_size_0, 0);
1590 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_value_length));
1591 if (_ptr_value_length) {
1592 NDR_PULL_ALLOC(ndr, r->out.value_length);
1594 r->out.value_length = NULL;
1596 if (r->out.value_length) {
1597 _mem_save_value_length_0 = NDR_PULL_GET_MEM_CTX(ndr);
1598 NDR_PULL_SET_MEM_CTX(ndr, r->out.value_length, 0);
1599 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.value_length));
1600 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_length_0, 0);
1602 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
1604 if (r->out.data_size == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
1605 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, *r->out.data_size));
1608 if (r->out.value_length == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
1609 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->out.data, *r->out.value_length));
1612 return NT_STATUS_OK;
1615 _PUBLIC_ void ndr_print_winreg_EnumValue(struct ndr_print *ndr, const char *name, int flags, const struct winreg_EnumValue *r)
1617 ndr_print_struct(ndr, name, "winreg_EnumValue");
1619 if (flags & NDR_SET_VALUES) {
1620 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1622 if (flags & NDR_IN) {
1623 ndr_print_struct(ndr, "in", "winreg_EnumValue");
1625 ndr_print_ptr(ndr, "handle", r->in.handle);
1627 ndr_print_policy_handle(ndr, "handle", r->in.handle);
1629 ndr_print_uint32(ndr, "enum_index", r->in.enum_index);
1630 ndr_print_ptr(ndr, "name", r->in.name);
1632 ndr_print_winreg_StringBuf(ndr, "name", r->in.name);
1634 ndr_print_ptr(ndr, "type", r->in.type);
1637 ndr_print_winreg_Type(ndr, "type", *r->in.type);
1640 ndr_print_ptr(ndr, "data", r->in.data);
1643 ndr_print_array_uint8(ndr, "data", r->in.data, *r->in.value_length);
1646 ndr_print_ptr(ndr, "data_size", r->in.data_size);
1648 if (r->in.data_size) {
1649 ndr_print_uint32(ndr, "data_size", *r->in.data_size);
1652 ndr_print_ptr(ndr, "value_length", r->in.value_length);
1654 if (r->in.value_length) {
1655 ndr_print_uint32(ndr, "value_length", *r->in.value_length);
1660 if (flags & NDR_OUT) {
1661 ndr_print_struct(ndr, "out", "winreg_EnumValue");
1663 ndr_print_ptr(ndr, "name", r->out.name);
1665 ndr_print_winreg_StringBuf(ndr, "name", r->out.name);
1667 ndr_print_ptr(ndr, "type", r->out.type);
1670 ndr_print_winreg_Type(ndr, "type", *r->out.type);
1673 ndr_print_ptr(ndr, "data", r->out.data);
1676 ndr_print_array_uint8(ndr, "data", r->out.data, *r->out.value_length);
1679 ndr_print_ptr(ndr, "data_size", r->out.data_size);
1681 if (r->out.data_size) {
1682 ndr_print_uint32(ndr, "data_size", *r->out.data_size);
1685 ndr_print_ptr(ndr, "value_length", r->out.value_length);
1687 if (r->out.value_length) {
1688 ndr_print_uint32(ndr, "value_length", *r->out.value_length);
1691 ndr_print_WERROR(ndr, "result", r->out.result);
1697 NTSTATUS ndr_push_winreg_FlushKey(struct ndr_push *ndr, int flags, const struct winreg_FlushKey *r)
1699 if (flags & NDR_IN) {
1700 if (r->in.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
1701 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
1703 if (flags & NDR_OUT) {
1704 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
1706 return NT_STATUS_OK;
1709 NTSTATUS ndr_pull_winreg_FlushKey(struct ndr_pull *ndr, int flags, struct winreg_FlushKey *r)
1711 TALLOC_CTX *_mem_save_handle_0;
1712 if (flags & NDR_IN) {
1713 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1714 NDR_PULL_ALLOC(ndr, r->in.handle);
1716 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
1717 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
1718 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
1719 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
1721 if (flags & NDR_OUT) {
1722 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
1724 return NT_STATUS_OK;
1727 _PUBLIC_ void ndr_print_winreg_FlushKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_FlushKey *r)
1729 ndr_print_struct(ndr, name, "winreg_FlushKey");
1731 if (flags & NDR_SET_VALUES) {
1732 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1734 if (flags & NDR_IN) {
1735 ndr_print_struct(ndr, "in", "winreg_FlushKey");
1737 ndr_print_ptr(ndr, "handle", r->in.handle);
1739 ndr_print_policy_handle(ndr, "handle", r->in.handle);
1743 if (flags & NDR_OUT) {
1744 ndr_print_struct(ndr, "out", "winreg_FlushKey");
1746 ndr_print_WERROR(ndr, "result", r->out.result);
1752 NTSTATUS ndr_push_winreg_GetKeySecurity(struct ndr_push *ndr, int flags, const struct winreg_GetKeySecurity *r)
1754 if (flags & NDR_IN) {
1755 if (r->in.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
1756 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
1757 NDR_CHECK(ndr_push_security_secinfo(ndr, NDR_SCALARS, r->in.sec_info));
1758 if (r->in.sd == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
1759 NDR_CHECK(ndr_push_KeySecurityData(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sd));
1761 if (flags & NDR_OUT) {
1762 if (r->out.sd == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
1763 NDR_CHECK(ndr_push_KeySecurityData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.sd));
1764 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
1766 return NT_STATUS_OK;
1769 NTSTATUS ndr_pull_winreg_GetKeySecurity(struct ndr_pull *ndr, int flags, struct winreg_GetKeySecurity *r)
1771 TALLOC_CTX *_mem_save_handle_0;
1772 TALLOC_CTX *_mem_save_sd_0;
1773 if (flags & NDR_IN) {
1774 ZERO_STRUCT(r->out);
1776 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1777 NDR_PULL_ALLOC(ndr, r->in.handle);
1779 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
1780 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
1781 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
1782 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
1783 NDR_CHECK(ndr_pull_security_secinfo(ndr, NDR_SCALARS, &r->in.sec_info));
1784 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1785 NDR_PULL_ALLOC(ndr, r->in.sd);
1787 _mem_save_sd_0 = NDR_PULL_GET_MEM_CTX(ndr);
1788 NDR_PULL_SET_MEM_CTX(ndr, r->in.sd, LIBNDR_FLAG_REF_ALLOC);
1789 NDR_CHECK(ndr_pull_KeySecurityData(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sd));
1790 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sd_0, LIBNDR_FLAG_REF_ALLOC);
1791 NDR_PULL_ALLOC(ndr, r->out.sd);
1792 *r->out.sd = *r->in.sd;
1794 if (flags & NDR_OUT) {
1795 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1796 NDR_PULL_ALLOC(ndr, r->out.sd);
1798 _mem_save_sd_0 = NDR_PULL_GET_MEM_CTX(ndr);
1799 NDR_PULL_SET_MEM_CTX(ndr, r->out.sd, LIBNDR_FLAG_REF_ALLOC);
1800 NDR_CHECK(ndr_pull_KeySecurityData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.sd));
1801 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sd_0, LIBNDR_FLAG_REF_ALLOC);
1802 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
1804 return NT_STATUS_OK;
1807 _PUBLIC_ void ndr_print_winreg_GetKeySecurity(struct ndr_print *ndr, const char *name, int flags, const struct winreg_GetKeySecurity *r)
1809 ndr_print_struct(ndr, name, "winreg_GetKeySecurity");
1811 if (flags & NDR_SET_VALUES) {
1812 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1814 if (flags & NDR_IN) {
1815 ndr_print_struct(ndr, "in", "winreg_GetKeySecurity");
1817 ndr_print_ptr(ndr, "handle", r->in.handle);
1819 ndr_print_policy_handle(ndr, "handle", r->in.handle);
1821 ndr_print_security_secinfo(ndr, "sec_info", r->in.sec_info);
1822 ndr_print_ptr(ndr, "sd", r->in.sd);
1824 ndr_print_KeySecurityData(ndr, "sd", r->in.sd);
1828 if (flags & NDR_OUT) {
1829 ndr_print_struct(ndr, "out", "winreg_GetKeySecurity");
1831 ndr_print_ptr(ndr, "sd", r->out.sd);
1833 ndr_print_KeySecurityData(ndr, "sd", r->out.sd);
1835 ndr_print_WERROR(ndr, "result", r->out.result);
1841 NTSTATUS ndr_push_winreg_LoadKey(struct ndr_push *ndr, int flags, const struct winreg_LoadKey *r)
1843 if (flags & NDR_IN) {
1844 if (r->in.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
1845 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
1846 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.keyname));
1847 if (r->in.keyname) {
1848 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.keyname));
1850 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.filename));
1851 if (r->in.filename) {
1852 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.filename));
1855 if (flags & NDR_OUT) {
1856 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
1858 return NT_STATUS_OK;
1861 NTSTATUS ndr_pull_winreg_LoadKey(struct ndr_pull *ndr, int flags, struct winreg_LoadKey *r)
1863 uint32_t _ptr_keyname;
1864 uint32_t _ptr_filename;
1865 TALLOC_CTX *_mem_save_handle_0;
1866 TALLOC_CTX *_mem_save_keyname_0;
1867 TALLOC_CTX *_mem_save_filename_0;
1868 if (flags & NDR_IN) {
1869 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1870 NDR_PULL_ALLOC(ndr, r->in.handle);
1872 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
1873 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
1874 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
1875 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
1876 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_keyname));
1878 NDR_PULL_ALLOC(ndr, r->in.keyname);
1880 r->in.keyname = NULL;
1882 if (r->in.keyname) {
1883 _mem_save_keyname_0 = NDR_PULL_GET_MEM_CTX(ndr);
1884 NDR_PULL_SET_MEM_CTX(ndr, r->in.keyname, 0);
1885 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.keyname));
1886 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_keyname_0, 0);
1888 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_filename));
1889 if (_ptr_filename) {
1890 NDR_PULL_ALLOC(ndr, r->in.filename);
1892 r->in.filename = NULL;
1894 if (r->in.filename) {
1895 _mem_save_filename_0 = NDR_PULL_GET_MEM_CTX(ndr);
1896 NDR_PULL_SET_MEM_CTX(ndr, r->in.filename, 0);
1897 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.filename));
1898 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_filename_0, 0);
1901 if (flags & NDR_OUT) {
1902 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
1904 return NT_STATUS_OK;
1907 _PUBLIC_ void ndr_print_winreg_LoadKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_LoadKey *r)
1909 ndr_print_struct(ndr, name, "winreg_LoadKey");
1911 if (flags & NDR_SET_VALUES) {
1912 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1914 if (flags & NDR_IN) {
1915 ndr_print_struct(ndr, "in", "winreg_LoadKey");
1917 ndr_print_ptr(ndr, "handle", r->in.handle);
1919 ndr_print_policy_handle(ndr, "handle", r->in.handle);
1921 ndr_print_ptr(ndr, "keyname", r->in.keyname);
1923 if (r->in.keyname) {
1924 ndr_print_winreg_String(ndr, "keyname", r->in.keyname);
1927 ndr_print_ptr(ndr, "filename", r->in.filename);
1929 if (r->in.filename) {
1930 ndr_print_winreg_String(ndr, "filename", r->in.filename);
1935 if (flags & NDR_OUT) {
1936 ndr_print_struct(ndr, "out", "winreg_LoadKey");
1938 ndr_print_WERROR(ndr, "result", r->out.result);
1944 NTSTATUS ndr_push_winreg_NotifyChangeKeyValue(struct ndr_push *ndr, int flags, const struct winreg_NotifyChangeKeyValue *r)
1946 if (flags & NDR_IN) {
1947 if (r->in.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
1948 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
1949 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->in.watch_subtree));
1950 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.notify_filter));
1951 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown));
1952 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.string1));
1953 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.string2));
1954 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown2));
1956 if (flags & NDR_OUT) {
1957 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
1959 return NT_STATUS_OK;
1962 NTSTATUS ndr_pull_winreg_NotifyChangeKeyValue(struct ndr_pull *ndr, int flags, struct winreg_NotifyChangeKeyValue *r)
1964 TALLOC_CTX *_mem_save_handle_0;
1965 if (flags & NDR_IN) {
1966 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1967 NDR_PULL_ALLOC(ndr, r->in.handle);
1969 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
1970 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
1971 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
1972 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
1973 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->in.watch_subtree));
1974 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.notify_filter));
1975 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown));
1976 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.string1));
1977 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.string2));
1978 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown2));
1980 if (flags & NDR_OUT) {
1981 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
1983 return NT_STATUS_OK;
1986 _PUBLIC_ void ndr_print_winreg_NotifyChangeKeyValue(struct ndr_print *ndr, const char *name, int flags, const struct winreg_NotifyChangeKeyValue *r)
1988 ndr_print_struct(ndr, name, "winreg_NotifyChangeKeyValue");
1990 if (flags & NDR_SET_VALUES) {
1991 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1993 if (flags & NDR_IN) {
1994 ndr_print_struct(ndr, "in", "winreg_NotifyChangeKeyValue");
1996 ndr_print_ptr(ndr, "handle", r->in.handle);
1998 ndr_print_policy_handle(ndr, "handle", r->in.handle);
2000 ndr_print_uint8(ndr, "watch_subtree", r->in.watch_subtree);
2001 ndr_print_uint32(ndr, "notify_filter", r->in.notify_filter);
2002 ndr_print_uint32(ndr, "unknown", r->in.unknown);
2003 ndr_print_winreg_String(ndr, "string1", &r->in.string1);
2004 ndr_print_winreg_String(ndr, "string2", &r->in.string2);
2005 ndr_print_uint32(ndr, "unknown2", r->in.unknown2);
2008 if (flags & NDR_OUT) {
2009 ndr_print_struct(ndr, "out", "winreg_NotifyChangeKeyValue");
2011 ndr_print_WERROR(ndr, "result", r->out.result);
2017 NTSTATUS ndr_push_winreg_OpenKey(struct ndr_push *ndr, int flags, const struct winreg_OpenKey *r)
2019 if (flags & NDR_IN) {
2020 if (r->in.parent_handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2021 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.parent_handle));
2022 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.keyname));
2023 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown));
2024 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
2026 if (flags & NDR_OUT) {
2027 if (r->out.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2028 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.handle));
2029 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
2031 return NT_STATUS_OK;
2034 NTSTATUS ndr_pull_winreg_OpenKey(struct ndr_pull *ndr, int flags, struct winreg_OpenKey *r)
2036 TALLOC_CTX *_mem_save_parent_handle_0;
2037 TALLOC_CTX *_mem_save_handle_0;
2038 if (flags & NDR_IN) {
2039 ZERO_STRUCT(r->out);
2041 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2042 NDR_PULL_ALLOC(ndr, r->in.parent_handle);
2044 _mem_save_parent_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
2045 NDR_PULL_SET_MEM_CTX(ndr, r->in.parent_handle, LIBNDR_FLAG_REF_ALLOC);
2046 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.parent_handle));
2047 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parent_handle_0, LIBNDR_FLAG_REF_ALLOC);
2048 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.keyname));
2049 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown));
2050 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
2051 NDR_PULL_ALLOC(ndr, r->out.handle);
2052 ZERO_STRUCTP(r->out.handle);
2054 if (flags & NDR_OUT) {
2055 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2056 NDR_PULL_ALLOC(ndr, r->out.handle);
2058 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
2059 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
2060 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.handle));
2061 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
2062 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
2064 return NT_STATUS_OK;
2067 _PUBLIC_ void ndr_print_winreg_OpenKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenKey *r)
2069 ndr_print_struct(ndr, name, "winreg_OpenKey");
2071 if (flags & NDR_SET_VALUES) {
2072 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2074 if (flags & NDR_IN) {
2075 ndr_print_struct(ndr, "in", "winreg_OpenKey");
2077 ndr_print_ptr(ndr, "parent_handle", r->in.parent_handle);
2079 ndr_print_policy_handle(ndr, "parent_handle", r->in.parent_handle);
2081 ndr_print_winreg_String(ndr, "keyname", &r->in.keyname);
2082 ndr_print_uint32(ndr, "unknown", r->in.unknown);
2083 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
2086 if (flags & NDR_OUT) {
2087 ndr_print_struct(ndr, "out", "winreg_OpenKey");
2089 ndr_print_ptr(ndr, "handle", r->out.handle);
2091 ndr_print_policy_handle(ndr, "handle", r->out.handle);
2093 ndr_print_WERROR(ndr, "result", r->out.result);
2099 NTSTATUS ndr_push_winreg_QueryInfoKey(struct ndr_push *ndr, int flags, const struct winreg_QueryInfoKey *r)
2101 if (flags & NDR_IN) {
2102 if (r->in.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2103 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
2104 if (r->in.classname == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2105 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.classname));
2107 if (flags & NDR_OUT) {
2108 if (r->out.classname == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2109 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.classname));
2110 if (r->out.num_subkeys == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2111 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.num_subkeys));
2112 if (r->out.max_subkeylen == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2113 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.max_subkeylen));
2114 if (r->out.max_subkeysize == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2115 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.max_subkeysize));
2116 if (r->out.num_values == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2117 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.num_values));
2118 if (r->out.max_valnamelen == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2119 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.max_valnamelen));
2120 if (r->out.max_valbufsize == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2121 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.max_valbufsize));
2122 if (r->out.secdescsize == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2123 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.secdescsize));
2124 if (r->out.last_changed_time == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2125 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, *r->out.last_changed_time));
2126 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
2128 return NT_STATUS_OK;
2131 NTSTATUS ndr_pull_winreg_QueryInfoKey(struct ndr_pull *ndr, int flags, struct winreg_QueryInfoKey *r)
2133 TALLOC_CTX *_mem_save_handle_0;
2134 TALLOC_CTX *_mem_save_classname_0;
2135 TALLOC_CTX *_mem_save_num_subkeys_0;
2136 TALLOC_CTX *_mem_save_max_subkeylen_0;
2137 TALLOC_CTX *_mem_save_max_subkeysize_0;
2138 TALLOC_CTX *_mem_save_num_values_0;
2139 TALLOC_CTX *_mem_save_max_valnamelen_0;
2140 TALLOC_CTX *_mem_save_max_valbufsize_0;
2141 TALLOC_CTX *_mem_save_secdescsize_0;
2142 TALLOC_CTX *_mem_save_last_changed_time_0;
2143 if (flags & NDR_IN) {
2144 ZERO_STRUCT(r->out);
2146 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2147 NDR_PULL_ALLOC(ndr, r->in.handle);
2149 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
2150 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
2151 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
2152 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
2153 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2154 NDR_PULL_ALLOC(ndr, r->in.classname);
2156 _mem_save_classname_0 = NDR_PULL_GET_MEM_CTX(ndr);
2157 NDR_PULL_SET_MEM_CTX(ndr, r->in.classname, LIBNDR_FLAG_REF_ALLOC);
2158 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.classname));
2159 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_classname_0, LIBNDR_FLAG_REF_ALLOC);
2160 NDR_PULL_ALLOC(ndr, r->out.classname);
2161 *r->out.classname = *r->in.classname;
2162 NDR_PULL_ALLOC(ndr, r->out.num_subkeys);
2163 ZERO_STRUCTP(r->out.num_subkeys);
2164 NDR_PULL_ALLOC(ndr, r->out.max_subkeylen);
2165 ZERO_STRUCTP(r->out.max_subkeylen);
2166 NDR_PULL_ALLOC(ndr, r->out.max_subkeysize);
2167 ZERO_STRUCTP(r->out.max_subkeysize);
2168 NDR_PULL_ALLOC(ndr, r->out.num_values);
2169 ZERO_STRUCTP(r->out.num_values);
2170 NDR_PULL_ALLOC(ndr, r->out.max_valnamelen);
2171 ZERO_STRUCTP(r->out.max_valnamelen);
2172 NDR_PULL_ALLOC(ndr, r->out.max_valbufsize);
2173 ZERO_STRUCTP(r->out.max_valbufsize);
2174 NDR_PULL_ALLOC(ndr, r->out.secdescsize);
2175 ZERO_STRUCTP(r->out.secdescsize);
2176 NDR_PULL_ALLOC(ndr, r->out.last_changed_time);
2177 ZERO_STRUCTP(r->out.last_changed_time);
2179 if (flags & NDR_OUT) {
2180 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2181 NDR_PULL_ALLOC(ndr, r->out.classname);
2183 _mem_save_classname_0 = NDR_PULL_GET_MEM_CTX(ndr);
2184 NDR_PULL_SET_MEM_CTX(ndr, r->out.classname, LIBNDR_FLAG_REF_ALLOC);
2185 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.classname));
2186 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_classname_0, LIBNDR_FLAG_REF_ALLOC);
2187 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2188 NDR_PULL_ALLOC(ndr, r->out.num_subkeys);
2190 _mem_save_num_subkeys_0 = NDR_PULL_GET_MEM_CTX(ndr);
2191 NDR_PULL_SET_MEM_CTX(ndr, r->out.num_subkeys, LIBNDR_FLAG_REF_ALLOC);
2192 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.num_subkeys));
2193 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_num_subkeys_0, LIBNDR_FLAG_REF_ALLOC);
2194 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2195 NDR_PULL_ALLOC(ndr, r->out.max_subkeylen);
2197 _mem_save_max_subkeylen_0 = NDR_PULL_GET_MEM_CTX(ndr);
2198 NDR_PULL_SET_MEM_CTX(ndr, r->out.max_subkeylen, LIBNDR_FLAG_REF_ALLOC);
2199 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.max_subkeylen));
2200 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_max_subkeylen_0, LIBNDR_FLAG_REF_ALLOC);
2201 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2202 NDR_PULL_ALLOC(ndr, r->out.max_subkeysize);
2204 _mem_save_max_subkeysize_0 = NDR_PULL_GET_MEM_CTX(ndr);
2205 NDR_PULL_SET_MEM_CTX(ndr, r->out.max_subkeysize, LIBNDR_FLAG_REF_ALLOC);
2206 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.max_subkeysize));
2207 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_max_subkeysize_0, LIBNDR_FLAG_REF_ALLOC);
2208 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2209 NDR_PULL_ALLOC(ndr, r->out.num_values);
2211 _mem_save_num_values_0 = NDR_PULL_GET_MEM_CTX(ndr);
2212 NDR_PULL_SET_MEM_CTX(ndr, r->out.num_values, LIBNDR_FLAG_REF_ALLOC);
2213 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.num_values));
2214 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_num_values_0, LIBNDR_FLAG_REF_ALLOC);
2215 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2216 NDR_PULL_ALLOC(ndr, r->out.max_valnamelen);
2218 _mem_save_max_valnamelen_0 = NDR_PULL_GET_MEM_CTX(ndr);
2219 NDR_PULL_SET_MEM_CTX(ndr, r->out.max_valnamelen, LIBNDR_FLAG_REF_ALLOC);
2220 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.max_valnamelen));
2221 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_max_valnamelen_0, LIBNDR_FLAG_REF_ALLOC);
2222 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2223 NDR_PULL_ALLOC(ndr, r->out.max_valbufsize);
2225 _mem_save_max_valbufsize_0 = NDR_PULL_GET_MEM_CTX(ndr);
2226 NDR_PULL_SET_MEM_CTX(ndr, r->out.max_valbufsize, LIBNDR_FLAG_REF_ALLOC);
2227 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.max_valbufsize));
2228 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_max_valbufsize_0, LIBNDR_FLAG_REF_ALLOC);
2229 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2230 NDR_PULL_ALLOC(ndr, r->out.secdescsize);
2232 _mem_save_secdescsize_0 = NDR_PULL_GET_MEM_CTX(ndr);
2233 NDR_PULL_SET_MEM_CTX(ndr, r->out.secdescsize, LIBNDR_FLAG_REF_ALLOC);
2234 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.secdescsize));
2235 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdescsize_0, LIBNDR_FLAG_REF_ALLOC);
2236 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2237 NDR_PULL_ALLOC(ndr, r->out.last_changed_time);
2239 _mem_save_last_changed_time_0 = NDR_PULL_GET_MEM_CTX(ndr);
2240 NDR_PULL_SET_MEM_CTX(ndr, r->out.last_changed_time, LIBNDR_FLAG_REF_ALLOC);
2241 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, r->out.last_changed_time));
2242 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_last_changed_time_0, LIBNDR_FLAG_REF_ALLOC);
2243 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
2245 return NT_STATUS_OK;
2248 _PUBLIC_ void ndr_print_winreg_QueryInfoKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_QueryInfoKey *r)
2250 ndr_print_struct(ndr, name, "winreg_QueryInfoKey");
2252 if (flags & NDR_SET_VALUES) {
2253 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2255 if (flags & NDR_IN) {
2256 ndr_print_struct(ndr, "in", "winreg_QueryInfoKey");
2258 ndr_print_ptr(ndr, "handle", r->in.handle);
2260 ndr_print_policy_handle(ndr, "handle", r->in.handle);
2262 ndr_print_ptr(ndr, "classname", r->in.classname);
2264 ndr_print_winreg_String(ndr, "classname", r->in.classname);
2268 if (flags & NDR_OUT) {
2269 ndr_print_struct(ndr, "out", "winreg_QueryInfoKey");
2271 ndr_print_ptr(ndr, "classname", r->out.classname);
2273 ndr_print_winreg_String(ndr, "classname", r->out.classname);
2275 ndr_print_ptr(ndr, "num_subkeys", r->out.num_subkeys);
2277 ndr_print_uint32(ndr, "num_subkeys", *r->out.num_subkeys);
2279 ndr_print_ptr(ndr, "max_subkeylen", r->out.max_subkeylen);
2281 ndr_print_uint32(ndr, "max_subkeylen", *r->out.max_subkeylen);
2283 ndr_print_ptr(ndr, "max_subkeysize", r->out.max_subkeysize);
2285 ndr_print_uint32(ndr, "max_subkeysize", *r->out.max_subkeysize);
2287 ndr_print_ptr(ndr, "num_values", r->out.num_values);
2289 ndr_print_uint32(ndr, "num_values", *r->out.num_values);
2291 ndr_print_ptr(ndr, "max_valnamelen", r->out.max_valnamelen);
2293 ndr_print_uint32(ndr, "max_valnamelen", *r->out.max_valnamelen);
2295 ndr_print_ptr(ndr, "max_valbufsize", r->out.max_valbufsize);
2297 ndr_print_uint32(ndr, "max_valbufsize", *r->out.max_valbufsize);
2299 ndr_print_ptr(ndr, "secdescsize", r->out.secdescsize);
2301 ndr_print_uint32(ndr, "secdescsize", *r->out.secdescsize);
2303 ndr_print_ptr(ndr, "last_changed_time", r->out.last_changed_time);
2305 ndr_print_NTTIME(ndr, "last_changed_time", *r->out.last_changed_time);
2307 ndr_print_WERROR(ndr, "result", r->out.result);
2313 NTSTATUS ndr_push_winreg_QueryValue(struct ndr_push *ndr, int flags, const struct winreg_QueryValue *r)
2315 if (flags & NDR_IN) {
2316 if (r->in.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2317 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
2318 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.value_name));
2319 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.type));
2321 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->in.type));
2323 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.data));
2325 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.data_size));
2326 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
2327 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.value_length));
2328 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.data, *r->in.value_length));
2330 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.data_size));
2331 if (r->in.data_size) {
2332 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.data_size));
2334 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.value_length));
2335 if (r->in.value_length) {
2336 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.value_length));
2339 if (flags & NDR_OUT) {
2340 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.type));
2342 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
2344 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.data));
2346 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.data_size));
2347 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
2348 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.value_length));
2349 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, *r->out.value_length));
2351 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.data_size));
2352 if (r->out.data_size) {
2353 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.data_size));
2355 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.value_length));
2356 if (r->out.value_length) {
2357 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.value_length));
2359 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
2361 return NT_STATUS_OK;
2364 NTSTATUS ndr_pull_winreg_QueryValue(struct ndr_pull *ndr, int flags, struct winreg_QueryValue *r)
2368 uint32_t _ptr_data_size;
2369 uint32_t _ptr_value_length;
2370 TALLOC_CTX *_mem_save_handle_0;
2371 TALLOC_CTX *_mem_save_type_0;
2372 TALLOC_CTX *_mem_save_data_0;
2373 TALLOC_CTX *_mem_save_data_size_0;
2374 TALLOC_CTX *_mem_save_value_length_0;
2375 if (flags & NDR_IN) {
2376 ZERO_STRUCT(r->out);
2378 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2379 NDR_PULL_ALLOC(ndr, r->in.handle);
2381 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
2382 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
2383 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
2384 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
2385 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.value_name));
2386 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_type));
2388 NDR_PULL_ALLOC(ndr, r->in.type);
2393 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
2394 NDR_PULL_SET_MEM_CTX(ndr, r->in.type, 0);
2395 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->in.type));
2396 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, 0);
2398 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
2400 NDR_PULL_ALLOC(ndr, r->in.data);
2405 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
2406 NDR_PULL_SET_MEM_CTX(ndr, r->in.data, 0);
2407 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.data));
2408 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.data));
2409 if (ndr_get_array_length(ndr, &r->in.data) > ndr_get_array_size(ndr, &r->in.data)) {
2410 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.data), ndr_get_array_length(ndr, &r->in.data));
2412 NDR_PULL_ALLOC_N(ndr, r->in.data, ndr_get_array_size(ndr, &r->in.data));
2413 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.data, ndr_get_array_length(ndr, &r->in.data)));
2414 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
2416 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_size));
2417 if (_ptr_data_size) {
2418 NDR_PULL_ALLOC(ndr, r->in.data_size);
2420 r->in.data_size = NULL;
2422 if (r->in.data_size) {
2423 _mem_save_data_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
2424 NDR_PULL_SET_MEM_CTX(ndr, r->in.data_size, 0);
2425 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.data_size));
2426 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_size_0, 0);
2428 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_value_length));
2429 if (_ptr_value_length) {
2430 NDR_PULL_ALLOC(ndr, r->in.value_length);
2432 r->in.value_length = NULL;
2434 if (r->in.value_length) {
2435 _mem_save_value_length_0 = NDR_PULL_GET_MEM_CTX(ndr);
2436 NDR_PULL_SET_MEM_CTX(ndr, r->in.value_length, 0);
2437 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.value_length));
2438 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_length_0, 0);
2441 if (r->in.data_size == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2442 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.data, *r->in.data_size));
2445 if (r->in.value_length == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2446 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->in.data, *r->in.value_length));
2449 if (flags & NDR_OUT) {
2450 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_type));
2452 NDR_PULL_ALLOC(ndr, r->out.type);
2457 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
2458 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, 0);
2459 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
2460 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, 0);
2462 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
2464 NDR_PULL_ALLOC(ndr, r->out.data);
2469 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
2470 NDR_PULL_SET_MEM_CTX(ndr, r->out.data, 0);
2471 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
2472 NDR_CHECK(ndr_pull_array_length(ndr, &r->out.data));
2473 if (ndr_get_array_length(ndr, &r->out.data) > ndr_get_array_size(ndr, &r->out.data)) {
2474 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->out.data), ndr_get_array_length(ndr, &r->out.data));
2476 NDR_PULL_ALLOC_N(ndr, r->out.data, ndr_get_array_size(ndr, &r->out.data));
2477 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, ndr_get_array_length(ndr, &r->out.data)));
2478 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
2480 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_size));
2481 if (_ptr_data_size) {
2482 NDR_PULL_ALLOC(ndr, r->out.data_size);
2484 r->out.data_size = NULL;
2486 if (r->out.data_size) {
2487 _mem_save_data_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
2488 NDR_PULL_SET_MEM_CTX(ndr, r->out.data_size, 0);
2489 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.data_size));
2490 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_size_0, 0);
2492 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_value_length));
2493 if (_ptr_value_length) {
2494 NDR_PULL_ALLOC(ndr, r->out.value_length);
2496 r->out.value_length = NULL;
2498 if (r->out.value_length) {
2499 _mem_save_value_length_0 = NDR_PULL_GET_MEM_CTX(ndr);
2500 NDR_PULL_SET_MEM_CTX(ndr, r->out.value_length, 0);
2501 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.value_length));
2502 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_length_0, 0);
2504 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
2506 if (r->out.data_size == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2507 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, *r->out.data_size));
2510 if (r->out.value_length == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2511 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->out.data, *r->out.value_length));
2514 return NT_STATUS_OK;
2517 _PUBLIC_ void ndr_print_winreg_QueryValue(struct ndr_print *ndr, const char *name, int flags, const struct winreg_QueryValue *r)
2519 ndr_print_struct(ndr, name, "winreg_QueryValue");
2521 if (flags & NDR_SET_VALUES) {
2522 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2524 if (flags & NDR_IN) {
2525 ndr_print_struct(ndr, "in", "winreg_QueryValue");
2527 ndr_print_ptr(ndr, "handle", r->in.handle);
2529 ndr_print_policy_handle(ndr, "handle", r->in.handle);
2531 ndr_print_winreg_String(ndr, "value_name", &r->in.value_name);
2532 ndr_print_ptr(ndr, "type", r->in.type);
2535 ndr_print_winreg_Type(ndr, "type", *r->in.type);
2538 ndr_print_ptr(ndr, "data", r->in.data);
2541 ndr_print_array_uint8(ndr, "data", r->in.data, *r->in.value_length);
2544 ndr_print_ptr(ndr, "data_size", r->in.data_size);
2546 if (r->in.data_size) {
2547 ndr_print_uint32(ndr, "data_size", *r->in.data_size);
2550 ndr_print_ptr(ndr, "value_length", r->in.value_length);
2552 if (r->in.value_length) {
2553 ndr_print_uint32(ndr, "value_length", *r->in.value_length);
2558 if (flags & NDR_OUT) {
2559 ndr_print_struct(ndr, "out", "winreg_QueryValue");
2561 ndr_print_ptr(ndr, "type", r->out.type);
2564 ndr_print_winreg_Type(ndr, "type", *r->out.type);
2567 ndr_print_ptr(ndr, "data", r->out.data);
2570 ndr_print_array_uint8(ndr, "data", r->out.data, *r->out.value_length);
2573 ndr_print_ptr(ndr, "data_size", r->out.data_size);
2575 if (r->out.data_size) {
2576 ndr_print_uint32(ndr, "data_size", *r->out.data_size);
2579 ndr_print_ptr(ndr, "value_length", r->out.value_length);
2581 if (r->out.value_length) {
2582 ndr_print_uint32(ndr, "value_length", *r->out.value_length);
2585 ndr_print_WERROR(ndr, "result", r->out.result);
2591 NTSTATUS ndr_push_winreg_ReplaceKey(struct ndr_push *ndr, int flags, const struct winreg_ReplaceKey *r)
2593 if (flags & NDR_IN) {
2595 if (flags & NDR_OUT) {
2596 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
2598 return NT_STATUS_OK;
2601 NTSTATUS ndr_pull_winreg_ReplaceKey(struct ndr_pull *ndr, int flags, struct winreg_ReplaceKey *r)
2603 if (flags & NDR_IN) {
2605 if (flags & NDR_OUT) {
2606 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
2608 return NT_STATUS_OK;
2611 _PUBLIC_ void ndr_print_winreg_ReplaceKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_ReplaceKey *r)
2613 ndr_print_struct(ndr, name, "winreg_ReplaceKey");
2615 if (flags & NDR_SET_VALUES) {
2616 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2618 if (flags & NDR_IN) {
2619 ndr_print_struct(ndr, "in", "winreg_ReplaceKey");
2623 if (flags & NDR_OUT) {
2624 ndr_print_struct(ndr, "out", "winreg_ReplaceKey");
2626 ndr_print_WERROR(ndr, "result", r->out.result);
2632 NTSTATUS ndr_push_winreg_RestoreKey(struct ndr_push *ndr, int flags, const struct winreg_RestoreKey *r)
2634 if (flags & NDR_IN) {
2635 if (r->in.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2636 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
2637 if (r->in.filename == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2638 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.filename));
2639 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.flags));
2641 if (flags & NDR_OUT) {
2642 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
2644 return NT_STATUS_OK;
2647 NTSTATUS ndr_pull_winreg_RestoreKey(struct ndr_pull *ndr, int flags, struct winreg_RestoreKey *r)
2649 TALLOC_CTX *_mem_save_handle_0;
2650 TALLOC_CTX *_mem_save_filename_0;
2651 if (flags & NDR_IN) {
2652 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2653 NDR_PULL_ALLOC(ndr, r->in.handle);
2655 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
2656 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
2657 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
2658 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
2659 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2660 NDR_PULL_ALLOC(ndr, r->in.filename);
2662 _mem_save_filename_0 = NDR_PULL_GET_MEM_CTX(ndr);
2663 NDR_PULL_SET_MEM_CTX(ndr, r->in.filename, LIBNDR_FLAG_REF_ALLOC);
2664 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.filename));
2665 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_filename_0, LIBNDR_FLAG_REF_ALLOC);
2666 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.flags));
2668 if (flags & NDR_OUT) {
2669 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
2671 return NT_STATUS_OK;
2674 _PUBLIC_ void ndr_print_winreg_RestoreKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_RestoreKey *r)
2676 ndr_print_struct(ndr, name, "winreg_RestoreKey");
2678 if (flags & NDR_SET_VALUES) {
2679 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2681 if (flags & NDR_IN) {
2682 ndr_print_struct(ndr, "in", "winreg_RestoreKey");
2684 ndr_print_ptr(ndr, "handle", r->in.handle);
2686 ndr_print_policy_handle(ndr, "handle", r->in.handle);
2688 ndr_print_ptr(ndr, "filename", r->in.filename);
2690 ndr_print_winreg_String(ndr, "filename", r->in.filename);
2692 ndr_print_uint32(ndr, "flags", r->in.flags);
2695 if (flags & NDR_OUT) {
2696 ndr_print_struct(ndr, "out", "winreg_RestoreKey");
2698 ndr_print_WERROR(ndr, "result", r->out.result);
2704 NTSTATUS ndr_push_winreg_SaveKey(struct ndr_push *ndr, int flags, const struct winreg_SaveKey *r)
2706 if (flags & NDR_IN) {
2707 if (r->in.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2708 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
2709 if (r->in.filename == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2710 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.filename));
2711 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.sec_attrib));
2712 if (r->in.sec_attrib) {
2713 NDR_CHECK(ndr_push_KeySecurityAttribute(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sec_attrib));
2716 if (flags & NDR_OUT) {
2717 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
2719 return NT_STATUS_OK;
2722 NTSTATUS ndr_pull_winreg_SaveKey(struct ndr_pull *ndr, int flags, struct winreg_SaveKey *r)
2724 uint32_t _ptr_sec_attrib;
2725 TALLOC_CTX *_mem_save_handle_0;
2726 TALLOC_CTX *_mem_save_filename_0;
2727 TALLOC_CTX *_mem_save_sec_attrib_0;
2728 if (flags & NDR_IN) {
2729 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2730 NDR_PULL_ALLOC(ndr, r->in.handle);
2732 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
2733 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
2734 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
2735 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
2736 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2737 NDR_PULL_ALLOC(ndr, r->in.filename);
2739 _mem_save_filename_0 = NDR_PULL_GET_MEM_CTX(ndr);
2740 NDR_PULL_SET_MEM_CTX(ndr, r->in.filename, LIBNDR_FLAG_REF_ALLOC);
2741 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.filename));
2742 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_filename_0, LIBNDR_FLAG_REF_ALLOC);
2743 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sec_attrib));
2744 if (_ptr_sec_attrib) {
2745 NDR_PULL_ALLOC(ndr, r->in.sec_attrib);
2747 r->in.sec_attrib = NULL;
2749 if (r->in.sec_attrib) {
2750 _mem_save_sec_attrib_0 = NDR_PULL_GET_MEM_CTX(ndr);
2751 NDR_PULL_SET_MEM_CTX(ndr, r->in.sec_attrib, 0);
2752 NDR_CHECK(ndr_pull_KeySecurityAttribute(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sec_attrib));
2753 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sec_attrib_0, 0);
2756 if (flags & NDR_OUT) {
2757 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
2759 return NT_STATUS_OK;
2762 _PUBLIC_ void ndr_print_winreg_SaveKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_SaveKey *r)
2764 ndr_print_struct(ndr, name, "winreg_SaveKey");
2766 if (flags & NDR_SET_VALUES) {
2767 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2769 if (flags & NDR_IN) {
2770 ndr_print_struct(ndr, "in", "winreg_SaveKey");
2772 ndr_print_ptr(ndr, "handle", r->in.handle);
2774 ndr_print_policy_handle(ndr, "handle", r->in.handle);
2776 ndr_print_ptr(ndr, "filename", r->in.filename);
2778 ndr_print_winreg_String(ndr, "filename", r->in.filename);
2780 ndr_print_ptr(ndr, "sec_attrib", r->in.sec_attrib);
2782 if (r->in.sec_attrib) {
2783 ndr_print_KeySecurityAttribute(ndr, "sec_attrib", r->in.sec_attrib);
2788 if (flags & NDR_OUT) {
2789 ndr_print_struct(ndr, "out", "winreg_SaveKey");
2791 ndr_print_WERROR(ndr, "result", r->out.result);
2797 NTSTATUS ndr_push_winreg_SetKeySecurity(struct ndr_push *ndr, int flags, const struct winreg_SetKeySecurity *r)
2799 if (flags & NDR_IN) {
2800 if (r->in.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2801 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
2802 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
2803 if (r->in.sd == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2804 NDR_CHECK(ndr_push_KeySecurityData(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sd));
2806 if (flags & NDR_OUT) {
2807 if (r->out.sd == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2808 NDR_CHECK(ndr_push_KeySecurityData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.sd));
2809 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
2811 return NT_STATUS_OK;
2814 NTSTATUS ndr_pull_winreg_SetKeySecurity(struct ndr_pull *ndr, int flags, struct winreg_SetKeySecurity *r)
2816 TALLOC_CTX *_mem_save_handle_0;
2817 TALLOC_CTX *_mem_save_sd_0;
2818 if (flags & NDR_IN) {
2819 ZERO_STRUCT(r->out);
2821 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2822 NDR_PULL_ALLOC(ndr, r->in.handle);
2824 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
2825 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
2826 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
2827 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
2828 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
2829 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2830 NDR_PULL_ALLOC(ndr, r->in.sd);
2832 _mem_save_sd_0 = NDR_PULL_GET_MEM_CTX(ndr);
2833 NDR_PULL_SET_MEM_CTX(ndr, r->in.sd, LIBNDR_FLAG_REF_ALLOC);
2834 NDR_CHECK(ndr_pull_KeySecurityData(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sd));
2835 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sd_0, LIBNDR_FLAG_REF_ALLOC);
2836 NDR_PULL_ALLOC(ndr, r->out.sd);
2837 *r->out.sd = *r->in.sd;
2839 if (flags & NDR_OUT) {
2840 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2841 NDR_PULL_ALLOC(ndr, r->out.sd);
2843 _mem_save_sd_0 = NDR_PULL_GET_MEM_CTX(ndr);
2844 NDR_PULL_SET_MEM_CTX(ndr, r->out.sd, LIBNDR_FLAG_REF_ALLOC);
2845 NDR_CHECK(ndr_pull_KeySecurityData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.sd));
2846 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sd_0, LIBNDR_FLAG_REF_ALLOC);
2847 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
2849 return NT_STATUS_OK;
2852 _PUBLIC_ void ndr_print_winreg_SetKeySecurity(struct ndr_print *ndr, const char *name, int flags, const struct winreg_SetKeySecurity *r)
2854 ndr_print_struct(ndr, name, "winreg_SetKeySecurity");
2856 if (flags & NDR_SET_VALUES) {
2857 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2859 if (flags & NDR_IN) {
2860 ndr_print_struct(ndr, "in", "winreg_SetKeySecurity");
2862 ndr_print_ptr(ndr, "handle", r->in.handle);
2864 ndr_print_policy_handle(ndr, "handle", r->in.handle);
2866 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
2867 ndr_print_ptr(ndr, "sd", r->in.sd);
2869 ndr_print_KeySecurityData(ndr, "sd", r->in.sd);
2873 if (flags & NDR_OUT) {
2874 ndr_print_struct(ndr, "out", "winreg_SetKeySecurity");
2876 ndr_print_ptr(ndr, "sd", r->out.sd);
2878 ndr_print_KeySecurityData(ndr, "sd", r->out.sd);
2880 ndr_print_WERROR(ndr, "result", r->out.result);
2886 NTSTATUS ndr_push_winreg_SetValue(struct ndr_push *ndr, int flags, const struct winreg_SetValue *r)
2888 if (flags & NDR_IN) {
2889 if (r->in.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2890 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
2891 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.name));
2892 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
2893 if (r->in.data == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2894 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.size));
2895 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.data, r->in.size));
2896 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.size));
2898 if (flags & NDR_OUT) {
2899 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
2901 return NT_STATUS_OK;
2904 NTSTATUS ndr_pull_winreg_SetValue(struct ndr_pull *ndr, int flags, struct winreg_SetValue *r)
2906 TALLOC_CTX *_mem_save_handle_0;
2907 if (flags & NDR_IN) {
2908 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2909 NDR_PULL_ALLOC(ndr, r->in.handle);
2911 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
2912 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
2913 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
2914 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
2915 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.name));
2916 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
2917 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.data));
2918 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2919 NDR_PULL_ALLOC_N(ndr, r->in.data, ndr_get_array_size(ndr, &r->in.data));
2921 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.data, ndr_get_array_size(ndr, &r->in.data)));
2922 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.size));
2924 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.data, r->in.size));
2927 if (flags & NDR_OUT) {
2928 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
2930 return NT_STATUS_OK;
2933 _PUBLIC_ void ndr_print_winreg_SetValue(struct ndr_print *ndr, const char *name, int flags, const struct winreg_SetValue *r)
2935 ndr_print_struct(ndr, name, "winreg_SetValue");
2937 if (flags & NDR_SET_VALUES) {
2938 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2940 if (flags & NDR_IN) {
2941 ndr_print_struct(ndr, "in", "winreg_SetValue");
2943 ndr_print_ptr(ndr, "handle", r->in.handle);
2945 ndr_print_policy_handle(ndr, "handle", r->in.handle);
2947 ndr_print_winreg_String(ndr, "name", &r->in.name);
2948 ndr_print_winreg_Type(ndr, "type", r->in.type);
2949 ndr_print_ptr(ndr, "data", r->in.data);
2951 ndr_print_array_uint8(ndr, "data", r->in.data, r->in.size);
2953 ndr_print_uint32(ndr, "size", r->in.size);
2956 if (flags & NDR_OUT) {
2957 ndr_print_struct(ndr, "out", "winreg_SetValue");
2959 ndr_print_WERROR(ndr, "result", r->out.result);
2965 NTSTATUS ndr_push_winreg_UnLoadKey(struct ndr_push *ndr, int flags, const struct winreg_UnLoadKey *r)
2967 if (flags & NDR_IN) {
2969 if (flags & NDR_OUT) {
2970 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
2972 return NT_STATUS_OK;
2975 NTSTATUS ndr_pull_winreg_UnLoadKey(struct ndr_pull *ndr, int flags, struct winreg_UnLoadKey *r)
2977 if (flags & NDR_IN) {
2979 if (flags & NDR_OUT) {
2980 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
2982 return NT_STATUS_OK;
2985 _PUBLIC_ void ndr_print_winreg_UnLoadKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_UnLoadKey *r)
2987 ndr_print_struct(ndr, name, "winreg_UnLoadKey");
2989 if (flags & NDR_SET_VALUES) {
2990 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2992 if (flags & NDR_IN) {
2993 ndr_print_struct(ndr, "in", "winreg_UnLoadKey");
2997 if (flags & NDR_OUT) {
2998 ndr_print_struct(ndr, "out", "winreg_UnLoadKey");
3000 ndr_print_WERROR(ndr, "result", r->out.result);
3006 NTSTATUS ndr_push_winreg_InitiateSystemShutdown(struct ndr_push *ndr, int flags, const struct winreg_InitiateSystemShutdown *r)
3008 if (flags & NDR_IN) {
3009 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.hostname));
3010 if (r->in.hostname) {
3011 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.hostname));
3013 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.message));
3014 if (r->in.message) {
3015 NDR_CHECK(ndr_push_initshutdown_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.message));
3017 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.timeout));
3018 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->in.force_apps));
3019 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->in.reboot));
3021 if (flags & NDR_OUT) {
3022 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3024 return NT_STATUS_OK;
3027 NTSTATUS ndr_pull_winreg_InitiateSystemShutdown(struct ndr_pull *ndr, int flags, struct winreg_InitiateSystemShutdown *r)
3029 uint32_t _ptr_hostname;
3030 uint32_t _ptr_message;
3031 TALLOC_CTX *_mem_save_hostname_0;
3032 TALLOC_CTX *_mem_save_message_0;
3033 if (flags & NDR_IN) {
3034 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hostname));
3035 if (_ptr_hostname) {
3036 NDR_PULL_ALLOC(ndr, r->in.hostname);
3038 r->in.hostname = NULL;
3040 if (r->in.hostname) {
3041 _mem_save_hostname_0 = NDR_PULL_GET_MEM_CTX(ndr);
3042 NDR_PULL_SET_MEM_CTX(ndr, r->in.hostname, 0);
3043 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.hostname));
3044 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hostname_0, 0);
3046 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_message));
3048 NDR_PULL_ALLOC(ndr, r->in.message);
3050 r->in.message = NULL;
3052 if (r->in.message) {
3053 _mem_save_message_0 = NDR_PULL_GET_MEM_CTX(ndr);
3054 NDR_PULL_SET_MEM_CTX(ndr, r->in.message, 0);
3055 NDR_CHECK(ndr_pull_initshutdown_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.message));
3056 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_message_0, 0);
3058 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.timeout));
3059 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->in.force_apps));
3060 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->in.reboot));
3062 if (flags & NDR_OUT) {
3063 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3065 return NT_STATUS_OK;
3068 _PUBLIC_ void ndr_print_winreg_InitiateSystemShutdown(struct ndr_print *ndr, const char *name, int flags, const struct winreg_InitiateSystemShutdown *r)
3070 ndr_print_struct(ndr, name, "winreg_InitiateSystemShutdown");
3072 if (flags & NDR_SET_VALUES) {
3073 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3075 if (flags & NDR_IN) {
3076 ndr_print_struct(ndr, "in", "winreg_InitiateSystemShutdown");
3078 ndr_print_ptr(ndr, "hostname", r->in.hostname);
3080 if (r->in.hostname) {
3081 ndr_print_uint16(ndr, "hostname", *r->in.hostname);
3084 ndr_print_ptr(ndr, "message", r->in.message);
3086 if (r->in.message) {
3087 ndr_print_initshutdown_String(ndr, "message", r->in.message);
3090 ndr_print_uint32(ndr, "timeout", r->in.timeout);
3091 ndr_print_uint8(ndr, "force_apps", r->in.force_apps);
3092 ndr_print_uint8(ndr, "reboot", r->in.reboot);
3095 if (flags & NDR_OUT) {
3096 ndr_print_struct(ndr, "out", "winreg_InitiateSystemShutdown");
3098 ndr_print_WERROR(ndr, "result", r->out.result);
3104 NTSTATUS ndr_push_winreg_AbortSystemShutdown(struct ndr_push *ndr, int flags, const struct winreg_AbortSystemShutdown *r)
3106 if (flags & NDR_IN) {
3107 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
3109 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.server));
3112 if (flags & NDR_OUT) {
3113 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3115 return NT_STATUS_OK;
3118 NTSTATUS ndr_pull_winreg_AbortSystemShutdown(struct ndr_pull *ndr, int flags, struct winreg_AbortSystemShutdown *r)
3120 uint32_t _ptr_server;
3121 TALLOC_CTX *_mem_save_server_0;
3122 if (flags & NDR_IN) {
3123 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
3125 NDR_PULL_ALLOC(ndr, r->in.server);
3127 r->in.server = NULL;
3130 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
3131 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
3132 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.server));
3133 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
3136 if (flags & NDR_OUT) {
3137 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3139 return NT_STATUS_OK;
3142 _PUBLIC_ void ndr_print_winreg_AbortSystemShutdown(struct ndr_print *ndr, const char *name, int flags, const struct winreg_AbortSystemShutdown *r)
3144 ndr_print_struct(ndr, name, "winreg_AbortSystemShutdown");
3146 if (flags & NDR_SET_VALUES) {
3147 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3149 if (flags & NDR_IN) {
3150 ndr_print_struct(ndr, "in", "winreg_AbortSystemShutdown");
3152 ndr_print_ptr(ndr, "server", r->in.server);
3155 ndr_print_uint16(ndr, "server", *r->in.server);
3160 if (flags & NDR_OUT) {
3161 ndr_print_struct(ndr, "out", "winreg_AbortSystemShutdown");
3163 ndr_print_WERROR(ndr, "result", r->out.result);
3169 NTSTATUS ndr_push_winreg_GetVersion(struct ndr_push *ndr, int flags, const struct winreg_GetVersion *r)
3171 if (flags & NDR_IN) {
3172 if (r->in.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
3173 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
3175 if (flags & NDR_OUT) {
3176 if (r->out.version == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
3177 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.version));
3178 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3180 return NT_STATUS_OK;
3183 NTSTATUS ndr_pull_winreg_GetVersion(struct ndr_pull *ndr, int flags, struct winreg_GetVersion *r)
3185 TALLOC_CTX *_mem_save_handle_0;
3186 TALLOC_CTX *_mem_save_version_0;
3187 if (flags & NDR_IN) {
3188 ZERO_STRUCT(r->out);
3190 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3191 NDR_PULL_ALLOC(ndr, r->in.handle);
3193 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
3194 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
3195 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
3196 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
3197 NDR_PULL_ALLOC(ndr, r->out.version);
3198 ZERO_STRUCTP(r->out.version);
3200 if (flags & NDR_OUT) {
3201 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3202 NDR_PULL_ALLOC(ndr, r->out.version);
3204 _mem_save_version_0 = NDR_PULL_GET_MEM_CTX(ndr);
3205 NDR_PULL_SET_MEM_CTX(ndr, r->out.version, LIBNDR_FLAG_REF_ALLOC);
3206 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.version));
3207 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_version_0, LIBNDR_FLAG_REF_ALLOC);
3208 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3210 return NT_STATUS_OK;
3213 _PUBLIC_ void ndr_print_winreg_GetVersion(struct ndr_print *ndr, const char *name, int flags, const struct winreg_GetVersion *r)
3215 ndr_print_struct(ndr, name, "winreg_GetVersion");
3217 if (flags & NDR_SET_VALUES) {
3218 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3220 if (flags & NDR_IN) {
3221 ndr_print_struct(ndr, "in", "winreg_GetVersion");
3223 ndr_print_ptr(ndr, "handle", r->in.handle);
3225 ndr_print_policy_handle(ndr, "handle", r->in.handle);
3229 if (flags & NDR_OUT) {
3230 ndr_print_struct(ndr, "out", "winreg_GetVersion");
3232 ndr_print_ptr(ndr, "version", r->out.version);
3234 ndr_print_uint32(ndr, "version", *r->out.version);
3236 ndr_print_WERROR(ndr, "result", r->out.result);
3242 NTSTATUS ndr_push_winreg_OpenHKCC(struct ndr_push *ndr, int flags, const struct winreg_OpenHKCC *r)
3244 if (flags & NDR_IN) {
3245 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.system_name));
3246 if (r->in.system_name) {
3247 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.system_name));
3249 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
3251 if (flags & NDR_OUT) {
3252 if (r->out.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
3253 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.handle));
3254 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3256 return NT_STATUS_OK;
3259 NTSTATUS ndr_pull_winreg_OpenHKCC(struct ndr_pull *ndr, int flags, struct winreg_OpenHKCC *r)
3261 uint32_t _ptr_system_name;
3262 TALLOC_CTX *_mem_save_system_name_0;
3263 TALLOC_CTX *_mem_save_handle_0;
3264 if (flags & NDR_IN) {
3265 ZERO_STRUCT(r->out);
3267 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_system_name));
3268 if (_ptr_system_name) {
3269 NDR_PULL_ALLOC(ndr, r->in.system_name);
3271 r->in.system_name = NULL;
3273 if (r->in.system_name) {
3274 _mem_save_system_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3275 NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0);
3276 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.system_name));
3277 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0);
3279 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
3280 NDR_PULL_ALLOC(ndr, r->out.handle);
3281 ZERO_STRUCTP(r->out.handle);
3283 if (flags & NDR_OUT) {
3284 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3285 NDR_PULL_ALLOC(ndr, r->out.handle);
3287 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
3288 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
3289 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.handle));
3290 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
3291 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3293 return NT_STATUS_OK;
3296 _PUBLIC_ void ndr_print_winreg_OpenHKCC(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenHKCC *r)
3298 ndr_print_struct(ndr, name, "winreg_OpenHKCC");
3300 if (flags & NDR_SET_VALUES) {
3301 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3303 if (flags & NDR_IN) {
3304 ndr_print_struct(ndr, "in", "winreg_OpenHKCC");
3306 ndr_print_ptr(ndr, "system_name", r->in.system_name);
3308 if (r->in.system_name) {
3309 ndr_print_uint16(ndr, "system_name", *r->in.system_name);
3312 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
3315 if (flags & NDR_OUT) {
3316 ndr_print_struct(ndr, "out", "winreg_OpenHKCC");
3318 ndr_print_ptr(ndr, "handle", r->out.handle);
3320 ndr_print_policy_handle(ndr, "handle", r->out.handle);
3322 ndr_print_WERROR(ndr, "result", r->out.result);
3328 NTSTATUS ndr_push_winreg_OpenHKDD(struct ndr_push *ndr, int flags, const struct winreg_OpenHKDD *r)
3330 if (flags & NDR_IN) {
3331 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.system_name));
3332 if (r->in.system_name) {
3333 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.system_name));
3335 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
3337 if (flags & NDR_OUT) {
3338 if (r->out.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
3339 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.handle));
3340 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3342 return NT_STATUS_OK;
3345 NTSTATUS ndr_pull_winreg_OpenHKDD(struct ndr_pull *ndr, int flags, struct winreg_OpenHKDD *r)
3347 uint32_t _ptr_system_name;
3348 TALLOC_CTX *_mem_save_system_name_0;
3349 TALLOC_CTX *_mem_save_handle_0;
3350 if (flags & NDR_IN) {
3351 ZERO_STRUCT(r->out);
3353 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_system_name));
3354 if (_ptr_system_name) {
3355 NDR_PULL_ALLOC(ndr, r->in.system_name);
3357 r->in.system_name = NULL;
3359 if (r->in.system_name) {
3360 _mem_save_system_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3361 NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0);
3362 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.system_name));
3363 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0);
3365 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
3366 NDR_PULL_ALLOC(ndr, r->out.handle);
3367 ZERO_STRUCTP(r->out.handle);
3369 if (flags & NDR_OUT) {
3370 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3371 NDR_PULL_ALLOC(ndr, r->out.handle);
3373 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
3374 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
3375 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.handle));
3376 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
3377 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3379 return NT_STATUS_OK;
3382 _PUBLIC_ void ndr_print_winreg_OpenHKDD(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenHKDD *r)
3384 ndr_print_struct(ndr, name, "winreg_OpenHKDD");
3386 if (flags & NDR_SET_VALUES) {
3387 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3389 if (flags & NDR_IN) {
3390 ndr_print_struct(ndr, "in", "winreg_OpenHKDD");
3392 ndr_print_ptr(ndr, "system_name", r->in.system_name);
3394 if (r->in.system_name) {
3395 ndr_print_uint16(ndr, "system_name", *r->in.system_name);
3398 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
3401 if (flags & NDR_OUT) {
3402 ndr_print_struct(ndr, "out", "winreg_OpenHKDD");
3404 ndr_print_ptr(ndr, "handle", r->out.handle);
3406 ndr_print_policy_handle(ndr, "handle", r->out.handle);
3408 ndr_print_WERROR(ndr, "result", r->out.result);
3414 NTSTATUS ndr_push_winreg_QueryMultipleValues(struct ndr_push *ndr, int flags, const struct winreg_QueryMultipleValues *r)
3416 uint32_t cntr_values_1;
3417 if (flags & NDR_IN) {
3418 if (r->in.key_handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
3419 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.key_handle));
3420 if (r->in.values == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
3421 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.num_values));
3422 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3423 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.num_values));
3424 for (cntr_values_1 = 0; cntr_values_1 < r->in.num_values; cntr_values_1++) {
3425 NDR_CHECK(ndr_push_QueryMultipleValue(ndr, NDR_SCALARS, &r->in.values[cntr_values_1]));
3427 for (cntr_values_1 = 0; cntr_values_1 < r->in.num_values; cntr_values_1++) {
3428 NDR_CHECK(ndr_push_QueryMultipleValue(ndr, NDR_BUFFERS, &r->in.values[cntr_values_1]));
3430 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.num_values));
3431 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
3433 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.buffer_size));
3434 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3435 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.buffer_size));
3436 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, *r->in.buffer_size));
3438 if (r->in.buffer_size == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
3439 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.buffer_size));
3441 if (flags & NDR_OUT) {
3442 if (r->out.values == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
3443 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.num_values));
3444 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3445 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.num_values));
3446 for (cntr_values_1 = 0; cntr_values_1 < r->in.num_values; cntr_values_1++) {
3447 NDR_CHECK(ndr_push_QueryMultipleValue(ndr, NDR_SCALARS, &r->out.values[cntr_values_1]));
3449 for (cntr_values_1 = 0; cntr_values_1 < r->in.num_values; cntr_values_1++) {
3450 NDR_CHECK(ndr_push_QueryMultipleValue(ndr, NDR_BUFFERS, &r->out.values[cntr_values_1]));
3452 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.buffer));
3453 if (r->out.buffer) {
3454 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.buffer_size));
3455 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3456 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.buffer_size));
3457 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, *r->out.buffer_size));
3459 if (r->out.buffer_size == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
3460 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.buffer_size));
3461 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3463 return NT_STATUS_OK;
3466 NTSTATUS ndr_pull_winreg_QueryMultipleValues(struct ndr_pull *ndr, int flags, struct winreg_QueryMultipleValues *r)
3468 uint32_t cntr_values_1;
3469 uint32_t _ptr_buffer;
3470 TALLOC_CTX *_mem_save_key_handle_0;
3471 TALLOC_CTX *_mem_save_values_1;
3472 TALLOC_CTX *_mem_save_buffer_0;
3473 TALLOC_CTX *_mem_save_buffer_size_0;
3474 if (flags & NDR_IN) {
3475 ZERO_STRUCT(r->out);
3477 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3478 NDR_PULL_ALLOC(ndr, r->in.key_handle);
3480 _mem_save_key_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
3481 NDR_PULL_SET_MEM_CTX(ndr, r->in.key_handle, LIBNDR_FLAG_REF_ALLOC);
3482 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.key_handle));
3483 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_key_handle_0, LIBNDR_FLAG_REF_ALLOC);
3484 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.values));
3485 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.values));
3486 if (ndr_get_array_length(ndr, &r->in.values) > ndr_get_array_size(ndr, &r->in.values)) {
3487 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.values), ndr_get_array_length(ndr, &r->in.values));
3489 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3490 NDR_PULL_ALLOC_N(ndr, r->in.values, ndr_get_array_size(ndr, &r->in.values));
3492 memcpy(r->out.values,r->in.values,ndr_get_array_size(ndr, &r->in.values) * sizeof(*r->in.values));
3493 _mem_save_values_1 = NDR_PULL_GET_MEM_CTX(ndr);
3494 NDR_PULL_SET_MEM_CTX(ndr, r->in.values, 0);
3495 for (cntr_values_1 = 0; cntr_values_1 < r->in.num_values; cntr_values_1++) {
3496 NDR_CHECK(ndr_pull_QueryMultipleValue(ndr, NDR_SCALARS, &r->in.values[cntr_values_1]));
3498 for (cntr_values_1 = 0; cntr_values_1 < r->in.num_values; cntr_values_1++) {
3499 NDR_CHECK(ndr_pull_QueryMultipleValue(ndr, NDR_BUFFERS, &r->in.values[cntr_values_1]));
3501 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_values_1, 0);
3502 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.num_values));
3503 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
3505 NDR_PULL_ALLOC(ndr, r->in.buffer);
3507 r->in.buffer = NULL;
3510 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
3511 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
3512 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
3513 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.buffer));
3514 if (ndr_get_array_length(ndr, &r->in.buffer) > ndr_get_array_size(ndr, &r->in.buffer)) {
3515 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.buffer), ndr_get_array_length(ndr, &r->in.buffer));
3517 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
3518 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_length(ndr, &r->in.buffer)));
3519 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
3521 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3522 NDR_PULL_ALLOC(ndr, r->in.buffer_size);
3524 _mem_save_buffer_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
3525 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer_size, LIBNDR_FLAG_REF_ALLOC);
3526 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.buffer_size));
3527 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_size_0, LIBNDR_FLAG_REF_ALLOC);
3528 NDR_PULL_ALLOC_N(ndr, r->out.values, r->in.num_values);
3529 memcpy(r->out.values, r->in.values, r->in.num_values * sizeof(*r->in.values));
3530 NDR_PULL_ALLOC(ndr, r->out.buffer_size);
3531 *r->out.buffer_size = *r->in.buffer_size;
3533 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.values, r->in.num_values));
3536 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->in.values, r->in.num_values));
3539 if (r->in.buffer_size == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
3540 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, *r->in.buffer_size));
3543 if (r->in.buffer_size == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
3544 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->in.buffer, *r->in.buffer_size));
3547 if (flags & NDR_OUT) {
3548 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.values));
3549 NDR_CHECK(ndr_pull_array_length(ndr, &r->out.values));
3550 if (ndr_get_array_length(ndr, &r->out.values) > ndr_get_array_size(ndr, &r->out.values)) {
3551 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->out.values), ndr_get_array_length(ndr, &r->out.values));
3553 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3554 NDR_PULL_ALLOC_N(ndr, r->out.values, ndr_get_array_size(ndr, &r->out.values));
3556 memcpy(r->out.values,r->in.values,ndr_get_array_size(ndr, &r->out.values) * sizeof(*r->in.values));
3557 _mem_save_values_1 = NDR_PULL_GET_MEM_CTX(ndr);
3558 NDR_PULL_SET_MEM_CTX(ndr, r->out.values, 0);
3559 for (cntr_values_1 = 0; cntr_values_1 < r->in.num_values; cntr_values_1++) {
3560 NDR_CHECK(ndr_pull_QueryMultipleValue(ndr, NDR_SCALARS, &r->out.values[cntr_values_1]));
3562 for (cntr_values_1 = 0; cntr_values_1 < r->in.num_values; cntr_values_1++) {
3563 NDR_CHECK(ndr_pull_QueryMultipleValue(ndr, NDR_BUFFERS, &r->out.values[cntr_values_1]));
3565 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_values_1, 0);
3566 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
3568 NDR_PULL_ALLOC(ndr, r->out.buffer);
3570 r->out.buffer = NULL;
3572 if (r->out.buffer) {
3573 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
3574 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, 0);
3575 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
3576 NDR_CHECK(ndr_pull_array_length(ndr, &r->out.buffer));
3577 if (ndr_get_array_length(ndr, &r->out.buffer) > ndr_get_array_size(ndr, &r->out.buffer)) {
3578 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->out.buffer), ndr_get_array_length(ndr, &r->out.buffer));
3580 NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
3581 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_length(ndr, &r->out.buffer)));
3582 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
3584 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3585 NDR_PULL_ALLOC(ndr, r->out.buffer_size);
3587 _mem_save_buffer_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
3588 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer_size, LIBNDR_FLAG_REF_ALLOC);
3589 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.buffer_size));
3590 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_size_0, LIBNDR_FLAG_REF_ALLOC);
3591 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3592 if (r->out.values) {
3593 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.values, r->in.num_values));
3595 if (r->out.values) {
3596 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->out.values, r->in.num_values));
3598 if (r->out.buffer) {
3599 if (r->out.buffer_size == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
3600 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, *r->out.buffer_size));
3602 if (r->out.buffer) {
3603 if (r->out.buffer_size == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
3604 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->out.buffer, *r->out.buffer_size));
3607 return NT_STATUS_OK;
3610 _PUBLIC_ void ndr_print_winreg_QueryMultipleValues(struct ndr_print *ndr, const char *name, int flags, const struct winreg_QueryMultipleValues *r)
3612 uint32_t cntr_values_1;
3613 ndr_print_struct(ndr, name, "winreg_QueryMultipleValues");
3615 if (flags & NDR_SET_VALUES) {
3616 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3618 if (flags & NDR_IN) {
3619 ndr_print_struct(ndr, "in", "winreg_QueryMultipleValues");
3621 ndr_print_ptr(ndr, "key_handle", r->in.key_handle);
3623 ndr_print_policy_handle(ndr, "key_handle", r->in.key_handle);
3625 ndr_print_ptr(ndr, "values", r->in.values);
3627 ndr->print(ndr, "%s: ARRAY(%d)", "values", r->in.num_values);
3629 for (cntr_values_1=0;cntr_values_1<r->in.num_values;cntr_values_1++) {
3631 asprintf(&idx_1, "[%d]", cntr_values_1);
3633 ndr_print_QueryMultipleValue(ndr, "values", &r->in.values[cntr_values_1]);
3639 ndr_print_uint32(ndr, "num_values", r->in.num_values);
3640 ndr_print_ptr(ndr, "buffer", r->in.buffer);
3643 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, *r->in.buffer_size);
3646 ndr_print_ptr(ndr, "buffer_size", r->in.buffer_size);
3648 ndr_print_uint32(ndr, "buffer_size", *r->in.buffer_size);
3652 if (flags & NDR_OUT) {
3653 ndr_print_struct(ndr, "out", "winreg_QueryMultipleValues");
3655 ndr_print_ptr(ndr, "values", r->out.values);
3657 ndr->print(ndr, "%s: ARRAY(%d)", "values", r->in.num_values);
3659 for (cntr_values_1=0;cntr_values_1<r->in.num_values;cntr_values_1++) {
3661 asprintf(&idx_1, "[%d]", cntr_values_1);
3663 ndr_print_QueryMultipleValue(ndr, "values", &r->out.values[cntr_values_1]);
3669 ndr_print_ptr(ndr, "buffer", r->out.buffer);
3671 if (r->out.buffer) {
3672 ndr_print_array_uint8(ndr, "buffer", r->out.buffer, *r->out.buffer_size);
3675 ndr_print_ptr(ndr, "buffer_size", r->out.buffer_size);
3677 ndr_print_uint32(ndr, "buffer_size", *r->out.buffer_size);
3679 ndr_print_WERROR(ndr, "result", r->out.result);
3685 NTSTATUS ndr_push_winreg_InitiateSystemShutdownEx(struct ndr_push *ndr, int flags, const struct winreg_InitiateSystemShutdownEx *r)
3687 if (flags & NDR_IN) {
3688 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.hostname));
3689 if (r->in.hostname) {
3690 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.hostname));
3692 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.message));
3693 if (r->in.message) {
3694 NDR_CHECK(ndr_push_initshutdown_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.message));
3696 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.timeout));
3697 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->in.force_apps));
3698 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->in.reboot));
3699 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.reason));
3701 if (flags & NDR_OUT) {
3702 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3704 return NT_STATUS_OK;
3707 NTSTATUS ndr_pull_winreg_InitiateSystemShutdownEx(struct ndr_pull *ndr, int flags, struct winreg_InitiateSystemShutdownEx *r)
3709 uint32_t _ptr_hostname;
3710 uint32_t _ptr_message;
3711 TALLOC_CTX *_mem_save_hostname_0;
3712 TALLOC_CTX *_mem_save_message_0;
3713 if (flags & NDR_IN) {
3714 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hostname));
3715 if (_ptr_hostname) {
3716 NDR_PULL_ALLOC(ndr, r->in.hostname);
3718 r->in.hostname = NULL;
3720 if (r->in.hostname) {
3721 _mem_save_hostname_0 = NDR_PULL_GET_MEM_CTX(ndr);
3722 NDR_PULL_SET_MEM_CTX(ndr, r->in.hostname, 0);
3723 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.hostname));
3724 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hostname_0, 0);
3726 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_message));
3728 NDR_PULL_ALLOC(ndr, r->in.message);
3730 r->in.message = NULL;
3732 if (r->in.message) {
3733 _mem_save_message_0 = NDR_PULL_GET_MEM_CTX(ndr);
3734 NDR_PULL_SET_MEM_CTX(ndr, r->in.message, 0);
3735 NDR_CHECK(ndr_pull_initshutdown_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.message));
3736 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_message_0, 0);
3738 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.timeout));
3739 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->in.force_apps));
3740 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->in.reboot));
3741 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.reason));
3743 if (flags & NDR_OUT) {
3744 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3746 return NT_STATUS_OK;
3749 _PUBLIC_ void ndr_print_winreg_InitiateSystemShutdownEx(struct ndr_print *ndr, const char *name, int flags, const struct winreg_InitiateSystemShutdownEx *r)
3751 ndr_print_struct(ndr, name, "winreg_InitiateSystemShutdownEx");
3753 if (flags & NDR_SET_VALUES) {
3754 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3756 if (flags & NDR_IN) {
3757 ndr_print_struct(ndr, "in", "winreg_InitiateSystemShutdownEx");
3759 ndr_print_ptr(ndr, "hostname", r->in.hostname);
3761 if (r->in.hostname) {
3762 ndr_print_uint16(ndr, "hostname", *r->in.hostname);
3765 ndr_print_ptr(ndr, "message", r->in.message);
3767 if (r->in.message) {
3768 ndr_print_initshutdown_String(ndr, "message", r->in.message);
3771 ndr_print_uint32(ndr, "timeout", r->in.timeout);
3772 ndr_print_uint8(ndr, "force_apps", r->in.force_apps);
3773 ndr_print_uint8(ndr, "reboot", r->in.reboot);
3774 ndr_print_uint32(ndr, "reason", r->in.reason);
3777 if (flags & NDR_OUT) {
3778 ndr_print_struct(ndr, "out", "winreg_InitiateSystemShutdownEx");
3780 ndr_print_WERROR(ndr, "result", r->out.result);
3786 NTSTATUS ndr_push_winreg_SaveKeyEx(struct ndr_push *ndr, int flags, const struct winreg_SaveKeyEx *r)
3788 if (flags & NDR_IN) {
3790 if (flags & NDR_OUT) {
3791 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3793 return NT_STATUS_OK;
3796 NTSTATUS ndr_pull_winreg_SaveKeyEx(struct ndr_pull *ndr, int flags, struct winreg_SaveKeyEx *r)
3798 if (flags & NDR_IN) {
3800 if (flags & NDR_OUT) {
3801 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3803 return NT_STATUS_OK;
3806 _PUBLIC_ void ndr_print_winreg_SaveKeyEx(struct ndr_print *ndr, const char *name, int flags, const struct winreg_SaveKeyEx *r)
3808 ndr_print_struct(ndr, name, "winreg_SaveKeyEx");
3810 if (flags & NDR_SET_VALUES) {
3811 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3813 if (flags & NDR_IN) {
3814 ndr_print_struct(ndr, "in", "winreg_SaveKeyEx");
3818 if (flags & NDR_OUT) {
3819 ndr_print_struct(ndr, "out", "winreg_SaveKeyEx");
3821 ndr_print_WERROR(ndr, "result", r->out.result);
3827 NTSTATUS ndr_push_winreg_OpenHKPT(struct ndr_push *ndr, int flags, const struct winreg_OpenHKPT *r)
3829 if (flags & NDR_IN) {
3830 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.system_name));
3831 if (r->in.system_name) {
3832 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.system_name));
3834 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
3836 if (flags & NDR_OUT) {
3837 if (r->out.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
3838 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.handle));
3839 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3841 return NT_STATUS_OK;
3844 NTSTATUS ndr_pull_winreg_OpenHKPT(struct ndr_pull *ndr, int flags, struct winreg_OpenHKPT *r)
3846 uint32_t _ptr_system_name;
3847 TALLOC_CTX *_mem_save_system_name_0;
3848 TALLOC_CTX *_mem_save_handle_0;
3849 if (flags & NDR_IN) {
3850 ZERO_STRUCT(r->out);
3852 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_system_name));
3853 if (_ptr_system_name) {
3854 NDR_PULL_ALLOC(ndr, r->in.system_name);
3856 r->in.system_name = NULL;
3858 if (r->in.system_name) {
3859 _mem_save_system_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3860 NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0);
3861 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.system_name));
3862 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0);
3864 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
3865 NDR_PULL_ALLOC(ndr, r->out.handle);
3866 ZERO_STRUCTP(r->out.handle);
3868 if (flags & NDR_OUT) {
3869 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3870 NDR_PULL_ALLOC(ndr, r->out.handle);
3872 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
3873 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
3874 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.handle));
3875 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
3876 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3878 return NT_STATUS_OK;
3881 _PUBLIC_ void ndr_print_winreg_OpenHKPT(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenHKPT *r)
3883 ndr_print_struct(ndr, name, "winreg_OpenHKPT");
3885 if (flags & NDR_SET_VALUES) {
3886 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3888 if (flags & NDR_IN) {
3889 ndr_print_struct(ndr, "in", "winreg_OpenHKPT");
3891 ndr_print_ptr(ndr, "system_name", r->in.system_name);
3893 if (r->in.system_name) {
3894 ndr_print_uint16(ndr, "system_name", *r->in.system_name);
3897 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
3900 if (flags & NDR_OUT) {
3901 ndr_print_struct(ndr, "out", "winreg_OpenHKPT");
3903 ndr_print_ptr(ndr, "handle", r->out.handle);
3905 ndr_print_policy_handle(ndr, "handle", r->out.handle);
3907 ndr_print_WERROR(ndr, "result", r->out.result);
3913 NTSTATUS ndr_push_winreg_OpenHKPN(struct ndr_push *ndr, int flags, const struct winreg_OpenHKPN *r)
3915 if (flags & NDR_IN) {
3916 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.system_name));
3917 if (r->in.system_name) {
3918 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.system_name));
3920 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
3922 if (flags & NDR_OUT) {
3923 if (r->out.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
3924 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.handle));
3925 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3927 return NT_STATUS_OK;
3930 NTSTATUS ndr_pull_winreg_OpenHKPN(struct ndr_pull *ndr, int flags, struct winreg_OpenHKPN *r)
3932 uint32_t _ptr_system_name;
3933 TALLOC_CTX *_mem_save_system_name_0;
3934 TALLOC_CTX *_mem_save_handle_0;
3935 if (flags & NDR_IN) {
3936 ZERO_STRUCT(r->out);
3938 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_system_name));
3939 if (_ptr_system_name) {
3940 NDR_PULL_ALLOC(ndr, r->in.system_name);
3942 r->in.system_name = NULL;
3944 if (r->in.system_name) {
3945 _mem_save_system_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3946 NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0);
3947 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.system_name));
3948 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0);
3950 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
3951 NDR_PULL_ALLOC(ndr, r->out.handle);
3952 ZERO_STRUCTP(r->out.handle);
3954 if (flags & NDR_OUT) {
3955 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3956 NDR_PULL_ALLOC(ndr, r->out.handle);
3958 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
3959 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
3960 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.handle));
3961 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
3962 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3964 return NT_STATUS_OK;
3967 _PUBLIC_ void ndr_print_winreg_OpenHKPN(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenHKPN *r)
3969 ndr_print_struct(ndr, name, "winreg_OpenHKPN");
3971 if (flags & NDR_SET_VALUES) {
3972 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3974 if (flags & NDR_IN) {
3975 ndr_print_struct(ndr, "in", "winreg_OpenHKPN");
3977 ndr_print_ptr(ndr, "system_name", r->in.system_name);
3979 if (r->in.system_name) {
3980 ndr_print_uint16(ndr, "system_name", *r->in.system_name);
3983 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
3986 if (flags & NDR_OUT) {
3987 ndr_print_struct(ndr, "out", "winreg_OpenHKPN");
3989 ndr_print_ptr(ndr, "handle", r->out.handle);
3991 ndr_print_policy_handle(ndr, "handle", r->out.handle);
3993 ndr_print_WERROR(ndr, "result", r->out.result);
3999 NTSTATUS ndr_push_winreg_QueryMultipleValues2(struct ndr_push *ndr, int flags, const struct winreg_QueryMultipleValues2 *r)
4001 if (flags & NDR_IN) {
4003 if (flags & NDR_OUT) {
4004 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
4006 return NT_STATUS_OK;
4009 NTSTATUS ndr_pull_winreg_QueryMultipleValues2(struct ndr_pull *ndr, int flags, struct winreg_QueryMultipleValues2 *r)
4011 if (flags & NDR_IN) {
4013 if (flags & NDR_OUT) {
4014 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
4016 return NT_STATUS_OK;
4019 _PUBLIC_ void ndr_print_winreg_QueryMultipleValues2(struct ndr_print *ndr, const char *name, int flags, const struct winreg_QueryMultipleValues2 *r)
4021 ndr_print_struct(ndr, name, "winreg_QueryMultipleValues2");
4023 if (flags & NDR_SET_VALUES) {
4024 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
4026 if (flags & NDR_IN) {
4027 ndr_print_struct(ndr, "in", "winreg_QueryMultipleValues2");
4031 if (flags & NDR_OUT) {
4032 ndr_print_struct(ndr, "out", "winreg_QueryMultipleValues2");
4034 ndr_print_WERROR(ndr, "result", r->out.result);
4040 const struct dcerpc_interface_call winreg_calls[] = {
4043 sizeof(struct winreg_OpenHKCR),
4044 (ndr_push_flags_fn_t) ndr_push_winreg_OpenHKCR,
4045 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenHKCR,
4046 (ndr_print_function_t) ndr_print_winreg_OpenHKCR,
4051 sizeof(struct winreg_OpenHKCU),
4052 (ndr_push_flags_fn_t) ndr_push_winreg_OpenHKCU,
4053 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenHKCU,
4054 (ndr_print_function_t) ndr_print_winreg_OpenHKCU,
4059 sizeof(struct winreg_OpenHKLM),
4060 (ndr_push_flags_fn_t) ndr_push_winreg_OpenHKLM,
4061 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenHKLM,
4062 (ndr_print_function_t) ndr_print_winreg_OpenHKLM,
4067 sizeof(struct winreg_OpenHKPD),
4068 (ndr_push_flags_fn_t) ndr_push_winreg_OpenHKPD,
4069 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenHKPD,
4070 (ndr_print_function_t) ndr_print_winreg_OpenHKPD,
4075 sizeof(struct winreg_OpenHKU),
4076 (ndr_push_flags_fn_t) ndr_push_winreg_OpenHKU,
4077 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenHKU,
4078 (ndr_print_function_t) ndr_print_winreg_OpenHKU,
4083 sizeof(struct winreg_CloseKey),
4084 (ndr_push_flags_fn_t) ndr_push_winreg_CloseKey,
4085 (ndr_pull_flags_fn_t) ndr_pull_winreg_CloseKey,
4086 (ndr_print_function_t) ndr_print_winreg_CloseKey,
4091 sizeof(struct winreg_CreateKey),
4092 (ndr_push_flags_fn_t) ndr_push_winreg_CreateKey,
4093 (ndr_pull_flags_fn_t) ndr_pull_winreg_CreateKey,
4094 (ndr_print_function_t) ndr_print_winreg_CreateKey,
4099 sizeof(struct winreg_DeleteKey),
4100 (ndr_push_flags_fn_t) ndr_push_winreg_DeleteKey,
4101 (ndr_pull_flags_fn_t) ndr_pull_winreg_DeleteKey,
4102 (ndr_print_function_t) ndr_print_winreg_DeleteKey,
4106 "winreg_DeleteValue",
4107 sizeof(struct winreg_DeleteValue),
4108 (ndr_push_flags_fn_t) ndr_push_winreg_DeleteValue,
4109 (ndr_pull_flags_fn_t) ndr_pull_winreg_DeleteValue,
4110 (ndr_print_function_t) ndr_print_winreg_DeleteValue,
4115 sizeof(struct winreg_EnumKey),
4116 (ndr_push_flags_fn_t) ndr_push_winreg_EnumKey,
4117 (ndr_pull_flags_fn_t) ndr_pull_winreg_EnumKey,
4118 (ndr_print_function_t) ndr_print_winreg_EnumKey,
4123 sizeof(struct winreg_EnumValue),
4124 (ndr_push_flags_fn_t) ndr_push_winreg_EnumValue,
4125 (ndr_pull_flags_fn_t) ndr_pull_winreg_EnumValue,
4126 (ndr_print_function_t) ndr_print_winreg_EnumValue,
4131 sizeof(struct winreg_FlushKey),
4132 (ndr_push_flags_fn_t) ndr_push_winreg_FlushKey,
4133 (ndr_pull_flags_fn_t) ndr_pull_winreg_FlushKey,
4134 (ndr_print_function_t) ndr_print_winreg_FlushKey,
4138 "winreg_GetKeySecurity",
4139 sizeof(struct winreg_GetKeySecurity),
4140 (ndr_push_flags_fn_t) ndr_push_winreg_GetKeySecurity,
4141 (ndr_pull_flags_fn_t) ndr_pull_winreg_GetKeySecurity,
4142 (ndr_print_function_t) ndr_print_winreg_GetKeySecurity,
4147 sizeof(struct winreg_LoadKey),
4148 (ndr_push_flags_fn_t) ndr_push_winreg_LoadKey,
4149 (ndr_pull_flags_fn_t) ndr_pull_winreg_LoadKey,
4150 (ndr_print_function_t) ndr_print_winreg_LoadKey,
4154 "winreg_NotifyChangeKeyValue",
4155 sizeof(struct winreg_NotifyChangeKeyValue),
4156 (ndr_push_flags_fn_t) ndr_push_winreg_NotifyChangeKeyValue,
4157 (ndr_pull_flags_fn_t) ndr_pull_winreg_NotifyChangeKeyValue,
4158 (ndr_print_function_t) ndr_print_winreg_NotifyChangeKeyValue,
4163 sizeof(struct winreg_OpenKey),
4164 (ndr_push_flags_fn_t) ndr_push_winreg_OpenKey,
4165 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenKey,
4166 (ndr_print_function_t) ndr_print_winreg_OpenKey,
4170 "winreg_QueryInfoKey",
4171 sizeof(struct winreg_QueryInfoKey),
4172 (ndr_push_flags_fn_t) ndr_push_winreg_QueryInfoKey,
4173 (ndr_pull_flags_fn_t) ndr_pull_winreg_QueryInfoKey,
4174 (ndr_print_function_t) ndr_print_winreg_QueryInfoKey,
4178 "winreg_QueryValue",
4179 sizeof(struct winreg_QueryValue),
4180 (ndr_push_flags_fn_t) ndr_push_winreg_QueryValue,
4181 (ndr_pull_flags_fn_t) ndr_pull_winreg_QueryValue,
4182 (ndr_print_function_t) ndr_print_winreg_QueryValue,
4186 "winreg_ReplaceKey",
4187 sizeof(struct winreg_ReplaceKey),
4188 (ndr_push_flags_fn_t) ndr_push_winreg_ReplaceKey,
4189 (ndr_pull_flags_fn_t) ndr_pull_winreg_ReplaceKey,
4190 (ndr_print_function_t) ndr_print_winreg_ReplaceKey,
4194 "winreg_RestoreKey",
4195 sizeof(struct winreg_RestoreKey),
4196 (ndr_push_flags_fn_t) ndr_push_winreg_RestoreKey,
4197 (ndr_pull_flags_fn_t) ndr_pull_winreg_RestoreKey,
4198 (ndr_print_function_t) ndr_print_winreg_RestoreKey,
4203 sizeof(struct winreg_SaveKey),
4204 (ndr_push_flags_fn_t) ndr_push_winreg_SaveKey,
4205 (ndr_pull_flags_fn_t) ndr_pull_winreg_SaveKey,
4206 (ndr_print_function_t) ndr_print_winreg_SaveKey,
4210 "winreg_SetKeySecurity",
4211 sizeof(struct winreg_SetKeySecurity),
4212 (ndr_push_flags_fn_t) ndr_push_winreg_SetKeySecurity,
4213 (ndr_pull_flags_fn_t) ndr_pull_winreg_SetKeySecurity,
4214 (ndr_print_function_t) ndr_print_winreg_SetKeySecurity,
4219 sizeof(struct winreg_SetValue),
4220 (ndr_push_flags_fn_t) ndr_push_winreg_SetValue,
4221 (ndr_pull_flags_fn_t) ndr_pull_winreg_SetValue,
4222 (ndr_print_function_t) ndr_print_winreg_SetValue,
4227 sizeof(struct winreg_UnLoadKey),
4228 (ndr_push_flags_fn_t) ndr_push_winreg_UnLoadKey,
4229 (ndr_pull_flags_fn_t) ndr_pull_winreg_UnLoadKey,
4230 (ndr_print_function_t) ndr_print_winreg_UnLoadKey,
4234 "winreg_InitiateSystemShutdown",
4235 sizeof(struct winreg_InitiateSystemShutdown),
4236 (ndr_push_flags_fn_t) ndr_push_winreg_InitiateSystemShutdown,
4237 (ndr_pull_flags_fn_t) ndr_pull_winreg_InitiateSystemShutdown,
4238 (ndr_print_function_t) ndr_print_winreg_InitiateSystemShutdown,
4242 "winreg_AbortSystemShutdown",
4243 sizeof(struct winreg_AbortSystemShutdown),
4244 (ndr_push_flags_fn_t) ndr_push_winreg_AbortSystemShutdown,
4245 (ndr_pull_flags_fn_t) ndr_pull_winreg_AbortSystemShutdown,
4246 (ndr_print_function_t) ndr_print_winreg_AbortSystemShutdown,
4250 "winreg_GetVersion",
4251 sizeof(struct winreg_GetVersion),
4252 (ndr_push_flags_fn_t) ndr_push_winreg_GetVersion,
4253 (ndr_pull_flags_fn_t) ndr_pull_winreg_GetVersion,
4254 (ndr_print_function_t) ndr_print_winreg_GetVersion,
4259 sizeof(struct winreg_OpenHKCC),
4260 (ndr_push_flags_fn_t) ndr_push_winreg_OpenHKCC,
4261 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenHKCC,
4262 (ndr_print_function_t) ndr_print_winreg_OpenHKCC,
4267 sizeof(struct winreg_OpenHKDD),
4268 (ndr_push_flags_fn_t) ndr_push_winreg_OpenHKDD,
4269 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenHKDD,
4270 (ndr_print_function_t) ndr_print_winreg_OpenHKDD,
4274 "winreg_QueryMultipleValues",
4275 sizeof(struct winreg_QueryMultipleValues),
4276 (ndr_push_flags_fn_t) ndr_push_winreg_QueryMultipleValues,
4277 (ndr_pull_flags_fn_t) ndr_pull_winreg_QueryMultipleValues,
4278 (ndr_print_function_t) ndr_print_winreg_QueryMultipleValues,
4282 "winreg_InitiateSystemShutdownEx",
4283 sizeof(struct winreg_InitiateSystemShutdownEx),
4284 (ndr_push_flags_fn_t) ndr_push_winreg_InitiateSystemShutdownEx,
4285 (ndr_pull_flags_fn_t) ndr_pull_winreg_InitiateSystemShutdownEx,
4286 (ndr_print_function_t) ndr_print_winreg_InitiateSystemShutdownEx,
4291 sizeof(struct winreg_SaveKeyEx),
4292 (ndr_push_flags_fn_t) ndr_push_winreg_SaveKeyEx,
4293 (ndr_pull_flags_fn_t) ndr_pull_winreg_SaveKeyEx,
4294 (ndr_print_function_t) ndr_print_winreg_SaveKeyEx,
4299 sizeof(struct winreg_OpenHKPT),
4300 (ndr_push_flags_fn_t) ndr_push_winreg_OpenHKPT,
4301 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenHKPT,
4302 (ndr_print_function_t) ndr_print_winreg_OpenHKPT,
4307 sizeof(struct winreg_OpenHKPN),
4308 (ndr_push_flags_fn_t) ndr_push_winreg_OpenHKPN,
4309 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenHKPN,
4310 (ndr_print_function_t) ndr_print_winreg_OpenHKPN,
4314 "winreg_QueryMultipleValues2",
4315 sizeof(struct winreg_QueryMultipleValues2),
4316 (ndr_push_flags_fn_t) ndr_push_winreg_QueryMultipleValues2,
4317 (ndr_pull_flags_fn_t) ndr_pull_winreg_QueryMultipleValues2,
4318 (ndr_print_function_t) ndr_print_winreg_QueryMultipleValues2,
4321 { NULL, 0, NULL, NULL, NULL, False }
4324 const char * const winreg_endpoint_strings[] = {
4325 "ncacn_np:[\\pipe\\winreg]",
4330 const struct dcerpc_endpoint_list winreg_endpoints = {
4332 .names = winreg_endpoint_strings
4335 const char * const winreg_authservice_strings[] = {
4339 const struct dcerpc_authservice_list winreg_authservices = {
4341 .names = winreg_authservice_strings
4345 const struct dcerpc_interface_table dcerpc_table_winreg = {
4348 {0x338cd001,0x2244,0x31f1,{0xaa,0xaa},{0x90,0x00,0x38,0x00,0x10,0x03}},
4349 DCERPC_WINREG_VERSION
4351 .helpstring = DCERPC_WINREG_HELPSTRING,
4353 .calls = winreg_calls,
4354 .endpoints = &winreg_endpoints,
4355 .authservices = &winreg_authservices