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_security.h"
8 static enum ndr_err_code ndr_push_winreg_AccessMask(struct ndr_push *ndr, int ndr_flags, uint32_t r)
10 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
11 return NDR_ERR_SUCCESS;
14 static enum ndr_err_code ndr_pull_winreg_AccessMask(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
17 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
19 return NDR_ERR_SUCCESS;
22 _PUBLIC_ void ndr_print_winreg_AccessMask(struct ndr_print *ndr, const char *name, uint32_t r)
24 ndr_print_uint32(ndr, name, r);
26 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "KEY_QUERY_VALUE", KEY_QUERY_VALUE, r);
27 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "KEY_SET_VALUE", KEY_SET_VALUE, r);
28 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "KEY_CREATE_SUB_KEY", KEY_CREATE_SUB_KEY, r);
29 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "KEY_ENUMERATE_SUB_KEYS", KEY_ENUMERATE_SUB_KEYS, r);
30 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "KEY_NOTIFY", KEY_NOTIFY, r);
31 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "KEY_CREATE_LINK", KEY_CREATE_LINK, r);
32 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "KEY_WOW64_64KEY", KEY_WOW64_64KEY, r);
33 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "KEY_WOW64_32KEY", KEY_WOW64_32KEY, r);
37 _PUBLIC_ enum ndr_err_code ndr_push_winreg_Type(struct ndr_push *ndr, int ndr_flags, enum winreg_Type r)
39 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
40 return NDR_ERR_SUCCESS;
43 _PUBLIC_ enum ndr_err_code ndr_pull_winreg_Type(struct ndr_pull *ndr, int ndr_flags, enum winreg_Type *r)
46 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
48 return NDR_ERR_SUCCESS;
51 _PUBLIC_ void ndr_print_winreg_Type(struct ndr_print *ndr, const char *name, enum winreg_Type r)
53 const char *val = NULL;
56 case REG_NONE: val = "REG_NONE"; break;
57 case REG_SZ: val = "REG_SZ"; break;
58 case REG_EXPAND_SZ: val = "REG_EXPAND_SZ"; break;
59 case REG_BINARY: val = "REG_BINARY"; break;
60 case REG_DWORD: val = "REG_DWORD"; break;
61 case REG_DWORD_BIG_ENDIAN: val = "REG_DWORD_BIG_ENDIAN"; break;
62 case REG_LINK: val = "REG_LINK"; break;
63 case REG_MULTI_SZ: val = "REG_MULTI_SZ"; break;
64 case REG_RESOURCE_LIST: val = "REG_RESOURCE_LIST"; break;
65 case REG_FULL_RESOURCE_DESCRIPTOR: val = "REG_FULL_RESOURCE_DESCRIPTOR"; break;
66 case REG_RESOURCE_REQUIREMENTS_LIST: val = "REG_RESOURCE_REQUIREMENTS_LIST"; break;
67 case REG_QWORD: val = "REG_QWORD"; break;
69 ndr_print_enum(ndr, name, "ENUM", val, r);
72 _PUBLIC_ enum ndr_err_code ndr_push_winreg_String(struct ndr_push *ndr, int ndr_flags, const struct winreg_String *r)
74 if (ndr_flags & NDR_SCALARS) {
75 NDR_CHECK(ndr_push_align(ndr, 4));
76 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, strlen_m_term(r->name) * 2));
77 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, strlen_m_term(r->name) * 2));
78 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
80 if (ndr_flags & NDR_BUFFERS) {
82 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
83 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
84 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
85 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, ndr_charset_length(r->name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
88 return NDR_ERR_SUCCESS;
91 _PUBLIC_ enum ndr_err_code ndr_pull_winreg_String(struct ndr_pull *ndr, int ndr_flags, struct winreg_String *r)
94 TALLOC_CTX *_mem_save_name_0;
95 if (ndr_flags & NDR_SCALARS) {
96 NDR_CHECK(ndr_pull_align(ndr, 4));
97 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->name_len));
98 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->name_size));
99 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
101 NDR_PULL_ALLOC(ndr, r->name);
106 if (ndr_flags & NDR_BUFFERS) {
108 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
109 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
110 NDR_CHECK(ndr_pull_array_size(ndr, &r->name));
111 NDR_CHECK(ndr_pull_array_length(ndr, &r->name));
112 if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) {
113 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));
115 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t)));
116 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16));
117 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
120 return NDR_ERR_SUCCESS;
123 _PUBLIC_ void ndr_print_winreg_String(struct ndr_print *ndr, const char *name, const struct winreg_String *r)
125 ndr_print_struct(ndr, name, "winreg_String");
127 ndr_print_uint16(ndr, "name_len", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?strlen_m_term(r->name) * 2:r->name_len);
128 ndr_print_uint16(ndr, "name_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?strlen_m_term(r->name) * 2:r->name_size);
129 ndr_print_ptr(ndr, "name", r->name);
132 ndr_print_string(ndr, "name", r->name);
138 static enum ndr_err_code ndr_push_KeySecurityData(struct ndr_push *ndr, int ndr_flags, const struct KeySecurityData *r)
140 if (ndr_flags & NDR_SCALARS) {
141 NDR_CHECK(ndr_push_align(ndr, 4));
142 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
143 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
144 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->len));
146 if (ndr_flags & NDR_BUFFERS) {
148 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
149 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
150 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->len));
151 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, r->len));
154 return NDR_ERR_SUCCESS;
157 static enum ndr_err_code ndr_pull_KeySecurityData(struct ndr_pull *ndr, int ndr_flags, struct KeySecurityData *r)
160 TALLOC_CTX *_mem_save_data_0;
161 if (ndr_flags & NDR_SCALARS) {
162 NDR_CHECK(ndr_pull_align(ndr, 4));
163 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
165 NDR_PULL_ALLOC(ndr, r->data);
169 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
170 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->len));
172 if (ndr_flags & NDR_BUFFERS) {
174 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
175 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
176 NDR_CHECK(ndr_pull_array_size(ndr, &r->data));
177 NDR_CHECK(ndr_pull_array_length(ndr, &r->data));
178 if (ndr_get_array_length(ndr, &r->data) > ndr_get_array_size(ndr, &r->data)) {
179 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));
181 NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data));
182 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, ndr_get_array_length(ndr, &r->data)));
183 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
186 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->size));
189 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->data, r->len));
192 return NDR_ERR_SUCCESS;
195 _PUBLIC_ void ndr_print_KeySecurityData(struct ndr_print *ndr, const char *name, const struct KeySecurityData *r)
197 ndr_print_struct(ndr, name, "KeySecurityData");
199 ndr_print_ptr(ndr, "data", r->data);
202 ndr_print_array_uint8(ndr, "data", r->data, r->len);
205 ndr_print_uint32(ndr, "size", r->size);
206 ndr_print_uint32(ndr, "len", r->len);
210 static enum ndr_err_code ndr_push_winreg_SecBuf(struct ndr_push *ndr, int ndr_flags, const struct winreg_SecBuf *r)
212 if (ndr_flags & NDR_SCALARS) {
213 NDR_CHECK(ndr_push_align(ndr, 4));
214 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
215 NDR_CHECK(ndr_push_KeySecurityData(ndr, NDR_SCALARS, &r->sd));
216 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->inherit));
218 if (ndr_flags & NDR_BUFFERS) {
219 NDR_CHECK(ndr_push_KeySecurityData(ndr, NDR_BUFFERS, &r->sd));
221 return NDR_ERR_SUCCESS;
224 static enum ndr_err_code ndr_pull_winreg_SecBuf(struct ndr_pull *ndr, int ndr_flags, struct winreg_SecBuf *r)
226 if (ndr_flags & NDR_SCALARS) {
227 NDR_CHECK(ndr_pull_align(ndr, 4));
228 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
229 NDR_CHECK(ndr_pull_KeySecurityData(ndr, NDR_SCALARS, &r->sd));
230 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->inherit));
232 if (ndr_flags & NDR_BUFFERS) {
233 NDR_CHECK(ndr_pull_KeySecurityData(ndr, NDR_BUFFERS, &r->sd));
235 return NDR_ERR_SUCCESS;
238 _PUBLIC_ void ndr_print_winreg_SecBuf(struct ndr_print *ndr, const char *name, const struct winreg_SecBuf *r)
240 ndr_print_struct(ndr, name, "winreg_SecBuf");
242 ndr_print_uint32(ndr, "length", r->length);
243 ndr_print_KeySecurityData(ndr, "sd", &r->sd);
244 ndr_print_uint8(ndr, "inherit", r->inherit);
248 static enum ndr_err_code ndr_push_winreg_CreateAction(struct ndr_push *ndr, int ndr_flags, enum winreg_CreateAction r)
250 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
251 return NDR_ERR_SUCCESS;
254 static enum ndr_err_code ndr_pull_winreg_CreateAction(struct ndr_pull *ndr, int ndr_flags, enum winreg_CreateAction *r)
257 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
259 return NDR_ERR_SUCCESS;
262 _PUBLIC_ void ndr_print_winreg_CreateAction(struct ndr_print *ndr, const char *name, enum winreg_CreateAction r)
264 const char *val = NULL;
267 case REG_ACTION_NONE: val = "REG_ACTION_NONE"; break;
268 case REG_CREATED_NEW_KEY: val = "REG_CREATED_NEW_KEY"; break;
269 case REG_OPENED_EXISTING_KEY: val = "REG_OPENED_EXISTING_KEY"; break;
271 ndr_print_enum(ndr, name, "ENUM", val, r);
274 static enum ndr_err_code ndr_push_winreg_StringBuf(struct ndr_push *ndr, int ndr_flags, const struct winreg_StringBuf *r)
276 if (ndr_flags & NDR_SCALARS) {
277 NDR_CHECK(ndr_push_align(ndr, 4));
278 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, strlen_m_term(r->name) * 2));
279 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->size));
280 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
282 if (ndr_flags & NDR_BUFFERS) {
284 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size / 2));
285 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
286 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, strlen_m_term(r->name) * 2 / 2));
287 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, strlen_m_term(r->name) * 2 / 2, sizeof(uint16_t), CH_UTF16));
290 return NDR_ERR_SUCCESS;
293 static enum ndr_err_code ndr_pull_winreg_StringBuf(struct ndr_pull *ndr, int ndr_flags, struct winreg_StringBuf *r)
296 TALLOC_CTX *_mem_save_name_0;
297 if (ndr_flags & NDR_SCALARS) {
298 NDR_CHECK(ndr_pull_align(ndr, 4));
299 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
300 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
301 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
303 NDR_PULL_ALLOC(ndr, r->name);
308 if (ndr_flags & NDR_BUFFERS) {
310 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
311 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
312 NDR_CHECK(ndr_pull_array_size(ndr, &r->name));
313 NDR_CHECK(ndr_pull_array_length(ndr, &r->name));
314 if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) {
315 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));
317 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16));
318 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
321 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->name, r->size / 2));
324 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->name, r->length / 2));
327 return NDR_ERR_SUCCESS;
330 _PUBLIC_ void ndr_print_winreg_StringBuf(struct ndr_print *ndr, const char *name, const struct winreg_StringBuf *r)
332 ndr_print_struct(ndr, name, "winreg_StringBuf");
334 ndr_print_uint16(ndr, "length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?strlen_m_term(r->name) * 2:r->length);
335 ndr_print_uint16(ndr, "size", r->size);
336 ndr_print_ptr(ndr, "name", r->name);
339 ndr_print_string(ndr, "name", r->name);
345 _PUBLIC_ enum ndr_err_code ndr_push_winreg_NotifyChangeType(struct ndr_push *ndr, int ndr_flags, uint32_t r)
347 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
348 return NDR_ERR_SUCCESS;
351 _PUBLIC_ enum ndr_err_code ndr_pull_winreg_NotifyChangeType(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
354 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
356 return NDR_ERR_SUCCESS;
359 _PUBLIC_ void ndr_print_winreg_NotifyChangeType(struct ndr_print *ndr, const char *name, uint32_t r)
361 ndr_print_uint32(ndr, name, r);
363 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "REG_NOTIFY_CHANGE_NAME", REG_NOTIFY_CHANGE_NAME, r);
364 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "REG_NOTIFY_CHANGE_ATTRIBUTES", REG_NOTIFY_CHANGE_ATTRIBUTES, r);
365 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "REG_NOTIFY_CHANGE_LAST_SET", REG_NOTIFY_CHANGE_LAST_SET, r);
366 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "REG_NOTIFY_CHANGE_SECURITY", REG_NOTIFY_CHANGE_SECURITY, r);
370 static enum ndr_err_code ndr_push_KeySecurityAttribute(struct ndr_push *ndr, int ndr_flags, const struct KeySecurityAttribute *r)
372 if (ndr_flags & NDR_SCALARS) {
373 NDR_CHECK(ndr_push_align(ndr, 4));
374 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->data_size));
375 NDR_CHECK(ndr_push_KeySecurityData(ndr, NDR_SCALARS, &r->sec_data));
376 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->inherit));
378 if (ndr_flags & NDR_BUFFERS) {
379 NDR_CHECK(ndr_push_KeySecurityData(ndr, NDR_BUFFERS, &r->sec_data));
381 return NDR_ERR_SUCCESS;
384 static enum ndr_err_code ndr_pull_KeySecurityAttribute(struct ndr_pull *ndr, int ndr_flags, struct KeySecurityAttribute *r)
386 if (ndr_flags & NDR_SCALARS) {
387 NDR_CHECK(ndr_pull_align(ndr, 4));
388 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->data_size));
389 NDR_CHECK(ndr_pull_KeySecurityData(ndr, NDR_SCALARS, &r->sec_data));
390 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->inherit));
392 if (ndr_flags & NDR_BUFFERS) {
393 NDR_CHECK(ndr_pull_KeySecurityData(ndr, NDR_BUFFERS, &r->sec_data));
395 return NDR_ERR_SUCCESS;
398 _PUBLIC_ void ndr_print_KeySecurityAttribute(struct ndr_print *ndr, const char *name, const struct KeySecurityAttribute *r)
400 ndr_print_struct(ndr, name, "KeySecurityAttribute");
402 ndr_print_uint32(ndr, "data_size", r->data_size);
403 ndr_print_KeySecurityData(ndr, "sec_data", &r->sec_data);
404 ndr_print_uint8(ndr, "inherit", r->inherit);
408 static enum ndr_err_code ndr_push_QueryMultipleValue(struct ndr_push *ndr, int ndr_flags, const struct QueryMultipleValue *r)
410 if (ndr_flags & NDR_SCALARS) {
411 NDR_CHECK(ndr_push_align(ndr, 4));
412 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
413 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->type));
414 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->offset));
415 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
417 if (ndr_flags & NDR_BUFFERS) {
419 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->name));
422 return NDR_ERR_SUCCESS;
425 static enum ndr_err_code ndr_pull_QueryMultipleValue(struct ndr_pull *ndr, int ndr_flags, struct QueryMultipleValue *r)
428 TALLOC_CTX *_mem_save_name_0;
429 if (ndr_flags & NDR_SCALARS) {
430 NDR_CHECK(ndr_pull_align(ndr, 4));
431 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
433 NDR_PULL_ALLOC(ndr, r->name);
437 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->type));
438 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->offset));
439 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
441 if (ndr_flags & NDR_BUFFERS) {
443 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
444 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
445 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->name));
446 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
449 return NDR_ERR_SUCCESS;
452 _PUBLIC_ void ndr_print_QueryMultipleValue(struct ndr_print *ndr, const char *name, const struct QueryMultipleValue *r)
454 ndr_print_struct(ndr, name, "QueryMultipleValue");
456 ndr_print_ptr(ndr, "name", r->name);
459 ndr_print_winreg_String(ndr, "name", r->name);
462 ndr_print_winreg_Type(ndr, "type", r->type);
463 ndr_print_uint32(ndr, "offset", r->offset);
464 ndr_print_uint32(ndr, "length", r->length);
468 static enum ndr_err_code ndr_push_winreg_OpenHKCR(struct ndr_push *ndr, int flags, const struct winreg_OpenHKCR *r)
470 if (flags & NDR_IN) {
471 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.system_name));
472 if (r->in.system_name) {
473 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.system_name));
475 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
477 if (flags & NDR_OUT) {
478 if (r->out.handle == NULL) {
479 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
481 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
482 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
484 return NDR_ERR_SUCCESS;
487 static enum ndr_err_code ndr_pull_winreg_OpenHKCR(struct ndr_pull *ndr, int flags, struct winreg_OpenHKCR *r)
489 uint32_t _ptr_system_name;
490 TALLOC_CTX *_mem_save_system_name_0;
491 TALLOC_CTX *_mem_save_handle_0;
492 if (flags & NDR_IN) {
495 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_system_name));
496 if (_ptr_system_name) {
497 NDR_PULL_ALLOC(ndr, r->in.system_name);
499 r->in.system_name = NULL;
501 if (r->in.system_name) {
502 _mem_save_system_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
503 NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0);
504 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.system_name));
505 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0);
507 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
508 NDR_PULL_ALLOC(ndr, r->out.handle);
509 ZERO_STRUCTP(r->out.handle);
511 if (flags & NDR_OUT) {
512 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
513 NDR_PULL_ALLOC(ndr, r->out.handle);
515 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
516 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
517 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
518 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
519 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
521 return NDR_ERR_SUCCESS;
524 _PUBLIC_ void ndr_print_winreg_OpenHKCR(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenHKCR *r)
526 ndr_print_struct(ndr, name, "winreg_OpenHKCR");
528 if (flags & NDR_SET_VALUES) {
529 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
531 if (flags & NDR_IN) {
532 ndr_print_struct(ndr, "in", "winreg_OpenHKCR");
534 ndr_print_ptr(ndr, "system_name", r->in.system_name);
536 if (r->in.system_name) {
537 ndr_print_uint16(ndr, "system_name", *r->in.system_name);
540 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
543 if (flags & NDR_OUT) {
544 ndr_print_struct(ndr, "out", "winreg_OpenHKCR");
546 ndr_print_ptr(ndr, "handle", r->out.handle);
548 ndr_print_policy_handle(ndr, "handle", r->out.handle);
550 ndr_print_WERROR(ndr, "result", r->out.result);
556 static enum ndr_err_code ndr_push_winreg_OpenHKCU(struct ndr_push *ndr, int flags, const struct winreg_OpenHKCU *r)
558 if (flags & NDR_IN) {
559 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.system_name));
560 if (r->in.system_name) {
561 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.system_name));
563 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
565 if (flags & NDR_OUT) {
566 if (r->out.handle == NULL) {
567 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
569 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
570 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
572 return NDR_ERR_SUCCESS;
575 static enum ndr_err_code ndr_pull_winreg_OpenHKCU(struct ndr_pull *ndr, int flags, struct winreg_OpenHKCU *r)
577 uint32_t _ptr_system_name;
578 TALLOC_CTX *_mem_save_system_name_0;
579 TALLOC_CTX *_mem_save_handle_0;
580 if (flags & NDR_IN) {
583 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_system_name));
584 if (_ptr_system_name) {
585 NDR_PULL_ALLOC(ndr, r->in.system_name);
587 r->in.system_name = NULL;
589 if (r->in.system_name) {
590 _mem_save_system_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
591 NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0);
592 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.system_name));
593 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0);
595 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
596 NDR_PULL_ALLOC(ndr, r->out.handle);
597 ZERO_STRUCTP(r->out.handle);
599 if (flags & NDR_OUT) {
600 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
601 NDR_PULL_ALLOC(ndr, r->out.handle);
603 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
604 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
605 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
606 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
607 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
609 return NDR_ERR_SUCCESS;
612 _PUBLIC_ void ndr_print_winreg_OpenHKCU(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenHKCU *r)
614 ndr_print_struct(ndr, name, "winreg_OpenHKCU");
616 if (flags & NDR_SET_VALUES) {
617 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
619 if (flags & NDR_IN) {
620 ndr_print_struct(ndr, "in", "winreg_OpenHKCU");
622 ndr_print_ptr(ndr, "system_name", r->in.system_name);
624 if (r->in.system_name) {
625 ndr_print_uint16(ndr, "system_name", *r->in.system_name);
628 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
631 if (flags & NDR_OUT) {
632 ndr_print_struct(ndr, "out", "winreg_OpenHKCU");
634 ndr_print_ptr(ndr, "handle", r->out.handle);
636 ndr_print_policy_handle(ndr, "handle", r->out.handle);
638 ndr_print_WERROR(ndr, "result", r->out.result);
644 _PUBLIC_ enum ndr_err_code ndr_push_winreg_OpenHKLM(struct ndr_push *ndr, int flags, const struct winreg_OpenHKLM *r)
646 if (flags & NDR_IN) {
647 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.system_name));
648 if (r->in.system_name) {
649 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.system_name));
651 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
653 if (flags & NDR_OUT) {
654 if (r->out.handle == NULL) {
655 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
657 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
658 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
660 return NDR_ERR_SUCCESS;
663 _PUBLIC_ enum ndr_err_code ndr_pull_winreg_OpenHKLM(struct ndr_pull *ndr, int flags, struct winreg_OpenHKLM *r)
665 uint32_t _ptr_system_name;
666 TALLOC_CTX *_mem_save_system_name_0;
667 TALLOC_CTX *_mem_save_handle_0;
668 if (flags & NDR_IN) {
671 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_system_name));
672 if (_ptr_system_name) {
673 NDR_PULL_ALLOC(ndr, r->in.system_name);
675 r->in.system_name = NULL;
677 if (r->in.system_name) {
678 _mem_save_system_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
679 NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0);
680 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.system_name));
681 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0);
683 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
684 NDR_PULL_ALLOC(ndr, r->out.handle);
685 ZERO_STRUCTP(r->out.handle);
687 if (flags & NDR_OUT) {
688 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
689 NDR_PULL_ALLOC(ndr, r->out.handle);
691 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
692 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
693 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
694 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
695 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
697 return NDR_ERR_SUCCESS;
700 _PUBLIC_ void ndr_print_winreg_OpenHKLM(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenHKLM *r)
702 ndr_print_struct(ndr, name, "winreg_OpenHKLM");
704 if (flags & NDR_SET_VALUES) {
705 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
707 if (flags & NDR_IN) {
708 ndr_print_struct(ndr, "in", "winreg_OpenHKLM");
710 ndr_print_ptr(ndr, "system_name", r->in.system_name);
712 if (r->in.system_name) {
713 ndr_print_uint16(ndr, "system_name", *r->in.system_name);
716 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
719 if (flags & NDR_OUT) {
720 ndr_print_struct(ndr, "out", "winreg_OpenHKLM");
722 ndr_print_ptr(ndr, "handle", r->out.handle);
724 ndr_print_policy_handle(ndr, "handle", r->out.handle);
726 ndr_print_WERROR(ndr, "result", r->out.result);
732 static enum ndr_err_code ndr_push_winreg_OpenHKPD(struct ndr_push *ndr, int flags, const struct winreg_OpenHKPD *r)
734 if (flags & NDR_IN) {
735 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.system_name));
736 if (r->in.system_name) {
737 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.system_name));
739 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
741 if (flags & NDR_OUT) {
742 if (r->out.handle == NULL) {
743 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
745 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
746 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
748 return NDR_ERR_SUCCESS;
751 static enum ndr_err_code ndr_pull_winreg_OpenHKPD(struct ndr_pull *ndr, int flags, struct winreg_OpenHKPD *r)
753 uint32_t _ptr_system_name;
754 TALLOC_CTX *_mem_save_system_name_0;
755 TALLOC_CTX *_mem_save_handle_0;
756 if (flags & NDR_IN) {
759 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_system_name));
760 if (_ptr_system_name) {
761 NDR_PULL_ALLOC(ndr, r->in.system_name);
763 r->in.system_name = NULL;
765 if (r->in.system_name) {
766 _mem_save_system_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
767 NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0);
768 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.system_name));
769 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0);
771 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
772 NDR_PULL_ALLOC(ndr, r->out.handle);
773 ZERO_STRUCTP(r->out.handle);
775 if (flags & NDR_OUT) {
776 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
777 NDR_PULL_ALLOC(ndr, r->out.handle);
779 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
780 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
781 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
782 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
783 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
785 return NDR_ERR_SUCCESS;
788 _PUBLIC_ void ndr_print_winreg_OpenHKPD(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenHKPD *r)
790 ndr_print_struct(ndr, name, "winreg_OpenHKPD");
792 if (flags & NDR_SET_VALUES) {
793 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
795 if (flags & NDR_IN) {
796 ndr_print_struct(ndr, "in", "winreg_OpenHKPD");
798 ndr_print_ptr(ndr, "system_name", r->in.system_name);
800 if (r->in.system_name) {
801 ndr_print_uint16(ndr, "system_name", *r->in.system_name);
804 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
807 if (flags & NDR_OUT) {
808 ndr_print_struct(ndr, "out", "winreg_OpenHKPD");
810 ndr_print_ptr(ndr, "handle", r->out.handle);
812 ndr_print_policy_handle(ndr, "handle", r->out.handle);
814 ndr_print_WERROR(ndr, "result", r->out.result);
820 static enum ndr_err_code ndr_push_winreg_OpenHKU(struct ndr_push *ndr, int flags, const struct winreg_OpenHKU *r)
822 if (flags & NDR_IN) {
823 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.system_name));
824 if (r->in.system_name) {
825 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.system_name));
827 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
829 if (flags & NDR_OUT) {
830 if (r->out.handle == NULL) {
831 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
833 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
834 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
836 return NDR_ERR_SUCCESS;
839 static enum ndr_err_code ndr_pull_winreg_OpenHKU(struct ndr_pull *ndr, int flags, struct winreg_OpenHKU *r)
841 uint32_t _ptr_system_name;
842 TALLOC_CTX *_mem_save_system_name_0;
843 TALLOC_CTX *_mem_save_handle_0;
844 if (flags & NDR_IN) {
847 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_system_name));
848 if (_ptr_system_name) {
849 NDR_PULL_ALLOC(ndr, r->in.system_name);
851 r->in.system_name = NULL;
853 if (r->in.system_name) {
854 _mem_save_system_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
855 NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0);
856 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.system_name));
857 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0);
859 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
860 NDR_PULL_ALLOC(ndr, r->out.handle);
861 ZERO_STRUCTP(r->out.handle);
863 if (flags & NDR_OUT) {
864 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
865 NDR_PULL_ALLOC(ndr, r->out.handle);
867 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
868 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
869 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
870 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
871 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
873 return NDR_ERR_SUCCESS;
876 _PUBLIC_ void ndr_print_winreg_OpenHKU(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenHKU *r)
878 ndr_print_struct(ndr, name, "winreg_OpenHKU");
880 if (flags & NDR_SET_VALUES) {
881 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
883 if (flags & NDR_IN) {
884 ndr_print_struct(ndr, "in", "winreg_OpenHKU");
886 ndr_print_ptr(ndr, "system_name", r->in.system_name);
888 if (r->in.system_name) {
889 ndr_print_uint16(ndr, "system_name", *r->in.system_name);
892 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
895 if (flags & NDR_OUT) {
896 ndr_print_struct(ndr, "out", "winreg_OpenHKU");
898 ndr_print_ptr(ndr, "handle", r->out.handle);
900 ndr_print_policy_handle(ndr, "handle", r->out.handle);
902 ndr_print_WERROR(ndr, "result", r->out.result);
908 _PUBLIC_ enum ndr_err_code ndr_push_winreg_CloseKey(struct ndr_push *ndr, int flags, const struct winreg_CloseKey *r)
910 if (flags & NDR_IN) {
911 if (r->in.handle == NULL) {
912 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
914 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
916 if (flags & NDR_OUT) {
917 if (r->out.handle == NULL) {
918 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
920 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
921 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
923 return NDR_ERR_SUCCESS;
926 _PUBLIC_ enum ndr_err_code ndr_pull_winreg_CloseKey(struct ndr_pull *ndr, int flags, struct winreg_CloseKey *r)
928 TALLOC_CTX *_mem_save_handle_0;
929 if (flags & NDR_IN) {
932 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
933 NDR_PULL_ALLOC(ndr, r->in.handle);
935 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
936 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
937 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
938 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
939 NDR_PULL_ALLOC(ndr, r->out.handle);
940 *r->out.handle = *r->in.handle;
942 if (flags & NDR_OUT) {
943 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
944 NDR_PULL_ALLOC(ndr, r->out.handle);
946 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
947 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
948 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
949 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
950 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
952 return NDR_ERR_SUCCESS;
955 _PUBLIC_ void ndr_print_winreg_CloseKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_CloseKey *r)
957 ndr_print_struct(ndr, name, "winreg_CloseKey");
959 if (flags & NDR_SET_VALUES) {
960 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
962 if (flags & NDR_IN) {
963 ndr_print_struct(ndr, "in", "winreg_CloseKey");
965 ndr_print_ptr(ndr, "handle", r->in.handle);
967 ndr_print_policy_handle(ndr, "handle", r->in.handle);
971 if (flags & NDR_OUT) {
972 ndr_print_struct(ndr, "out", "winreg_CloseKey");
974 ndr_print_ptr(ndr, "handle", r->out.handle);
976 ndr_print_policy_handle(ndr, "handle", r->out.handle);
978 ndr_print_WERROR(ndr, "result", r->out.result);
984 _PUBLIC_ enum ndr_err_code ndr_push_winreg_CreateKey(struct ndr_push *ndr, int flags, const struct winreg_CreateKey *r)
986 if (flags & NDR_IN) {
987 if (r->in.handle == NULL) {
988 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
990 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
991 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.name));
992 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.keyclass));
993 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.options));
994 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
995 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.secdesc));
997 NDR_CHECK(ndr_push_winreg_SecBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc));
999 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.action_taken));
1000 if (r->in.action_taken) {
1001 NDR_CHECK(ndr_push_winreg_CreateAction(ndr, NDR_SCALARS, *r->in.action_taken));
1004 if (flags & NDR_OUT) {
1005 if (r->out.new_handle == NULL) {
1006 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1008 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.new_handle));
1009 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.action_taken));
1010 if (r->out.action_taken) {
1011 NDR_CHECK(ndr_push_winreg_CreateAction(ndr, NDR_SCALARS, *r->out.action_taken));
1013 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
1015 return NDR_ERR_SUCCESS;
1018 _PUBLIC_ enum ndr_err_code ndr_pull_winreg_CreateKey(struct ndr_pull *ndr, int flags, struct winreg_CreateKey *r)
1020 uint32_t _ptr_secdesc;
1021 uint32_t _ptr_action_taken;
1022 TALLOC_CTX *_mem_save_handle_0;
1023 TALLOC_CTX *_mem_save_secdesc_0;
1024 TALLOC_CTX *_mem_save_new_handle_0;
1025 TALLOC_CTX *_mem_save_action_taken_0;
1026 if (flags & NDR_IN) {
1027 ZERO_STRUCT(r->out);
1029 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1030 NDR_PULL_ALLOC(ndr, r->in.handle);
1032 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
1033 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
1034 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
1035 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
1036 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.name));
1037 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.keyclass));
1038 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.options));
1039 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
1040 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
1042 NDR_PULL_ALLOC(ndr, r->in.secdesc);
1044 r->in.secdesc = NULL;
1046 if (r->in.secdesc) {
1047 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
1048 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc, 0);
1049 NDR_CHECK(ndr_pull_winreg_SecBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc));
1050 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
1052 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_action_taken));
1053 if (_ptr_action_taken) {
1054 NDR_PULL_ALLOC(ndr, r->in.action_taken);
1056 r->in.action_taken = NULL;
1058 if (r->in.action_taken) {
1059 _mem_save_action_taken_0 = NDR_PULL_GET_MEM_CTX(ndr);
1060 NDR_PULL_SET_MEM_CTX(ndr, r->in.action_taken, 0);
1061 NDR_CHECK(ndr_pull_winreg_CreateAction(ndr, NDR_SCALARS, r->in.action_taken));
1062 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_action_taken_0, 0);
1064 NDR_PULL_ALLOC(ndr, r->out.new_handle);
1065 ZERO_STRUCTP(r->out.new_handle);
1067 if (flags & NDR_OUT) {
1068 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1069 NDR_PULL_ALLOC(ndr, r->out.new_handle);
1071 _mem_save_new_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
1072 NDR_PULL_SET_MEM_CTX(ndr, r->out.new_handle, LIBNDR_FLAG_REF_ALLOC);
1073 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.new_handle));
1074 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_new_handle_0, LIBNDR_FLAG_REF_ALLOC);
1075 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_action_taken));
1076 if (_ptr_action_taken) {
1077 NDR_PULL_ALLOC(ndr, r->out.action_taken);
1079 r->out.action_taken = NULL;
1081 if (r->out.action_taken) {
1082 _mem_save_action_taken_0 = NDR_PULL_GET_MEM_CTX(ndr);
1083 NDR_PULL_SET_MEM_CTX(ndr, r->out.action_taken, 0);
1084 NDR_CHECK(ndr_pull_winreg_CreateAction(ndr, NDR_SCALARS, r->out.action_taken));
1085 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_action_taken_0, 0);
1087 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
1089 return NDR_ERR_SUCCESS;
1092 _PUBLIC_ void ndr_print_winreg_CreateKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_CreateKey *r)
1094 ndr_print_struct(ndr, name, "winreg_CreateKey");
1096 if (flags & NDR_SET_VALUES) {
1097 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1099 if (flags & NDR_IN) {
1100 ndr_print_struct(ndr, "in", "winreg_CreateKey");
1102 ndr_print_ptr(ndr, "handle", r->in.handle);
1104 ndr_print_policy_handle(ndr, "handle", r->in.handle);
1106 ndr_print_winreg_String(ndr, "name", &r->in.name);
1107 ndr_print_winreg_String(ndr, "keyclass", &r->in.keyclass);
1108 ndr_print_uint32(ndr, "options", r->in.options);
1109 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
1110 ndr_print_ptr(ndr, "secdesc", r->in.secdesc);
1112 if (r->in.secdesc) {
1113 ndr_print_winreg_SecBuf(ndr, "secdesc", r->in.secdesc);
1116 ndr_print_ptr(ndr, "action_taken", r->in.action_taken);
1118 if (r->in.action_taken) {
1119 ndr_print_winreg_CreateAction(ndr, "action_taken", *r->in.action_taken);
1124 if (flags & NDR_OUT) {
1125 ndr_print_struct(ndr, "out", "winreg_CreateKey");
1127 ndr_print_ptr(ndr, "new_handle", r->out.new_handle);
1129 ndr_print_policy_handle(ndr, "new_handle", r->out.new_handle);
1131 ndr_print_ptr(ndr, "action_taken", r->out.action_taken);
1133 if (r->out.action_taken) {
1134 ndr_print_winreg_CreateAction(ndr, "action_taken", *r->out.action_taken);
1137 ndr_print_WERROR(ndr, "result", r->out.result);
1143 _PUBLIC_ enum ndr_err_code ndr_push_winreg_DeleteKey(struct ndr_push *ndr, int flags, const struct winreg_DeleteKey *r)
1145 if (flags & NDR_IN) {
1146 if (r->in.handle == NULL) {
1147 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1149 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
1150 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.key));
1152 if (flags & NDR_OUT) {
1153 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
1155 return NDR_ERR_SUCCESS;
1158 _PUBLIC_ enum ndr_err_code ndr_pull_winreg_DeleteKey(struct ndr_pull *ndr, int flags, struct winreg_DeleteKey *r)
1160 TALLOC_CTX *_mem_save_handle_0;
1161 if (flags & NDR_IN) {
1162 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1163 NDR_PULL_ALLOC(ndr, r->in.handle);
1165 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
1166 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
1167 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
1168 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
1169 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.key));
1171 if (flags & NDR_OUT) {
1172 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
1174 return NDR_ERR_SUCCESS;
1177 _PUBLIC_ void ndr_print_winreg_DeleteKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_DeleteKey *r)
1179 ndr_print_struct(ndr, name, "winreg_DeleteKey");
1181 if (flags & NDR_SET_VALUES) {
1182 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1184 if (flags & NDR_IN) {
1185 ndr_print_struct(ndr, "in", "winreg_DeleteKey");
1187 ndr_print_ptr(ndr, "handle", r->in.handle);
1189 ndr_print_policy_handle(ndr, "handle", r->in.handle);
1191 ndr_print_winreg_String(ndr, "key", &r->in.key);
1194 if (flags & NDR_OUT) {
1195 ndr_print_struct(ndr, "out", "winreg_DeleteKey");
1197 ndr_print_WERROR(ndr, "result", r->out.result);
1203 static enum ndr_err_code ndr_push_winreg_DeleteValue(struct ndr_push *ndr, int flags, const struct winreg_DeleteValue *r)
1205 if (flags & NDR_IN) {
1206 if (r->in.handle == NULL) {
1207 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1209 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
1210 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.value));
1212 if (flags & NDR_OUT) {
1213 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
1215 return NDR_ERR_SUCCESS;
1218 static enum ndr_err_code ndr_pull_winreg_DeleteValue(struct ndr_pull *ndr, int flags, struct winreg_DeleteValue *r)
1220 TALLOC_CTX *_mem_save_handle_0;
1221 if (flags & NDR_IN) {
1222 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1223 NDR_PULL_ALLOC(ndr, r->in.handle);
1225 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
1226 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
1227 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
1228 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
1229 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.value));
1231 if (flags & NDR_OUT) {
1232 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
1234 return NDR_ERR_SUCCESS;
1237 _PUBLIC_ void ndr_print_winreg_DeleteValue(struct ndr_print *ndr, const char *name, int flags, const struct winreg_DeleteValue *r)
1239 ndr_print_struct(ndr, name, "winreg_DeleteValue");
1241 if (flags & NDR_SET_VALUES) {
1242 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1244 if (flags & NDR_IN) {
1245 ndr_print_struct(ndr, "in", "winreg_DeleteValue");
1247 ndr_print_ptr(ndr, "handle", r->in.handle);
1249 ndr_print_policy_handle(ndr, "handle", r->in.handle);
1251 ndr_print_winreg_String(ndr, "value", &r->in.value);
1254 if (flags & NDR_OUT) {
1255 ndr_print_struct(ndr, "out", "winreg_DeleteValue");
1257 ndr_print_WERROR(ndr, "result", r->out.result);
1263 _PUBLIC_ enum ndr_err_code ndr_push_winreg_EnumKey(struct ndr_push *ndr, int flags, const struct winreg_EnumKey *r)
1265 if (flags & NDR_IN) {
1266 if (r->in.handle == NULL) {
1267 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1269 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
1270 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.enum_index));
1271 if (r->in.name == NULL) {
1272 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1274 NDR_CHECK(ndr_push_winreg_StringBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.name));
1275 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.keyclass));
1276 if (r->in.keyclass) {
1277 NDR_CHECK(ndr_push_winreg_StringBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.keyclass));
1279 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.last_changed_time));
1280 if (r->in.last_changed_time) {
1281 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, *r->in.last_changed_time));
1284 if (flags & NDR_OUT) {
1285 if (r->out.name == NULL) {
1286 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1288 NDR_CHECK(ndr_push_winreg_StringBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.name));
1289 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.keyclass));
1290 if (r->out.keyclass) {
1291 NDR_CHECK(ndr_push_winreg_StringBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.keyclass));
1293 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.last_changed_time));
1294 if (r->out.last_changed_time) {
1295 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, *r->out.last_changed_time));
1297 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
1299 return NDR_ERR_SUCCESS;
1302 _PUBLIC_ enum ndr_err_code ndr_pull_winreg_EnumKey(struct ndr_pull *ndr, int flags, struct winreg_EnumKey *r)
1304 uint32_t _ptr_keyclass;
1305 uint32_t _ptr_last_changed_time;
1306 TALLOC_CTX *_mem_save_handle_0;
1307 TALLOC_CTX *_mem_save_name_0;
1308 TALLOC_CTX *_mem_save_keyclass_0;
1309 TALLOC_CTX *_mem_save_last_changed_time_0;
1310 if (flags & NDR_IN) {
1311 ZERO_STRUCT(r->out);
1313 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1314 NDR_PULL_ALLOC(ndr, r->in.handle);
1316 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
1317 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
1318 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
1319 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
1320 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.enum_index));
1321 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1322 NDR_PULL_ALLOC(ndr, r->in.name);
1324 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
1325 NDR_PULL_SET_MEM_CTX(ndr, r->in.name, LIBNDR_FLAG_REF_ALLOC);
1326 NDR_CHECK(ndr_pull_winreg_StringBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.name));
1327 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, LIBNDR_FLAG_REF_ALLOC);
1328 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_keyclass));
1329 if (_ptr_keyclass) {
1330 NDR_PULL_ALLOC(ndr, r->in.keyclass);
1332 r->in.keyclass = NULL;
1334 if (r->in.keyclass) {
1335 _mem_save_keyclass_0 = NDR_PULL_GET_MEM_CTX(ndr);
1336 NDR_PULL_SET_MEM_CTX(ndr, r->in.keyclass, 0);
1337 NDR_CHECK(ndr_pull_winreg_StringBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.keyclass));
1338 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_keyclass_0, 0);
1340 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_last_changed_time));
1341 if (_ptr_last_changed_time) {
1342 NDR_PULL_ALLOC(ndr, r->in.last_changed_time);
1344 r->in.last_changed_time = NULL;
1346 if (r->in.last_changed_time) {
1347 _mem_save_last_changed_time_0 = NDR_PULL_GET_MEM_CTX(ndr);
1348 NDR_PULL_SET_MEM_CTX(ndr, r->in.last_changed_time, 0);
1349 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, r->in.last_changed_time));
1350 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_last_changed_time_0, 0);
1352 NDR_PULL_ALLOC(ndr, r->out.name);
1353 *r->out.name = *r->in.name;
1355 if (flags & NDR_OUT) {
1356 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1357 NDR_PULL_ALLOC(ndr, r->out.name);
1359 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
1360 NDR_PULL_SET_MEM_CTX(ndr, r->out.name, LIBNDR_FLAG_REF_ALLOC);
1361 NDR_CHECK(ndr_pull_winreg_StringBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.name));
1362 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, LIBNDR_FLAG_REF_ALLOC);
1363 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_keyclass));
1364 if (_ptr_keyclass) {
1365 NDR_PULL_ALLOC(ndr, r->out.keyclass);
1367 r->out.keyclass = NULL;
1369 if (r->out.keyclass) {
1370 _mem_save_keyclass_0 = NDR_PULL_GET_MEM_CTX(ndr);
1371 NDR_PULL_SET_MEM_CTX(ndr, r->out.keyclass, 0);
1372 NDR_CHECK(ndr_pull_winreg_StringBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.keyclass));
1373 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_keyclass_0, 0);
1375 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_last_changed_time));
1376 if (_ptr_last_changed_time) {
1377 NDR_PULL_ALLOC(ndr, r->out.last_changed_time);
1379 r->out.last_changed_time = NULL;
1381 if (r->out.last_changed_time) {
1382 _mem_save_last_changed_time_0 = NDR_PULL_GET_MEM_CTX(ndr);
1383 NDR_PULL_SET_MEM_CTX(ndr, r->out.last_changed_time, 0);
1384 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, r->out.last_changed_time));
1385 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_last_changed_time_0, 0);
1387 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
1389 return NDR_ERR_SUCCESS;
1392 _PUBLIC_ void ndr_print_winreg_EnumKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_EnumKey *r)
1394 ndr_print_struct(ndr, name, "winreg_EnumKey");
1396 if (flags & NDR_SET_VALUES) {
1397 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1399 if (flags & NDR_IN) {
1400 ndr_print_struct(ndr, "in", "winreg_EnumKey");
1402 ndr_print_ptr(ndr, "handle", r->in.handle);
1404 ndr_print_policy_handle(ndr, "handle", r->in.handle);
1406 ndr_print_uint32(ndr, "enum_index", r->in.enum_index);
1407 ndr_print_ptr(ndr, "name", r->in.name);
1409 ndr_print_winreg_StringBuf(ndr, "name", r->in.name);
1411 ndr_print_ptr(ndr, "keyclass", r->in.keyclass);
1413 if (r->in.keyclass) {
1414 ndr_print_winreg_StringBuf(ndr, "keyclass", r->in.keyclass);
1417 ndr_print_ptr(ndr, "last_changed_time", r->in.last_changed_time);
1419 if (r->in.last_changed_time) {
1420 ndr_print_NTTIME(ndr, "last_changed_time", *r->in.last_changed_time);
1425 if (flags & NDR_OUT) {
1426 ndr_print_struct(ndr, "out", "winreg_EnumKey");
1428 ndr_print_ptr(ndr, "name", r->out.name);
1430 ndr_print_winreg_StringBuf(ndr, "name", r->out.name);
1432 ndr_print_ptr(ndr, "keyclass", r->out.keyclass);
1434 if (r->out.keyclass) {
1435 ndr_print_winreg_StringBuf(ndr, "keyclass", r->out.keyclass);
1438 ndr_print_ptr(ndr, "last_changed_time", r->out.last_changed_time);
1440 if (r->out.last_changed_time) {
1441 ndr_print_NTTIME(ndr, "last_changed_time", *r->out.last_changed_time);
1444 ndr_print_WERROR(ndr, "result", r->out.result);
1450 _PUBLIC_ enum ndr_err_code ndr_push_winreg_EnumValue(struct ndr_push *ndr, int flags, const struct winreg_EnumValue *r)
1452 if (flags & NDR_IN) {
1453 if (r->in.handle == NULL) {
1454 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1456 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
1457 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.enum_index));
1458 if (r->in.name == NULL) {
1459 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1461 NDR_CHECK(ndr_push_winreg_StringBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.name));
1462 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.type));
1464 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->in.type));
1466 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.value));
1468 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.size));
1469 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
1470 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.length));
1471 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.value, *r->in.length));
1473 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.size));
1475 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.size));
1477 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.length));
1479 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.length));
1482 if (flags & NDR_OUT) {
1483 if (r->out.name == NULL) {
1484 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1486 NDR_CHECK(ndr_push_winreg_StringBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.name));
1487 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.type));
1489 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
1491 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.value));
1493 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.size));
1494 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
1495 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.length));
1496 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.value, *r->out.length));
1498 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.size));
1500 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.size));
1502 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.length));
1503 if (r->out.length) {
1504 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.length));
1506 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
1508 return NDR_ERR_SUCCESS;
1511 _PUBLIC_ enum ndr_err_code ndr_pull_winreg_EnumValue(struct ndr_pull *ndr, int flags, struct winreg_EnumValue *r)
1514 uint32_t _ptr_value;
1516 uint32_t _ptr_length;
1517 TALLOC_CTX *_mem_save_handle_0;
1518 TALLOC_CTX *_mem_save_name_0;
1519 TALLOC_CTX *_mem_save_type_0;
1520 TALLOC_CTX *_mem_save_value_0;
1521 TALLOC_CTX *_mem_save_size_0;
1522 TALLOC_CTX *_mem_save_length_0;
1523 if (flags & NDR_IN) {
1524 ZERO_STRUCT(r->out);
1526 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1527 NDR_PULL_ALLOC(ndr, r->in.handle);
1529 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
1530 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
1531 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
1532 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
1533 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.enum_index));
1534 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1535 NDR_PULL_ALLOC(ndr, r->in.name);
1537 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
1538 NDR_PULL_SET_MEM_CTX(ndr, r->in.name, LIBNDR_FLAG_REF_ALLOC);
1539 NDR_CHECK(ndr_pull_winreg_StringBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.name));
1540 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, LIBNDR_FLAG_REF_ALLOC);
1541 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_type));
1543 NDR_PULL_ALLOC(ndr, r->in.type);
1548 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
1549 NDR_PULL_SET_MEM_CTX(ndr, r->in.type, 0);
1550 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->in.type));
1551 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, 0);
1553 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_value));
1555 NDR_PULL_ALLOC(ndr, r->in.value);
1560 _mem_save_value_0 = NDR_PULL_GET_MEM_CTX(ndr);
1561 NDR_PULL_SET_MEM_CTX(ndr, r->in.value, 0);
1562 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value));
1563 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value));
1564 if (ndr_get_array_length(ndr, &r->in.value) > ndr_get_array_size(ndr, &r->in.value)) {
1565 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.value), ndr_get_array_length(ndr, &r->in.value));
1567 NDR_PULL_ALLOC_N(ndr, r->in.value, ndr_get_array_size(ndr, &r->in.value));
1568 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.value, ndr_get_array_length(ndr, &r->in.value)));
1569 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_0, 0);
1571 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_size));
1573 NDR_PULL_ALLOC(ndr, r->in.size);
1578 _mem_save_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
1579 NDR_PULL_SET_MEM_CTX(ndr, r->in.size, 0);
1580 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.size));
1581 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_size_0, 0);
1583 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_length));
1585 NDR_PULL_ALLOC(ndr, r->in.length);
1587 r->in.length = NULL;
1590 _mem_save_length_0 = NDR_PULL_GET_MEM_CTX(ndr);
1591 NDR_PULL_SET_MEM_CTX(ndr, r->in.length, 0);
1592 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.length));
1593 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_length_0, 0);
1595 NDR_PULL_ALLOC(ndr, r->out.name);
1596 *r->out.name = *r->in.name;
1598 if (r->in.size == NULL) return ndr_pull_error(ndr, NDR_ERR_INVALID_POINTER, "NULL Pointer for size_is()");
1599 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.value, *r->in.size));
1602 if (r->in.length == NULL) return ndr_pull_error(ndr, NDR_ERR_INVALID_POINTER, "NULL Pointer for length_is()");
1603 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->in.value, *r->in.length));
1606 if (flags & NDR_OUT) {
1607 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1608 NDR_PULL_ALLOC(ndr, r->out.name);
1610 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
1611 NDR_PULL_SET_MEM_CTX(ndr, r->out.name, LIBNDR_FLAG_REF_ALLOC);
1612 NDR_CHECK(ndr_pull_winreg_StringBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.name));
1613 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, LIBNDR_FLAG_REF_ALLOC);
1614 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_type));
1616 NDR_PULL_ALLOC(ndr, r->out.type);
1621 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
1622 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, 0);
1623 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
1624 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, 0);
1626 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_value));
1628 NDR_PULL_ALLOC(ndr, r->out.value);
1630 r->out.value = NULL;
1633 _mem_save_value_0 = NDR_PULL_GET_MEM_CTX(ndr);
1634 NDR_PULL_SET_MEM_CTX(ndr, r->out.value, 0);
1635 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.value));
1636 NDR_CHECK(ndr_pull_array_length(ndr, &r->out.value));
1637 if (ndr_get_array_length(ndr, &r->out.value) > ndr_get_array_size(ndr, &r->out.value)) {
1638 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.value), ndr_get_array_length(ndr, &r->out.value));
1640 NDR_PULL_ALLOC_N(ndr, r->out.value, ndr_get_array_size(ndr, &r->out.value));
1641 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.value, ndr_get_array_length(ndr, &r->out.value)));
1642 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_0, 0);
1644 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_size));
1646 NDR_PULL_ALLOC(ndr, r->out.size);
1651 _mem_save_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
1652 NDR_PULL_SET_MEM_CTX(ndr, r->out.size, 0);
1653 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.size));
1654 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_size_0, 0);
1656 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_length));
1658 NDR_PULL_ALLOC(ndr, r->out.length);
1660 r->out.length = NULL;
1662 if (r->out.length) {
1663 _mem_save_length_0 = NDR_PULL_GET_MEM_CTX(ndr);
1664 NDR_PULL_SET_MEM_CTX(ndr, r->out.length, 0);
1665 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.length));
1666 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_length_0, 0);
1668 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
1670 if (r->out.size == NULL) return ndr_pull_error(ndr, NDR_ERR_INVALID_POINTER, "NULL Pointer for size_is()");
1671 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.value, *r->out.size));
1674 if (r->out.length == NULL) return ndr_pull_error(ndr, NDR_ERR_INVALID_POINTER, "NULL Pointer for length_is()");
1675 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->out.value, *r->out.length));
1678 return NDR_ERR_SUCCESS;
1681 _PUBLIC_ void ndr_print_winreg_EnumValue(struct ndr_print *ndr, const char *name, int flags, const struct winreg_EnumValue *r)
1683 ndr_print_struct(ndr, name, "winreg_EnumValue");
1685 if (flags & NDR_SET_VALUES) {
1686 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1688 if (flags & NDR_IN) {
1689 ndr_print_struct(ndr, "in", "winreg_EnumValue");
1691 ndr_print_ptr(ndr, "handle", r->in.handle);
1693 ndr_print_policy_handle(ndr, "handle", r->in.handle);
1695 ndr_print_uint32(ndr, "enum_index", r->in.enum_index);
1696 ndr_print_ptr(ndr, "name", r->in.name);
1698 ndr_print_winreg_StringBuf(ndr, "name", r->in.name);
1700 ndr_print_ptr(ndr, "type", r->in.type);
1703 ndr_print_winreg_Type(ndr, "type", *r->in.type);
1706 ndr_print_ptr(ndr, "value", r->in.value);
1709 if (r->in.length == NULL) return;
1710 ndr_print_array_uint8(ndr, "value", r->in.value, *r->in.length);
1713 ndr_print_ptr(ndr, "size", r->in.size);
1716 ndr_print_uint32(ndr, "size", *r->in.size);
1719 ndr_print_ptr(ndr, "length", r->in.length);
1722 ndr_print_uint32(ndr, "length", *r->in.length);
1727 if (flags & NDR_OUT) {
1728 ndr_print_struct(ndr, "out", "winreg_EnumValue");
1730 ndr_print_ptr(ndr, "name", r->out.name);
1732 ndr_print_winreg_StringBuf(ndr, "name", r->out.name);
1734 ndr_print_ptr(ndr, "type", r->out.type);
1737 ndr_print_winreg_Type(ndr, "type", *r->out.type);
1740 ndr_print_ptr(ndr, "value", r->out.value);
1743 if (r->out.length == NULL) return;
1744 ndr_print_array_uint8(ndr, "value", r->out.value, *r->out.length);
1747 ndr_print_ptr(ndr, "size", r->out.size);
1750 ndr_print_uint32(ndr, "size", *r->out.size);
1753 ndr_print_ptr(ndr, "length", r->out.length);
1755 if (r->out.length) {
1756 ndr_print_uint32(ndr, "length", *r->out.length);
1759 ndr_print_WERROR(ndr, "result", r->out.result);
1765 _PUBLIC_ enum ndr_err_code ndr_push_winreg_FlushKey(struct ndr_push *ndr, int flags, const struct winreg_FlushKey *r)
1767 if (flags & NDR_IN) {
1768 if (r->in.handle == NULL) {
1769 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1771 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
1773 if (flags & NDR_OUT) {
1774 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
1776 return NDR_ERR_SUCCESS;
1779 _PUBLIC_ enum ndr_err_code ndr_pull_winreg_FlushKey(struct ndr_pull *ndr, int flags, struct winreg_FlushKey *r)
1781 TALLOC_CTX *_mem_save_handle_0;
1782 if (flags & NDR_IN) {
1783 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1784 NDR_PULL_ALLOC(ndr, r->in.handle);
1786 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
1787 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
1788 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
1789 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
1791 if (flags & NDR_OUT) {
1792 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
1794 return NDR_ERR_SUCCESS;
1797 _PUBLIC_ void ndr_print_winreg_FlushKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_FlushKey *r)
1799 ndr_print_struct(ndr, name, "winreg_FlushKey");
1801 if (flags & NDR_SET_VALUES) {
1802 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1804 if (flags & NDR_IN) {
1805 ndr_print_struct(ndr, "in", "winreg_FlushKey");
1807 ndr_print_ptr(ndr, "handle", r->in.handle);
1809 ndr_print_policy_handle(ndr, "handle", r->in.handle);
1813 if (flags & NDR_OUT) {
1814 ndr_print_struct(ndr, "out", "winreg_FlushKey");
1816 ndr_print_WERROR(ndr, "result", r->out.result);
1822 _PUBLIC_ enum ndr_err_code ndr_push_winreg_GetKeySecurity(struct ndr_push *ndr, int flags, const struct winreg_GetKeySecurity *r)
1824 if (flags & NDR_IN) {
1825 if (r->in.handle == NULL) {
1826 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1828 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
1829 NDR_CHECK(ndr_push_security_secinfo(ndr, NDR_SCALARS, r->in.sec_info));
1830 if (r->in.sd == NULL) {
1831 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1833 NDR_CHECK(ndr_push_KeySecurityData(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sd));
1835 if (flags & NDR_OUT) {
1836 if (r->out.sd == NULL) {
1837 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1839 NDR_CHECK(ndr_push_KeySecurityData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.sd));
1840 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
1842 return NDR_ERR_SUCCESS;
1845 _PUBLIC_ enum ndr_err_code ndr_pull_winreg_GetKeySecurity(struct ndr_pull *ndr, int flags, struct winreg_GetKeySecurity *r)
1847 TALLOC_CTX *_mem_save_handle_0;
1848 TALLOC_CTX *_mem_save_sd_0;
1849 if (flags & NDR_IN) {
1850 ZERO_STRUCT(r->out);
1852 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1853 NDR_PULL_ALLOC(ndr, r->in.handle);
1855 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
1856 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
1857 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
1858 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
1859 NDR_CHECK(ndr_pull_security_secinfo(ndr, NDR_SCALARS, &r->in.sec_info));
1860 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1861 NDR_PULL_ALLOC(ndr, r->in.sd);
1863 _mem_save_sd_0 = NDR_PULL_GET_MEM_CTX(ndr);
1864 NDR_PULL_SET_MEM_CTX(ndr, r->in.sd, LIBNDR_FLAG_REF_ALLOC);
1865 NDR_CHECK(ndr_pull_KeySecurityData(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sd));
1866 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sd_0, LIBNDR_FLAG_REF_ALLOC);
1867 NDR_PULL_ALLOC(ndr, r->out.sd);
1868 *r->out.sd = *r->in.sd;
1870 if (flags & NDR_OUT) {
1871 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1872 NDR_PULL_ALLOC(ndr, r->out.sd);
1874 _mem_save_sd_0 = NDR_PULL_GET_MEM_CTX(ndr);
1875 NDR_PULL_SET_MEM_CTX(ndr, r->out.sd, LIBNDR_FLAG_REF_ALLOC);
1876 NDR_CHECK(ndr_pull_KeySecurityData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.sd));
1877 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sd_0, LIBNDR_FLAG_REF_ALLOC);
1878 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
1880 return NDR_ERR_SUCCESS;
1883 _PUBLIC_ void ndr_print_winreg_GetKeySecurity(struct ndr_print *ndr, const char *name, int flags, const struct winreg_GetKeySecurity *r)
1885 ndr_print_struct(ndr, name, "winreg_GetKeySecurity");
1887 if (flags & NDR_SET_VALUES) {
1888 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1890 if (flags & NDR_IN) {
1891 ndr_print_struct(ndr, "in", "winreg_GetKeySecurity");
1893 ndr_print_ptr(ndr, "handle", r->in.handle);
1895 ndr_print_policy_handle(ndr, "handle", r->in.handle);
1897 ndr_print_security_secinfo(ndr, "sec_info", r->in.sec_info);
1898 ndr_print_ptr(ndr, "sd", r->in.sd);
1900 ndr_print_KeySecurityData(ndr, "sd", r->in.sd);
1904 if (flags & NDR_OUT) {
1905 ndr_print_struct(ndr, "out", "winreg_GetKeySecurity");
1907 ndr_print_ptr(ndr, "sd", r->out.sd);
1909 ndr_print_KeySecurityData(ndr, "sd", r->out.sd);
1911 ndr_print_WERROR(ndr, "result", r->out.result);
1917 static enum ndr_err_code ndr_push_winreg_LoadKey(struct ndr_push *ndr, int flags, const struct winreg_LoadKey *r)
1919 if (flags & NDR_IN) {
1920 if (r->in.handle == NULL) {
1921 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1923 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
1924 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.keyname));
1925 if (r->in.keyname) {
1926 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.keyname));
1928 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.filename));
1929 if (r->in.filename) {
1930 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.filename));
1933 if (flags & NDR_OUT) {
1934 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
1936 return NDR_ERR_SUCCESS;
1939 static enum ndr_err_code ndr_pull_winreg_LoadKey(struct ndr_pull *ndr, int flags, struct winreg_LoadKey *r)
1941 uint32_t _ptr_keyname;
1942 uint32_t _ptr_filename;
1943 TALLOC_CTX *_mem_save_handle_0;
1944 TALLOC_CTX *_mem_save_keyname_0;
1945 TALLOC_CTX *_mem_save_filename_0;
1946 if (flags & NDR_IN) {
1947 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1948 NDR_PULL_ALLOC(ndr, r->in.handle);
1950 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
1951 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
1952 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
1953 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
1954 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_keyname));
1956 NDR_PULL_ALLOC(ndr, r->in.keyname);
1958 r->in.keyname = NULL;
1960 if (r->in.keyname) {
1961 _mem_save_keyname_0 = NDR_PULL_GET_MEM_CTX(ndr);
1962 NDR_PULL_SET_MEM_CTX(ndr, r->in.keyname, 0);
1963 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.keyname));
1964 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_keyname_0, 0);
1966 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_filename));
1967 if (_ptr_filename) {
1968 NDR_PULL_ALLOC(ndr, r->in.filename);
1970 r->in.filename = NULL;
1972 if (r->in.filename) {
1973 _mem_save_filename_0 = NDR_PULL_GET_MEM_CTX(ndr);
1974 NDR_PULL_SET_MEM_CTX(ndr, r->in.filename, 0);
1975 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.filename));
1976 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_filename_0, 0);
1979 if (flags & NDR_OUT) {
1980 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
1982 return NDR_ERR_SUCCESS;
1985 _PUBLIC_ void ndr_print_winreg_LoadKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_LoadKey *r)
1987 ndr_print_struct(ndr, name, "winreg_LoadKey");
1989 if (flags & NDR_SET_VALUES) {
1990 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1992 if (flags & NDR_IN) {
1993 ndr_print_struct(ndr, "in", "winreg_LoadKey");
1995 ndr_print_ptr(ndr, "handle", r->in.handle);
1997 ndr_print_policy_handle(ndr, "handle", r->in.handle);
1999 ndr_print_ptr(ndr, "keyname", r->in.keyname);
2001 if (r->in.keyname) {
2002 ndr_print_winreg_String(ndr, "keyname", r->in.keyname);
2005 ndr_print_ptr(ndr, "filename", r->in.filename);
2007 if (r->in.filename) {
2008 ndr_print_winreg_String(ndr, "filename", r->in.filename);
2013 if (flags & NDR_OUT) {
2014 ndr_print_struct(ndr, "out", "winreg_LoadKey");
2016 ndr_print_WERROR(ndr, "result", r->out.result);
2022 _PUBLIC_ enum ndr_err_code ndr_push_winreg_NotifyChangeKeyValue(struct ndr_push *ndr, int flags, const struct winreg_NotifyChangeKeyValue *r)
2024 if (flags & NDR_IN) {
2025 if (r->in.handle == NULL) {
2026 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2028 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
2029 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->in.watch_subtree));
2030 NDR_CHECK(ndr_push_winreg_NotifyChangeType(ndr, NDR_SCALARS, r->in.notify_filter));
2031 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown));
2032 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.string1));
2033 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.string2));
2034 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown2));
2036 if (flags & NDR_OUT) {
2037 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
2039 return NDR_ERR_SUCCESS;
2042 _PUBLIC_ enum ndr_err_code ndr_pull_winreg_NotifyChangeKeyValue(struct ndr_pull *ndr, int flags, struct winreg_NotifyChangeKeyValue *r)
2044 TALLOC_CTX *_mem_save_handle_0;
2045 if (flags & NDR_IN) {
2046 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2047 NDR_PULL_ALLOC(ndr, r->in.handle);
2049 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
2050 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
2051 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
2052 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
2053 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->in.watch_subtree));
2054 NDR_CHECK(ndr_pull_winreg_NotifyChangeType(ndr, NDR_SCALARS, &r->in.notify_filter));
2055 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown));
2056 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.string1));
2057 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.string2));
2058 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown2));
2060 if (flags & NDR_OUT) {
2061 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
2063 return NDR_ERR_SUCCESS;
2066 _PUBLIC_ void ndr_print_winreg_NotifyChangeKeyValue(struct ndr_print *ndr, const char *name, int flags, const struct winreg_NotifyChangeKeyValue *r)
2068 ndr_print_struct(ndr, name, "winreg_NotifyChangeKeyValue");
2070 if (flags & NDR_SET_VALUES) {
2071 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2073 if (flags & NDR_IN) {
2074 ndr_print_struct(ndr, "in", "winreg_NotifyChangeKeyValue");
2076 ndr_print_ptr(ndr, "handle", r->in.handle);
2078 ndr_print_policy_handle(ndr, "handle", r->in.handle);
2080 ndr_print_uint8(ndr, "watch_subtree", r->in.watch_subtree);
2081 ndr_print_winreg_NotifyChangeType(ndr, "notify_filter", r->in.notify_filter);
2082 ndr_print_uint32(ndr, "unknown", r->in.unknown);
2083 ndr_print_winreg_String(ndr, "string1", &r->in.string1);
2084 ndr_print_winreg_String(ndr, "string2", &r->in.string2);
2085 ndr_print_uint32(ndr, "unknown2", r->in.unknown2);
2088 if (flags & NDR_OUT) {
2089 ndr_print_struct(ndr, "out", "winreg_NotifyChangeKeyValue");
2091 ndr_print_WERROR(ndr, "result", r->out.result);
2097 _PUBLIC_ enum ndr_err_code ndr_push_winreg_OpenKey(struct ndr_push *ndr, int flags, const struct winreg_OpenKey *r)
2099 if (flags & NDR_IN) {
2100 if (r->in.parent_handle == NULL) {
2101 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2103 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.parent_handle));
2104 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.keyname));
2105 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown));
2106 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
2108 if (flags & NDR_OUT) {
2109 if (r->out.handle == NULL) {
2110 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2112 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
2113 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
2115 return NDR_ERR_SUCCESS;
2118 _PUBLIC_ enum ndr_err_code ndr_pull_winreg_OpenKey(struct ndr_pull *ndr, int flags, struct winreg_OpenKey *r)
2120 TALLOC_CTX *_mem_save_parent_handle_0;
2121 TALLOC_CTX *_mem_save_handle_0;
2122 if (flags & NDR_IN) {
2123 ZERO_STRUCT(r->out);
2125 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2126 NDR_PULL_ALLOC(ndr, r->in.parent_handle);
2128 _mem_save_parent_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
2129 NDR_PULL_SET_MEM_CTX(ndr, r->in.parent_handle, LIBNDR_FLAG_REF_ALLOC);
2130 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.parent_handle));
2131 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parent_handle_0, LIBNDR_FLAG_REF_ALLOC);
2132 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.keyname));
2133 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown));
2134 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
2135 NDR_PULL_ALLOC(ndr, r->out.handle);
2136 ZERO_STRUCTP(r->out.handle);
2138 if (flags & NDR_OUT) {
2139 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2140 NDR_PULL_ALLOC(ndr, r->out.handle);
2142 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
2143 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
2144 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
2145 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
2146 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
2148 return NDR_ERR_SUCCESS;
2151 _PUBLIC_ void ndr_print_winreg_OpenKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenKey *r)
2153 ndr_print_struct(ndr, name, "winreg_OpenKey");
2155 if (flags & NDR_SET_VALUES) {
2156 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2158 if (flags & NDR_IN) {
2159 ndr_print_struct(ndr, "in", "winreg_OpenKey");
2161 ndr_print_ptr(ndr, "parent_handle", r->in.parent_handle);
2163 ndr_print_policy_handle(ndr, "parent_handle", r->in.parent_handle);
2165 ndr_print_winreg_String(ndr, "keyname", &r->in.keyname);
2166 ndr_print_uint32(ndr, "unknown", r->in.unknown);
2167 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
2170 if (flags & NDR_OUT) {
2171 ndr_print_struct(ndr, "out", "winreg_OpenKey");
2173 ndr_print_ptr(ndr, "handle", r->out.handle);
2175 ndr_print_policy_handle(ndr, "handle", r->out.handle);
2177 ndr_print_WERROR(ndr, "result", r->out.result);
2183 _PUBLIC_ enum ndr_err_code ndr_push_winreg_QueryInfoKey(struct ndr_push *ndr, int flags, const struct winreg_QueryInfoKey *r)
2185 if (flags & NDR_IN) {
2186 if (r->in.handle == NULL) {
2187 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2189 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
2190 if (r->in.classname == NULL) {
2191 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2193 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.classname));
2195 if (flags & NDR_OUT) {
2196 if (r->out.classname == NULL) {
2197 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2199 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.classname));
2200 if (r->out.num_subkeys == NULL) {
2201 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2203 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.num_subkeys));
2204 if (r->out.max_subkeylen == NULL) {
2205 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2207 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.max_subkeylen));
2208 if (r->out.max_classlen == NULL) {
2209 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2211 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.max_classlen));
2212 if (r->out.num_values == NULL) {
2213 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2215 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.num_values));
2216 if (r->out.max_valnamelen == NULL) {
2217 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2219 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.max_valnamelen));
2220 if (r->out.max_valbufsize == NULL) {
2221 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2223 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.max_valbufsize));
2224 if (r->out.secdescsize == NULL) {
2225 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2227 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.secdescsize));
2228 if (r->out.last_changed_time == NULL) {
2229 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2231 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, *r->out.last_changed_time));
2232 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
2234 return NDR_ERR_SUCCESS;
2237 _PUBLIC_ enum ndr_err_code ndr_pull_winreg_QueryInfoKey(struct ndr_pull *ndr, int flags, struct winreg_QueryInfoKey *r)
2239 TALLOC_CTX *_mem_save_handle_0;
2240 TALLOC_CTX *_mem_save_classname_0;
2241 TALLOC_CTX *_mem_save_num_subkeys_0;
2242 TALLOC_CTX *_mem_save_max_subkeylen_0;
2243 TALLOC_CTX *_mem_save_max_classlen_0;
2244 TALLOC_CTX *_mem_save_num_values_0;
2245 TALLOC_CTX *_mem_save_max_valnamelen_0;
2246 TALLOC_CTX *_mem_save_max_valbufsize_0;
2247 TALLOC_CTX *_mem_save_secdescsize_0;
2248 TALLOC_CTX *_mem_save_last_changed_time_0;
2249 if (flags & NDR_IN) {
2250 ZERO_STRUCT(r->out);
2252 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2253 NDR_PULL_ALLOC(ndr, r->in.handle);
2255 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
2256 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
2257 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
2258 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
2259 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2260 NDR_PULL_ALLOC(ndr, r->in.classname);
2262 _mem_save_classname_0 = NDR_PULL_GET_MEM_CTX(ndr);
2263 NDR_PULL_SET_MEM_CTX(ndr, r->in.classname, LIBNDR_FLAG_REF_ALLOC);
2264 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.classname));
2265 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_classname_0, LIBNDR_FLAG_REF_ALLOC);
2266 NDR_PULL_ALLOC(ndr, r->out.classname);
2267 *r->out.classname = *r->in.classname;
2268 NDR_PULL_ALLOC(ndr, r->out.num_subkeys);
2269 ZERO_STRUCTP(r->out.num_subkeys);
2270 NDR_PULL_ALLOC(ndr, r->out.max_subkeylen);
2271 ZERO_STRUCTP(r->out.max_subkeylen);
2272 NDR_PULL_ALLOC(ndr, r->out.max_classlen);
2273 ZERO_STRUCTP(r->out.max_classlen);
2274 NDR_PULL_ALLOC(ndr, r->out.num_values);
2275 ZERO_STRUCTP(r->out.num_values);
2276 NDR_PULL_ALLOC(ndr, r->out.max_valnamelen);
2277 ZERO_STRUCTP(r->out.max_valnamelen);
2278 NDR_PULL_ALLOC(ndr, r->out.max_valbufsize);
2279 ZERO_STRUCTP(r->out.max_valbufsize);
2280 NDR_PULL_ALLOC(ndr, r->out.secdescsize);
2281 ZERO_STRUCTP(r->out.secdescsize);
2282 NDR_PULL_ALLOC(ndr, r->out.last_changed_time);
2283 ZERO_STRUCTP(r->out.last_changed_time);
2285 if (flags & NDR_OUT) {
2286 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2287 NDR_PULL_ALLOC(ndr, r->out.classname);
2289 _mem_save_classname_0 = NDR_PULL_GET_MEM_CTX(ndr);
2290 NDR_PULL_SET_MEM_CTX(ndr, r->out.classname, LIBNDR_FLAG_REF_ALLOC);
2291 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.classname));
2292 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_classname_0, LIBNDR_FLAG_REF_ALLOC);
2293 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2294 NDR_PULL_ALLOC(ndr, r->out.num_subkeys);
2296 _mem_save_num_subkeys_0 = NDR_PULL_GET_MEM_CTX(ndr);
2297 NDR_PULL_SET_MEM_CTX(ndr, r->out.num_subkeys, LIBNDR_FLAG_REF_ALLOC);
2298 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.num_subkeys));
2299 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_num_subkeys_0, LIBNDR_FLAG_REF_ALLOC);
2300 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2301 NDR_PULL_ALLOC(ndr, r->out.max_subkeylen);
2303 _mem_save_max_subkeylen_0 = NDR_PULL_GET_MEM_CTX(ndr);
2304 NDR_PULL_SET_MEM_CTX(ndr, r->out.max_subkeylen, LIBNDR_FLAG_REF_ALLOC);
2305 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.max_subkeylen));
2306 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_max_subkeylen_0, LIBNDR_FLAG_REF_ALLOC);
2307 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2308 NDR_PULL_ALLOC(ndr, r->out.max_classlen);
2310 _mem_save_max_classlen_0 = NDR_PULL_GET_MEM_CTX(ndr);
2311 NDR_PULL_SET_MEM_CTX(ndr, r->out.max_classlen, LIBNDR_FLAG_REF_ALLOC);
2312 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.max_classlen));
2313 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_max_classlen_0, LIBNDR_FLAG_REF_ALLOC);
2314 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2315 NDR_PULL_ALLOC(ndr, r->out.num_values);
2317 _mem_save_num_values_0 = NDR_PULL_GET_MEM_CTX(ndr);
2318 NDR_PULL_SET_MEM_CTX(ndr, r->out.num_values, LIBNDR_FLAG_REF_ALLOC);
2319 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.num_values));
2320 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_num_values_0, LIBNDR_FLAG_REF_ALLOC);
2321 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2322 NDR_PULL_ALLOC(ndr, r->out.max_valnamelen);
2324 _mem_save_max_valnamelen_0 = NDR_PULL_GET_MEM_CTX(ndr);
2325 NDR_PULL_SET_MEM_CTX(ndr, r->out.max_valnamelen, LIBNDR_FLAG_REF_ALLOC);
2326 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.max_valnamelen));
2327 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_max_valnamelen_0, LIBNDR_FLAG_REF_ALLOC);
2328 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2329 NDR_PULL_ALLOC(ndr, r->out.max_valbufsize);
2331 _mem_save_max_valbufsize_0 = NDR_PULL_GET_MEM_CTX(ndr);
2332 NDR_PULL_SET_MEM_CTX(ndr, r->out.max_valbufsize, LIBNDR_FLAG_REF_ALLOC);
2333 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.max_valbufsize));
2334 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_max_valbufsize_0, LIBNDR_FLAG_REF_ALLOC);
2335 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2336 NDR_PULL_ALLOC(ndr, r->out.secdescsize);
2338 _mem_save_secdescsize_0 = NDR_PULL_GET_MEM_CTX(ndr);
2339 NDR_PULL_SET_MEM_CTX(ndr, r->out.secdescsize, LIBNDR_FLAG_REF_ALLOC);
2340 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.secdescsize));
2341 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdescsize_0, LIBNDR_FLAG_REF_ALLOC);
2342 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2343 NDR_PULL_ALLOC(ndr, r->out.last_changed_time);
2345 _mem_save_last_changed_time_0 = NDR_PULL_GET_MEM_CTX(ndr);
2346 NDR_PULL_SET_MEM_CTX(ndr, r->out.last_changed_time, LIBNDR_FLAG_REF_ALLOC);
2347 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, r->out.last_changed_time));
2348 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_last_changed_time_0, LIBNDR_FLAG_REF_ALLOC);
2349 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
2351 return NDR_ERR_SUCCESS;
2354 _PUBLIC_ void ndr_print_winreg_QueryInfoKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_QueryInfoKey *r)
2356 ndr_print_struct(ndr, name, "winreg_QueryInfoKey");
2358 if (flags & NDR_SET_VALUES) {
2359 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2361 if (flags & NDR_IN) {
2362 ndr_print_struct(ndr, "in", "winreg_QueryInfoKey");
2364 ndr_print_ptr(ndr, "handle", r->in.handle);
2366 ndr_print_policy_handle(ndr, "handle", r->in.handle);
2368 ndr_print_ptr(ndr, "classname", r->in.classname);
2370 ndr_print_winreg_String(ndr, "classname", r->in.classname);
2374 if (flags & NDR_OUT) {
2375 ndr_print_struct(ndr, "out", "winreg_QueryInfoKey");
2377 ndr_print_ptr(ndr, "classname", r->out.classname);
2379 ndr_print_winreg_String(ndr, "classname", r->out.classname);
2381 ndr_print_ptr(ndr, "num_subkeys", r->out.num_subkeys);
2383 ndr_print_uint32(ndr, "num_subkeys", *r->out.num_subkeys);
2385 ndr_print_ptr(ndr, "max_subkeylen", r->out.max_subkeylen);
2387 ndr_print_uint32(ndr, "max_subkeylen", *r->out.max_subkeylen);
2389 ndr_print_ptr(ndr, "max_classlen", r->out.max_classlen);
2391 ndr_print_uint32(ndr, "max_classlen", *r->out.max_classlen);
2393 ndr_print_ptr(ndr, "num_values", r->out.num_values);
2395 ndr_print_uint32(ndr, "num_values", *r->out.num_values);
2397 ndr_print_ptr(ndr, "max_valnamelen", r->out.max_valnamelen);
2399 ndr_print_uint32(ndr, "max_valnamelen", *r->out.max_valnamelen);
2401 ndr_print_ptr(ndr, "max_valbufsize", r->out.max_valbufsize);
2403 ndr_print_uint32(ndr, "max_valbufsize", *r->out.max_valbufsize);
2405 ndr_print_ptr(ndr, "secdescsize", r->out.secdescsize);
2407 ndr_print_uint32(ndr, "secdescsize", *r->out.secdescsize);
2409 ndr_print_ptr(ndr, "last_changed_time", r->out.last_changed_time);
2411 ndr_print_NTTIME(ndr, "last_changed_time", *r->out.last_changed_time);
2413 ndr_print_WERROR(ndr, "result", r->out.result);
2419 _PUBLIC_ enum ndr_err_code ndr_push_winreg_QueryValue(struct ndr_push *ndr, int flags, const struct winreg_QueryValue *r)
2421 if (flags & NDR_IN) {
2422 if (r->in.handle == NULL) {
2423 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2425 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
2426 if (r->in.value_name == NULL) {
2427 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2429 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.value_name));
2430 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.type));
2432 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->in.type));
2434 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.data));
2436 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.data_size));
2437 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
2438 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.data_length));
2439 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.data, *r->in.data_length));
2441 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.data_size));
2442 if (r->in.data_size) {
2443 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.data_size));
2445 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.data_length));
2446 if (r->in.data_length) {
2447 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.data_length));
2450 if (flags & NDR_OUT) {
2451 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.type));
2453 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
2455 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.data));
2457 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.data_size));
2458 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
2459 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.data_length));
2460 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, *r->out.data_length));
2462 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.data_size));
2463 if (r->out.data_size) {
2464 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.data_size));
2466 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.data_length));
2467 if (r->out.data_length) {
2468 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.data_length));
2470 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
2472 return NDR_ERR_SUCCESS;
2475 _PUBLIC_ enum ndr_err_code ndr_pull_winreg_QueryValue(struct ndr_pull *ndr, int flags, struct winreg_QueryValue *r)
2479 uint32_t _ptr_data_size;
2480 uint32_t _ptr_data_length;
2481 TALLOC_CTX *_mem_save_handle_0;
2482 TALLOC_CTX *_mem_save_value_name_0;
2483 TALLOC_CTX *_mem_save_type_0;
2484 TALLOC_CTX *_mem_save_data_0;
2485 TALLOC_CTX *_mem_save_data_size_0;
2486 TALLOC_CTX *_mem_save_data_length_0;
2487 if (flags & NDR_IN) {
2488 ZERO_STRUCT(r->out);
2490 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2491 NDR_PULL_ALLOC(ndr, r->in.handle);
2493 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
2494 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
2495 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
2496 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
2497 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2498 NDR_PULL_ALLOC(ndr, r->in.value_name);
2500 _mem_save_value_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
2501 NDR_PULL_SET_MEM_CTX(ndr, r->in.value_name, LIBNDR_FLAG_REF_ALLOC);
2502 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.value_name));
2503 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_name_0, LIBNDR_FLAG_REF_ALLOC);
2504 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_type));
2506 NDR_PULL_ALLOC(ndr, r->in.type);
2511 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
2512 NDR_PULL_SET_MEM_CTX(ndr, r->in.type, 0);
2513 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->in.type));
2514 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, 0);
2516 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
2518 NDR_PULL_ALLOC(ndr, r->in.data);
2523 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
2524 NDR_PULL_SET_MEM_CTX(ndr, r->in.data, 0);
2525 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.data));
2526 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.data));
2527 if (ndr_get_array_length(ndr, &r->in.data) > ndr_get_array_size(ndr, &r->in.data)) {
2528 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));
2530 NDR_PULL_ALLOC_N(ndr, r->in.data, ndr_get_array_size(ndr, &r->in.data));
2531 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.data, ndr_get_array_length(ndr, &r->in.data)));
2532 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
2534 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_size));
2535 if (_ptr_data_size) {
2536 NDR_PULL_ALLOC(ndr, r->in.data_size);
2538 r->in.data_size = NULL;
2540 if (r->in.data_size) {
2541 _mem_save_data_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
2542 NDR_PULL_SET_MEM_CTX(ndr, r->in.data_size, 0);
2543 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.data_size));
2544 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_size_0, 0);
2546 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_length));
2547 if (_ptr_data_length) {
2548 NDR_PULL_ALLOC(ndr, r->in.data_length);
2550 r->in.data_length = NULL;
2552 if (r->in.data_length) {
2553 _mem_save_data_length_0 = NDR_PULL_GET_MEM_CTX(ndr);
2554 NDR_PULL_SET_MEM_CTX(ndr, r->in.data_length, 0);
2555 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.data_length));
2556 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_length_0, 0);
2559 if (r->in.data_size == NULL) return ndr_pull_error(ndr, NDR_ERR_INVALID_POINTER, "NULL Pointer for size_is()");
2560 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.data, *r->in.data_size));
2563 if (r->in.data_length == NULL) return ndr_pull_error(ndr, NDR_ERR_INVALID_POINTER, "NULL Pointer for length_is()");
2564 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->in.data, *r->in.data_length));
2567 if (flags & NDR_OUT) {
2568 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_type));
2570 NDR_PULL_ALLOC(ndr, r->out.type);
2575 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
2576 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, 0);
2577 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
2578 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, 0);
2580 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
2582 NDR_PULL_ALLOC(ndr, r->out.data);
2587 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
2588 NDR_PULL_SET_MEM_CTX(ndr, r->out.data, 0);
2589 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
2590 NDR_CHECK(ndr_pull_array_length(ndr, &r->out.data));
2591 if (ndr_get_array_length(ndr, &r->out.data) > ndr_get_array_size(ndr, &r->out.data)) {
2592 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));
2594 NDR_PULL_ALLOC_N(ndr, r->out.data, ndr_get_array_size(ndr, &r->out.data));
2595 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, ndr_get_array_length(ndr, &r->out.data)));
2596 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
2598 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_size));
2599 if (_ptr_data_size) {
2600 NDR_PULL_ALLOC(ndr, r->out.data_size);
2602 r->out.data_size = NULL;
2604 if (r->out.data_size) {
2605 _mem_save_data_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
2606 NDR_PULL_SET_MEM_CTX(ndr, r->out.data_size, 0);
2607 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.data_size));
2608 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_size_0, 0);
2610 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_length));
2611 if (_ptr_data_length) {
2612 NDR_PULL_ALLOC(ndr, r->out.data_length);
2614 r->out.data_length = NULL;
2616 if (r->out.data_length) {
2617 _mem_save_data_length_0 = NDR_PULL_GET_MEM_CTX(ndr);
2618 NDR_PULL_SET_MEM_CTX(ndr, r->out.data_length, 0);
2619 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.data_length));
2620 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_length_0, 0);
2622 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
2624 if (r->out.data_size == NULL) return ndr_pull_error(ndr, NDR_ERR_INVALID_POINTER, "NULL Pointer for size_is()");
2625 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, *r->out.data_size));
2628 if (r->out.data_length == NULL) return ndr_pull_error(ndr, NDR_ERR_INVALID_POINTER, "NULL Pointer for length_is()");
2629 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->out.data, *r->out.data_length));
2632 return NDR_ERR_SUCCESS;
2635 _PUBLIC_ void ndr_print_winreg_QueryValue(struct ndr_print *ndr, const char *name, int flags, const struct winreg_QueryValue *r)
2637 ndr_print_struct(ndr, name, "winreg_QueryValue");
2639 if (flags & NDR_SET_VALUES) {
2640 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2642 if (flags & NDR_IN) {
2643 ndr_print_struct(ndr, "in", "winreg_QueryValue");
2645 ndr_print_ptr(ndr, "handle", r->in.handle);
2647 ndr_print_policy_handle(ndr, "handle", r->in.handle);
2649 ndr_print_ptr(ndr, "value_name", r->in.value_name);
2651 ndr_print_winreg_String(ndr, "value_name", r->in.value_name);
2653 ndr_print_ptr(ndr, "type", r->in.type);
2656 ndr_print_winreg_Type(ndr, "type", *r->in.type);
2659 ndr_print_ptr(ndr, "data", r->in.data);
2662 if (r->in.data_length == NULL) return;
2663 ndr_print_array_uint8(ndr, "data", r->in.data, *r->in.data_length);
2666 ndr_print_ptr(ndr, "data_size", r->in.data_size);
2668 if (r->in.data_size) {
2669 ndr_print_uint32(ndr, "data_size", *r->in.data_size);
2672 ndr_print_ptr(ndr, "data_length", r->in.data_length);
2674 if (r->in.data_length) {
2675 ndr_print_uint32(ndr, "data_length", *r->in.data_length);
2680 if (flags & NDR_OUT) {
2681 ndr_print_struct(ndr, "out", "winreg_QueryValue");
2683 ndr_print_ptr(ndr, "type", r->out.type);
2686 ndr_print_winreg_Type(ndr, "type", *r->out.type);
2689 ndr_print_ptr(ndr, "data", r->out.data);
2692 if (r->out.data_length == NULL) return;
2693 ndr_print_array_uint8(ndr, "data", r->out.data, *r->out.data_length);
2696 ndr_print_ptr(ndr, "data_size", r->out.data_size);
2698 if (r->out.data_size) {
2699 ndr_print_uint32(ndr, "data_size", *r->out.data_size);
2702 ndr_print_ptr(ndr, "data_length", r->out.data_length);
2704 if (r->out.data_length) {
2705 ndr_print_uint32(ndr, "data_length", *r->out.data_length);
2708 ndr_print_WERROR(ndr, "result", r->out.result);
2714 static enum ndr_err_code ndr_push_winreg_ReplaceKey(struct ndr_push *ndr, int flags, const struct winreg_ReplaceKey *r)
2716 if (flags & NDR_IN) {
2718 if (flags & NDR_OUT) {
2719 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
2721 return NDR_ERR_SUCCESS;
2724 static enum ndr_err_code ndr_pull_winreg_ReplaceKey(struct ndr_pull *ndr, int flags, struct winreg_ReplaceKey *r)
2726 if (flags & NDR_IN) {
2728 if (flags & NDR_OUT) {
2729 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
2731 return NDR_ERR_SUCCESS;
2734 _PUBLIC_ void ndr_print_winreg_ReplaceKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_ReplaceKey *r)
2736 ndr_print_struct(ndr, name, "winreg_ReplaceKey");
2738 if (flags & NDR_SET_VALUES) {
2739 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2741 if (flags & NDR_IN) {
2742 ndr_print_struct(ndr, "in", "winreg_ReplaceKey");
2746 if (flags & NDR_OUT) {
2747 ndr_print_struct(ndr, "out", "winreg_ReplaceKey");
2749 ndr_print_WERROR(ndr, "result", r->out.result);
2755 static enum ndr_err_code ndr_push_winreg_RestoreKey(struct ndr_push *ndr, int flags, const struct winreg_RestoreKey *r)
2757 if (flags & NDR_IN) {
2758 if (r->in.handle == NULL) {
2759 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2761 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
2762 if (r->in.filename == NULL) {
2763 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2765 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.filename));
2766 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.flags));
2768 if (flags & NDR_OUT) {
2769 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
2771 return NDR_ERR_SUCCESS;
2774 static enum ndr_err_code ndr_pull_winreg_RestoreKey(struct ndr_pull *ndr, int flags, struct winreg_RestoreKey *r)
2776 TALLOC_CTX *_mem_save_handle_0;
2777 TALLOC_CTX *_mem_save_filename_0;
2778 if (flags & NDR_IN) {
2779 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2780 NDR_PULL_ALLOC(ndr, r->in.handle);
2782 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
2783 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
2784 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
2785 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
2786 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2787 NDR_PULL_ALLOC(ndr, r->in.filename);
2789 _mem_save_filename_0 = NDR_PULL_GET_MEM_CTX(ndr);
2790 NDR_PULL_SET_MEM_CTX(ndr, r->in.filename, LIBNDR_FLAG_REF_ALLOC);
2791 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.filename));
2792 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_filename_0, LIBNDR_FLAG_REF_ALLOC);
2793 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.flags));
2795 if (flags & NDR_OUT) {
2796 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
2798 return NDR_ERR_SUCCESS;
2801 _PUBLIC_ void ndr_print_winreg_RestoreKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_RestoreKey *r)
2803 ndr_print_struct(ndr, name, "winreg_RestoreKey");
2805 if (flags & NDR_SET_VALUES) {
2806 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2808 if (flags & NDR_IN) {
2809 ndr_print_struct(ndr, "in", "winreg_RestoreKey");
2811 ndr_print_ptr(ndr, "handle", r->in.handle);
2813 ndr_print_policy_handle(ndr, "handle", r->in.handle);
2815 ndr_print_ptr(ndr, "filename", r->in.filename);
2817 ndr_print_winreg_String(ndr, "filename", r->in.filename);
2819 ndr_print_uint32(ndr, "flags", r->in.flags);
2822 if (flags & NDR_OUT) {
2823 ndr_print_struct(ndr, "out", "winreg_RestoreKey");
2825 ndr_print_WERROR(ndr, "result", r->out.result);
2831 static enum ndr_err_code ndr_push_winreg_SaveKey(struct ndr_push *ndr, int flags, const struct winreg_SaveKey *r)
2833 if (flags & NDR_IN) {
2834 if (r->in.handle == NULL) {
2835 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2837 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
2838 if (r->in.filename == NULL) {
2839 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2841 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.filename));
2842 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.sec_attrib));
2843 if (r->in.sec_attrib) {
2844 NDR_CHECK(ndr_push_KeySecurityAttribute(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sec_attrib));
2847 if (flags & NDR_OUT) {
2848 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
2850 return NDR_ERR_SUCCESS;
2853 static enum ndr_err_code ndr_pull_winreg_SaveKey(struct ndr_pull *ndr, int flags, struct winreg_SaveKey *r)
2855 uint32_t _ptr_sec_attrib;
2856 TALLOC_CTX *_mem_save_handle_0;
2857 TALLOC_CTX *_mem_save_filename_0;
2858 TALLOC_CTX *_mem_save_sec_attrib_0;
2859 if (flags & NDR_IN) {
2860 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2861 NDR_PULL_ALLOC(ndr, r->in.handle);
2863 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
2864 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
2865 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
2866 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
2867 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2868 NDR_PULL_ALLOC(ndr, r->in.filename);
2870 _mem_save_filename_0 = NDR_PULL_GET_MEM_CTX(ndr);
2871 NDR_PULL_SET_MEM_CTX(ndr, r->in.filename, LIBNDR_FLAG_REF_ALLOC);
2872 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.filename));
2873 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_filename_0, LIBNDR_FLAG_REF_ALLOC);
2874 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sec_attrib));
2875 if (_ptr_sec_attrib) {
2876 NDR_PULL_ALLOC(ndr, r->in.sec_attrib);
2878 r->in.sec_attrib = NULL;
2880 if (r->in.sec_attrib) {
2881 _mem_save_sec_attrib_0 = NDR_PULL_GET_MEM_CTX(ndr);
2882 NDR_PULL_SET_MEM_CTX(ndr, r->in.sec_attrib, 0);
2883 NDR_CHECK(ndr_pull_KeySecurityAttribute(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sec_attrib));
2884 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sec_attrib_0, 0);
2887 if (flags & NDR_OUT) {
2888 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
2890 return NDR_ERR_SUCCESS;
2893 _PUBLIC_ void ndr_print_winreg_SaveKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_SaveKey *r)
2895 ndr_print_struct(ndr, name, "winreg_SaveKey");
2897 if (flags & NDR_SET_VALUES) {
2898 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2900 if (flags & NDR_IN) {
2901 ndr_print_struct(ndr, "in", "winreg_SaveKey");
2903 ndr_print_ptr(ndr, "handle", r->in.handle);
2905 ndr_print_policy_handle(ndr, "handle", r->in.handle);
2907 ndr_print_ptr(ndr, "filename", r->in.filename);
2909 ndr_print_winreg_String(ndr, "filename", r->in.filename);
2911 ndr_print_ptr(ndr, "sec_attrib", r->in.sec_attrib);
2913 if (r->in.sec_attrib) {
2914 ndr_print_KeySecurityAttribute(ndr, "sec_attrib", r->in.sec_attrib);
2919 if (flags & NDR_OUT) {
2920 ndr_print_struct(ndr, "out", "winreg_SaveKey");
2922 ndr_print_WERROR(ndr, "result", r->out.result);
2928 static enum ndr_err_code ndr_push_winreg_SetKeySecurity(struct ndr_push *ndr, int flags, const struct winreg_SetKeySecurity *r)
2930 if (flags & NDR_IN) {
2931 if (r->in.handle == NULL) {
2932 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2934 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
2935 NDR_CHECK(ndr_push_security_secinfo(ndr, NDR_SCALARS, r->in.sec_info));
2936 if (r->in.sd == NULL) {
2937 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2939 NDR_CHECK(ndr_push_KeySecurityData(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sd));
2941 if (flags & NDR_OUT) {
2942 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
2944 return NDR_ERR_SUCCESS;
2947 static enum ndr_err_code ndr_pull_winreg_SetKeySecurity(struct ndr_pull *ndr, int flags, struct winreg_SetKeySecurity *r)
2949 TALLOC_CTX *_mem_save_handle_0;
2950 TALLOC_CTX *_mem_save_sd_0;
2951 if (flags & NDR_IN) {
2952 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2953 NDR_PULL_ALLOC(ndr, r->in.handle);
2955 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
2956 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
2957 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
2958 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
2959 NDR_CHECK(ndr_pull_security_secinfo(ndr, NDR_SCALARS, &r->in.sec_info));
2960 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2961 NDR_PULL_ALLOC(ndr, r->in.sd);
2963 _mem_save_sd_0 = NDR_PULL_GET_MEM_CTX(ndr);
2964 NDR_PULL_SET_MEM_CTX(ndr, r->in.sd, LIBNDR_FLAG_REF_ALLOC);
2965 NDR_CHECK(ndr_pull_KeySecurityData(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sd));
2966 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sd_0, LIBNDR_FLAG_REF_ALLOC);
2968 if (flags & NDR_OUT) {
2969 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
2971 return NDR_ERR_SUCCESS;
2974 _PUBLIC_ void ndr_print_winreg_SetKeySecurity(struct ndr_print *ndr, const char *name, int flags, const struct winreg_SetKeySecurity *r)
2976 ndr_print_struct(ndr, name, "winreg_SetKeySecurity");
2978 if (flags & NDR_SET_VALUES) {
2979 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2981 if (flags & NDR_IN) {
2982 ndr_print_struct(ndr, "in", "winreg_SetKeySecurity");
2984 ndr_print_ptr(ndr, "handle", r->in.handle);
2986 ndr_print_policy_handle(ndr, "handle", r->in.handle);
2988 ndr_print_security_secinfo(ndr, "sec_info", r->in.sec_info);
2989 ndr_print_ptr(ndr, "sd", r->in.sd);
2991 ndr_print_KeySecurityData(ndr, "sd", r->in.sd);
2995 if (flags & NDR_OUT) {
2996 ndr_print_struct(ndr, "out", "winreg_SetKeySecurity");
2998 ndr_print_WERROR(ndr, "result", r->out.result);
3004 static enum ndr_err_code ndr_push_winreg_SetValue(struct ndr_push *ndr, int flags, const struct winreg_SetValue *r)
3006 if (flags & NDR_IN) {
3007 if (r->in.handle == NULL) {
3008 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
3010 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
3011 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.name));
3012 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
3013 if (r->in.data == NULL) {
3014 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
3016 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.size));
3017 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.data, r->in.size));
3018 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.size));
3020 if (flags & NDR_OUT) {
3021 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3023 return NDR_ERR_SUCCESS;
3026 static enum ndr_err_code ndr_pull_winreg_SetValue(struct ndr_pull *ndr, int flags, struct winreg_SetValue *r)
3028 TALLOC_CTX *_mem_save_handle_0;
3029 if (flags & NDR_IN) {
3030 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3031 NDR_PULL_ALLOC(ndr, r->in.handle);
3033 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
3034 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
3035 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
3036 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
3037 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.name));
3038 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
3039 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.data));
3040 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3041 NDR_PULL_ALLOC_N(ndr, r->in.data, ndr_get_array_size(ndr, &r->in.data));
3043 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.data, ndr_get_array_size(ndr, &r->in.data)));
3044 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.size));
3046 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.data, r->in.size));
3049 if (flags & NDR_OUT) {
3050 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3052 return NDR_ERR_SUCCESS;
3055 _PUBLIC_ void ndr_print_winreg_SetValue(struct ndr_print *ndr, const char *name, int flags, const struct winreg_SetValue *r)
3057 ndr_print_struct(ndr, name, "winreg_SetValue");
3059 if (flags & NDR_SET_VALUES) {
3060 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3062 if (flags & NDR_IN) {
3063 ndr_print_struct(ndr, "in", "winreg_SetValue");
3065 ndr_print_ptr(ndr, "handle", r->in.handle);
3067 ndr_print_policy_handle(ndr, "handle", r->in.handle);
3069 ndr_print_winreg_String(ndr, "name", &r->in.name);
3070 ndr_print_winreg_Type(ndr, "type", r->in.type);
3071 ndr_print_ptr(ndr, "data", r->in.data);
3073 ndr_print_array_uint8(ndr, "data", r->in.data, r->in.size);
3075 ndr_print_uint32(ndr, "size", r->in.size);
3078 if (flags & NDR_OUT) {
3079 ndr_print_struct(ndr, "out", "winreg_SetValue");
3081 ndr_print_WERROR(ndr, "result", r->out.result);
3087 static enum ndr_err_code ndr_push_winreg_UnLoadKey(struct ndr_push *ndr, int flags, const struct winreg_UnLoadKey *r)
3089 if (flags & NDR_IN) {
3091 if (flags & NDR_OUT) {
3092 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3094 return NDR_ERR_SUCCESS;
3097 static enum ndr_err_code ndr_pull_winreg_UnLoadKey(struct ndr_pull *ndr, int flags, struct winreg_UnLoadKey *r)
3099 if (flags & NDR_IN) {
3101 if (flags & NDR_OUT) {
3102 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3104 return NDR_ERR_SUCCESS;
3107 _PUBLIC_ void ndr_print_winreg_UnLoadKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_UnLoadKey *r)
3109 ndr_print_struct(ndr, name, "winreg_UnLoadKey");
3111 if (flags & NDR_SET_VALUES) {
3112 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3114 if (flags & NDR_IN) {
3115 ndr_print_struct(ndr, "in", "winreg_UnLoadKey");
3119 if (flags & NDR_OUT) {
3120 ndr_print_struct(ndr, "out", "winreg_UnLoadKey");
3122 ndr_print_WERROR(ndr, "result", r->out.result);
3128 static enum ndr_err_code ndr_push_winreg_InitiateSystemShutdown(struct ndr_push *ndr, int flags, const struct winreg_InitiateSystemShutdown *r)
3130 if (flags & NDR_IN) {
3131 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.hostname));
3132 if (r->in.hostname) {
3133 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.hostname));
3135 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.message));
3136 if (r->in.message) {
3137 NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.message));
3139 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.timeout));
3140 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->in.force_apps));
3141 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->in.do_reboot));
3143 if (flags & NDR_OUT) {
3144 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3146 return NDR_ERR_SUCCESS;
3149 static enum ndr_err_code ndr_pull_winreg_InitiateSystemShutdown(struct ndr_pull *ndr, int flags, struct winreg_InitiateSystemShutdown *r)
3151 uint32_t _ptr_hostname;
3152 uint32_t _ptr_message;
3153 TALLOC_CTX *_mem_save_hostname_0;
3154 TALLOC_CTX *_mem_save_message_0;
3155 if (flags & NDR_IN) {
3156 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hostname));
3157 if (_ptr_hostname) {
3158 NDR_PULL_ALLOC(ndr, r->in.hostname);
3160 r->in.hostname = NULL;
3162 if (r->in.hostname) {
3163 _mem_save_hostname_0 = NDR_PULL_GET_MEM_CTX(ndr);
3164 NDR_PULL_SET_MEM_CTX(ndr, r->in.hostname, 0);
3165 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.hostname));
3166 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hostname_0, 0);
3168 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_message));
3170 NDR_PULL_ALLOC(ndr, r->in.message);
3172 r->in.message = NULL;
3174 if (r->in.message) {
3175 _mem_save_message_0 = NDR_PULL_GET_MEM_CTX(ndr);
3176 NDR_PULL_SET_MEM_CTX(ndr, r->in.message, 0);
3177 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.message));
3178 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_message_0, 0);
3180 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.timeout));
3181 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->in.force_apps));
3182 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->in.do_reboot));
3184 if (flags & NDR_OUT) {
3185 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3187 return NDR_ERR_SUCCESS;
3190 _PUBLIC_ void ndr_print_winreg_InitiateSystemShutdown(struct ndr_print *ndr, const char *name, int flags, const struct winreg_InitiateSystemShutdown *r)
3192 ndr_print_struct(ndr, name, "winreg_InitiateSystemShutdown");
3194 if (flags & NDR_SET_VALUES) {
3195 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3197 if (flags & NDR_IN) {
3198 ndr_print_struct(ndr, "in", "winreg_InitiateSystemShutdown");
3200 ndr_print_ptr(ndr, "hostname", r->in.hostname);
3202 if (r->in.hostname) {
3203 ndr_print_uint16(ndr, "hostname", *r->in.hostname);
3206 ndr_print_ptr(ndr, "message", r->in.message);
3208 if (r->in.message) {
3209 ndr_print_lsa_StringLarge(ndr, "message", r->in.message);
3212 ndr_print_uint32(ndr, "timeout", r->in.timeout);
3213 ndr_print_uint8(ndr, "force_apps", r->in.force_apps);
3214 ndr_print_uint8(ndr, "do_reboot", r->in.do_reboot);
3217 if (flags & NDR_OUT) {
3218 ndr_print_struct(ndr, "out", "winreg_InitiateSystemShutdown");
3220 ndr_print_WERROR(ndr, "result", r->out.result);
3226 static enum ndr_err_code ndr_push_winreg_AbortSystemShutdown(struct ndr_push *ndr, int flags, const struct winreg_AbortSystemShutdown *r)
3228 if (flags & NDR_IN) {
3229 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
3231 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.server));
3234 if (flags & NDR_OUT) {
3235 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3237 return NDR_ERR_SUCCESS;
3240 static enum ndr_err_code ndr_pull_winreg_AbortSystemShutdown(struct ndr_pull *ndr, int flags, struct winreg_AbortSystemShutdown *r)
3242 uint32_t _ptr_server;
3243 TALLOC_CTX *_mem_save_server_0;
3244 if (flags & NDR_IN) {
3245 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
3247 NDR_PULL_ALLOC(ndr, r->in.server);
3249 r->in.server = NULL;
3252 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
3253 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
3254 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.server));
3255 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
3258 if (flags & NDR_OUT) {
3259 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3261 return NDR_ERR_SUCCESS;
3264 _PUBLIC_ void ndr_print_winreg_AbortSystemShutdown(struct ndr_print *ndr, const char *name, int flags, const struct winreg_AbortSystemShutdown *r)
3266 ndr_print_struct(ndr, name, "winreg_AbortSystemShutdown");
3268 if (flags & NDR_SET_VALUES) {
3269 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3271 if (flags & NDR_IN) {
3272 ndr_print_struct(ndr, "in", "winreg_AbortSystemShutdown");
3274 ndr_print_ptr(ndr, "server", r->in.server);
3277 ndr_print_uint16(ndr, "server", *r->in.server);
3282 if (flags & NDR_OUT) {
3283 ndr_print_struct(ndr, "out", "winreg_AbortSystemShutdown");
3285 ndr_print_WERROR(ndr, "result", r->out.result);
3291 _PUBLIC_ enum ndr_err_code ndr_push_winreg_GetVersion(struct ndr_push *ndr, int flags, const struct winreg_GetVersion *r)
3293 if (flags & NDR_IN) {
3294 if (r->in.handle == NULL) {
3295 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
3297 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
3299 if (flags & NDR_OUT) {
3300 if (r->out.version == NULL) {
3301 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
3303 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.version));
3304 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3306 return NDR_ERR_SUCCESS;
3309 _PUBLIC_ enum ndr_err_code ndr_pull_winreg_GetVersion(struct ndr_pull *ndr, int flags, struct winreg_GetVersion *r)
3311 TALLOC_CTX *_mem_save_handle_0;
3312 TALLOC_CTX *_mem_save_version_0;
3313 if (flags & NDR_IN) {
3314 ZERO_STRUCT(r->out);
3316 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3317 NDR_PULL_ALLOC(ndr, r->in.handle);
3319 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
3320 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
3321 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
3322 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
3323 NDR_PULL_ALLOC(ndr, r->out.version);
3324 ZERO_STRUCTP(r->out.version);
3326 if (flags & NDR_OUT) {
3327 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3328 NDR_PULL_ALLOC(ndr, r->out.version);
3330 _mem_save_version_0 = NDR_PULL_GET_MEM_CTX(ndr);
3331 NDR_PULL_SET_MEM_CTX(ndr, r->out.version, LIBNDR_FLAG_REF_ALLOC);
3332 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.version));
3333 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_version_0, LIBNDR_FLAG_REF_ALLOC);
3334 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3336 return NDR_ERR_SUCCESS;
3339 _PUBLIC_ void ndr_print_winreg_GetVersion(struct ndr_print *ndr, const char *name, int flags, const struct winreg_GetVersion *r)
3341 ndr_print_struct(ndr, name, "winreg_GetVersion");
3343 if (flags & NDR_SET_VALUES) {
3344 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3346 if (flags & NDR_IN) {
3347 ndr_print_struct(ndr, "in", "winreg_GetVersion");
3349 ndr_print_ptr(ndr, "handle", r->in.handle);
3351 ndr_print_policy_handle(ndr, "handle", r->in.handle);
3355 if (flags & NDR_OUT) {
3356 ndr_print_struct(ndr, "out", "winreg_GetVersion");
3358 ndr_print_ptr(ndr, "version", r->out.version);
3360 ndr_print_uint32(ndr, "version", *r->out.version);
3362 ndr_print_WERROR(ndr, "result", r->out.result);
3368 static enum ndr_err_code ndr_push_winreg_OpenHKCC(struct ndr_push *ndr, int flags, const struct winreg_OpenHKCC *r)
3370 if (flags & NDR_IN) {
3371 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.system_name));
3372 if (r->in.system_name) {
3373 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.system_name));
3375 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
3377 if (flags & NDR_OUT) {
3378 if (r->out.handle == NULL) {
3379 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
3381 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
3382 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3384 return NDR_ERR_SUCCESS;
3387 static enum ndr_err_code ndr_pull_winreg_OpenHKCC(struct ndr_pull *ndr, int flags, struct winreg_OpenHKCC *r)
3389 uint32_t _ptr_system_name;
3390 TALLOC_CTX *_mem_save_system_name_0;
3391 TALLOC_CTX *_mem_save_handle_0;
3392 if (flags & NDR_IN) {
3393 ZERO_STRUCT(r->out);
3395 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_system_name));
3396 if (_ptr_system_name) {
3397 NDR_PULL_ALLOC(ndr, r->in.system_name);
3399 r->in.system_name = NULL;
3401 if (r->in.system_name) {
3402 _mem_save_system_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3403 NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0);
3404 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.system_name));
3405 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0);
3407 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
3408 NDR_PULL_ALLOC(ndr, r->out.handle);
3409 ZERO_STRUCTP(r->out.handle);
3411 if (flags & NDR_OUT) {
3412 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3413 NDR_PULL_ALLOC(ndr, r->out.handle);
3415 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
3416 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
3417 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
3418 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
3419 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3421 return NDR_ERR_SUCCESS;
3424 _PUBLIC_ void ndr_print_winreg_OpenHKCC(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenHKCC *r)
3426 ndr_print_struct(ndr, name, "winreg_OpenHKCC");
3428 if (flags & NDR_SET_VALUES) {
3429 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3431 if (flags & NDR_IN) {
3432 ndr_print_struct(ndr, "in", "winreg_OpenHKCC");
3434 ndr_print_ptr(ndr, "system_name", r->in.system_name);
3436 if (r->in.system_name) {
3437 ndr_print_uint16(ndr, "system_name", *r->in.system_name);
3440 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
3443 if (flags & NDR_OUT) {
3444 ndr_print_struct(ndr, "out", "winreg_OpenHKCC");
3446 ndr_print_ptr(ndr, "handle", r->out.handle);
3448 ndr_print_policy_handle(ndr, "handle", r->out.handle);
3450 ndr_print_WERROR(ndr, "result", r->out.result);
3456 static enum ndr_err_code ndr_push_winreg_OpenHKDD(struct ndr_push *ndr, int flags, const struct winreg_OpenHKDD *r)
3458 if (flags & NDR_IN) {
3459 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.system_name));
3460 if (r->in.system_name) {
3461 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.system_name));
3463 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
3465 if (flags & NDR_OUT) {
3466 if (r->out.handle == NULL) {
3467 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
3469 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
3470 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3472 return NDR_ERR_SUCCESS;
3475 static enum ndr_err_code ndr_pull_winreg_OpenHKDD(struct ndr_pull *ndr, int flags, struct winreg_OpenHKDD *r)
3477 uint32_t _ptr_system_name;
3478 TALLOC_CTX *_mem_save_system_name_0;
3479 TALLOC_CTX *_mem_save_handle_0;
3480 if (flags & NDR_IN) {
3481 ZERO_STRUCT(r->out);
3483 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_system_name));
3484 if (_ptr_system_name) {
3485 NDR_PULL_ALLOC(ndr, r->in.system_name);
3487 r->in.system_name = NULL;
3489 if (r->in.system_name) {
3490 _mem_save_system_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3491 NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0);
3492 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.system_name));
3493 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0);
3495 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
3496 NDR_PULL_ALLOC(ndr, r->out.handle);
3497 ZERO_STRUCTP(r->out.handle);
3499 if (flags & NDR_OUT) {
3500 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3501 NDR_PULL_ALLOC(ndr, r->out.handle);
3503 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
3504 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
3505 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
3506 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
3507 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3509 return NDR_ERR_SUCCESS;
3512 _PUBLIC_ void ndr_print_winreg_OpenHKDD(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenHKDD *r)
3514 ndr_print_struct(ndr, name, "winreg_OpenHKDD");
3516 if (flags & NDR_SET_VALUES) {
3517 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3519 if (flags & NDR_IN) {
3520 ndr_print_struct(ndr, "in", "winreg_OpenHKDD");
3522 ndr_print_ptr(ndr, "system_name", r->in.system_name);
3524 if (r->in.system_name) {
3525 ndr_print_uint16(ndr, "system_name", *r->in.system_name);
3528 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
3531 if (flags & NDR_OUT) {
3532 ndr_print_struct(ndr, "out", "winreg_OpenHKDD");
3534 ndr_print_ptr(ndr, "handle", r->out.handle);
3536 ndr_print_policy_handle(ndr, "handle", r->out.handle);
3538 ndr_print_WERROR(ndr, "result", r->out.result);
3544 _PUBLIC_ enum ndr_err_code ndr_push_winreg_QueryMultipleValues(struct ndr_push *ndr, int flags, const struct winreg_QueryMultipleValues *r)
3546 uint32_t cntr_values_1;
3547 if (flags & NDR_IN) {
3548 if (r->in.key_handle == NULL) {
3549 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
3551 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.key_handle));
3552 if (r->in.values == NULL) {
3553 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
3555 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.num_values));
3556 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3557 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.num_values));
3558 for (cntr_values_1 = 0; cntr_values_1 < r->in.num_values; cntr_values_1++) {
3559 NDR_CHECK(ndr_push_QueryMultipleValue(ndr, NDR_SCALARS, &r->in.values[cntr_values_1]));
3561 for (cntr_values_1 = 0; cntr_values_1 < r->in.num_values; cntr_values_1++) {
3562 NDR_CHECK(ndr_push_QueryMultipleValue(ndr, NDR_BUFFERS, &r->in.values[cntr_values_1]));
3564 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.num_values));
3565 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
3567 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.buffer_size));
3568 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3569 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.buffer_size));
3570 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, *r->in.buffer_size));
3572 if (r->in.buffer_size == NULL) {
3573 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
3575 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.buffer_size));
3577 if (flags & NDR_OUT) {
3578 if (r->out.values == NULL) {
3579 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
3581 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.num_values));
3582 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3583 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.num_values));
3584 for (cntr_values_1 = 0; cntr_values_1 < r->in.num_values; cntr_values_1++) {
3585 NDR_CHECK(ndr_push_QueryMultipleValue(ndr, NDR_SCALARS, &r->out.values[cntr_values_1]));
3587 for (cntr_values_1 = 0; cntr_values_1 < r->in.num_values; cntr_values_1++) {
3588 NDR_CHECK(ndr_push_QueryMultipleValue(ndr, NDR_BUFFERS, &r->out.values[cntr_values_1]));
3590 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.buffer));
3591 if (r->out.buffer) {
3592 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.buffer_size));
3593 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3594 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.buffer_size));
3595 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, *r->out.buffer_size));
3597 if (r->out.buffer_size == NULL) {
3598 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
3600 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.buffer_size));
3601 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3603 return NDR_ERR_SUCCESS;
3606 _PUBLIC_ enum ndr_err_code ndr_pull_winreg_QueryMultipleValues(struct ndr_pull *ndr, int flags, struct winreg_QueryMultipleValues *r)
3608 uint32_t cntr_values_1;
3609 uint32_t _ptr_buffer;
3610 TALLOC_CTX *_mem_save_key_handle_0;
3611 TALLOC_CTX *_mem_save_values_1;
3612 TALLOC_CTX *_mem_save_buffer_0;
3613 TALLOC_CTX *_mem_save_buffer_size_0;
3614 if (flags & NDR_IN) {
3615 ZERO_STRUCT(r->out);
3617 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3618 NDR_PULL_ALLOC(ndr, r->in.key_handle);
3620 _mem_save_key_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
3621 NDR_PULL_SET_MEM_CTX(ndr, r->in.key_handle, LIBNDR_FLAG_REF_ALLOC);
3622 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.key_handle));
3623 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_key_handle_0, LIBNDR_FLAG_REF_ALLOC);
3624 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.values));
3625 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.values));
3626 if (ndr_get_array_length(ndr, &r->in.values) > ndr_get_array_size(ndr, &r->in.values)) {
3627 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));
3629 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3630 NDR_PULL_ALLOC_N(ndr, r->in.values, ndr_get_array_size(ndr, &r->in.values));
3632 memcpy(r->out.values, r->in.values, ndr_get_array_size(ndr, &r->in.values) * sizeof(*r->in.values));
3633 _mem_save_values_1 = NDR_PULL_GET_MEM_CTX(ndr);
3634 NDR_PULL_SET_MEM_CTX(ndr, r->in.values, 0);
3635 for (cntr_values_1 = 0; cntr_values_1 < r->in.num_values; cntr_values_1++) {
3636 NDR_CHECK(ndr_pull_QueryMultipleValue(ndr, NDR_SCALARS, &r->in.values[cntr_values_1]));
3638 for (cntr_values_1 = 0; cntr_values_1 < r->in.num_values; cntr_values_1++) {
3639 NDR_CHECK(ndr_pull_QueryMultipleValue(ndr, NDR_BUFFERS, &r->in.values[cntr_values_1]));
3641 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_values_1, 0);
3642 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.num_values));
3643 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
3645 NDR_PULL_ALLOC(ndr, r->in.buffer);
3647 r->in.buffer = NULL;
3650 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
3651 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
3652 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
3653 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.buffer));
3654 if (ndr_get_array_length(ndr, &r->in.buffer) > ndr_get_array_size(ndr, &r->in.buffer)) {
3655 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));
3657 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
3658 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_length(ndr, &r->in.buffer)));
3659 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
3661 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3662 NDR_PULL_ALLOC(ndr, r->in.buffer_size);
3664 _mem_save_buffer_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
3665 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer_size, LIBNDR_FLAG_REF_ALLOC);
3666 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.buffer_size));
3667 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_size_0, LIBNDR_FLAG_REF_ALLOC);
3668 NDR_PULL_ALLOC_N(ndr, r->out.values, r->in.num_values);
3669 memcpy(r->out.values, r->in.values, (r->in.num_values) * sizeof(*r->in.values));
3670 NDR_PULL_ALLOC(ndr, r->out.buffer_size);
3671 *r->out.buffer_size = *r->in.buffer_size;
3673 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.values, r->in.num_values));
3676 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->in.values, r->in.num_values));
3679 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, *r->in.buffer_size));
3682 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->in.buffer, *r->in.buffer_size));
3685 if (flags & NDR_OUT) {
3686 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.values));
3687 NDR_CHECK(ndr_pull_array_length(ndr, &r->out.values));
3688 if (ndr_get_array_length(ndr, &r->out.values) > ndr_get_array_size(ndr, &r->out.values)) {
3689 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));
3691 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3692 NDR_PULL_ALLOC_N(ndr, r->out.values, ndr_get_array_size(ndr, &r->out.values));
3694 memcpy(r->out.values, r->in.values, ndr_get_array_size(ndr, &r->out.values) * sizeof(*r->in.values));
3695 _mem_save_values_1 = NDR_PULL_GET_MEM_CTX(ndr);
3696 NDR_PULL_SET_MEM_CTX(ndr, r->out.values, 0);
3697 for (cntr_values_1 = 0; cntr_values_1 < r->in.num_values; cntr_values_1++) {
3698 NDR_CHECK(ndr_pull_QueryMultipleValue(ndr, NDR_SCALARS, &r->out.values[cntr_values_1]));
3700 for (cntr_values_1 = 0; cntr_values_1 < r->in.num_values; cntr_values_1++) {
3701 NDR_CHECK(ndr_pull_QueryMultipleValue(ndr, NDR_BUFFERS, &r->out.values[cntr_values_1]));
3703 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_values_1, 0);
3704 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
3706 NDR_PULL_ALLOC(ndr, r->out.buffer);
3708 r->out.buffer = NULL;
3710 if (r->out.buffer) {
3711 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
3712 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, 0);
3713 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
3714 NDR_CHECK(ndr_pull_array_length(ndr, &r->out.buffer));
3715 if (ndr_get_array_length(ndr, &r->out.buffer) > ndr_get_array_size(ndr, &r->out.buffer)) {
3716 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));
3718 NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
3719 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_length(ndr, &r->out.buffer)));
3720 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
3722 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3723 NDR_PULL_ALLOC(ndr, r->out.buffer_size);
3725 _mem_save_buffer_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
3726 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer_size, LIBNDR_FLAG_REF_ALLOC);
3727 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.buffer_size));
3728 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_size_0, LIBNDR_FLAG_REF_ALLOC);
3729 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3730 if (r->out.values) {
3731 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.values, r->in.num_values));
3733 if (r->out.values) {
3734 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->out.values, r->in.num_values));
3736 if (r->out.buffer) {
3737 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, *r->out.buffer_size));
3739 if (r->out.buffer) {
3740 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->out.buffer, *r->out.buffer_size));
3743 return NDR_ERR_SUCCESS;
3746 _PUBLIC_ void ndr_print_winreg_QueryMultipleValues(struct ndr_print *ndr, const char *name, int flags, const struct winreg_QueryMultipleValues *r)
3748 uint32_t cntr_values_1;
3749 ndr_print_struct(ndr, name, "winreg_QueryMultipleValues");
3751 if (flags & NDR_SET_VALUES) {
3752 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3754 if (flags & NDR_IN) {
3755 ndr_print_struct(ndr, "in", "winreg_QueryMultipleValues");
3757 ndr_print_ptr(ndr, "key_handle", r->in.key_handle);
3759 ndr_print_policy_handle(ndr, "key_handle", r->in.key_handle);
3761 ndr_print_ptr(ndr, "values", r->in.values);
3763 ndr->print(ndr, "%s: ARRAY(%d)", "values", (int)r->in.num_values);
3765 for (cntr_values_1=0;cntr_values_1<r->in.num_values;cntr_values_1++) {
3767 if (asprintf(&idx_1, "[%d]", cntr_values_1) != -1) {
3768 ndr_print_QueryMultipleValue(ndr, "values", &r->in.values[cntr_values_1]);
3774 ndr_print_uint32(ndr, "num_values", r->in.num_values);
3775 ndr_print_ptr(ndr, "buffer", r->in.buffer);
3778 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, *r->in.buffer_size);
3781 ndr_print_ptr(ndr, "buffer_size", r->in.buffer_size);
3783 ndr_print_uint32(ndr, "buffer_size", *r->in.buffer_size);
3787 if (flags & NDR_OUT) {
3788 ndr_print_struct(ndr, "out", "winreg_QueryMultipleValues");
3790 ndr_print_ptr(ndr, "values", r->out.values);
3792 ndr->print(ndr, "%s: ARRAY(%d)", "values", (int)r->in.num_values);
3794 for (cntr_values_1=0;cntr_values_1<r->in.num_values;cntr_values_1++) {
3796 if (asprintf(&idx_1, "[%d]", cntr_values_1) != -1) {
3797 ndr_print_QueryMultipleValue(ndr, "values", &r->out.values[cntr_values_1]);
3803 ndr_print_ptr(ndr, "buffer", r->out.buffer);
3805 if (r->out.buffer) {
3806 ndr_print_array_uint8(ndr, "buffer", r->out.buffer, *r->out.buffer_size);
3809 ndr_print_ptr(ndr, "buffer_size", r->out.buffer_size);
3811 ndr_print_uint32(ndr, "buffer_size", *r->out.buffer_size);
3813 ndr_print_WERROR(ndr, "result", r->out.result);
3819 static enum ndr_err_code ndr_push_winreg_InitiateSystemShutdownEx(struct ndr_push *ndr, int flags, const struct winreg_InitiateSystemShutdownEx *r)
3821 if (flags & NDR_IN) {
3822 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.hostname));
3823 if (r->in.hostname) {
3824 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.hostname));
3826 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.message));
3827 if (r->in.message) {
3828 NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.message));
3830 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.timeout));
3831 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->in.force_apps));
3832 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->in.do_reboot));
3833 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.reason));
3835 if (flags & NDR_OUT) {
3836 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3838 return NDR_ERR_SUCCESS;
3841 static enum ndr_err_code ndr_pull_winreg_InitiateSystemShutdownEx(struct ndr_pull *ndr, int flags, struct winreg_InitiateSystemShutdownEx *r)
3843 uint32_t _ptr_hostname;
3844 uint32_t _ptr_message;
3845 TALLOC_CTX *_mem_save_hostname_0;
3846 TALLOC_CTX *_mem_save_message_0;
3847 if (flags & NDR_IN) {
3848 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hostname));
3849 if (_ptr_hostname) {
3850 NDR_PULL_ALLOC(ndr, r->in.hostname);
3852 r->in.hostname = NULL;
3854 if (r->in.hostname) {
3855 _mem_save_hostname_0 = NDR_PULL_GET_MEM_CTX(ndr);
3856 NDR_PULL_SET_MEM_CTX(ndr, r->in.hostname, 0);
3857 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.hostname));
3858 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hostname_0, 0);
3860 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_message));
3862 NDR_PULL_ALLOC(ndr, r->in.message);
3864 r->in.message = NULL;
3866 if (r->in.message) {
3867 _mem_save_message_0 = NDR_PULL_GET_MEM_CTX(ndr);
3868 NDR_PULL_SET_MEM_CTX(ndr, r->in.message, 0);
3869 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.message));
3870 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_message_0, 0);
3872 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.timeout));
3873 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->in.force_apps));
3874 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->in.do_reboot));
3875 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.reason));
3877 if (flags & NDR_OUT) {
3878 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3880 return NDR_ERR_SUCCESS;
3883 _PUBLIC_ void ndr_print_winreg_InitiateSystemShutdownEx(struct ndr_print *ndr, const char *name, int flags, const struct winreg_InitiateSystemShutdownEx *r)
3885 ndr_print_struct(ndr, name, "winreg_InitiateSystemShutdownEx");
3887 if (flags & NDR_SET_VALUES) {
3888 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3890 if (flags & NDR_IN) {
3891 ndr_print_struct(ndr, "in", "winreg_InitiateSystemShutdownEx");
3893 ndr_print_ptr(ndr, "hostname", r->in.hostname);
3895 if (r->in.hostname) {
3896 ndr_print_uint16(ndr, "hostname", *r->in.hostname);
3899 ndr_print_ptr(ndr, "message", r->in.message);
3901 if (r->in.message) {
3902 ndr_print_lsa_StringLarge(ndr, "message", r->in.message);
3905 ndr_print_uint32(ndr, "timeout", r->in.timeout);
3906 ndr_print_uint8(ndr, "force_apps", r->in.force_apps);
3907 ndr_print_uint8(ndr, "do_reboot", r->in.do_reboot);
3908 ndr_print_uint32(ndr, "reason", r->in.reason);
3911 if (flags & NDR_OUT) {
3912 ndr_print_struct(ndr, "out", "winreg_InitiateSystemShutdownEx");
3914 ndr_print_WERROR(ndr, "result", r->out.result);
3920 static enum ndr_err_code ndr_push_winreg_SaveKeyEx(struct ndr_push *ndr, int flags, const struct winreg_SaveKeyEx *r)
3922 if (flags & NDR_IN) {
3924 if (flags & NDR_OUT) {
3925 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3927 return NDR_ERR_SUCCESS;
3930 static enum ndr_err_code ndr_pull_winreg_SaveKeyEx(struct ndr_pull *ndr, int flags, struct winreg_SaveKeyEx *r)
3932 if (flags & NDR_IN) {
3934 if (flags & NDR_OUT) {
3935 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3937 return NDR_ERR_SUCCESS;
3940 _PUBLIC_ void ndr_print_winreg_SaveKeyEx(struct ndr_print *ndr, const char *name, int flags, const struct winreg_SaveKeyEx *r)
3942 ndr_print_struct(ndr, name, "winreg_SaveKeyEx");
3944 if (flags & NDR_SET_VALUES) {
3945 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3947 if (flags & NDR_IN) {
3948 ndr_print_struct(ndr, "in", "winreg_SaveKeyEx");
3952 if (flags & NDR_OUT) {
3953 ndr_print_struct(ndr, "out", "winreg_SaveKeyEx");
3955 ndr_print_WERROR(ndr, "result", r->out.result);
3961 static enum ndr_err_code ndr_push_winreg_OpenHKPT(struct ndr_push *ndr, int flags, const struct winreg_OpenHKPT *r)
3963 if (flags & NDR_IN) {
3964 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.system_name));
3965 if (r->in.system_name) {
3966 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.system_name));
3968 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
3970 if (flags & NDR_OUT) {
3971 if (r->out.handle == NULL) {
3972 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
3974 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
3975 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3977 return NDR_ERR_SUCCESS;
3980 static enum ndr_err_code ndr_pull_winreg_OpenHKPT(struct ndr_pull *ndr, int flags, struct winreg_OpenHKPT *r)
3982 uint32_t _ptr_system_name;
3983 TALLOC_CTX *_mem_save_system_name_0;
3984 TALLOC_CTX *_mem_save_handle_0;
3985 if (flags & NDR_IN) {
3986 ZERO_STRUCT(r->out);
3988 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_system_name));
3989 if (_ptr_system_name) {
3990 NDR_PULL_ALLOC(ndr, r->in.system_name);
3992 r->in.system_name = NULL;
3994 if (r->in.system_name) {
3995 _mem_save_system_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3996 NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0);
3997 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.system_name));
3998 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0);
4000 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
4001 NDR_PULL_ALLOC(ndr, r->out.handle);
4002 ZERO_STRUCTP(r->out.handle);
4004 if (flags & NDR_OUT) {
4005 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
4006 NDR_PULL_ALLOC(ndr, r->out.handle);
4008 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
4009 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
4010 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
4011 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
4012 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
4014 return NDR_ERR_SUCCESS;
4017 _PUBLIC_ void ndr_print_winreg_OpenHKPT(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenHKPT *r)
4019 ndr_print_struct(ndr, name, "winreg_OpenHKPT");
4021 if (flags & NDR_SET_VALUES) {
4022 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
4024 if (flags & NDR_IN) {
4025 ndr_print_struct(ndr, "in", "winreg_OpenHKPT");
4027 ndr_print_ptr(ndr, "system_name", r->in.system_name);
4029 if (r->in.system_name) {
4030 ndr_print_uint16(ndr, "system_name", *r->in.system_name);
4033 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
4036 if (flags & NDR_OUT) {
4037 ndr_print_struct(ndr, "out", "winreg_OpenHKPT");
4039 ndr_print_ptr(ndr, "handle", r->out.handle);
4041 ndr_print_policy_handle(ndr, "handle", r->out.handle);
4043 ndr_print_WERROR(ndr, "result", r->out.result);
4049 static enum ndr_err_code ndr_push_winreg_OpenHKPN(struct ndr_push *ndr, int flags, const struct winreg_OpenHKPN *r)
4051 if (flags & NDR_IN) {
4052 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.system_name));
4053 if (r->in.system_name) {
4054 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.system_name));
4056 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
4058 if (flags & NDR_OUT) {
4059 if (r->out.handle == NULL) {
4060 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
4062 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
4063 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
4065 return NDR_ERR_SUCCESS;
4068 static enum ndr_err_code ndr_pull_winreg_OpenHKPN(struct ndr_pull *ndr, int flags, struct winreg_OpenHKPN *r)
4070 uint32_t _ptr_system_name;
4071 TALLOC_CTX *_mem_save_system_name_0;
4072 TALLOC_CTX *_mem_save_handle_0;
4073 if (flags & NDR_IN) {
4074 ZERO_STRUCT(r->out);
4076 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_system_name));
4077 if (_ptr_system_name) {
4078 NDR_PULL_ALLOC(ndr, r->in.system_name);
4080 r->in.system_name = NULL;
4082 if (r->in.system_name) {
4083 _mem_save_system_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4084 NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0);
4085 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.system_name));
4086 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0);
4088 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
4089 NDR_PULL_ALLOC(ndr, r->out.handle);
4090 ZERO_STRUCTP(r->out.handle);
4092 if (flags & NDR_OUT) {
4093 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
4094 NDR_PULL_ALLOC(ndr, r->out.handle);
4096 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
4097 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
4098 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
4099 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
4100 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
4102 return NDR_ERR_SUCCESS;
4105 _PUBLIC_ void ndr_print_winreg_OpenHKPN(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenHKPN *r)
4107 ndr_print_struct(ndr, name, "winreg_OpenHKPN");
4109 if (flags & NDR_SET_VALUES) {
4110 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
4112 if (flags & NDR_IN) {
4113 ndr_print_struct(ndr, "in", "winreg_OpenHKPN");
4115 ndr_print_ptr(ndr, "system_name", r->in.system_name);
4117 if (r->in.system_name) {
4118 ndr_print_uint16(ndr, "system_name", *r->in.system_name);
4121 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
4124 if (flags & NDR_OUT) {
4125 ndr_print_struct(ndr, "out", "winreg_OpenHKPN");
4127 ndr_print_ptr(ndr, "handle", r->out.handle);
4129 ndr_print_policy_handle(ndr, "handle", r->out.handle);
4131 ndr_print_WERROR(ndr, "result", r->out.result);
4137 static enum ndr_err_code ndr_push_winreg_QueryMultipleValues2(struct ndr_push *ndr, int flags, const struct winreg_QueryMultipleValues2 *r)
4139 if (flags & NDR_IN) {
4141 if (flags & NDR_OUT) {
4142 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
4144 return NDR_ERR_SUCCESS;
4147 static enum ndr_err_code ndr_pull_winreg_QueryMultipleValues2(struct ndr_pull *ndr, int flags, struct winreg_QueryMultipleValues2 *r)
4149 if (flags & NDR_IN) {
4151 if (flags & NDR_OUT) {
4152 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
4154 return NDR_ERR_SUCCESS;
4157 _PUBLIC_ void ndr_print_winreg_QueryMultipleValues2(struct ndr_print *ndr, const char *name, int flags, const struct winreg_QueryMultipleValues2 *r)
4159 ndr_print_struct(ndr, name, "winreg_QueryMultipleValues2");
4161 if (flags & NDR_SET_VALUES) {
4162 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
4164 if (flags & NDR_IN) {
4165 ndr_print_struct(ndr, "in", "winreg_QueryMultipleValues2");
4169 if (flags & NDR_OUT) {
4170 ndr_print_struct(ndr, "out", "winreg_QueryMultipleValues2");
4172 ndr_print_WERROR(ndr, "result", r->out.result);
4178 static const struct ndr_interface_call winreg_calls[] = {
4181 sizeof(struct winreg_OpenHKCR),
4182 (ndr_push_flags_fn_t) ndr_push_winreg_OpenHKCR,
4183 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenHKCR,
4184 (ndr_print_function_t) ndr_print_winreg_OpenHKCR,
4189 sizeof(struct winreg_OpenHKCU),
4190 (ndr_push_flags_fn_t) ndr_push_winreg_OpenHKCU,
4191 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenHKCU,
4192 (ndr_print_function_t) ndr_print_winreg_OpenHKCU,
4197 sizeof(struct winreg_OpenHKLM),
4198 (ndr_push_flags_fn_t) ndr_push_winreg_OpenHKLM,
4199 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenHKLM,
4200 (ndr_print_function_t) ndr_print_winreg_OpenHKLM,
4205 sizeof(struct winreg_OpenHKPD),
4206 (ndr_push_flags_fn_t) ndr_push_winreg_OpenHKPD,
4207 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenHKPD,
4208 (ndr_print_function_t) ndr_print_winreg_OpenHKPD,
4213 sizeof(struct winreg_OpenHKU),
4214 (ndr_push_flags_fn_t) ndr_push_winreg_OpenHKU,
4215 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenHKU,
4216 (ndr_print_function_t) ndr_print_winreg_OpenHKU,
4221 sizeof(struct winreg_CloseKey),
4222 (ndr_push_flags_fn_t) ndr_push_winreg_CloseKey,
4223 (ndr_pull_flags_fn_t) ndr_pull_winreg_CloseKey,
4224 (ndr_print_function_t) ndr_print_winreg_CloseKey,
4229 sizeof(struct winreg_CreateKey),
4230 (ndr_push_flags_fn_t) ndr_push_winreg_CreateKey,
4231 (ndr_pull_flags_fn_t) ndr_pull_winreg_CreateKey,
4232 (ndr_print_function_t) ndr_print_winreg_CreateKey,
4237 sizeof(struct winreg_DeleteKey),
4238 (ndr_push_flags_fn_t) ndr_push_winreg_DeleteKey,
4239 (ndr_pull_flags_fn_t) ndr_pull_winreg_DeleteKey,
4240 (ndr_print_function_t) ndr_print_winreg_DeleteKey,
4244 "winreg_DeleteValue",
4245 sizeof(struct winreg_DeleteValue),
4246 (ndr_push_flags_fn_t) ndr_push_winreg_DeleteValue,
4247 (ndr_pull_flags_fn_t) ndr_pull_winreg_DeleteValue,
4248 (ndr_print_function_t) ndr_print_winreg_DeleteValue,
4253 sizeof(struct winreg_EnumKey),
4254 (ndr_push_flags_fn_t) ndr_push_winreg_EnumKey,
4255 (ndr_pull_flags_fn_t) ndr_pull_winreg_EnumKey,
4256 (ndr_print_function_t) ndr_print_winreg_EnumKey,
4261 sizeof(struct winreg_EnumValue),
4262 (ndr_push_flags_fn_t) ndr_push_winreg_EnumValue,
4263 (ndr_pull_flags_fn_t) ndr_pull_winreg_EnumValue,
4264 (ndr_print_function_t) ndr_print_winreg_EnumValue,
4269 sizeof(struct winreg_FlushKey),
4270 (ndr_push_flags_fn_t) ndr_push_winreg_FlushKey,
4271 (ndr_pull_flags_fn_t) ndr_pull_winreg_FlushKey,
4272 (ndr_print_function_t) ndr_print_winreg_FlushKey,
4276 "winreg_GetKeySecurity",
4277 sizeof(struct winreg_GetKeySecurity),
4278 (ndr_push_flags_fn_t) ndr_push_winreg_GetKeySecurity,
4279 (ndr_pull_flags_fn_t) ndr_pull_winreg_GetKeySecurity,
4280 (ndr_print_function_t) ndr_print_winreg_GetKeySecurity,
4285 sizeof(struct winreg_LoadKey),
4286 (ndr_push_flags_fn_t) ndr_push_winreg_LoadKey,
4287 (ndr_pull_flags_fn_t) ndr_pull_winreg_LoadKey,
4288 (ndr_print_function_t) ndr_print_winreg_LoadKey,
4292 "winreg_NotifyChangeKeyValue",
4293 sizeof(struct winreg_NotifyChangeKeyValue),
4294 (ndr_push_flags_fn_t) ndr_push_winreg_NotifyChangeKeyValue,
4295 (ndr_pull_flags_fn_t) ndr_pull_winreg_NotifyChangeKeyValue,
4296 (ndr_print_function_t) ndr_print_winreg_NotifyChangeKeyValue,
4301 sizeof(struct winreg_OpenKey),
4302 (ndr_push_flags_fn_t) ndr_push_winreg_OpenKey,
4303 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenKey,
4304 (ndr_print_function_t) ndr_print_winreg_OpenKey,
4308 "winreg_QueryInfoKey",
4309 sizeof(struct winreg_QueryInfoKey),
4310 (ndr_push_flags_fn_t) ndr_push_winreg_QueryInfoKey,
4311 (ndr_pull_flags_fn_t) ndr_pull_winreg_QueryInfoKey,
4312 (ndr_print_function_t) ndr_print_winreg_QueryInfoKey,
4316 "winreg_QueryValue",
4317 sizeof(struct winreg_QueryValue),
4318 (ndr_push_flags_fn_t) ndr_push_winreg_QueryValue,
4319 (ndr_pull_flags_fn_t) ndr_pull_winreg_QueryValue,
4320 (ndr_print_function_t) ndr_print_winreg_QueryValue,
4324 "winreg_ReplaceKey",
4325 sizeof(struct winreg_ReplaceKey),
4326 (ndr_push_flags_fn_t) ndr_push_winreg_ReplaceKey,
4327 (ndr_pull_flags_fn_t) ndr_pull_winreg_ReplaceKey,
4328 (ndr_print_function_t) ndr_print_winreg_ReplaceKey,
4332 "winreg_RestoreKey",
4333 sizeof(struct winreg_RestoreKey),
4334 (ndr_push_flags_fn_t) ndr_push_winreg_RestoreKey,
4335 (ndr_pull_flags_fn_t) ndr_pull_winreg_RestoreKey,
4336 (ndr_print_function_t) ndr_print_winreg_RestoreKey,
4341 sizeof(struct winreg_SaveKey),
4342 (ndr_push_flags_fn_t) ndr_push_winreg_SaveKey,
4343 (ndr_pull_flags_fn_t) ndr_pull_winreg_SaveKey,
4344 (ndr_print_function_t) ndr_print_winreg_SaveKey,
4348 "winreg_SetKeySecurity",
4349 sizeof(struct winreg_SetKeySecurity),
4350 (ndr_push_flags_fn_t) ndr_push_winreg_SetKeySecurity,
4351 (ndr_pull_flags_fn_t) ndr_pull_winreg_SetKeySecurity,
4352 (ndr_print_function_t) ndr_print_winreg_SetKeySecurity,
4357 sizeof(struct winreg_SetValue),
4358 (ndr_push_flags_fn_t) ndr_push_winreg_SetValue,
4359 (ndr_pull_flags_fn_t) ndr_pull_winreg_SetValue,
4360 (ndr_print_function_t) ndr_print_winreg_SetValue,
4365 sizeof(struct winreg_UnLoadKey),
4366 (ndr_push_flags_fn_t) ndr_push_winreg_UnLoadKey,
4367 (ndr_pull_flags_fn_t) ndr_pull_winreg_UnLoadKey,
4368 (ndr_print_function_t) ndr_print_winreg_UnLoadKey,
4372 "winreg_InitiateSystemShutdown",
4373 sizeof(struct winreg_InitiateSystemShutdown),
4374 (ndr_push_flags_fn_t) ndr_push_winreg_InitiateSystemShutdown,
4375 (ndr_pull_flags_fn_t) ndr_pull_winreg_InitiateSystemShutdown,
4376 (ndr_print_function_t) ndr_print_winreg_InitiateSystemShutdown,
4380 "winreg_AbortSystemShutdown",
4381 sizeof(struct winreg_AbortSystemShutdown),
4382 (ndr_push_flags_fn_t) ndr_push_winreg_AbortSystemShutdown,
4383 (ndr_pull_flags_fn_t) ndr_pull_winreg_AbortSystemShutdown,
4384 (ndr_print_function_t) ndr_print_winreg_AbortSystemShutdown,
4388 "winreg_GetVersion",
4389 sizeof(struct winreg_GetVersion),
4390 (ndr_push_flags_fn_t) ndr_push_winreg_GetVersion,
4391 (ndr_pull_flags_fn_t) ndr_pull_winreg_GetVersion,
4392 (ndr_print_function_t) ndr_print_winreg_GetVersion,
4397 sizeof(struct winreg_OpenHKCC),
4398 (ndr_push_flags_fn_t) ndr_push_winreg_OpenHKCC,
4399 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenHKCC,
4400 (ndr_print_function_t) ndr_print_winreg_OpenHKCC,
4405 sizeof(struct winreg_OpenHKDD),
4406 (ndr_push_flags_fn_t) ndr_push_winreg_OpenHKDD,
4407 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenHKDD,
4408 (ndr_print_function_t) ndr_print_winreg_OpenHKDD,
4412 "winreg_QueryMultipleValues",
4413 sizeof(struct winreg_QueryMultipleValues),
4414 (ndr_push_flags_fn_t) ndr_push_winreg_QueryMultipleValues,
4415 (ndr_pull_flags_fn_t) ndr_pull_winreg_QueryMultipleValues,
4416 (ndr_print_function_t) ndr_print_winreg_QueryMultipleValues,
4420 "winreg_InitiateSystemShutdownEx",
4421 sizeof(struct winreg_InitiateSystemShutdownEx),
4422 (ndr_push_flags_fn_t) ndr_push_winreg_InitiateSystemShutdownEx,
4423 (ndr_pull_flags_fn_t) ndr_pull_winreg_InitiateSystemShutdownEx,
4424 (ndr_print_function_t) ndr_print_winreg_InitiateSystemShutdownEx,
4429 sizeof(struct winreg_SaveKeyEx),
4430 (ndr_push_flags_fn_t) ndr_push_winreg_SaveKeyEx,
4431 (ndr_pull_flags_fn_t) ndr_pull_winreg_SaveKeyEx,
4432 (ndr_print_function_t) ndr_print_winreg_SaveKeyEx,
4437 sizeof(struct winreg_OpenHKPT),
4438 (ndr_push_flags_fn_t) ndr_push_winreg_OpenHKPT,
4439 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenHKPT,
4440 (ndr_print_function_t) ndr_print_winreg_OpenHKPT,
4445 sizeof(struct winreg_OpenHKPN),
4446 (ndr_push_flags_fn_t) ndr_push_winreg_OpenHKPN,
4447 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenHKPN,
4448 (ndr_print_function_t) ndr_print_winreg_OpenHKPN,
4452 "winreg_QueryMultipleValues2",
4453 sizeof(struct winreg_QueryMultipleValues2),
4454 (ndr_push_flags_fn_t) ndr_push_winreg_QueryMultipleValues2,
4455 (ndr_pull_flags_fn_t) ndr_pull_winreg_QueryMultipleValues2,
4456 (ndr_print_function_t) ndr_print_winreg_QueryMultipleValues2,
4459 { NULL, 0, NULL, NULL, NULL, false }
4462 static const char * const winreg_endpoint_strings[] = {
4463 "ncacn_np:[\\pipe\\winreg]",
4468 static const struct ndr_interface_string_array winreg_endpoints = {
4470 .names = winreg_endpoint_strings
4473 static const char * const winreg_authservice_strings[] = {
4477 static const struct ndr_interface_string_array winreg_authservices = {
4479 .names = winreg_authservice_strings
4483 const struct ndr_interface_table ndr_table_winreg = {
4486 {0x338cd001,0x2244,0x31f1,{0xaa,0xaa},{0x90,0x00,0x38,0x00,0x10,0x03}},
4489 .helpstring = NDR_WINREG_HELPSTRING,
4491 .calls = winreg_calls,
4492 .endpoints = &winreg_endpoints,
4493 .authservices = &winreg_authservices