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 #include "librpc/gen_ndr/ndr_misc.h"
9 static enum ndr_err_code ndr_push_winreg_AccessMask(struct ndr_push *ndr, int ndr_flags, uint32_t r)
11 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
12 return NDR_ERR_SUCCESS;
15 static enum ndr_err_code ndr_pull_winreg_AccessMask(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
18 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
20 return NDR_ERR_SUCCESS;
23 _PUBLIC_ void ndr_print_winreg_AccessMask(struct ndr_print *ndr, const char *name, uint32_t r)
25 ndr_print_uint32(ndr, name, r);
27 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "KEY_QUERY_VALUE", KEY_QUERY_VALUE, r);
28 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "KEY_SET_VALUE", KEY_SET_VALUE, r);
29 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "KEY_CREATE_SUB_KEY", KEY_CREATE_SUB_KEY, r);
30 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "KEY_ENUMERATE_SUB_KEYS", KEY_ENUMERATE_SUB_KEYS, r);
31 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "KEY_NOTIFY", KEY_NOTIFY, r);
32 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "KEY_CREATE_LINK", KEY_CREATE_LINK, r);
33 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "KEY_WOW64_64KEY", KEY_WOW64_64KEY, r);
34 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "KEY_WOW64_32KEY", KEY_WOW64_32KEY, r);
38 _PUBLIC_ enum ndr_err_code ndr_push_winreg_String(struct ndr_push *ndr, int ndr_flags, const struct winreg_String *r)
40 if (ndr_flags & NDR_SCALARS) {
41 NDR_CHECK(ndr_push_align(ndr, 5));
42 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, strlen_m_term(r->name) * 2));
43 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, strlen_m_term(r->name) * 2));
44 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
45 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
47 if (ndr_flags & NDR_BUFFERS) {
49 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
50 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
51 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
52 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, ndr_charset_length(r->name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
55 return NDR_ERR_SUCCESS;
58 _PUBLIC_ enum ndr_err_code ndr_pull_winreg_String(struct ndr_pull *ndr, int ndr_flags, struct winreg_String *r)
61 TALLOC_CTX *_mem_save_name_0;
62 if (ndr_flags & NDR_SCALARS) {
63 NDR_CHECK(ndr_pull_align(ndr, 5));
64 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->name_len));
65 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->name_size));
66 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
68 NDR_PULL_ALLOC(ndr, r->name);
72 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
74 if (ndr_flags & NDR_BUFFERS) {
76 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
77 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
78 NDR_CHECK(ndr_pull_array_size(ndr, &r->name));
79 NDR_CHECK(ndr_pull_array_length(ndr, &r->name));
80 if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) {
81 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));
83 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t)));
84 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16));
85 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
88 return NDR_ERR_SUCCESS;
91 _PUBLIC_ void ndr_print_winreg_String(struct ndr_print *ndr, const char *name, const struct winreg_String *r)
93 ndr_print_struct(ndr, name, "winreg_String");
95 ndr_print_uint16(ndr, "name_len", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?strlen_m_term(r->name) * 2:r->name_len);
96 ndr_print_uint16(ndr, "name_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?strlen_m_term(r->name) * 2:r->name_size);
97 ndr_print_ptr(ndr, "name", r->name);
100 ndr_print_string(ndr, "name", r->name);
106 static enum ndr_err_code ndr_push_KeySecurityData(struct ndr_push *ndr, int ndr_flags, const struct KeySecurityData *r)
108 if (ndr_flags & NDR_SCALARS) {
109 NDR_CHECK(ndr_push_align(ndr, 5));
110 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
111 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
112 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->len));
113 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
115 if (ndr_flags & NDR_BUFFERS) {
117 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->size));
118 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
119 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->len));
120 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, r->len));
123 return NDR_ERR_SUCCESS;
126 static enum ndr_err_code ndr_pull_KeySecurityData(struct ndr_pull *ndr, int ndr_flags, struct KeySecurityData *r)
129 TALLOC_CTX *_mem_save_data_0;
130 if (ndr_flags & NDR_SCALARS) {
131 NDR_CHECK(ndr_pull_align(ndr, 5));
132 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
134 NDR_PULL_ALLOC(ndr, r->data);
138 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
139 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->len));
140 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
142 if (ndr_flags & NDR_BUFFERS) {
144 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
145 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
146 NDR_CHECK(ndr_pull_array_size(ndr, &r->data));
147 NDR_CHECK(ndr_pull_array_length(ndr, &r->data));
148 if (ndr_get_array_length(ndr, &r->data) > ndr_get_array_size(ndr, &r->data)) {
149 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));
151 NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data));
152 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, ndr_get_array_length(ndr, &r->data)));
153 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
156 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->size));
159 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->data, r->len));
162 return NDR_ERR_SUCCESS;
165 _PUBLIC_ void ndr_print_KeySecurityData(struct ndr_print *ndr, const char *name, const struct KeySecurityData *r)
167 ndr_print_struct(ndr, name, "KeySecurityData");
169 ndr_print_ptr(ndr, "data", r->data);
172 ndr_print_array_uint8(ndr, "data", r->data, r->len);
175 ndr_print_uint32(ndr, "size", r->size);
176 ndr_print_uint32(ndr, "len", r->len);
180 static enum ndr_err_code ndr_push_winreg_SecBuf(struct ndr_push *ndr, int ndr_flags, const struct winreg_SecBuf *r)
182 if (ndr_flags & NDR_SCALARS) {
183 NDR_CHECK(ndr_push_align(ndr, 5));
184 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
185 NDR_CHECK(ndr_push_KeySecurityData(ndr, NDR_SCALARS, &r->sd));
186 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->inherit));
187 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
189 if (ndr_flags & NDR_BUFFERS) {
190 NDR_CHECK(ndr_push_KeySecurityData(ndr, NDR_BUFFERS, &r->sd));
192 return NDR_ERR_SUCCESS;
195 static enum ndr_err_code ndr_pull_winreg_SecBuf(struct ndr_pull *ndr, int ndr_flags, struct winreg_SecBuf *r)
197 if (ndr_flags & NDR_SCALARS) {
198 NDR_CHECK(ndr_pull_align(ndr, 5));
199 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
200 NDR_CHECK(ndr_pull_KeySecurityData(ndr, NDR_SCALARS, &r->sd));
201 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->inherit));
202 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
204 if (ndr_flags & NDR_BUFFERS) {
205 NDR_CHECK(ndr_pull_KeySecurityData(ndr, NDR_BUFFERS, &r->sd));
207 return NDR_ERR_SUCCESS;
210 _PUBLIC_ void ndr_print_winreg_SecBuf(struct ndr_print *ndr, const char *name, const struct winreg_SecBuf *r)
212 ndr_print_struct(ndr, name, "winreg_SecBuf");
214 ndr_print_uint32(ndr, "length", r->length);
215 ndr_print_KeySecurityData(ndr, "sd", &r->sd);
216 ndr_print_uint8(ndr, "inherit", r->inherit);
220 static enum ndr_err_code ndr_push_winreg_KeyOptions(struct ndr_push *ndr, int ndr_flags, uint32_t r)
222 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
223 return NDR_ERR_SUCCESS;
226 static enum ndr_err_code ndr_pull_winreg_KeyOptions(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
229 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
231 return NDR_ERR_SUCCESS;
234 _PUBLIC_ void ndr_print_winreg_KeyOptions(struct ndr_print *ndr, const char *name, uint32_t r)
236 ndr_print_uint32(ndr, name, r);
238 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "REG_OPTION_VOLATILE", REG_OPTION_VOLATILE, r);
239 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "REG_OPTION_CREATE_LINK", REG_OPTION_CREATE_LINK, r);
240 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "REG_OPTION_BACKUP_RESTORE", REG_OPTION_BACKUP_RESTORE, r);
241 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "REG_OPTION_OPEN_LINK", REG_OPTION_OPEN_LINK, r);
245 static enum ndr_err_code ndr_push_winreg_CreateAction(struct ndr_push *ndr, int ndr_flags, enum winreg_CreateAction r)
247 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
248 return NDR_ERR_SUCCESS;
251 static enum ndr_err_code ndr_pull_winreg_CreateAction(struct ndr_pull *ndr, int ndr_flags, enum winreg_CreateAction *r)
254 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
256 return NDR_ERR_SUCCESS;
259 _PUBLIC_ void ndr_print_winreg_CreateAction(struct ndr_print *ndr, const char *name, enum winreg_CreateAction r)
261 const char *val = NULL;
264 case REG_ACTION_NONE: val = "REG_ACTION_NONE"; break;
265 case REG_CREATED_NEW_KEY: val = "REG_CREATED_NEW_KEY"; break;
266 case REG_OPENED_EXISTING_KEY: val = "REG_OPENED_EXISTING_KEY"; break;
268 ndr_print_enum(ndr, name, "ENUM", val, r);
271 static enum ndr_err_code ndr_push_winreg_StringBuf(struct ndr_push *ndr, int ndr_flags, const struct winreg_StringBuf *r)
273 if (ndr_flags & NDR_SCALARS) {
274 NDR_CHECK(ndr_push_align(ndr, 5));
275 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, strlen_m_term_null(r->name) * 2));
276 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->size));
277 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
278 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
280 if (ndr_flags & NDR_BUFFERS) {
282 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->size / 2));
283 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
284 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, strlen_m_term_null(r->name) * 2 / 2));
285 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, strlen_m_term_null(r->name) * 2 / 2, sizeof(uint16_t), CH_UTF16));
288 return NDR_ERR_SUCCESS;
291 static enum ndr_err_code ndr_pull_winreg_StringBuf(struct ndr_pull *ndr, int ndr_flags, struct winreg_StringBuf *r)
294 TALLOC_CTX *_mem_save_name_0;
295 if (ndr_flags & NDR_SCALARS) {
296 NDR_CHECK(ndr_pull_align(ndr, 5));
297 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
298 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
299 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
301 NDR_PULL_ALLOC(ndr, r->name);
305 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
307 if (ndr_flags & NDR_BUFFERS) {
309 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
310 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
311 NDR_CHECK(ndr_pull_array_size(ndr, &r->name));
312 NDR_CHECK(ndr_pull_array_length(ndr, &r->name));
313 if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) {
314 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));
316 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16));
317 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
320 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->name, r->size / 2));
323 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->name, r->length / 2));
326 return NDR_ERR_SUCCESS;
329 _PUBLIC_ void ndr_print_winreg_StringBuf(struct ndr_print *ndr, const char *name, const struct winreg_StringBuf *r)
331 ndr_print_struct(ndr, name, "winreg_StringBuf");
333 ndr_print_uint16(ndr, "length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?strlen_m_term_null(r->name) * 2:r->length);
334 ndr_print_uint16(ndr, "size", r->size);
335 ndr_print_ptr(ndr, "name", r->name);
338 ndr_print_string(ndr, "name", r->name);
344 static enum ndr_err_code ndr_push_winreg_ValNameBuf(struct ndr_push *ndr, int ndr_flags, const struct winreg_ValNameBuf *r)
346 if (ndr_flags & NDR_SCALARS) {
347 NDR_CHECK(ndr_push_align(ndr, 5));
348 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, strlen_m_term(r->name) * 2));
349 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->size));
350 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
351 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
353 if (ndr_flags & NDR_BUFFERS) {
355 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->size / 2));
356 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
357 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, strlen_m_term(r->name) * 2 / 2));
358 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, strlen_m_term(r->name) * 2 / 2, sizeof(uint16_t), CH_UTF16));
361 return NDR_ERR_SUCCESS;
364 static enum ndr_err_code ndr_pull_winreg_ValNameBuf(struct ndr_pull *ndr, int ndr_flags, struct winreg_ValNameBuf *r)
367 TALLOC_CTX *_mem_save_name_0;
368 if (ndr_flags & NDR_SCALARS) {
369 NDR_CHECK(ndr_pull_align(ndr, 5));
370 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
371 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
372 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
374 NDR_PULL_ALLOC(ndr, r->name);
378 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
380 if (ndr_flags & NDR_BUFFERS) {
382 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
383 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
384 NDR_CHECK(ndr_pull_array_size(ndr, &r->name));
385 NDR_CHECK(ndr_pull_array_length(ndr, &r->name));
386 if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) {
387 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));
389 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16));
390 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
393 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->name, r->size / 2));
396 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->name, r->length / 2));
399 return NDR_ERR_SUCCESS;
402 _PUBLIC_ void ndr_print_winreg_ValNameBuf(struct ndr_print *ndr, const char *name, const struct winreg_ValNameBuf *r)
404 ndr_print_struct(ndr, name, "winreg_ValNameBuf");
406 ndr_print_uint16(ndr, "length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?strlen_m_term(r->name) * 2:r->length);
407 ndr_print_uint16(ndr, "size", r->size);
408 ndr_print_ptr(ndr, "name", r->name);
411 ndr_print_string(ndr, "name", r->name);
417 _PUBLIC_ enum ndr_err_code ndr_push_winreg_NotifyChangeType(struct ndr_push *ndr, int ndr_flags, uint32_t r)
419 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
420 return NDR_ERR_SUCCESS;
423 _PUBLIC_ enum ndr_err_code ndr_pull_winreg_NotifyChangeType(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
426 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
428 return NDR_ERR_SUCCESS;
431 _PUBLIC_ void ndr_print_winreg_NotifyChangeType(struct ndr_print *ndr, const char *name, uint32_t r)
433 ndr_print_uint32(ndr, name, r);
435 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "REG_NOTIFY_CHANGE_NAME", REG_NOTIFY_CHANGE_NAME, r);
436 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "REG_NOTIFY_CHANGE_ATTRIBUTES", REG_NOTIFY_CHANGE_ATTRIBUTES, r);
437 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "REG_NOTIFY_CHANGE_LAST_SET", REG_NOTIFY_CHANGE_LAST_SET, r);
438 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "REG_NOTIFY_CHANGE_SECURITY", REG_NOTIFY_CHANGE_SECURITY, r);
442 static enum ndr_err_code ndr_push_KeySecurityAttribute(struct ndr_push *ndr, int ndr_flags, const struct KeySecurityAttribute *r)
444 if (ndr_flags & NDR_SCALARS) {
445 NDR_CHECK(ndr_push_align(ndr, 5));
446 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->data_size));
447 NDR_CHECK(ndr_push_KeySecurityData(ndr, NDR_SCALARS, &r->sec_data));
448 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->inherit));
449 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
451 if (ndr_flags & NDR_BUFFERS) {
452 NDR_CHECK(ndr_push_KeySecurityData(ndr, NDR_BUFFERS, &r->sec_data));
454 return NDR_ERR_SUCCESS;
457 static enum ndr_err_code ndr_pull_KeySecurityAttribute(struct ndr_pull *ndr, int ndr_flags, struct KeySecurityAttribute *r)
459 if (ndr_flags & NDR_SCALARS) {
460 NDR_CHECK(ndr_pull_align(ndr, 5));
461 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->data_size));
462 NDR_CHECK(ndr_pull_KeySecurityData(ndr, NDR_SCALARS, &r->sec_data));
463 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->inherit));
464 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
466 if (ndr_flags & NDR_BUFFERS) {
467 NDR_CHECK(ndr_pull_KeySecurityData(ndr, NDR_BUFFERS, &r->sec_data));
469 return NDR_ERR_SUCCESS;
472 _PUBLIC_ void ndr_print_KeySecurityAttribute(struct ndr_print *ndr, const char *name, const struct KeySecurityAttribute *r)
474 ndr_print_struct(ndr, name, "KeySecurityAttribute");
476 ndr_print_uint32(ndr, "data_size", r->data_size);
477 ndr_print_KeySecurityData(ndr, "sec_data", &r->sec_data);
478 ndr_print_uint8(ndr, "inherit", r->inherit);
482 static enum ndr_err_code ndr_push_QueryMultipleValue(struct ndr_push *ndr, int ndr_flags, const struct QueryMultipleValue *r)
484 if (ndr_flags & NDR_SCALARS) {
485 NDR_CHECK(ndr_push_align(ndr, 5));
486 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
487 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->type));
488 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->offset));
489 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
490 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
492 if (ndr_flags & NDR_BUFFERS) {
494 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->name));
497 return NDR_ERR_SUCCESS;
500 static enum ndr_err_code ndr_pull_QueryMultipleValue(struct ndr_pull *ndr, int ndr_flags, struct QueryMultipleValue *r)
503 TALLOC_CTX *_mem_save_name_0;
504 if (ndr_flags & NDR_SCALARS) {
505 NDR_CHECK(ndr_pull_align(ndr, 5));
506 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
508 NDR_PULL_ALLOC(ndr, r->name);
512 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->type));
513 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->offset));
514 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
515 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
517 if (ndr_flags & NDR_BUFFERS) {
519 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
520 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
521 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->name));
522 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
525 return NDR_ERR_SUCCESS;
528 _PUBLIC_ void ndr_print_QueryMultipleValue(struct ndr_print *ndr, const char *name, const struct QueryMultipleValue *r)
530 ndr_print_struct(ndr, name, "QueryMultipleValue");
532 ndr_print_ptr(ndr, "name", r->name);
535 ndr_print_winreg_String(ndr, "name", r->name);
538 ndr_print_winreg_Type(ndr, "type", r->type);
539 ndr_print_uint32(ndr, "offset", r->offset);
540 ndr_print_uint32(ndr, "length", r->length);
544 static enum ndr_err_code ndr_push_winreg_OpenHKCR(struct ndr_push *ndr, int flags, const struct winreg_OpenHKCR *r)
546 if (flags & NDR_IN) {
547 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.system_name));
548 if (r->in.system_name) {
549 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.system_name));
551 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
553 if (flags & NDR_OUT) {
554 if (r->out.handle == NULL) {
555 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
557 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
558 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
560 return NDR_ERR_SUCCESS;
563 static enum ndr_err_code ndr_pull_winreg_OpenHKCR(struct ndr_pull *ndr, int flags, struct winreg_OpenHKCR *r)
565 uint32_t _ptr_system_name;
566 TALLOC_CTX *_mem_save_system_name_0;
567 TALLOC_CTX *_mem_save_handle_0;
568 if (flags & NDR_IN) {
571 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_system_name));
572 if (_ptr_system_name) {
573 NDR_PULL_ALLOC(ndr, r->in.system_name);
575 r->in.system_name = NULL;
577 if (r->in.system_name) {
578 _mem_save_system_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
579 NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0);
580 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.system_name));
581 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0);
583 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
584 NDR_PULL_ALLOC(ndr, r->out.handle);
585 ZERO_STRUCTP(r->out.handle);
587 if (flags & NDR_OUT) {
588 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
589 NDR_PULL_ALLOC(ndr, r->out.handle);
591 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
592 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
593 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
594 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
595 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
597 return NDR_ERR_SUCCESS;
600 _PUBLIC_ void ndr_print_winreg_OpenHKCR(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenHKCR *r)
602 ndr_print_struct(ndr, name, "winreg_OpenHKCR");
604 if (flags & NDR_SET_VALUES) {
605 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
607 if (flags & NDR_IN) {
608 ndr_print_struct(ndr, "in", "winreg_OpenHKCR");
610 ndr_print_ptr(ndr, "system_name", r->in.system_name);
612 if (r->in.system_name) {
613 ndr_print_uint16(ndr, "system_name", *r->in.system_name);
616 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
619 if (flags & NDR_OUT) {
620 ndr_print_struct(ndr, "out", "winreg_OpenHKCR");
622 ndr_print_ptr(ndr, "handle", r->out.handle);
624 ndr_print_policy_handle(ndr, "handle", r->out.handle);
626 ndr_print_WERROR(ndr, "result", r->out.result);
632 static enum ndr_err_code ndr_push_winreg_OpenHKCU(struct ndr_push *ndr, int flags, const struct winreg_OpenHKCU *r)
634 if (flags & NDR_IN) {
635 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.system_name));
636 if (r->in.system_name) {
637 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.system_name));
639 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
641 if (flags & NDR_OUT) {
642 if (r->out.handle == NULL) {
643 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
645 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
646 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
648 return NDR_ERR_SUCCESS;
651 static enum ndr_err_code ndr_pull_winreg_OpenHKCU(struct ndr_pull *ndr, int flags, struct winreg_OpenHKCU *r)
653 uint32_t _ptr_system_name;
654 TALLOC_CTX *_mem_save_system_name_0;
655 TALLOC_CTX *_mem_save_handle_0;
656 if (flags & NDR_IN) {
659 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_system_name));
660 if (_ptr_system_name) {
661 NDR_PULL_ALLOC(ndr, r->in.system_name);
663 r->in.system_name = NULL;
665 if (r->in.system_name) {
666 _mem_save_system_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
667 NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0);
668 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.system_name));
669 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0);
671 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
672 NDR_PULL_ALLOC(ndr, r->out.handle);
673 ZERO_STRUCTP(r->out.handle);
675 if (flags & NDR_OUT) {
676 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
677 NDR_PULL_ALLOC(ndr, r->out.handle);
679 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
680 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
681 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
682 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
683 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
685 return NDR_ERR_SUCCESS;
688 _PUBLIC_ void ndr_print_winreg_OpenHKCU(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenHKCU *r)
690 ndr_print_struct(ndr, name, "winreg_OpenHKCU");
692 if (flags & NDR_SET_VALUES) {
693 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
695 if (flags & NDR_IN) {
696 ndr_print_struct(ndr, "in", "winreg_OpenHKCU");
698 ndr_print_ptr(ndr, "system_name", r->in.system_name);
700 if (r->in.system_name) {
701 ndr_print_uint16(ndr, "system_name", *r->in.system_name);
704 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
707 if (flags & NDR_OUT) {
708 ndr_print_struct(ndr, "out", "winreg_OpenHKCU");
710 ndr_print_ptr(ndr, "handle", r->out.handle);
712 ndr_print_policy_handle(ndr, "handle", r->out.handle);
714 ndr_print_WERROR(ndr, "result", r->out.result);
720 _PUBLIC_ enum ndr_err_code ndr_push_winreg_OpenHKLM(struct ndr_push *ndr, int flags, const struct winreg_OpenHKLM *r)
722 if (flags & NDR_IN) {
723 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.system_name));
724 if (r->in.system_name) {
725 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.system_name));
727 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
729 if (flags & NDR_OUT) {
730 if (r->out.handle == NULL) {
731 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
733 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
734 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
736 return NDR_ERR_SUCCESS;
739 _PUBLIC_ enum ndr_err_code ndr_pull_winreg_OpenHKLM(struct ndr_pull *ndr, int flags, struct winreg_OpenHKLM *r)
741 uint32_t _ptr_system_name;
742 TALLOC_CTX *_mem_save_system_name_0;
743 TALLOC_CTX *_mem_save_handle_0;
744 if (flags & NDR_IN) {
747 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_system_name));
748 if (_ptr_system_name) {
749 NDR_PULL_ALLOC(ndr, r->in.system_name);
751 r->in.system_name = NULL;
753 if (r->in.system_name) {
754 _mem_save_system_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
755 NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0);
756 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.system_name));
757 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0);
759 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
760 NDR_PULL_ALLOC(ndr, r->out.handle);
761 ZERO_STRUCTP(r->out.handle);
763 if (flags & NDR_OUT) {
764 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
765 NDR_PULL_ALLOC(ndr, r->out.handle);
767 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
768 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
769 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
770 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
771 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
773 return NDR_ERR_SUCCESS;
776 _PUBLIC_ void ndr_print_winreg_OpenHKLM(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenHKLM *r)
778 ndr_print_struct(ndr, name, "winreg_OpenHKLM");
780 if (flags & NDR_SET_VALUES) {
781 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
783 if (flags & NDR_IN) {
784 ndr_print_struct(ndr, "in", "winreg_OpenHKLM");
786 ndr_print_ptr(ndr, "system_name", r->in.system_name);
788 if (r->in.system_name) {
789 ndr_print_uint16(ndr, "system_name", *r->in.system_name);
792 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
795 if (flags & NDR_OUT) {
796 ndr_print_struct(ndr, "out", "winreg_OpenHKLM");
798 ndr_print_ptr(ndr, "handle", r->out.handle);
800 ndr_print_policy_handle(ndr, "handle", r->out.handle);
802 ndr_print_WERROR(ndr, "result", r->out.result);
808 static enum ndr_err_code ndr_push_winreg_OpenHKPD(struct ndr_push *ndr, int flags, const struct winreg_OpenHKPD *r)
810 if (flags & NDR_IN) {
811 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.system_name));
812 if (r->in.system_name) {
813 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.system_name));
815 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
817 if (flags & NDR_OUT) {
818 if (r->out.handle == NULL) {
819 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
821 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
822 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
824 return NDR_ERR_SUCCESS;
827 static enum ndr_err_code ndr_pull_winreg_OpenHKPD(struct ndr_pull *ndr, int flags, struct winreg_OpenHKPD *r)
829 uint32_t _ptr_system_name;
830 TALLOC_CTX *_mem_save_system_name_0;
831 TALLOC_CTX *_mem_save_handle_0;
832 if (flags & NDR_IN) {
835 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_system_name));
836 if (_ptr_system_name) {
837 NDR_PULL_ALLOC(ndr, r->in.system_name);
839 r->in.system_name = NULL;
841 if (r->in.system_name) {
842 _mem_save_system_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
843 NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0);
844 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.system_name));
845 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0);
847 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
848 NDR_PULL_ALLOC(ndr, r->out.handle);
849 ZERO_STRUCTP(r->out.handle);
851 if (flags & NDR_OUT) {
852 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
853 NDR_PULL_ALLOC(ndr, r->out.handle);
855 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
856 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
857 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
858 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
859 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
861 return NDR_ERR_SUCCESS;
864 _PUBLIC_ void ndr_print_winreg_OpenHKPD(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenHKPD *r)
866 ndr_print_struct(ndr, name, "winreg_OpenHKPD");
868 if (flags & NDR_SET_VALUES) {
869 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
871 if (flags & NDR_IN) {
872 ndr_print_struct(ndr, "in", "winreg_OpenHKPD");
874 ndr_print_ptr(ndr, "system_name", r->in.system_name);
876 if (r->in.system_name) {
877 ndr_print_uint16(ndr, "system_name", *r->in.system_name);
880 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
883 if (flags & NDR_OUT) {
884 ndr_print_struct(ndr, "out", "winreg_OpenHKPD");
886 ndr_print_ptr(ndr, "handle", r->out.handle);
888 ndr_print_policy_handle(ndr, "handle", r->out.handle);
890 ndr_print_WERROR(ndr, "result", r->out.result);
896 static enum ndr_err_code ndr_push_winreg_OpenHKU(struct ndr_push *ndr, int flags, const struct winreg_OpenHKU *r)
898 if (flags & NDR_IN) {
899 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.system_name));
900 if (r->in.system_name) {
901 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.system_name));
903 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
905 if (flags & NDR_OUT) {
906 if (r->out.handle == NULL) {
907 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
909 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
910 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
912 return NDR_ERR_SUCCESS;
915 static enum ndr_err_code ndr_pull_winreg_OpenHKU(struct ndr_pull *ndr, int flags, struct winreg_OpenHKU *r)
917 uint32_t _ptr_system_name;
918 TALLOC_CTX *_mem_save_system_name_0;
919 TALLOC_CTX *_mem_save_handle_0;
920 if (flags & NDR_IN) {
923 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_system_name));
924 if (_ptr_system_name) {
925 NDR_PULL_ALLOC(ndr, r->in.system_name);
927 r->in.system_name = NULL;
929 if (r->in.system_name) {
930 _mem_save_system_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
931 NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0);
932 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.system_name));
933 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0);
935 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
936 NDR_PULL_ALLOC(ndr, r->out.handle);
937 ZERO_STRUCTP(r->out.handle);
939 if (flags & NDR_OUT) {
940 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
941 NDR_PULL_ALLOC(ndr, r->out.handle);
943 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
944 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
945 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
946 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
947 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
949 return NDR_ERR_SUCCESS;
952 _PUBLIC_ void ndr_print_winreg_OpenHKU(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenHKU *r)
954 ndr_print_struct(ndr, name, "winreg_OpenHKU");
956 if (flags & NDR_SET_VALUES) {
957 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
959 if (flags & NDR_IN) {
960 ndr_print_struct(ndr, "in", "winreg_OpenHKU");
962 ndr_print_ptr(ndr, "system_name", r->in.system_name);
964 if (r->in.system_name) {
965 ndr_print_uint16(ndr, "system_name", *r->in.system_name);
968 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
971 if (flags & NDR_OUT) {
972 ndr_print_struct(ndr, "out", "winreg_OpenHKU");
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_CloseKey(struct ndr_push *ndr, int flags, const struct winreg_CloseKey *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));
992 if (flags & NDR_OUT) {
993 if (r->out.handle == NULL) {
994 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
996 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
997 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
999 return NDR_ERR_SUCCESS;
1002 _PUBLIC_ enum ndr_err_code ndr_pull_winreg_CloseKey(struct ndr_pull *ndr, int flags, struct winreg_CloseKey *r)
1004 TALLOC_CTX *_mem_save_handle_0;
1005 if (flags & NDR_IN) {
1006 ZERO_STRUCT(r->out);
1008 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1009 NDR_PULL_ALLOC(ndr, r->in.handle);
1011 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
1012 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
1013 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
1014 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
1015 NDR_PULL_ALLOC(ndr, r->out.handle);
1016 *r->out.handle = *r->in.handle;
1018 if (flags & NDR_OUT) {
1019 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1020 NDR_PULL_ALLOC(ndr, r->out.handle);
1022 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
1023 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
1024 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
1025 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
1026 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
1028 return NDR_ERR_SUCCESS;
1031 _PUBLIC_ void ndr_print_winreg_CloseKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_CloseKey *r)
1033 ndr_print_struct(ndr, name, "winreg_CloseKey");
1035 if (flags & NDR_SET_VALUES) {
1036 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1038 if (flags & NDR_IN) {
1039 ndr_print_struct(ndr, "in", "winreg_CloseKey");
1041 ndr_print_ptr(ndr, "handle", r->in.handle);
1043 ndr_print_policy_handle(ndr, "handle", r->in.handle);
1047 if (flags & NDR_OUT) {
1048 ndr_print_struct(ndr, "out", "winreg_CloseKey");
1050 ndr_print_ptr(ndr, "handle", r->out.handle);
1052 ndr_print_policy_handle(ndr, "handle", r->out.handle);
1054 ndr_print_WERROR(ndr, "result", r->out.result);
1060 _PUBLIC_ enum ndr_err_code ndr_push_winreg_CreateKey(struct ndr_push *ndr, int flags, const struct winreg_CreateKey *r)
1062 if (flags & NDR_IN) {
1063 if (r->in.handle == NULL) {
1064 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1066 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
1067 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.name));
1068 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.keyclass));
1069 NDR_CHECK(ndr_push_winreg_KeyOptions(ndr, NDR_SCALARS, r->in.options));
1070 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
1071 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.secdesc));
1072 if (r->in.secdesc) {
1073 NDR_CHECK(ndr_push_winreg_SecBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc));
1075 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.action_taken));
1076 if (r->in.action_taken) {
1077 NDR_CHECK(ndr_push_winreg_CreateAction(ndr, NDR_SCALARS, *r->in.action_taken));
1080 if (flags & NDR_OUT) {
1081 if (r->out.new_handle == NULL) {
1082 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1084 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.new_handle));
1085 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.action_taken));
1086 if (r->out.action_taken) {
1087 NDR_CHECK(ndr_push_winreg_CreateAction(ndr, NDR_SCALARS, *r->out.action_taken));
1089 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
1091 return NDR_ERR_SUCCESS;
1094 _PUBLIC_ enum ndr_err_code ndr_pull_winreg_CreateKey(struct ndr_pull *ndr, int flags, struct winreg_CreateKey *r)
1096 uint32_t _ptr_secdesc;
1097 uint32_t _ptr_action_taken;
1098 TALLOC_CTX *_mem_save_handle_0;
1099 TALLOC_CTX *_mem_save_secdesc_0;
1100 TALLOC_CTX *_mem_save_new_handle_0;
1101 TALLOC_CTX *_mem_save_action_taken_0;
1102 if (flags & NDR_IN) {
1103 ZERO_STRUCT(r->out);
1105 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1106 NDR_PULL_ALLOC(ndr, r->in.handle);
1108 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
1109 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
1110 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
1111 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
1112 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.name));
1113 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.keyclass));
1114 NDR_CHECK(ndr_pull_winreg_KeyOptions(ndr, NDR_SCALARS, &r->in.options));
1115 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
1116 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
1118 NDR_PULL_ALLOC(ndr, r->in.secdesc);
1120 r->in.secdesc = NULL;
1122 if (r->in.secdesc) {
1123 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
1124 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc, 0);
1125 NDR_CHECK(ndr_pull_winreg_SecBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc));
1126 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
1128 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_action_taken));
1129 if (_ptr_action_taken) {
1130 NDR_PULL_ALLOC(ndr, r->in.action_taken);
1132 r->in.action_taken = NULL;
1134 if (r->in.action_taken) {
1135 _mem_save_action_taken_0 = NDR_PULL_GET_MEM_CTX(ndr);
1136 NDR_PULL_SET_MEM_CTX(ndr, r->in.action_taken, 0);
1137 NDR_CHECK(ndr_pull_winreg_CreateAction(ndr, NDR_SCALARS, r->in.action_taken));
1138 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_action_taken_0, 0);
1140 NDR_PULL_ALLOC(ndr, r->out.new_handle);
1141 ZERO_STRUCTP(r->out.new_handle);
1143 if (flags & NDR_OUT) {
1144 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1145 NDR_PULL_ALLOC(ndr, r->out.new_handle);
1147 _mem_save_new_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
1148 NDR_PULL_SET_MEM_CTX(ndr, r->out.new_handle, LIBNDR_FLAG_REF_ALLOC);
1149 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.new_handle));
1150 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_new_handle_0, LIBNDR_FLAG_REF_ALLOC);
1151 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_action_taken));
1152 if (_ptr_action_taken) {
1153 NDR_PULL_ALLOC(ndr, r->out.action_taken);
1155 r->out.action_taken = NULL;
1157 if (r->out.action_taken) {
1158 _mem_save_action_taken_0 = NDR_PULL_GET_MEM_CTX(ndr);
1159 NDR_PULL_SET_MEM_CTX(ndr, r->out.action_taken, 0);
1160 NDR_CHECK(ndr_pull_winreg_CreateAction(ndr, NDR_SCALARS, r->out.action_taken));
1161 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_action_taken_0, 0);
1163 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
1165 return NDR_ERR_SUCCESS;
1168 _PUBLIC_ void ndr_print_winreg_CreateKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_CreateKey *r)
1170 ndr_print_struct(ndr, name, "winreg_CreateKey");
1172 if (flags & NDR_SET_VALUES) {
1173 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1175 if (flags & NDR_IN) {
1176 ndr_print_struct(ndr, "in", "winreg_CreateKey");
1178 ndr_print_ptr(ndr, "handle", r->in.handle);
1180 ndr_print_policy_handle(ndr, "handle", r->in.handle);
1182 ndr_print_winreg_String(ndr, "name", &r->in.name);
1183 ndr_print_winreg_String(ndr, "keyclass", &r->in.keyclass);
1184 ndr_print_winreg_KeyOptions(ndr, "options", r->in.options);
1185 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
1186 ndr_print_ptr(ndr, "secdesc", r->in.secdesc);
1188 if (r->in.secdesc) {
1189 ndr_print_winreg_SecBuf(ndr, "secdesc", r->in.secdesc);
1192 ndr_print_ptr(ndr, "action_taken", r->in.action_taken);
1194 if (r->in.action_taken) {
1195 ndr_print_winreg_CreateAction(ndr, "action_taken", *r->in.action_taken);
1200 if (flags & NDR_OUT) {
1201 ndr_print_struct(ndr, "out", "winreg_CreateKey");
1203 ndr_print_ptr(ndr, "new_handle", r->out.new_handle);
1205 ndr_print_policy_handle(ndr, "new_handle", r->out.new_handle);
1207 ndr_print_ptr(ndr, "action_taken", r->out.action_taken);
1209 if (r->out.action_taken) {
1210 ndr_print_winreg_CreateAction(ndr, "action_taken", *r->out.action_taken);
1213 ndr_print_WERROR(ndr, "result", r->out.result);
1219 _PUBLIC_ enum ndr_err_code ndr_push_winreg_DeleteKey(struct ndr_push *ndr, int flags, const struct winreg_DeleteKey *r)
1221 if (flags & NDR_IN) {
1222 if (r->in.handle == NULL) {
1223 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1225 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
1226 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.key));
1228 if (flags & NDR_OUT) {
1229 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
1231 return NDR_ERR_SUCCESS;
1234 _PUBLIC_ enum ndr_err_code ndr_pull_winreg_DeleteKey(struct ndr_pull *ndr, int flags, struct winreg_DeleteKey *r)
1236 TALLOC_CTX *_mem_save_handle_0;
1237 if (flags & NDR_IN) {
1238 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1239 NDR_PULL_ALLOC(ndr, r->in.handle);
1241 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
1242 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
1243 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
1244 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
1245 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.key));
1247 if (flags & NDR_OUT) {
1248 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
1250 return NDR_ERR_SUCCESS;
1253 _PUBLIC_ void ndr_print_winreg_DeleteKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_DeleteKey *r)
1255 ndr_print_struct(ndr, name, "winreg_DeleteKey");
1257 if (flags & NDR_SET_VALUES) {
1258 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1260 if (flags & NDR_IN) {
1261 ndr_print_struct(ndr, "in", "winreg_DeleteKey");
1263 ndr_print_ptr(ndr, "handle", r->in.handle);
1265 ndr_print_policy_handle(ndr, "handle", r->in.handle);
1267 ndr_print_winreg_String(ndr, "key", &r->in.key);
1270 if (flags & NDR_OUT) {
1271 ndr_print_struct(ndr, "out", "winreg_DeleteKey");
1273 ndr_print_WERROR(ndr, "result", r->out.result);
1279 static enum ndr_err_code ndr_push_winreg_DeleteValue(struct ndr_push *ndr, int flags, const struct winreg_DeleteValue *r)
1281 if (flags & NDR_IN) {
1282 if (r->in.handle == NULL) {
1283 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1285 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
1286 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.value));
1288 if (flags & NDR_OUT) {
1289 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
1291 return NDR_ERR_SUCCESS;
1294 static enum ndr_err_code ndr_pull_winreg_DeleteValue(struct ndr_pull *ndr, int flags, struct winreg_DeleteValue *r)
1296 TALLOC_CTX *_mem_save_handle_0;
1297 if (flags & NDR_IN) {
1298 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1299 NDR_PULL_ALLOC(ndr, r->in.handle);
1301 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
1302 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
1303 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
1304 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
1305 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.value));
1307 if (flags & NDR_OUT) {
1308 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
1310 return NDR_ERR_SUCCESS;
1313 _PUBLIC_ void ndr_print_winreg_DeleteValue(struct ndr_print *ndr, const char *name, int flags, const struct winreg_DeleteValue *r)
1315 ndr_print_struct(ndr, name, "winreg_DeleteValue");
1317 if (flags & NDR_SET_VALUES) {
1318 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1320 if (flags & NDR_IN) {
1321 ndr_print_struct(ndr, "in", "winreg_DeleteValue");
1323 ndr_print_ptr(ndr, "handle", r->in.handle);
1325 ndr_print_policy_handle(ndr, "handle", r->in.handle);
1327 ndr_print_winreg_String(ndr, "value", &r->in.value);
1330 if (flags & NDR_OUT) {
1331 ndr_print_struct(ndr, "out", "winreg_DeleteValue");
1333 ndr_print_WERROR(ndr, "result", r->out.result);
1339 _PUBLIC_ enum ndr_err_code ndr_push_winreg_EnumKey(struct ndr_push *ndr, int flags, const struct winreg_EnumKey *r)
1341 if (flags & NDR_IN) {
1342 if (r->in.handle == NULL) {
1343 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1345 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
1346 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.enum_index));
1347 if (r->in.name == NULL) {
1348 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1350 NDR_CHECK(ndr_push_winreg_StringBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.name));
1351 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.keyclass));
1352 if (r->in.keyclass) {
1353 NDR_CHECK(ndr_push_winreg_StringBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.keyclass));
1355 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.last_changed_time));
1356 if (r->in.last_changed_time) {
1357 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, *r->in.last_changed_time));
1360 if (flags & NDR_OUT) {
1361 if (r->out.name == NULL) {
1362 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1364 NDR_CHECK(ndr_push_winreg_StringBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.name));
1365 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.keyclass));
1366 if (r->out.keyclass) {
1367 NDR_CHECK(ndr_push_winreg_StringBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.keyclass));
1369 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.last_changed_time));
1370 if (r->out.last_changed_time) {
1371 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, *r->out.last_changed_time));
1373 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
1375 return NDR_ERR_SUCCESS;
1378 _PUBLIC_ enum ndr_err_code ndr_pull_winreg_EnumKey(struct ndr_pull *ndr, int flags, struct winreg_EnumKey *r)
1380 uint32_t _ptr_keyclass;
1381 uint32_t _ptr_last_changed_time;
1382 TALLOC_CTX *_mem_save_handle_0;
1383 TALLOC_CTX *_mem_save_name_0;
1384 TALLOC_CTX *_mem_save_keyclass_0;
1385 TALLOC_CTX *_mem_save_last_changed_time_0;
1386 if (flags & NDR_IN) {
1387 ZERO_STRUCT(r->out);
1389 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1390 NDR_PULL_ALLOC(ndr, r->in.handle);
1392 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
1393 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
1394 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
1395 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
1396 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.enum_index));
1397 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1398 NDR_PULL_ALLOC(ndr, r->in.name);
1400 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
1401 NDR_PULL_SET_MEM_CTX(ndr, r->in.name, LIBNDR_FLAG_REF_ALLOC);
1402 NDR_CHECK(ndr_pull_winreg_StringBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.name));
1403 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, LIBNDR_FLAG_REF_ALLOC);
1404 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_keyclass));
1405 if (_ptr_keyclass) {
1406 NDR_PULL_ALLOC(ndr, r->in.keyclass);
1408 r->in.keyclass = NULL;
1410 if (r->in.keyclass) {
1411 _mem_save_keyclass_0 = NDR_PULL_GET_MEM_CTX(ndr);
1412 NDR_PULL_SET_MEM_CTX(ndr, r->in.keyclass, 0);
1413 NDR_CHECK(ndr_pull_winreg_StringBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.keyclass));
1414 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_keyclass_0, 0);
1416 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_last_changed_time));
1417 if (_ptr_last_changed_time) {
1418 NDR_PULL_ALLOC(ndr, r->in.last_changed_time);
1420 r->in.last_changed_time = NULL;
1422 if (r->in.last_changed_time) {
1423 _mem_save_last_changed_time_0 = NDR_PULL_GET_MEM_CTX(ndr);
1424 NDR_PULL_SET_MEM_CTX(ndr, r->in.last_changed_time, 0);
1425 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, r->in.last_changed_time));
1426 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_last_changed_time_0, 0);
1428 NDR_PULL_ALLOC(ndr, r->out.name);
1429 *r->out.name = *r->in.name;
1431 if (flags & NDR_OUT) {
1432 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1433 NDR_PULL_ALLOC(ndr, r->out.name);
1435 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
1436 NDR_PULL_SET_MEM_CTX(ndr, r->out.name, LIBNDR_FLAG_REF_ALLOC);
1437 NDR_CHECK(ndr_pull_winreg_StringBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.name));
1438 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, LIBNDR_FLAG_REF_ALLOC);
1439 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_keyclass));
1440 if (_ptr_keyclass) {
1441 NDR_PULL_ALLOC(ndr, r->out.keyclass);
1443 r->out.keyclass = NULL;
1445 if (r->out.keyclass) {
1446 _mem_save_keyclass_0 = NDR_PULL_GET_MEM_CTX(ndr);
1447 NDR_PULL_SET_MEM_CTX(ndr, r->out.keyclass, 0);
1448 NDR_CHECK(ndr_pull_winreg_StringBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.keyclass));
1449 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_keyclass_0, 0);
1451 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_last_changed_time));
1452 if (_ptr_last_changed_time) {
1453 NDR_PULL_ALLOC(ndr, r->out.last_changed_time);
1455 r->out.last_changed_time = NULL;
1457 if (r->out.last_changed_time) {
1458 _mem_save_last_changed_time_0 = NDR_PULL_GET_MEM_CTX(ndr);
1459 NDR_PULL_SET_MEM_CTX(ndr, r->out.last_changed_time, 0);
1460 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, r->out.last_changed_time));
1461 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_last_changed_time_0, 0);
1463 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
1465 return NDR_ERR_SUCCESS;
1468 _PUBLIC_ void ndr_print_winreg_EnumKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_EnumKey *r)
1470 ndr_print_struct(ndr, name, "winreg_EnumKey");
1472 if (flags & NDR_SET_VALUES) {
1473 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1475 if (flags & NDR_IN) {
1476 ndr_print_struct(ndr, "in", "winreg_EnumKey");
1478 ndr_print_ptr(ndr, "handle", r->in.handle);
1480 ndr_print_policy_handle(ndr, "handle", r->in.handle);
1482 ndr_print_uint32(ndr, "enum_index", r->in.enum_index);
1483 ndr_print_ptr(ndr, "name", r->in.name);
1485 ndr_print_winreg_StringBuf(ndr, "name", r->in.name);
1487 ndr_print_ptr(ndr, "keyclass", r->in.keyclass);
1489 if (r->in.keyclass) {
1490 ndr_print_winreg_StringBuf(ndr, "keyclass", r->in.keyclass);
1493 ndr_print_ptr(ndr, "last_changed_time", r->in.last_changed_time);
1495 if (r->in.last_changed_time) {
1496 ndr_print_NTTIME(ndr, "last_changed_time", *r->in.last_changed_time);
1501 if (flags & NDR_OUT) {
1502 ndr_print_struct(ndr, "out", "winreg_EnumKey");
1504 ndr_print_ptr(ndr, "name", r->out.name);
1506 ndr_print_winreg_StringBuf(ndr, "name", r->out.name);
1508 ndr_print_ptr(ndr, "keyclass", r->out.keyclass);
1510 if (r->out.keyclass) {
1511 ndr_print_winreg_StringBuf(ndr, "keyclass", r->out.keyclass);
1514 ndr_print_ptr(ndr, "last_changed_time", r->out.last_changed_time);
1516 if (r->out.last_changed_time) {
1517 ndr_print_NTTIME(ndr, "last_changed_time", *r->out.last_changed_time);
1520 ndr_print_WERROR(ndr, "result", r->out.result);
1526 _PUBLIC_ enum ndr_err_code ndr_push_winreg_EnumValue(struct ndr_push *ndr, int flags, const struct winreg_EnumValue *r)
1528 if (flags & NDR_IN) {
1529 if (r->in.handle == NULL) {
1530 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1532 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
1533 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.enum_index));
1534 if (r->in.name == NULL) {
1535 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1537 NDR_CHECK(ndr_push_winreg_ValNameBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.name));
1538 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.type));
1540 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->in.type));
1542 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.value));
1544 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, *r->in.size));
1545 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
1546 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, *r->in.length));
1547 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.value, *r->in.length));
1549 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.size));
1551 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.size));
1553 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.length));
1555 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.length));
1558 if (flags & NDR_OUT) {
1559 if (r->out.name == NULL) {
1560 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1562 NDR_CHECK(ndr_push_winreg_ValNameBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.name));
1563 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.type));
1565 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
1567 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.value));
1569 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, *r->out.size));
1570 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
1571 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, *r->out.length));
1572 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.value, *r->out.length));
1574 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.size));
1576 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.size));
1578 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.length));
1579 if (r->out.length) {
1580 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.length));
1582 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
1584 return NDR_ERR_SUCCESS;
1587 _PUBLIC_ enum ndr_err_code ndr_pull_winreg_EnumValue(struct ndr_pull *ndr, int flags, struct winreg_EnumValue *r)
1590 uint32_t _ptr_value;
1592 uint32_t _ptr_length;
1593 TALLOC_CTX *_mem_save_handle_0;
1594 TALLOC_CTX *_mem_save_name_0;
1595 TALLOC_CTX *_mem_save_type_0;
1596 TALLOC_CTX *_mem_save_value_0;
1597 TALLOC_CTX *_mem_save_size_0;
1598 TALLOC_CTX *_mem_save_length_0;
1599 if (flags & NDR_IN) {
1600 ZERO_STRUCT(r->out);
1602 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1603 NDR_PULL_ALLOC(ndr, r->in.handle);
1605 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
1606 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
1607 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
1608 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
1609 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.enum_index));
1610 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1611 NDR_PULL_ALLOC(ndr, r->in.name);
1613 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
1614 NDR_PULL_SET_MEM_CTX(ndr, r->in.name, LIBNDR_FLAG_REF_ALLOC);
1615 NDR_CHECK(ndr_pull_winreg_ValNameBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.name));
1616 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, LIBNDR_FLAG_REF_ALLOC);
1617 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_type));
1619 NDR_PULL_ALLOC(ndr, r->in.type);
1624 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
1625 NDR_PULL_SET_MEM_CTX(ndr, r->in.type, 0);
1626 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->in.type));
1627 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, 0);
1629 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_value));
1631 NDR_PULL_ALLOC(ndr, r->in.value);
1636 _mem_save_value_0 = NDR_PULL_GET_MEM_CTX(ndr);
1637 NDR_PULL_SET_MEM_CTX(ndr, r->in.value, 0);
1638 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value));
1639 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value));
1640 if (ndr_get_array_length(ndr, &r->in.value) > ndr_get_array_size(ndr, &r->in.value)) {
1641 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));
1643 NDR_PULL_ALLOC_N(ndr, r->in.value, ndr_get_array_size(ndr, &r->in.value));
1644 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.value, ndr_get_array_length(ndr, &r->in.value)));
1645 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_0, 0);
1647 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_size));
1649 NDR_PULL_ALLOC(ndr, r->in.size);
1654 _mem_save_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
1655 NDR_PULL_SET_MEM_CTX(ndr, r->in.size, 0);
1656 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.size));
1657 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_size_0, 0);
1659 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_length));
1661 NDR_PULL_ALLOC(ndr, r->in.length);
1663 r->in.length = NULL;
1666 _mem_save_length_0 = NDR_PULL_GET_MEM_CTX(ndr);
1667 NDR_PULL_SET_MEM_CTX(ndr, r->in.length, 0);
1668 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.length));
1669 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_length_0, 0);
1671 NDR_PULL_ALLOC(ndr, r->out.name);
1672 *r->out.name = *r->in.name;
1674 if (r->in.size == NULL) return ndr_pull_error(ndr, NDR_ERR_INVALID_POINTER, "NULL Pointer for size_is()");
1675 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.value, *r->in.size));
1678 if (r->in.length == NULL) return ndr_pull_error(ndr, NDR_ERR_INVALID_POINTER, "NULL Pointer for length_is()");
1679 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->in.value, *r->in.length));
1682 if (flags & NDR_OUT) {
1683 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1684 NDR_PULL_ALLOC(ndr, r->out.name);
1686 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
1687 NDR_PULL_SET_MEM_CTX(ndr, r->out.name, LIBNDR_FLAG_REF_ALLOC);
1688 NDR_CHECK(ndr_pull_winreg_ValNameBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.name));
1689 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, LIBNDR_FLAG_REF_ALLOC);
1690 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_type));
1692 NDR_PULL_ALLOC(ndr, r->out.type);
1697 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
1698 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, 0);
1699 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
1700 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, 0);
1702 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_value));
1704 NDR_PULL_ALLOC(ndr, r->out.value);
1706 r->out.value = NULL;
1709 _mem_save_value_0 = NDR_PULL_GET_MEM_CTX(ndr);
1710 NDR_PULL_SET_MEM_CTX(ndr, r->out.value, 0);
1711 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.value));
1712 NDR_CHECK(ndr_pull_array_length(ndr, &r->out.value));
1713 if (ndr_get_array_length(ndr, &r->out.value) > ndr_get_array_size(ndr, &r->out.value)) {
1714 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));
1716 NDR_PULL_ALLOC_N(ndr, r->out.value, ndr_get_array_size(ndr, &r->out.value));
1717 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.value, ndr_get_array_length(ndr, &r->out.value)));
1718 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_0, 0);
1720 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_size));
1722 NDR_PULL_ALLOC(ndr, r->out.size);
1727 _mem_save_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
1728 NDR_PULL_SET_MEM_CTX(ndr, r->out.size, 0);
1729 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.size));
1730 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_size_0, 0);
1732 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_length));
1734 NDR_PULL_ALLOC(ndr, r->out.length);
1736 r->out.length = NULL;
1738 if (r->out.length) {
1739 _mem_save_length_0 = NDR_PULL_GET_MEM_CTX(ndr);
1740 NDR_PULL_SET_MEM_CTX(ndr, r->out.length, 0);
1741 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.length));
1742 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_length_0, 0);
1744 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
1746 if (r->out.size == NULL) return ndr_pull_error(ndr, NDR_ERR_INVALID_POINTER, "NULL Pointer for size_is()");
1747 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.value, *r->out.size));
1750 if (r->out.length == NULL) return ndr_pull_error(ndr, NDR_ERR_INVALID_POINTER, "NULL Pointer for length_is()");
1751 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->out.value, *r->out.length));
1754 return NDR_ERR_SUCCESS;
1757 _PUBLIC_ void ndr_print_winreg_EnumValue(struct ndr_print *ndr, const char *name, int flags, const struct winreg_EnumValue *r)
1759 ndr_print_struct(ndr, name, "winreg_EnumValue");
1761 if (flags & NDR_SET_VALUES) {
1762 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1764 if (flags & NDR_IN) {
1765 ndr_print_struct(ndr, "in", "winreg_EnumValue");
1767 ndr_print_ptr(ndr, "handle", r->in.handle);
1769 ndr_print_policy_handle(ndr, "handle", r->in.handle);
1771 ndr_print_uint32(ndr, "enum_index", r->in.enum_index);
1772 ndr_print_ptr(ndr, "name", r->in.name);
1774 ndr_print_winreg_ValNameBuf(ndr, "name", r->in.name);
1776 ndr_print_ptr(ndr, "type", r->in.type);
1779 ndr_print_winreg_Type(ndr, "type", *r->in.type);
1782 ndr_print_ptr(ndr, "value", r->in.value);
1785 if (r->in.length == NULL) return;
1786 ndr_print_array_uint8(ndr, "value", r->in.value, *r->in.length);
1789 ndr_print_ptr(ndr, "size", r->in.size);
1792 ndr_print_uint32(ndr, "size", *r->in.size);
1795 ndr_print_ptr(ndr, "length", r->in.length);
1798 ndr_print_uint32(ndr, "length", *r->in.length);
1803 if (flags & NDR_OUT) {
1804 ndr_print_struct(ndr, "out", "winreg_EnumValue");
1806 ndr_print_ptr(ndr, "name", r->out.name);
1808 ndr_print_winreg_ValNameBuf(ndr, "name", r->out.name);
1810 ndr_print_ptr(ndr, "type", r->out.type);
1813 ndr_print_winreg_Type(ndr, "type", *r->out.type);
1816 ndr_print_ptr(ndr, "value", r->out.value);
1819 if (r->out.length == NULL) return;
1820 ndr_print_array_uint8(ndr, "value", r->out.value, *r->out.length);
1823 ndr_print_ptr(ndr, "size", r->out.size);
1826 ndr_print_uint32(ndr, "size", *r->out.size);
1829 ndr_print_ptr(ndr, "length", r->out.length);
1831 if (r->out.length) {
1832 ndr_print_uint32(ndr, "length", *r->out.length);
1835 ndr_print_WERROR(ndr, "result", r->out.result);
1841 _PUBLIC_ enum ndr_err_code ndr_push_winreg_FlushKey(struct ndr_push *ndr, int flags, const struct winreg_FlushKey *r)
1843 if (flags & NDR_IN) {
1844 if (r->in.handle == NULL) {
1845 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1847 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
1849 if (flags & NDR_OUT) {
1850 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
1852 return NDR_ERR_SUCCESS;
1855 _PUBLIC_ enum ndr_err_code ndr_pull_winreg_FlushKey(struct ndr_pull *ndr, int flags, struct winreg_FlushKey *r)
1857 TALLOC_CTX *_mem_save_handle_0;
1858 if (flags & NDR_IN) {
1859 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1860 NDR_PULL_ALLOC(ndr, r->in.handle);
1862 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
1863 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
1864 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
1865 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
1867 if (flags & NDR_OUT) {
1868 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
1870 return NDR_ERR_SUCCESS;
1873 _PUBLIC_ void ndr_print_winreg_FlushKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_FlushKey *r)
1875 ndr_print_struct(ndr, name, "winreg_FlushKey");
1877 if (flags & NDR_SET_VALUES) {
1878 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1880 if (flags & NDR_IN) {
1881 ndr_print_struct(ndr, "in", "winreg_FlushKey");
1883 ndr_print_ptr(ndr, "handle", r->in.handle);
1885 ndr_print_policy_handle(ndr, "handle", r->in.handle);
1889 if (flags & NDR_OUT) {
1890 ndr_print_struct(ndr, "out", "winreg_FlushKey");
1892 ndr_print_WERROR(ndr, "result", r->out.result);
1898 _PUBLIC_ enum ndr_err_code ndr_push_winreg_GetKeySecurity(struct ndr_push *ndr, int flags, const struct winreg_GetKeySecurity *r)
1900 if (flags & NDR_IN) {
1901 if (r->in.handle == NULL) {
1902 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1904 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
1905 NDR_CHECK(ndr_push_security_secinfo(ndr, NDR_SCALARS, r->in.sec_info));
1906 if (r->in.sd == NULL) {
1907 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1909 NDR_CHECK(ndr_push_KeySecurityData(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sd));
1911 if (flags & NDR_OUT) {
1912 if (r->out.sd == NULL) {
1913 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1915 NDR_CHECK(ndr_push_KeySecurityData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.sd));
1916 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
1918 return NDR_ERR_SUCCESS;
1921 _PUBLIC_ enum ndr_err_code ndr_pull_winreg_GetKeySecurity(struct ndr_pull *ndr, int flags, struct winreg_GetKeySecurity *r)
1923 TALLOC_CTX *_mem_save_handle_0;
1924 TALLOC_CTX *_mem_save_sd_0;
1925 if (flags & NDR_IN) {
1926 ZERO_STRUCT(r->out);
1928 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1929 NDR_PULL_ALLOC(ndr, r->in.handle);
1931 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
1932 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
1933 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
1934 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
1935 NDR_CHECK(ndr_pull_security_secinfo(ndr, NDR_SCALARS, &r->in.sec_info));
1936 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1937 NDR_PULL_ALLOC(ndr, r->in.sd);
1939 _mem_save_sd_0 = NDR_PULL_GET_MEM_CTX(ndr);
1940 NDR_PULL_SET_MEM_CTX(ndr, r->in.sd, LIBNDR_FLAG_REF_ALLOC);
1941 NDR_CHECK(ndr_pull_KeySecurityData(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sd));
1942 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sd_0, LIBNDR_FLAG_REF_ALLOC);
1943 NDR_PULL_ALLOC(ndr, r->out.sd);
1944 *r->out.sd = *r->in.sd;
1946 if (flags & NDR_OUT) {
1947 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1948 NDR_PULL_ALLOC(ndr, r->out.sd);
1950 _mem_save_sd_0 = NDR_PULL_GET_MEM_CTX(ndr);
1951 NDR_PULL_SET_MEM_CTX(ndr, r->out.sd, LIBNDR_FLAG_REF_ALLOC);
1952 NDR_CHECK(ndr_pull_KeySecurityData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.sd));
1953 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sd_0, LIBNDR_FLAG_REF_ALLOC);
1954 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
1956 return NDR_ERR_SUCCESS;
1959 _PUBLIC_ void ndr_print_winreg_GetKeySecurity(struct ndr_print *ndr, const char *name, int flags, const struct winreg_GetKeySecurity *r)
1961 ndr_print_struct(ndr, name, "winreg_GetKeySecurity");
1963 if (flags & NDR_SET_VALUES) {
1964 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1966 if (flags & NDR_IN) {
1967 ndr_print_struct(ndr, "in", "winreg_GetKeySecurity");
1969 ndr_print_ptr(ndr, "handle", r->in.handle);
1971 ndr_print_policy_handle(ndr, "handle", r->in.handle);
1973 ndr_print_security_secinfo(ndr, "sec_info", r->in.sec_info);
1974 ndr_print_ptr(ndr, "sd", r->in.sd);
1976 ndr_print_KeySecurityData(ndr, "sd", r->in.sd);
1980 if (flags & NDR_OUT) {
1981 ndr_print_struct(ndr, "out", "winreg_GetKeySecurity");
1983 ndr_print_ptr(ndr, "sd", r->out.sd);
1985 ndr_print_KeySecurityData(ndr, "sd", r->out.sd);
1987 ndr_print_WERROR(ndr, "result", r->out.result);
1993 static enum ndr_err_code ndr_push_winreg_LoadKey(struct ndr_push *ndr, int flags, const struct winreg_LoadKey *r)
1995 if (flags & NDR_IN) {
1996 if (r->in.handle == NULL) {
1997 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1999 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
2000 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.keyname));
2001 if (r->in.keyname) {
2002 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.keyname));
2004 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.filename));
2005 if (r->in.filename) {
2006 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.filename));
2009 if (flags & NDR_OUT) {
2010 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
2012 return NDR_ERR_SUCCESS;
2015 static enum ndr_err_code ndr_pull_winreg_LoadKey(struct ndr_pull *ndr, int flags, struct winreg_LoadKey *r)
2017 uint32_t _ptr_keyname;
2018 uint32_t _ptr_filename;
2019 TALLOC_CTX *_mem_save_handle_0;
2020 TALLOC_CTX *_mem_save_keyname_0;
2021 TALLOC_CTX *_mem_save_filename_0;
2022 if (flags & NDR_IN) {
2023 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2024 NDR_PULL_ALLOC(ndr, r->in.handle);
2026 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
2027 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
2028 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
2029 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
2030 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_keyname));
2032 NDR_PULL_ALLOC(ndr, r->in.keyname);
2034 r->in.keyname = NULL;
2036 if (r->in.keyname) {
2037 _mem_save_keyname_0 = NDR_PULL_GET_MEM_CTX(ndr);
2038 NDR_PULL_SET_MEM_CTX(ndr, r->in.keyname, 0);
2039 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.keyname));
2040 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_keyname_0, 0);
2042 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_filename));
2043 if (_ptr_filename) {
2044 NDR_PULL_ALLOC(ndr, r->in.filename);
2046 r->in.filename = NULL;
2048 if (r->in.filename) {
2049 _mem_save_filename_0 = NDR_PULL_GET_MEM_CTX(ndr);
2050 NDR_PULL_SET_MEM_CTX(ndr, r->in.filename, 0);
2051 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.filename));
2052 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_filename_0, 0);
2055 if (flags & NDR_OUT) {
2056 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
2058 return NDR_ERR_SUCCESS;
2061 _PUBLIC_ void ndr_print_winreg_LoadKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_LoadKey *r)
2063 ndr_print_struct(ndr, name, "winreg_LoadKey");
2065 if (flags & NDR_SET_VALUES) {
2066 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2068 if (flags & NDR_IN) {
2069 ndr_print_struct(ndr, "in", "winreg_LoadKey");
2071 ndr_print_ptr(ndr, "handle", r->in.handle);
2073 ndr_print_policy_handle(ndr, "handle", r->in.handle);
2075 ndr_print_ptr(ndr, "keyname", r->in.keyname);
2077 if (r->in.keyname) {
2078 ndr_print_winreg_String(ndr, "keyname", r->in.keyname);
2081 ndr_print_ptr(ndr, "filename", r->in.filename);
2083 if (r->in.filename) {
2084 ndr_print_winreg_String(ndr, "filename", r->in.filename);
2089 if (flags & NDR_OUT) {
2090 ndr_print_struct(ndr, "out", "winreg_LoadKey");
2092 ndr_print_WERROR(ndr, "result", r->out.result);
2098 _PUBLIC_ enum ndr_err_code ndr_push_winreg_NotifyChangeKeyValue(struct ndr_push *ndr, int flags, const struct winreg_NotifyChangeKeyValue *r)
2100 if (flags & NDR_IN) {
2101 if (r->in.handle == NULL) {
2102 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2104 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
2105 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->in.watch_subtree));
2106 NDR_CHECK(ndr_push_winreg_NotifyChangeType(ndr, NDR_SCALARS, r->in.notify_filter));
2107 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown));
2108 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.string1));
2109 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.string2));
2110 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown2));
2112 if (flags & NDR_OUT) {
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_NotifyChangeKeyValue(struct ndr_pull *ndr, int flags, struct winreg_NotifyChangeKeyValue *r)
2120 TALLOC_CTX *_mem_save_handle_0;
2121 if (flags & NDR_IN) {
2122 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2123 NDR_PULL_ALLOC(ndr, r->in.handle);
2125 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
2126 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
2127 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
2128 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
2129 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->in.watch_subtree));
2130 NDR_CHECK(ndr_pull_winreg_NotifyChangeType(ndr, NDR_SCALARS, &r->in.notify_filter));
2131 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown));
2132 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.string1));
2133 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.string2));
2134 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown2));
2136 if (flags & NDR_OUT) {
2137 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
2139 return NDR_ERR_SUCCESS;
2142 _PUBLIC_ void ndr_print_winreg_NotifyChangeKeyValue(struct ndr_print *ndr, const char *name, int flags, const struct winreg_NotifyChangeKeyValue *r)
2144 ndr_print_struct(ndr, name, "winreg_NotifyChangeKeyValue");
2146 if (flags & NDR_SET_VALUES) {
2147 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2149 if (flags & NDR_IN) {
2150 ndr_print_struct(ndr, "in", "winreg_NotifyChangeKeyValue");
2152 ndr_print_ptr(ndr, "handle", r->in.handle);
2154 ndr_print_policy_handle(ndr, "handle", r->in.handle);
2156 ndr_print_uint8(ndr, "watch_subtree", r->in.watch_subtree);
2157 ndr_print_winreg_NotifyChangeType(ndr, "notify_filter", r->in.notify_filter);
2158 ndr_print_uint32(ndr, "unknown", r->in.unknown);
2159 ndr_print_winreg_String(ndr, "string1", &r->in.string1);
2160 ndr_print_winreg_String(ndr, "string2", &r->in.string2);
2161 ndr_print_uint32(ndr, "unknown2", r->in.unknown2);
2164 if (flags & NDR_OUT) {
2165 ndr_print_struct(ndr, "out", "winreg_NotifyChangeKeyValue");
2167 ndr_print_WERROR(ndr, "result", r->out.result);
2173 _PUBLIC_ enum ndr_err_code ndr_push_winreg_OpenKey(struct ndr_push *ndr, int flags, const struct winreg_OpenKey *r)
2175 if (flags & NDR_IN) {
2176 if (r->in.parent_handle == NULL) {
2177 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2179 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.parent_handle));
2180 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.keyname));
2181 NDR_CHECK(ndr_push_winreg_KeyOptions(ndr, NDR_SCALARS, r->in.options));
2182 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
2184 if (flags & NDR_OUT) {
2185 if (r->out.handle == NULL) {
2186 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2188 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
2189 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
2191 return NDR_ERR_SUCCESS;
2194 _PUBLIC_ enum ndr_err_code ndr_pull_winreg_OpenKey(struct ndr_pull *ndr, int flags, struct winreg_OpenKey *r)
2196 TALLOC_CTX *_mem_save_parent_handle_0;
2197 TALLOC_CTX *_mem_save_handle_0;
2198 if (flags & NDR_IN) {
2199 ZERO_STRUCT(r->out);
2201 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2202 NDR_PULL_ALLOC(ndr, r->in.parent_handle);
2204 _mem_save_parent_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
2205 NDR_PULL_SET_MEM_CTX(ndr, r->in.parent_handle, LIBNDR_FLAG_REF_ALLOC);
2206 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.parent_handle));
2207 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parent_handle_0, LIBNDR_FLAG_REF_ALLOC);
2208 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.keyname));
2209 NDR_CHECK(ndr_pull_winreg_KeyOptions(ndr, NDR_SCALARS, &r->in.options));
2210 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
2211 NDR_PULL_ALLOC(ndr, r->out.handle);
2212 ZERO_STRUCTP(r->out.handle);
2214 if (flags & NDR_OUT) {
2215 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2216 NDR_PULL_ALLOC(ndr, r->out.handle);
2218 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
2219 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
2220 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
2221 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
2222 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
2224 return NDR_ERR_SUCCESS;
2227 _PUBLIC_ void ndr_print_winreg_OpenKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenKey *r)
2229 ndr_print_struct(ndr, name, "winreg_OpenKey");
2231 if (flags & NDR_SET_VALUES) {
2232 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2234 if (flags & NDR_IN) {
2235 ndr_print_struct(ndr, "in", "winreg_OpenKey");
2237 ndr_print_ptr(ndr, "parent_handle", r->in.parent_handle);
2239 ndr_print_policy_handle(ndr, "parent_handle", r->in.parent_handle);
2241 ndr_print_winreg_String(ndr, "keyname", &r->in.keyname);
2242 ndr_print_winreg_KeyOptions(ndr, "options", r->in.options);
2243 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
2246 if (flags & NDR_OUT) {
2247 ndr_print_struct(ndr, "out", "winreg_OpenKey");
2249 ndr_print_ptr(ndr, "handle", r->out.handle);
2251 ndr_print_policy_handle(ndr, "handle", r->out.handle);
2253 ndr_print_WERROR(ndr, "result", r->out.result);
2259 _PUBLIC_ enum ndr_err_code ndr_push_winreg_QueryInfoKey(struct ndr_push *ndr, int flags, const struct winreg_QueryInfoKey *r)
2261 if (flags & NDR_IN) {
2262 if (r->in.handle == NULL) {
2263 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2265 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
2266 if (r->in.classname == NULL) {
2267 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2269 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.classname));
2271 if (flags & NDR_OUT) {
2272 if (r->out.classname == NULL) {
2273 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2275 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.classname));
2276 if (r->out.num_subkeys == NULL) {
2277 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2279 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.num_subkeys));
2280 if (r->out.max_subkeylen == NULL) {
2281 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2283 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.max_subkeylen));
2284 if (r->out.max_classlen == NULL) {
2285 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2287 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.max_classlen));
2288 if (r->out.num_values == NULL) {
2289 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2291 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.num_values));
2292 if (r->out.max_valnamelen == NULL) {
2293 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2295 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.max_valnamelen));
2296 if (r->out.max_valbufsize == NULL) {
2297 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2299 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.max_valbufsize));
2300 if (r->out.secdescsize == NULL) {
2301 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2303 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.secdescsize));
2304 if (r->out.last_changed_time == NULL) {
2305 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2307 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, *r->out.last_changed_time));
2308 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
2310 return NDR_ERR_SUCCESS;
2313 _PUBLIC_ enum ndr_err_code ndr_pull_winreg_QueryInfoKey(struct ndr_pull *ndr, int flags, struct winreg_QueryInfoKey *r)
2315 TALLOC_CTX *_mem_save_handle_0;
2316 TALLOC_CTX *_mem_save_classname_0;
2317 TALLOC_CTX *_mem_save_num_subkeys_0;
2318 TALLOC_CTX *_mem_save_max_subkeylen_0;
2319 TALLOC_CTX *_mem_save_max_classlen_0;
2320 TALLOC_CTX *_mem_save_num_values_0;
2321 TALLOC_CTX *_mem_save_max_valnamelen_0;
2322 TALLOC_CTX *_mem_save_max_valbufsize_0;
2323 TALLOC_CTX *_mem_save_secdescsize_0;
2324 TALLOC_CTX *_mem_save_last_changed_time_0;
2325 if (flags & NDR_IN) {
2326 ZERO_STRUCT(r->out);
2328 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2329 NDR_PULL_ALLOC(ndr, r->in.handle);
2331 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
2332 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
2333 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
2334 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
2335 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2336 NDR_PULL_ALLOC(ndr, r->in.classname);
2338 _mem_save_classname_0 = NDR_PULL_GET_MEM_CTX(ndr);
2339 NDR_PULL_SET_MEM_CTX(ndr, r->in.classname, LIBNDR_FLAG_REF_ALLOC);
2340 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.classname));
2341 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_classname_0, LIBNDR_FLAG_REF_ALLOC);
2342 NDR_PULL_ALLOC(ndr, r->out.classname);
2343 *r->out.classname = *r->in.classname;
2344 NDR_PULL_ALLOC(ndr, r->out.num_subkeys);
2345 ZERO_STRUCTP(r->out.num_subkeys);
2346 NDR_PULL_ALLOC(ndr, r->out.max_subkeylen);
2347 ZERO_STRUCTP(r->out.max_subkeylen);
2348 NDR_PULL_ALLOC(ndr, r->out.max_classlen);
2349 ZERO_STRUCTP(r->out.max_classlen);
2350 NDR_PULL_ALLOC(ndr, r->out.num_values);
2351 ZERO_STRUCTP(r->out.num_values);
2352 NDR_PULL_ALLOC(ndr, r->out.max_valnamelen);
2353 ZERO_STRUCTP(r->out.max_valnamelen);
2354 NDR_PULL_ALLOC(ndr, r->out.max_valbufsize);
2355 ZERO_STRUCTP(r->out.max_valbufsize);
2356 NDR_PULL_ALLOC(ndr, r->out.secdescsize);
2357 ZERO_STRUCTP(r->out.secdescsize);
2358 NDR_PULL_ALLOC(ndr, r->out.last_changed_time);
2359 ZERO_STRUCTP(r->out.last_changed_time);
2361 if (flags & NDR_OUT) {
2362 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2363 NDR_PULL_ALLOC(ndr, r->out.classname);
2365 _mem_save_classname_0 = NDR_PULL_GET_MEM_CTX(ndr);
2366 NDR_PULL_SET_MEM_CTX(ndr, r->out.classname, LIBNDR_FLAG_REF_ALLOC);
2367 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.classname));
2368 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_classname_0, LIBNDR_FLAG_REF_ALLOC);
2369 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2370 NDR_PULL_ALLOC(ndr, r->out.num_subkeys);
2372 _mem_save_num_subkeys_0 = NDR_PULL_GET_MEM_CTX(ndr);
2373 NDR_PULL_SET_MEM_CTX(ndr, r->out.num_subkeys, LIBNDR_FLAG_REF_ALLOC);
2374 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.num_subkeys));
2375 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_num_subkeys_0, LIBNDR_FLAG_REF_ALLOC);
2376 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2377 NDR_PULL_ALLOC(ndr, r->out.max_subkeylen);
2379 _mem_save_max_subkeylen_0 = NDR_PULL_GET_MEM_CTX(ndr);
2380 NDR_PULL_SET_MEM_CTX(ndr, r->out.max_subkeylen, LIBNDR_FLAG_REF_ALLOC);
2381 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.max_subkeylen));
2382 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_max_subkeylen_0, LIBNDR_FLAG_REF_ALLOC);
2383 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2384 NDR_PULL_ALLOC(ndr, r->out.max_classlen);
2386 _mem_save_max_classlen_0 = NDR_PULL_GET_MEM_CTX(ndr);
2387 NDR_PULL_SET_MEM_CTX(ndr, r->out.max_classlen, LIBNDR_FLAG_REF_ALLOC);
2388 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.max_classlen));
2389 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_max_classlen_0, LIBNDR_FLAG_REF_ALLOC);
2390 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2391 NDR_PULL_ALLOC(ndr, r->out.num_values);
2393 _mem_save_num_values_0 = NDR_PULL_GET_MEM_CTX(ndr);
2394 NDR_PULL_SET_MEM_CTX(ndr, r->out.num_values, LIBNDR_FLAG_REF_ALLOC);
2395 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.num_values));
2396 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_num_values_0, LIBNDR_FLAG_REF_ALLOC);
2397 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2398 NDR_PULL_ALLOC(ndr, r->out.max_valnamelen);
2400 _mem_save_max_valnamelen_0 = NDR_PULL_GET_MEM_CTX(ndr);
2401 NDR_PULL_SET_MEM_CTX(ndr, r->out.max_valnamelen, LIBNDR_FLAG_REF_ALLOC);
2402 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.max_valnamelen));
2403 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_max_valnamelen_0, LIBNDR_FLAG_REF_ALLOC);
2404 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2405 NDR_PULL_ALLOC(ndr, r->out.max_valbufsize);
2407 _mem_save_max_valbufsize_0 = NDR_PULL_GET_MEM_CTX(ndr);
2408 NDR_PULL_SET_MEM_CTX(ndr, r->out.max_valbufsize, LIBNDR_FLAG_REF_ALLOC);
2409 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.max_valbufsize));
2410 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_max_valbufsize_0, LIBNDR_FLAG_REF_ALLOC);
2411 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2412 NDR_PULL_ALLOC(ndr, r->out.secdescsize);
2414 _mem_save_secdescsize_0 = NDR_PULL_GET_MEM_CTX(ndr);
2415 NDR_PULL_SET_MEM_CTX(ndr, r->out.secdescsize, LIBNDR_FLAG_REF_ALLOC);
2416 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.secdescsize));
2417 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdescsize_0, LIBNDR_FLAG_REF_ALLOC);
2418 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2419 NDR_PULL_ALLOC(ndr, r->out.last_changed_time);
2421 _mem_save_last_changed_time_0 = NDR_PULL_GET_MEM_CTX(ndr);
2422 NDR_PULL_SET_MEM_CTX(ndr, r->out.last_changed_time, LIBNDR_FLAG_REF_ALLOC);
2423 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, r->out.last_changed_time));
2424 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_last_changed_time_0, LIBNDR_FLAG_REF_ALLOC);
2425 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
2427 return NDR_ERR_SUCCESS;
2430 _PUBLIC_ void ndr_print_winreg_QueryInfoKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_QueryInfoKey *r)
2432 ndr_print_struct(ndr, name, "winreg_QueryInfoKey");
2434 if (flags & NDR_SET_VALUES) {
2435 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2437 if (flags & NDR_IN) {
2438 ndr_print_struct(ndr, "in", "winreg_QueryInfoKey");
2440 ndr_print_ptr(ndr, "handle", r->in.handle);
2442 ndr_print_policy_handle(ndr, "handle", r->in.handle);
2444 ndr_print_ptr(ndr, "classname", r->in.classname);
2446 ndr_print_winreg_String(ndr, "classname", r->in.classname);
2450 if (flags & NDR_OUT) {
2451 ndr_print_struct(ndr, "out", "winreg_QueryInfoKey");
2453 ndr_print_ptr(ndr, "classname", r->out.classname);
2455 ndr_print_winreg_String(ndr, "classname", r->out.classname);
2457 ndr_print_ptr(ndr, "num_subkeys", r->out.num_subkeys);
2459 ndr_print_uint32(ndr, "num_subkeys", *r->out.num_subkeys);
2461 ndr_print_ptr(ndr, "max_subkeylen", r->out.max_subkeylen);
2463 ndr_print_uint32(ndr, "max_subkeylen", *r->out.max_subkeylen);
2465 ndr_print_ptr(ndr, "max_classlen", r->out.max_classlen);
2467 ndr_print_uint32(ndr, "max_classlen", *r->out.max_classlen);
2469 ndr_print_ptr(ndr, "num_values", r->out.num_values);
2471 ndr_print_uint32(ndr, "num_values", *r->out.num_values);
2473 ndr_print_ptr(ndr, "max_valnamelen", r->out.max_valnamelen);
2475 ndr_print_uint32(ndr, "max_valnamelen", *r->out.max_valnamelen);
2477 ndr_print_ptr(ndr, "max_valbufsize", r->out.max_valbufsize);
2479 ndr_print_uint32(ndr, "max_valbufsize", *r->out.max_valbufsize);
2481 ndr_print_ptr(ndr, "secdescsize", r->out.secdescsize);
2483 ndr_print_uint32(ndr, "secdescsize", *r->out.secdescsize);
2485 ndr_print_ptr(ndr, "last_changed_time", r->out.last_changed_time);
2487 ndr_print_NTTIME(ndr, "last_changed_time", *r->out.last_changed_time);
2489 ndr_print_WERROR(ndr, "result", r->out.result);
2495 _PUBLIC_ enum ndr_err_code ndr_push_winreg_QueryValue(struct ndr_push *ndr, int flags, const struct winreg_QueryValue *r)
2497 if (flags & NDR_IN) {
2498 if (r->in.handle == NULL) {
2499 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2501 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
2502 if (r->in.value_name == NULL) {
2503 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2505 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.value_name));
2506 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.type));
2508 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->in.type));
2510 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.data));
2512 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.data_size?*r->in.data_size:0));
2513 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
2514 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.data_length?*r->in.data_length:0));
2515 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.data, r->in.data_length?*r->in.data_length:0));
2517 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.data_size));
2518 if (r->in.data_size) {
2519 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.data_size));
2521 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.data_length));
2522 if (r->in.data_length) {
2523 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.data_length));
2526 if (flags & NDR_OUT) {
2527 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.type));
2529 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
2531 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.data));
2533 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->out.data_size?*r->out.data_size:0));
2534 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
2535 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->out.data_length?*r->out.data_length:0));
2536 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, r->out.data_length?*r->out.data_length:0));
2538 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.data_size));
2539 if (r->out.data_size) {
2540 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.data_size));
2542 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.data_length));
2543 if (r->out.data_length) {
2544 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.data_length));
2546 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
2548 return NDR_ERR_SUCCESS;
2551 _PUBLIC_ enum ndr_err_code ndr_pull_winreg_QueryValue(struct ndr_pull *ndr, int flags, struct winreg_QueryValue *r)
2555 uint32_t _ptr_data_size;
2556 uint32_t _ptr_data_length;
2557 TALLOC_CTX *_mem_save_handle_0;
2558 TALLOC_CTX *_mem_save_value_name_0;
2559 TALLOC_CTX *_mem_save_type_0;
2560 TALLOC_CTX *_mem_save_data_0;
2561 TALLOC_CTX *_mem_save_data_size_0;
2562 TALLOC_CTX *_mem_save_data_length_0;
2563 if (flags & NDR_IN) {
2564 ZERO_STRUCT(r->out);
2566 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2567 NDR_PULL_ALLOC(ndr, r->in.handle);
2569 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
2570 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
2571 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
2572 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
2573 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2574 NDR_PULL_ALLOC(ndr, r->in.value_name);
2576 _mem_save_value_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
2577 NDR_PULL_SET_MEM_CTX(ndr, r->in.value_name, LIBNDR_FLAG_REF_ALLOC);
2578 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.value_name));
2579 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_name_0, LIBNDR_FLAG_REF_ALLOC);
2580 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_type));
2582 NDR_PULL_ALLOC(ndr, r->in.type);
2587 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
2588 NDR_PULL_SET_MEM_CTX(ndr, r->in.type, 0);
2589 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->in.type));
2590 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, 0);
2592 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
2594 NDR_PULL_ALLOC(ndr, r->in.data);
2599 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
2600 NDR_PULL_SET_MEM_CTX(ndr, r->in.data, 0);
2601 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.data));
2602 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.data));
2603 if (ndr_get_array_length(ndr, &r->in.data) > ndr_get_array_size(ndr, &r->in.data)) {
2604 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));
2606 NDR_PULL_ALLOC_N(ndr, r->in.data, ndr_get_array_size(ndr, &r->in.data));
2607 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.data, ndr_get_array_length(ndr, &r->in.data)));
2608 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
2610 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_size));
2611 if (_ptr_data_size) {
2612 NDR_PULL_ALLOC(ndr, r->in.data_size);
2614 r->in.data_size = NULL;
2616 if (r->in.data_size) {
2617 _mem_save_data_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
2618 NDR_PULL_SET_MEM_CTX(ndr, r->in.data_size, 0);
2619 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.data_size));
2620 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_size_0, 0);
2622 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_length));
2623 if (_ptr_data_length) {
2624 NDR_PULL_ALLOC(ndr, r->in.data_length);
2626 r->in.data_length = NULL;
2628 if (r->in.data_length) {
2629 _mem_save_data_length_0 = NDR_PULL_GET_MEM_CTX(ndr);
2630 NDR_PULL_SET_MEM_CTX(ndr, r->in.data_length, 0);
2631 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.data_length));
2632 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_length_0, 0);
2635 if (r->in.data_size == NULL) return ndr_pull_error(ndr, NDR_ERR_INVALID_POINTER, "NULL Pointer for size_is()");
2636 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.data, r->in.data_size?*r->in.data_size:0));
2639 if (r->in.data_length == NULL) return ndr_pull_error(ndr, NDR_ERR_INVALID_POINTER, "NULL Pointer for length_is()");
2640 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->in.data, r->in.data_length?*r->in.data_length:0));
2643 if (flags & NDR_OUT) {
2644 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_type));
2646 NDR_PULL_ALLOC(ndr, r->out.type);
2651 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
2652 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, 0);
2653 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
2654 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, 0);
2656 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
2658 NDR_PULL_ALLOC(ndr, r->out.data);
2663 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
2664 NDR_PULL_SET_MEM_CTX(ndr, r->out.data, 0);
2665 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
2666 NDR_CHECK(ndr_pull_array_length(ndr, &r->out.data));
2667 if (ndr_get_array_length(ndr, &r->out.data) > ndr_get_array_size(ndr, &r->out.data)) {
2668 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));
2670 NDR_PULL_ALLOC_N(ndr, r->out.data, ndr_get_array_size(ndr, &r->out.data));
2671 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, ndr_get_array_length(ndr, &r->out.data)));
2672 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
2674 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_size));
2675 if (_ptr_data_size) {
2676 NDR_PULL_ALLOC(ndr, r->out.data_size);
2678 r->out.data_size = NULL;
2680 if (r->out.data_size) {
2681 _mem_save_data_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
2682 NDR_PULL_SET_MEM_CTX(ndr, r->out.data_size, 0);
2683 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.data_size));
2684 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_size_0, 0);
2686 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_length));
2687 if (_ptr_data_length) {
2688 NDR_PULL_ALLOC(ndr, r->out.data_length);
2690 r->out.data_length = NULL;
2692 if (r->out.data_length) {
2693 _mem_save_data_length_0 = NDR_PULL_GET_MEM_CTX(ndr);
2694 NDR_PULL_SET_MEM_CTX(ndr, r->out.data_length, 0);
2695 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.data_length));
2696 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_length_0, 0);
2698 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
2700 if (r->out.data_size == NULL) return ndr_pull_error(ndr, NDR_ERR_INVALID_POINTER, "NULL Pointer for size_is()");
2701 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, r->out.data_size?*r->out.data_size:0));
2704 if (r->out.data_length == NULL) return ndr_pull_error(ndr, NDR_ERR_INVALID_POINTER, "NULL Pointer for length_is()");
2705 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->out.data, r->out.data_length?*r->out.data_length:0));
2708 return NDR_ERR_SUCCESS;
2711 _PUBLIC_ void ndr_print_winreg_QueryValue(struct ndr_print *ndr, const char *name, int flags, const struct winreg_QueryValue *r)
2713 ndr_print_struct(ndr, name, "winreg_QueryValue");
2715 if (flags & NDR_SET_VALUES) {
2716 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2718 if (flags & NDR_IN) {
2719 ndr_print_struct(ndr, "in", "winreg_QueryValue");
2721 ndr_print_ptr(ndr, "handle", r->in.handle);
2723 ndr_print_policy_handle(ndr, "handle", r->in.handle);
2725 ndr_print_ptr(ndr, "value_name", r->in.value_name);
2727 ndr_print_winreg_String(ndr, "value_name", r->in.value_name);
2729 ndr_print_ptr(ndr, "type", r->in.type);
2732 ndr_print_winreg_Type(ndr, "type", *r->in.type);
2735 ndr_print_ptr(ndr, "data", r->in.data);
2738 if (r->in.data_length == NULL) return;
2739 ndr_print_array_uint8(ndr, "data", r->in.data, r->in.data_length?*r->in.data_length:0);
2742 ndr_print_ptr(ndr, "data_size", r->in.data_size);
2744 if (r->in.data_size) {
2745 ndr_print_uint32(ndr, "data_size", *r->in.data_size);
2748 ndr_print_ptr(ndr, "data_length", r->in.data_length);
2750 if (r->in.data_length) {
2751 ndr_print_uint32(ndr, "data_length", *r->in.data_length);
2756 if (flags & NDR_OUT) {
2757 ndr_print_struct(ndr, "out", "winreg_QueryValue");
2759 ndr_print_ptr(ndr, "type", r->out.type);
2762 ndr_print_winreg_Type(ndr, "type", *r->out.type);
2765 ndr_print_ptr(ndr, "data", r->out.data);
2768 if (r->out.data_length == NULL) return;
2769 ndr_print_array_uint8(ndr, "data", r->out.data, r->out.data_length?*r->out.data_length:0);
2772 ndr_print_ptr(ndr, "data_size", r->out.data_size);
2774 if (r->out.data_size) {
2775 ndr_print_uint32(ndr, "data_size", *r->out.data_size);
2778 ndr_print_ptr(ndr, "data_length", r->out.data_length);
2780 if (r->out.data_length) {
2781 ndr_print_uint32(ndr, "data_length", *r->out.data_length);
2784 ndr_print_WERROR(ndr, "result", r->out.result);
2790 static enum ndr_err_code ndr_push_winreg_ReplaceKey(struct ndr_push *ndr, int flags, const struct winreg_ReplaceKey *r)
2792 if (flags & NDR_IN) {
2793 if (r->in.handle == NULL) {
2794 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2796 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
2797 if (r->in.subkey == NULL) {
2798 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2800 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.subkey));
2801 if (r->in.new_file == NULL) {
2802 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2804 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.new_file));
2805 if (r->in.old_file == NULL) {
2806 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2808 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.old_file));
2810 if (flags & NDR_OUT) {
2811 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
2813 return NDR_ERR_SUCCESS;
2816 static enum ndr_err_code ndr_pull_winreg_ReplaceKey(struct ndr_pull *ndr, int flags, struct winreg_ReplaceKey *r)
2818 TALLOC_CTX *_mem_save_handle_0;
2819 TALLOC_CTX *_mem_save_subkey_0;
2820 TALLOC_CTX *_mem_save_new_file_0;
2821 TALLOC_CTX *_mem_save_old_file_0;
2822 if (flags & NDR_IN) {
2823 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2824 NDR_PULL_ALLOC(ndr, r->in.handle);
2826 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
2827 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
2828 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
2829 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
2830 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2831 NDR_PULL_ALLOC(ndr, r->in.subkey);
2833 _mem_save_subkey_0 = NDR_PULL_GET_MEM_CTX(ndr);
2834 NDR_PULL_SET_MEM_CTX(ndr, r->in.subkey, LIBNDR_FLAG_REF_ALLOC);
2835 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.subkey));
2836 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_subkey_0, LIBNDR_FLAG_REF_ALLOC);
2837 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2838 NDR_PULL_ALLOC(ndr, r->in.new_file);
2840 _mem_save_new_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
2841 NDR_PULL_SET_MEM_CTX(ndr, r->in.new_file, LIBNDR_FLAG_REF_ALLOC);
2842 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.new_file));
2843 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_new_file_0, LIBNDR_FLAG_REF_ALLOC);
2844 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2845 NDR_PULL_ALLOC(ndr, r->in.old_file);
2847 _mem_save_old_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
2848 NDR_PULL_SET_MEM_CTX(ndr, r->in.old_file, LIBNDR_FLAG_REF_ALLOC);
2849 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.old_file));
2850 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_old_file_0, LIBNDR_FLAG_REF_ALLOC);
2852 if (flags & NDR_OUT) {
2853 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
2855 return NDR_ERR_SUCCESS;
2858 _PUBLIC_ void ndr_print_winreg_ReplaceKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_ReplaceKey *r)
2860 ndr_print_struct(ndr, name, "winreg_ReplaceKey");
2862 if (flags & NDR_SET_VALUES) {
2863 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2865 if (flags & NDR_IN) {
2866 ndr_print_struct(ndr, "in", "winreg_ReplaceKey");
2868 ndr_print_ptr(ndr, "handle", r->in.handle);
2870 ndr_print_policy_handle(ndr, "handle", r->in.handle);
2872 ndr_print_ptr(ndr, "subkey", r->in.subkey);
2874 ndr_print_winreg_String(ndr, "subkey", r->in.subkey);
2876 ndr_print_ptr(ndr, "new_file", r->in.new_file);
2878 ndr_print_winreg_String(ndr, "new_file", r->in.new_file);
2880 ndr_print_ptr(ndr, "old_file", r->in.old_file);
2882 ndr_print_winreg_String(ndr, "old_file", r->in.old_file);
2886 if (flags & NDR_OUT) {
2887 ndr_print_struct(ndr, "out", "winreg_ReplaceKey");
2889 ndr_print_WERROR(ndr, "result", r->out.result);
2895 static enum ndr_err_code ndr_push_winreg_RestoreKey(struct ndr_push *ndr, int flags, const struct winreg_RestoreKey *r)
2897 if (flags & NDR_IN) {
2898 if (r->in.handle == NULL) {
2899 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2901 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
2902 if (r->in.filename == NULL) {
2903 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2905 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.filename));
2906 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.flags));
2908 if (flags & NDR_OUT) {
2909 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
2911 return NDR_ERR_SUCCESS;
2914 static enum ndr_err_code ndr_pull_winreg_RestoreKey(struct ndr_pull *ndr, int flags, struct winreg_RestoreKey *r)
2916 TALLOC_CTX *_mem_save_handle_0;
2917 TALLOC_CTX *_mem_save_filename_0;
2918 if (flags & NDR_IN) {
2919 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2920 NDR_PULL_ALLOC(ndr, r->in.handle);
2922 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
2923 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
2924 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
2925 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
2926 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2927 NDR_PULL_ALLOC(ndr, r->in.filename);
2929 _mem_save_filename_0 = NDR_PULL_GET_MEM_CTX(ndr);
2930 NDR_PULL_SET_MEM_CTX(ndr, r->in.filename, LIBNDR_FLAG_REF_ALLOC);
2931 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.filename));
2932 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_filename_0, LIBNDR_FLAG_REF_ALLOC);
2933 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.flags));
2935 if (flags & NDR_OUT) {
2936 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
2938 return NDR_ERR_SUCCESS;
2941 _PUBLIC_ void ndr_print_winreg_RestoreKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_RestoreKey *r)
2943 ndr_print_struct(ndr, name, "winreg_RestoreKey");
2945 if (flags & NDR_SET_VALUES) {
2946 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2948 if (flags & NDR_IN) {
2949 ndr_print_struct(ndr, "in", "winreg_RestoreKey");
2951 ndr_print_ptr(ndr, "handle", r->in.handle);
2953 ndr_print_policy_handle(ndr, "handle", r->in.handle);
2955 ndr_print_ptr(ndr, "filename", r->in.filename);
2957 ndr_print_winreg_String(ndr, "filename", r->in.filename);
2959 ndr_print_uint32(ndr, "flags", r->in.flags);
2962 if (flags & NDR_OUT) {
2963 ndr_print_struct(ndr, "out", "winreg_RestoreKey");
2965 ndr_print_WERROR(ndr, "result", r->out.result);
2971 static enum ndr_err_code ndr_push_winreg_SaveKey(struct ndr_push *ndr, int flags, const struct winreg_SaveKey *r)
2973 if (flags & NDR_IN) {
2974 if (r->in.handle == NULL) {
2975 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2977 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
2978 if (r->in.filename == NULL) {
2979 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2981 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.filename));
2982 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.sec_attrib));
2983 if (r->in.sec_attrib) {
2984 NDR_CHECK(ndr_push_KeySecurityAttribute(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sec_attrib));
2987 if (flags & NDR_OUT) {
2988 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
2990 return NDR_ERR_SUCCESS;
2993 static enum ndr_err_code ndr_pull_winreg_SaveKey(struct ndr_pull *ndr, int flags, struct winreg_SaveKey *r)
2995 uint32_t _ptr_sec_attrib;
2996 TALLOC_CTX *_mem_save_handle_0;
2997 TALLOC_CTX *_mem_save_filename_0;
2998 TALLOC_CTX *_mem_save_sec_attrib_0;
2999 if (flags & NDR_IN) {
3000 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3001 NDR_PULL_ALLOC(ndr, r->in.handle);
3003 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
3004 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
3005 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
3006 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
3007 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3008 NDR_PULL_ALLOC(ndr, r->in.filename);
3010 _mem_save_filename_0 = NDR_PULL_GET_MEM_CTX(ndr);
3011 NDR_PULL_SET_MEM_CTX(ndr, r->in.filename, LIBNDR_FLAG_REF_ALLOC);
3012 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.filename));
3013 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_filename_0, LIBNDR_FLAG_REF_ALLOC);
3014 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sec_attrib));
3015 if (_ptr_sec_attrib) {
3016 NDR_PULL_ALLOC(ndr, r->in.sec_attrib);
3018 r->in.sec_attrib = NULL;
3020 if (r->in.sec_attrib) {
3021 _mem_save_sec_attrib_0 = NDR_PULL_GET_MEM_CTX(ndr);
3022 NDR_PULL_SET_MEM_CTX(ndr, r->in.sec_attrib, 0);
3023 NDR_CHECK(ndr_pull_KeySecurityAttribute(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sec_attrib));
3024 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sec_attrib_0, 0);
3027 if (flags & NDR_OUT) {
3028 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3030 return NDR_ERR_SUCCESS;
3033 _PUBLIC_ void ndr_print_winreg_SaveKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_SaveKey *r)
3035 ndr_print_struct(ndr, name, "winreg_SaveKey");
3037 if (flags & NDR_SET_VALUES) {
3038 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3040 if (flags & NDR_IN) {
3041 ndr_print_struct(ndr, "in", "winreg_SaveKey");
3043 ndr_print_ptr(ndr, "handle", r->in.handle);
3045 ndr_print_policy_handle(ndr, "handle", r->in.handle);
3047 ndr_print_ptr(ndr, "filename", r->in.filename);
3049 ndr_print_winreg_String(ndr, "filename", r->in.filename);
3051 ndr_print_ptr(ndr, "sec_attrib", r->in.sec_attrib);
3053 if (r->in.sec_attrib) {
3054 ndr_print_KeySecurityAttribute(ndr, "sec_attrib", r->in.sec_attrib);
3059 if (flags & NDR_OUT) {
3060 ndr_print_struct(ndr, "out", "winreg_SaveKey");
3062 ndr_print_WERROR(ndr, "result", r->out.result);
3068 static enum ndr_err_code ndr_push_winreg_SetKeySecurity(struct ndr_push *ndr, int flags, const struct winreg_SetKeySecurity *r)
3070 if (flags & NDR_IN) {
3071 if (r->in.handle == NULL) {
3072 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
3074 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
3075 NDR_CHECK(ndr_push_security_secinfo(ndr, NDR_SCALARS, r->in.sec_info));
3076 if (r->in.sd == NULL) {
3077 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
3079 NDR_CHECK(ndr_push_KeySecurityData(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sd));
3081 if (flags & NDR_OUT) {
3082 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3084 return NDR_ERR_SUCCESS;
3087 static enum ndr_err_code ndr_pull_winreg_SetKeySecurity(struct ndr_pull *ndr, int flags, struct winreg_SetKeySecurity *r)
3089 TALLOC_CTX *_mem_save_handle_0;
3090 TALLOC_CTX *_mem_save_sd_0;
3091 if (flags & NDR_IN) {
3092 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3093 NDR_PULL_ALLOC(ndr, r->in.handle);
3095 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
3096 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
3097 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
3098 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
3099 NDR_CHECK(ndr_pull_security_secinfo(ndr, NDR_SCALARS, &r->in.sec_info));
3100 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3101 NDR_PULL_ALLOC(ndr, r->in.sd);
3103 _mem_save_sd_0 = NDR_PULL_GET_MEM_CTX(ndr);
3104 NDR_PULL_SET_MEM_CTX(ndr, r->in.sd, LIBNDR_FLAG_REF_ALLOC);
3105 NDR_CHECK(ndr_pull_KeySecurityData(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sd));
3106 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sd_0, LIBNDR_FLAG_REF_ALLOC);
3108 if (flags & NDR_OUT) {
3109 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3111 return NDR_ERR_SUCCESS;
3114 _PUBLIC_ void ndr_print_winreg_SetKeySecurity(struct ndr_print *ndr, const char *name, int flags, const struct winreg_SetKeySecurity *r)
3116 ndr_print_struct(ndr, name, "winreg_SetKeySecurity");
3118 if (flags & NDR_SET_VALUES) {
3119 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3121 if (flags & NDR_IN) {
3122 ndr_print_struct(ndr, "in", "winreg_SetKeySecurity");
3124 ndr_print_ptr(ndr, "handle", r->in.handle);
3126 ndr_print_policy_handle(ndr, "handle", r->in.handle);
3128 ndr_print_security_secinfo(ndr, "sec_info", r->in.sec_info);
3129 ndr_print_ptr(ndr, "sd", r->in.sd);
3131 ndr_print_KeySecurityData(ndr, "sd", r->in.sd);
3135 if (flags & NDR_OUT) {
3136 ndr_print_struct(ndr, "out", "winreg_SetKeySecurity");
3138 ndr_print_WERROR(ndr, "result", r->out.result);
3144 static enum ndr_err_code ndr_push_winreg_SetValue(struct ndr_push *ndr, int flags, const struct winreg_SetValue *r)
3146 if (flags & NDR_IN) {
3147 if (r->in.handle == NULL) {
3148 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
3150 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
3151 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.name));
3152 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
3153 if (r->in.data == NULL) {
3154 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
3156 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.size));
3157 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.data, r->in.size));
3158 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.size));
3160 if (flags & NDR_OUT) {
3161 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3163 return NDR_ERR_SUCCESS;
3166 static enum ndr_err_code ndr_pull_winreg_SetValue(struct ndr_pull *ndr, int flags, struct winreg_SetValue *r)
3168 TALLOC_CTX *_mem_save_handle_0;
3169 if (flags & NDR_IN) {
3170 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3171 NDR_PULL_ALLOC(ndr, r->in.handle);
3173 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
3174 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
3175 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
3176 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
3177 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.name));
3178 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
3179 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.data));
3180 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3181 NDR_PULL_ALLOC_N(ndr, r->in.data, ndr_get_array_size(ndr, &r->in.data));
3183 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.data, ndr_get_array_size(ndr, &r->in.data)));
3184 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.size));
3186 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.data, r->in.size));
3189 if (flags & NDR_OUT) {
3190 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3192 return NDR_ERR_SUCCESS;
3195 _PUBLIC_ void ndr_print_winreg_SetValue(struct ndr_print *ndr, const char *name, int flags, const struct winreg_SetValue *r)
3197 ndr_print_struct(ndr, name, "winreg_SetValue");
3199 if (flags & NDR_SET_VALUES) {
3200 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3202 if (flags & NDR_IN) {
3203 ndr_print_struct(ndr, "in", "winreg_SetValue");
3205 ndr_print_ptr(ndr, "handle", r->in.handle);
3207 ndr_print_policy_handle(ndr, "handle", r->in.handle);
3209 ndr_print_winreg_String(ndr, "name", &r->in.name);
3210 ndr_print_winreg_Type(ndr, "type", r->in.type);
3211 ndr_print_ptr(ndr, "data", r->in.data);
3213 ndr_print_array_uint8(ndr, "data", r->in.data, r->in.size);
3215 ndr_print_uint32(ndr, "size", r->in.size);
3218 if (flags & NDR_OUT) {
3219 ndr_print_struct(ndr, "out", "winreg_SetValue");
3221 ndr_print_WERROR(ndr, "result", r->out.result);
3227 static enum ndr_err_code ndr_push_winreg_UnLoadKey(struct ndr_push *ndr, int flags, const struct winreg_UnLoadKey *r)
3229 if (flags & NDR_IN) {
3230 if (r->in.handle == NULL) {
3231 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
3233 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
3234 if (r->in.subkey == NULL) {
3235 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
3237 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.subkey));
3239 if (flags & NDR_OUT) {
3240 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3242 return NDR_ERR_SUCCESS;
3245 static enum ndr_err_code ndr_pull_winreg_UnLoadKey(struct ndr_pull *ndr, int flags, struct winreg_UnLoadKey *r)
3247 TALLOC_CTX *_mem_save_handle_0;
3248 TALLOC_CTX *_mem_save_subkey_0;
3249 if (flags & NDR_IN) {
3250 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3251 NDR_PULL_ALLOC(ndr, r->in.handle);
3253 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
3254 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
3255 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
3256 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
3257 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3258 NDR_PULL_ALLOC(ndr, r->in.subkey);
3260 _mem_save_subkey_0 = NDR_PULL_GET_MEM_CTX(ndr);
3261 NDR_PULL_SET_MEM_CTX(ndr, r->in.subkey, LIBNDR_FLAG_REF_ALLOC);
3262 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.subkey));
3263 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_subkey_0, LIBNDR_FLAG_REF_ALLOC);
3265 if (flags & NDR_OUT) {
3266 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3268 return NDR_ERR_SUCCESS;
3271 _PUBLIC_ void ndr_print_winreg_UnLoadKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_UnLoadKey *r)
3273 ndr_print_struct(ndr, name, "winreg_UnLoadKey");
3275 if (flags & NDR_SET_VALUES) {
3276 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3278 if (flags & NDR_IN) {
3279 ndr_print_struct(ndr, "in", "winreg_UnLoadKey");
3281 ndr_print_ptr(ndr, "handle", r->in.handle);
3283 ndr_print_policy_handle(ndr, "handle", r->in.handle);
3285 ndr_print_ptr(ndr, "subkey", r->in.subkey);
3287 ndr_print_winreg_String(ndr, "subkey", r->in.subkey);
3291 if (flags & NDR_OUT) {
3292 ndr_print_struct(ndr, "out", "winreg_UnLoadKey");
3294 ndr_print_WERROR(ndr, "result", r->out.result);
3300 static enum ndr_err_code ndr_push_winreg_InitiateSystemShutdown(struct ndr_push *ndr, int flags, const struct winreg_InitiateSystemShutdown *r)
3302 if (flags & NDR_IN) {
3303 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.hostname));
3304 if (r->in.hostname) {
3305 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.hostname));
3307 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.message));
3308 if (r->in.message) {
3309 NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.message));
3311 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.timeout));
3312 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->in.force_apps));
3313 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->in.do_reboot));
3315 if (flags & NDR_OUT) {
3316 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3318 return NDR_ERR_SUCCESS;
3321 static enum ndr_err_code ndr_pull_winreg_InitiateSystemShutdown(struct ndr_pull *ndr, int flags, struct winreg_InitiateSystemShutdown *r)
3323 uint32_t _ptr_hostname;
3324 uint32_t _ptr_message;
3325 TALLOC_CTX *_mem_save_hostname_0;
3326 TALLOC_CTX *_mem_save_message_0;
3327 if (flags & NDR_IN) {
3328 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hostname));
3329 if (_ptr_hostname) {
3330 NDR_PULL_ALLOC(ndr, r->in.hostname);
3332 r->in.hostname = NULL;
3334 if (r->in.hostname) {
3335 _mem_save_hostname_0 = NDR_PULL_GET_MEM_CTX(ndr);
3336 NDR_PULL_SET_MEM_CTX(ndr, r->in.hostname, 0);
3337 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.hostname));
3338 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hostname_0, 0);
3340 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_message));
3342 NDR_PULL_ALLOC(ndr, r->in.message);
3344 r->in.message = NULL;
3346 if (r->in.message) {
3347 _mem_save_message_0 = NDR_PULL_GET_MEM_CTX(ndr);
3348 NDR_PULL_SET_MEM_CTX(ndr, r->in.message, 0);
3349 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.message));
3350 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_message_0, 0);
3352 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.timeout));
3353 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->in.force_apps));
3354 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->in.do_reboot));
3356 if (flags & NDR_OUT) {
3357 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3359 return NDR_ERR_SUCCESS;
3362 _PUBLIC_ void ndr_print_winreg_InitiateSystemShutdown(struct ndr_print *ndr, const char *name, int flags, const struct winreg_InitiateSystemShutdown *r)
3364 ndr_print_struct(ndr, name, "winreg_InitiateSystemShutdown");
3366 if (flags & NDR_SET_VALUES) {
3367 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3369 if (flags & NDR_IN) {
3370 ndr_print_struct(ndr, "in", "winreg_InitiateSystemShutdown");
3372 ndr_print_ptr(ndr, "hostname", r->in.hostname);
3374 if (r->in.hostname) {
3375 ndr_print_uint16(ndr, "hostname", *r->in.hostname);
3378 ndr_print_ptr(ndr, "message", r->in.message);
3380 if (r->in.message) {
3381 ndr_print_lsa_StringLarge(ndr, "message", r->in.message);
3384 ndr_print_uint32(ndr, "timeout", r->in.timeout);
3385 ndr_print_uint8(ndr, "force_apps", r->in.force_apps);
3386 ndr_print_uint8(ndr, "do_reboot", r->in.do_reboot);
3389 if (flags & NDR_OUT) {
3390 ndr_print_struct(ndr, "out", "winreg_InitiateSystemShutdown");
3392 ndr_print_WERROR(ndr, "result", r->out.result);
3398 static enum ndr_err_code ndr_push_winreg_AbortSystemShutdown(struct ndr_push *ndr, int flags, const struct winreg_AbortSystemShutdown *r)
3400 if (flags & NDR_IN) {
3401 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
3403 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.server));
3406 if (flags & NDR_OUT) {
3407 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3409 return NDR_ERR_SUCCESS;
3412 static enum ndr_err_code ndr_pull_winreg_AbortSystemShutdown(struct ndr_pull *ndr, int flags, struct winreg_AbortSystemShutdown *r)
3414 uint32_t _ptr_server;
3415 TALLOC_CTX *_mem_save_server_0;
3416 if (flags & NDR_IN) {
3417 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
3419 NDR_PULL_ALLOC(ndr, r->in.server);
3421 r->in.server = NULL;
3424 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
3425 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
3426 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.server));
3427 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
3430 if (flags & NDR_OUT) {
3431 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3433 return NDR_ERR_SUCCESS;
3436 _PUBLIC_ void ndr_print_winreg_AbortSystemShutdown(struct ndr_print *ndr, const char *name, int flags, const struct winreg_AbortSystemShutdown *r)
3438 ndr_print_struct(ndr, name, "winreg_AbortSystemShutdown");
3440 if (flags & NDR_SET_VALUES) {
3441 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3443 if (flags & NDR_IN) {
3444 ndr_print_struct(ndr, "in", "winreg_AbortSystemShutdown");
3446 ndr_print_ptr(ndr, "server", r->in.server);
3449 ndr_print_uint16(ndr, "server", *r->in.server);
3454 if (flags & NDR_OUT) {
3455 ndr_print_struct(ndr, "out", "winreg_AbortSystemShutdown");
3457 ndr_print_WERROR(ndr, "result", r->out.result);
3463 _PUBLIC_ enum ndr_err_code ndr_push_winreg_GetVersion(struct ndr_push *ndr, int flags, const struct winreg_GetVersion *r)
3465 if (flags & NDR_IN) {
3466 if (r->in.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->in.handle));
3471 if (flags & NDR_OUT) {
3472 if (r->out.version == NULL) {
3473 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
3475 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.version));
3476 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3478 return NDR_ERR_SUCCESS;
3481 _PUBLIC_ enum ndr_err_code ndr_pull_winreg_GetVersion(struct ndr_pull *ndr, int flags, struct winreg_GetVersion *r)
3483 TALLOC_CTX *_mem_save_handle_0;
3484 TALLOC_CTX *_mem_save_version_0;
3485 if (flags & NDR_IN) {
3486 ZERO_STRUCT(r->out);
3488 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3489 NDR_PULL_ALLOC(ndr, r->in.handle);
3491 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
3492 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
3493 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
3494 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
3495 NDR_PULL_ALLOC(ndr, r->out.version);
3496 ZERO_STRUCTP(r->out.version);
3498 if (flags & NDR_OUT) {
3499 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3500 NDR_PULL_ALLOC(ndr, r->out.version);
3502 _mem_save_version_0 = NDR_PULL_GET_MEM_CTX(ndr);
3503 NDR_PULL_SET_MEM_CTX(ndr, r->out.version, LIBNDR_FLAG_REF_ALLOC);
3504 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.version));
3505 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_version_0, LIBNDR_FLAG_REF_ALLOC);
3506 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3508 return NDR_ERR_SUCCESS;
3511 _PUBLIC_ void ndr_print_winreg_GetVersion(struct ndr_print *ndr, const char *name, int flags, const struct winreg_GetVersion *r)
3513 ndr_print_struct(ndr, name, "winreg_GetVersion");
3515 if (flags & NDR_SET_VALUES) {
3516 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3518 if (flags & NDR_IN) {
3519 ndr_print_struct(ndr, "in", "winreg_GetVersion");
3521 ndr_print_ptr(ndr, "handle", r->in.handle);
3523 ndr_print_policy_handle(ndr, "handle", r->in.handle);
3527 if (flags & NDR_OUT) {
3528 ndr_print_struct(ndr, "out", "winreg_GetVersion");
3530 ndr_print_ptr(ndr, "version", r->out.version);
3532 ndr_print_uint32(ndr, "version", *r->out.version);
3534 ndr_print_WERROR(ndr, "result", r->out.result);
3540 static enum ndr_err_code ndr_push_winreg_OpenHKCC(struct ndr_push *ndr, int flags, const struct winreg_OpenHKCC *r)
3542 if (flags & NDR_IN) {
3543 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.system_name));
3544 if (r->in.system_name) {
3545 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.system_name));
3547 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
3549 if (flags & NDR_OUT) {
3550 if (r->out.handle == NULL) {
3551 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
3553 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
3554 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3556 return NDR_ERR_SUCCESS;
3559 static enum ndr_err_code ndr_pull_winreg_OpenHKCC(struct ndr_pull *ndr, int flags, struct winreg_OpenHKCC *r)
3561 uint32_t _ptr_system_name;
3562 TALLOC_CTX *_mem_save_system_name_0;
3563 TALLOC_CTX *_mem_save_handle_0;
3564 if (flags & NDR_IN) {
3565 ZERO_STRUCT(r->out);
3567 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_system_name));
3568 if (_ptr_system_name) {
3569 NDR_PULL_ALLOC(ndr, r->in.system_name);
3571 r->in.system_name = NULL;
3573 if (r->in.system_name) {
3574 _mem_save_system_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3575 NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0);
3576 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.system_name));
3577 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0);
3579 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
3580 NDR_PULL_ALLOC(ndr, r->out.handle);
3581 ZERO_STRUCTP(r->out.handle);
3583 if (flags & NDR_OUT) {
3584 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3585 NDR_PULL_ALLOC(ndr, r->out.handle);
3587 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
3588 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
3589 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
3590 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
3591 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3593 return NDR_ERR_SUCCESS;
3596 _PUBLIC_ void ndr_print_winreg_OpenHKCC(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenHKCC *r)
3598 ndr_print_struct(ndr, name, "winreg_OpenHKCC");
3600 if (flags & NDR_SET_VALUES) {
3601 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3603 if (flags & NDR_IN) {
3604 ndr_print_struct(ndr, "in", "winreg_OpenHKCC");
3606 ndr_print_ptr(ndr, "system_name", r->in.system_name);
3608 if (r->in.system_name) {
3609 ndr_print_uint16(ndr, "system_name", *r->in.system_name);
3612 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
3615 if (flags & NDR_OUT) {
3616 ndr_print_struct(ndr, "out", "winreg_OpenHKCC");
3618 ndr_print_ptr(ndr, "handle", r->out.handle);
3620 ndr_print_policy_handle(ndr, "handle", r->out.handle);
3622 ndr_print_WERROR(ndr, "result", r->out.result);
3628 static enum ndr_err_code ndr_push_winreg_OpenHKDD(struct ndr_push *ndr, int flags, const struct winreg_OpenHKDD *r)
3630 if (flags & NDR_IN) {
3631 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.system_name));
3632 if (r->in.system_name) {
3633 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.system_name));
3635 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
3637 if (flags & NDR_OUT) {
3638 if (r->out.handle == NULL) {
3639 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
3641 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
3642 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3644 return NDR_ERR_SUCCESS;
3647 static enum ndr_err_code ndr_pull_winreg_OpenHKDD(struct ndr_pull *ndr, int flags, struct winreg_OpenHKDD *r)
3649 uint32_t _ptr_system_name;
3650 TALLOC_CTX *_mem_save_system_name_0;
3651 TALLOC_CTX *_mem_save_handle_0;
3652 if (flags & NDR_IN) {
3653 ZERO_STRUCT(r->out);
3655 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_system_name));
3656 if (_ptr_system_name) {
3657 NDR_PULL_ALLOC(ndr, r->in.system_name);
3659 r->in.system_name = NULL;
3661 if (r->in.system_name) {
3662 _mem_save_system_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3663 NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0);
3664 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.system_name));
3665 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0);
3667 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
3668 NDR_PULL_ALLOC(ndr, r->out.handle);
3669 ZERO_STRUCTP(r->out.handle);
3671 if (flags & NDR_OUT) {
3672 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3673 NDR_PULL_ALLOC(ndr, r->out.handle);
3675 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
3676 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
3677 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
3678 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
3679 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3681 return NDR_ERR_SUCCESS;
3684 _PUBLIC_ void ndr_print_winreg_OpenHKDD(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenHKDD *r)
3686 ndr_print_struct(ndr, name, "winreg_OpenHKDD");
3688 if (flags & NDR_SET_VALUES) {
3689 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3691 if (flags & NDR_IN) {
3692 ndr_print_struct(ndr, "in", "winreg_OpenHKDD");
3694 ndr_print_ptr(ndr, "system_name", r->in.system_name);
3696 if (r->in.system_name) {
3697 ndr_print_uint16(ndr, "system_name", *r->in.system_name);
3700 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
3703 if (flags & NDR_OUT) {
3704 ndr_print_struct(ndr, "out", "winreg_OpenHKDD");
3706 ndr_print_ptr(ndr, "handle", r->out.handle);
3708 ndr_print_policy_handle(ndr, "handle", r->out.handle);
3710 ndr_print_WERROR(ndr, "result", r->out.result);
3716 _PUBLIC_ enum ndr_err_code ndr_push_winreg_QueryMultipleValues(struct ndr_push *ndr, int flags, const struct winreg_QueryMultipleValues *r)
3718 uint32_t cntr_values_1;
3719 if (flags & NDR_IN) {
3720 if (r->in.key_handle == NULL) {
3721 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
3723 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.key_handle));
3724 if (r->in.values == NULL) {
3725 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
3727 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.num_values));
3728 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
3729 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.num_values));
3730 for (cntr_values_1 = 0; cntr_values_1 < r->in.num_values; cntr_values_1++) {
3731 NDR_CHECK(ndr_push_QueryMultipleValue(ndr, NDR_SCALARS, &r->in.values[cntr_values_1]));
3733 for (cntr_values_1 = 0; cntr_values_1 < r->in.num_values; cntr_values_1++) {
3734 NDR_CHECK(ndr_push_QueryMultipleValue(ndr, NDR_BUFFERS, &r->in.values[cntr_values_1]));
3736 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.num_values));
3737 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
3739 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, *r->in.buffer_size));
3740 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
3741 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, *r->in.buffer_size));
3742 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, *r->in.buffer_size));
3744 if (r->in.buffer_size == NULL) {
3745 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
3747 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.buffer_size));
3749 if (flags & NDR_OUT) {
3750 if (r->out.values == NULL) {
3751 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
3753 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.num_values));
3754 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
3755 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.num_values));
3756 for (cntr_values_1 = 0; cntr_values_1 < r->in.num_values; cntr_values_1++) {
3757 NDR_CHECK(ndr_push_QueryMultipleValue(ndr, NDR_SCALARS, &r->out.values[cntr_values_1]));
3759 for (cntr_values_1 = 0; cntr_values_1 < r->in.num_values; cntr_values_1++) {
3760 NDR_CHECK(ndr_push_QueryMultipleValue(ndr, NDR_BUFFERS, &r->out.values[cntr_values_1]));
3762 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.buffer));
3763 if (r->out.buffer) {
3764 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, *r->out.buffer_size));
3765 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
3766 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, *r->out.buffer_size));
3767 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, *r->out.buffer_size));
3769 if (r->out.buffer_size == NULL) {
3770 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
3772 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.buffer_size));
3773 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3775 return NDR_ERR_SUCCESS;
3778 _PUBLIC_ enum ndr_err_code ndr_pull_winreg_QueryMultipleValues(struct ndr_pull *ndr, int flags, struct winreg_QueryMultipleValues *r)
3780 uint32_t cntr_values_1;
3781 uint32_t _ptr_buffer;
3782 TALLOC_CTX *_mem_save_key_handle_0;
3783 TALLOC_CTX *_mem_save_values_1;
3784 TALLOC_CTX *_mem_save_buffer_0;
3785 TALLOC_CTX *_mem_save_buffer_size_0;
3786 if (flags & NDR_IN) {
3787 ZERO_STRUCT(r->out);
3789 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3790 NDR_PULL_ALLOC(ndr, r->in.key_handle);
3792 _mem_save_key_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
3793 NDR_PULL_SET_MEM_CTX(ndr, r->in.key_handle, LIBNDR_FLAG_REF_ALLOC);
3794 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.key_handle));
3795 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_key_handle_0, LIBNDR_FLAG_REF_ALLOC);
3796 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.values));
3797 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.values));
3798 if (ndr_get_array_length(ndr, &r->in.values) > ndr_get_array_size(ndr, &r->in.values)) {
3799 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));
3801 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3802 NDR_PULL_ALLOC_N(ndr, r->in.values, ndr_get_array_size(ndr, &r->in.values));
3804 memcpy(r->out.values, r->in.values, (ndr_get_array_size(ndr, &r->in.values)) * sizeof(*r->in.values));
3805 _mem_save_values_1 = NDR_PULL_GET_MEM_CTX(ndr);
3806 NDR_PULL_SET_MEM_CTX(ndr, r->in.values, 0);
3807 for (cntr_values_1 = 0; cntr_values_1 < ndr_get_array_length(ndr, &r->in.values); cntr_values_1++) {
3808 NDR_CHECK(ndr_pull_QueryMultipleValue(ndr, NDR_SCALARS, &r->in.values[cntr_values_1]));
3810 for (cntr_values_1 = 0; cntr_values_1 < ndr_get_array_length(ndr, &r->in.values); cntr_values_1++) {
3811 NDR_CHECK(ndr_pull_QueryMultipleValue(ndr, NDR_BUFFERS, &r->in.values[cntr_values_1]));
3813 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_values_1, 0);
3814 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.num_values));
3815 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
3817 NDR_PULL_ALLOC(ndr, r->in.buffer);
3819 r->in.buffer = NULL;
3822 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
3823 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
3824 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
3825 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.buffer));
3826 if (ndr_get_array_length(ndr, &r->in.buffer) > ndr_get_array_size(ndr, &r->in.buffer)) {
3827 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));
3829 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
3830 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_length(ndr, &r->in.buffer)));
3831 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
3833 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3834 NDR_PULL_ALLOC(ndr, r->in.buffer_size);
3836 _mem_save_buffer_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
3837 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer_size, LIBNDR_FLAG_REF_ALLOC);
3838 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.buffer_size));
3839 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_size_0, LIBNDR_FLAG_REF_ALLOC);
3840 NDR_PULL_ALLOC_N(ndr, r->out.values, r->in.num_values);
3841 memcpy(r->out.values, r->in.values, (r->in.num_values) * sizeof(*r->in.values));
3842 NDR_PULL_ALLOC(ndr, r->out.buffer_size);
3843 *r->out.buffer_size = *r->in.buffer_size;
3845 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.values, r->in.num_values));
3848 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->in.values, r->in.num_values));
3851 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, *r->in.buffer_size));
3854 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->in.buffer, *r->in.buffer_size));
3857 if (flags & NDR_OUT) {
3858 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.values));
3859 NDR_CHECK(ndr_pull_array_length(ndr, &r->out.values));
3860 if (ndr_get_array_length(ndr, &r->out.values) > ndr_get_array_size(ndr, &r->out.values)) {
3861 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));
3863 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3864 NDR_PULL_ALLOC_N(ndr, r->out.values, ndr_get_array_size(ndr, &r->out.values));
3866 memcpy(r->out.values, r->in.values, (ndr_get_array_size(ndr, &r->out.values)) * sizeof(*r->in.values));
3867 _mem_save_values_1 = NDR_PULL_GET_MEM_CTX(ndr);
3868 NDR_PULL_SET_MEM_CTX(ndr, r->out.values, 0);
3869 for (cntr_values_1 = 0; cntr_values_1 < ndr_get_array_length(ndr, &r->out.values); cntr_values_1++) {
3870 NDR_CHECK(ndr_pull_QueryMultipleValue(ndr, NDR_SCALARS, &r->out.values[cntr_values_1]));
3872 for (cntr_values_1 = 0; cntr_values_1 < ndr_get_array_length(ndr, &r->out.values); cntr_values_1++) {
3873 NDR_CHECK(ndr_pull_QueryMultipleValue(ndr, NDR_BUFFERS, &r->out.values[cntr_values_1]));
3875 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_values_1, 0);
3876 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
3878 NDR_PULL_ALLOC(ndr, r->out.buffer);
3880 r->out.buffer = NULL;
3882 if (r->out.buffer) {
3883 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
3884 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, 0);
3885 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
3886 NDR_CHECK(ndr_pull_array_length(ndr, &r->out.buffer));
3887 if (ndr_get_array_length(ndr, &r->out.buffer) > ndr_get_array_size(ndr, &r->out.buffer)) {
3888 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));
3890 NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
3891 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_length(ndr, &r->out.buffer)));
3892 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
3894 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3895 NDR_PULL_ALLOC(ndr, r->out.buffer_size);
3897 _mem_save_buffer_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
3898 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer_size, LIBNDR_FLAG_REF_ALLOC);
3899 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.buffer_size));
3900 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_size_0, LIBNDR_FLAG_REF_ALLOC);
3901 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3902 if (r->out.values) {
3903 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.values, r->in.num_values));
3905 if (r->out.values) {
3906 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->out.values, r->in.num_values));
3908 if (r->out.buffer) {
3909 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, *r->out.buffer_size));
3911 if (r->out.buffer) {
3912 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->out.buffer, *r->out.buffer_size));
3915 return NDR_ERR_SUCCESS;
3918 _PUBLIC_ void ndr_print_winreg_QueryMultipleValues(struct ndr_print *ndr, const char *name, int flags, const struct winreg_QueryMultipleValues *r)
3920 uint32_t cntr_values_1;
3921 ndr_print_struct(ndr, name, "winreg_QueryMultipleValues");
3923 if (flags & NDR_SET_VALUES) {
3924 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3926 if (flags & NDR_IN) {
3927 ndr_print_struct(ndr, "in", "winreg_QueryMultipleValues");
3929 ndr_print_ptr(ndr, "key_handle", r->in.key_handle);
3931 ndr_print_policy_handle(ndr, "key_handle", r->in.key_handle);
3933 ndr_print_ptr(ndr, "values", r->in.values);
3935 ndr->print(ndr, "%s: ARRAY(%d)", "values", (int)r->in.num_values);
3937 for (cntr_values_1=0;cntr_values_1<r->in.num_values;cntr_values_1++) {
3939 if (asprintf(&idx_1, "[%d]", cntr_values_1) != -1) {
3940 ndr_print_QueryMultipleValue(ndr, "values", &r->in.values[cntr_values_1]);
3946 ndr_print_uint32(ndr, "num_values", r->in.num_values);
3947 ndr_print_ptr(ndr, "buffer", r->in.buffer);
3950 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, *r->in.buffer_size);
3953 ndr_print_ptr(ndr, "buffer_size", r->in.buffer_size);
3955 ndr_print_uint32(ndr, "buffer_size", *r->in.buffer_size);
3959 if (flags & NDR_OUT) {
3960 ndr_print_struct(ndr, "out", "winreg_QueryMultipleValues");
3962 ndr_print_ptr(ndr, "values", r->out.values);
3964 ndr->print(ndr, "%s: ARRAY(%d)", "values", (int)r->in.num_values);
3966 for (cntr_values_1=0;cntr_values_1<r->in.num_values;cntr_values_1++) {
3968 if (asprintf(&idx_1, "[%d]", cntr_values_1) != -1) {
3969 ndr_print_QueryMultipleValue(ndr, "values", &r->out.values[cntr_values_1]);
3975 ndr_print_ptr(ndr, "buffer", r->out.buffer);
3977 if (r->out.buffer) {
3978 ndr_print_array_uint8(ndr, "buffer", r->out.buffer, *r->out.buffer_size);
3981 ndr_print_ptr(ndr, "buffer_size", r->out.buffer_size);
3983 ndr_print_uint32(ndr, "buffer_size", *r->out.buffer_size);
3985 ndr_print_WERROR(ndr, "result", r->out.result);
3991 static enum ndr_err_code ndr_push_winreg_InitiateSystemShutdownEx(struct ndr_push *ndr, int flags, const struct winreg_InitiateSystemShutdownEx *r)
3993 if (flags & NDR_IN) {
3994 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.hostname));
3995 if (r->in.hostname) {
3996 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.hostname));
3998 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.message));
3999 if (r->in.message) {
4000 NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.message));
4002 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.timeout));
4003 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->in.force_apps));
4004 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->in.do_reboot));
4005 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.reason));
4007 if (flags & NDR_OUT) {
4008 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
4010 return NDR_ERR_SUCCESS;
4013 static enum ndr_err_code ndr_pull_winreg_InitiateSystemShutdownEx(struct ndr_pull *ndr, int flags, struct winreg_InitiateSystemShutdownEx *r)
4015 uint32_t _ptr_hostname;
4016 uint32_t _ptr_message;
4017 TALLOC_CTX *_mem_save_hostname_0;
4018 TALLOC_CTX *_mem_save_message_0;
4019 if (flags & NDR_IN) {
4020 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hostname));
4021 if (_ptr_hostname) {
4022 NDR_PULL_ALLOC(ndr, r->in.hostname);
4024 r->in.hostname = NULL;
4026 if (r->in.hostname) {
4027 _mem_save_hostname_0 = NDR_PULL_GET_MEM_CTX(ndr);
4028 NDR_PULL_SET_MEM_CTX(ndr, r->in.hostname, 0);
4029 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.hostname));
4030 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hostname_0, 0);
4032 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_message));
4034 NDR_PULL_ALLOC(ndr, r->in.message);
4036 r->in.message = NULL;
4038 if (r->in.message) {
4039 _mem_save_message_0 = NDR_PULL_GET_MEM_CTX(ndr);
4040 NDR_PULL_SET_MEM_CTX(ndr, r->in.message, 0);
4041 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.message));
4042 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_message_0, 0);
4044 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.timeout));
4045 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->in.force_apps));
4046 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->in.do_reboot));
4047 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.reason));
4049 if (flags & NDR_OUT) {
4050 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
4052 return NDR_ERR_SUCCESS;
4055 _PUBLIC_ void ndr_print_winreg_InitiateSystemShutdownEx(struct ndr_print *ndr, const char *name, int flags, const struct winreg_InitiateSystemShutdownEx *r)
4057 ndr_print_struct(ndr, name, "winreg_InitiateSystemShutdownEx");
4059 if (flags & NDR_SET_VALUES) {
4060 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
4062 if (flags & NDR_IN) {
4063 ndr_print_struct(ndr, "in", "winreg_InitiateSystemShutdownEx");
4065 ndr_print_ptr(ndr, "hostname", r->in.hostname);
4067 if (r->in.hostname) {
4068 ndr_print_uint16(ndr, "hostname", *r->in.hostname);
4071 ndr_print_ptr(ndr, "message", r->in.message);
4073 if (r->in.message) {
4074 ndr_print_lsa_StringLarge(ndr, "message", r->in.message);
4077 ndr_print_uint32(ndr, "timeout", r->in.timeout);
4078 ndr_print_uint8(ndr, "force_apps", r->in.force_apps);
4079 ndr_print_uint8(ndr, "do_reboot", r->in.do_reboot);
4080 ndr_print_uint32(ndr, "reason", r->in.reason);
4083 if (flags & NDR_OUT) {
4084 ndr_print_struct(ndr, "out", "winreg_InitiateSystemShutdownEx");
4086 ndr_print_WERROR(ndr, "result", r->out.result);
4092 static enum ndr_err_code ndr_push_winreg_SaveKeyEx(struct ndr_push *ndr, int flags, const struct winreg_SaveKeyEx *r)
4094 if (flags & NDR_IN) {
4095 if (r->in.handle == NULL) {
4096 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
4098 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
4099 if (r->in.filename == NULL) {
4100 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
4102 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.filename));
4103 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.sec_attrib));
4104 if (r->in.sec_attrib) {
4105 NDR_CHECK(ndr_push_KeySecurityAttribute(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sec_attrib));
4107 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.flags));
4109 if (flags & NDR_OUT) {
4110 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
4112 return NDR_ERR_SUCCESS;
4115 static enum ndr_err_code ndr_pull_winreg_SaveKeyEx(struct ndr_pull *ndr, int flags, struct winreg_SaveKeyEx *r)
4117 uint32_t _ptr_sec_attrib;
4118 TALLOC_CTX *_mem_save_handle_0;
4119 TALLOC_CTX *_mem_save_filename_0;
4120 TALLOC_CTX *_mem_save_sec_attrib_0;
4121 if (flags & NDR_IN) {
4122 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
4123 NDR_PULL_ALLOC(ndr, r->in.handle);
4125 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
4126 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
4127 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
4128 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
4129 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
4130 NDR_PULL_ALLOC(ndr, r->in.filename);
4132 _mem_save_filename_0 = NDR_PULL_GET_MEM_CTX(ndr);
4133 NDR_PULL_SET_MEM_CTX(ndr, r->in.filename, LIBNDR_FLAG_REF_ALLOC);
4134 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.filename));
4135 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_filename_0, LIBNDR_FLAG_REF_ALLOC);
4136 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sec_attrib));
4137 if (_ptr_sec_attrib) {
4138 NDR_PULL_ALLOC(ndr, r->in.sec_attrib);
4140 r->in.sec_attrib = NULL;
4142 if (r->in.sec_attrib) {
4143 _mem_save_sec_attrib_0 = NDR_PULL_GET_MEM_CTX(ndr);
4144 NDR_PULL_SET_MEM_CTX(ndr, r->in.sec_attrib, 0);
4145 NDR_CHECK(ndr_pull_KeySecurityAttribute(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sec_attrib));
4146 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sec_attrib_0, 0);
4148 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.flags));
4150 if (flags & NDR_OUT) {
4151 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
4153 return NDR_ERR_SUCCESS;
4156 _PUBLIC_ void ndr_print_winreg_SaveKeyEx(struct ndr_print *ndr, const char *name, int flags, const struct winreg_SaveKeyEx *r)
4158 ndr_print_struct(ndr, name, "winreg_SaveKeyEx");
4160 if (flags & NDR_SET_VALUES) {
4161 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
4163 if (flags & NDR_IN) {
4164 ndr_print_struct(ndr, "in", "winreg_SaveKeyEx");
4166 ndr_print_ptr(ndr, "handle", r->in.handle);
4168 ndr_print_policy_handle(ndr, "handle", r->in.handle);
4170 ndr_print_ptr(ndr, "filename", r->in.filename);
4172 ndr_print_winreg_String(ndr, "filename", r->in.filename);
4174 ndr_print_ptr(ndr, "sec_attrib", r->in.sec_attrib);
4176 if (r->in.sec_attrib) {
4177 ndr_print_KeySecurityAttribute(ndr, "sec_attrib", r->in.sec_attrib);
4180 ndr_print_uint32(ndr, "flags", r->in.flags);
4183 if (flags & NDR_OUT) {
4184 ndr_print_struct(ndr, "out", "winreg_SaveKeyEx");
4186 ndr_print_WERROR(ndr, "result", r->out.result);
4192 static enum ndr_err_code ndr_push_winreg_OpenHKPT(struct ndr_push *ndr, int flags, const struct winreg_OpenHKPT *r)
4194 if (flags & NDR_IN) {
4195 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.system_name));
4196 if (r->in.system_name) {
4197 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.system_name));
4199 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
4201 if (flags & NDR_OUT) {
4202 if (r->out.handle == NULL) {
4203 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
4205 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
4206 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
4208 return NDR_ERR_SUCCESS;
4211 static enum ndr_err_code ndr_pull_winreg_OpenHKPT(struct ndr_pull *ndr, int flags, struct winreg_OpenHKPT *r)
4213 uint32_t _ptr_system_name;
4214 TALLOC_CTX *_mem_save_system_name_0;
4215 TALLOC_CTX *_mem_save_handle_0;
4216 if (flags & NDR_IN) {
4217 ZERO_STRUCT(r->out);
4219 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_system_name));
4220 if (_ptr_system_name) {
4221 NDR_PULL_ALLOC(ndr, r->in.system_name);
4223 r->in.system_name = NULL;
4225 if (r->in.system_name) {
4226 _mem_save_system_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4227 NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0);
4228 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.system_name));
4229 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0);
4231 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
4232 NDR_PULL_ALLOC(ndr, r->out.handle);
4233 ZERO_STRUCTP(r->out.handle);
4235 if (flags & NDR_OUT) {
4236 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
4237 NDR_PULL_ALLOC(ndr, r->out.handle);
4239 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
4240 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
4241 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
4242 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
4243 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
4245 return NDR_ERR_SUCCESS;
4248 _PUBLIC_ void ndr_print_winreg_OpenHKPT(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenHKPT *r)
4250 ndr_print_struct(ndr, name, "winreg_OpenHKPT");
4252 if (flags & NDR_SET_VALUES) {
4253 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
4255 if (flags & NDR_IN) {
4256 ndr_print_struct(ndr, "in", "winreg_OpenHKPT");
4258 ndr_print_ptr(ndr, "system_name", r->in.system_name);
4260 if (r->in.system_name) {
4261 ndr_print_uint16(ndr, "system_name", *r->in.system_name);
4264 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
4267 if (flags & NDR_OUT) {
4268 ndr_print_struct(ndr, "out", "winreg_OpenHKPT");
4270 ndr_print_ptr(ndr, "handle", r->out.handle);
4272 ndr_print_policy_handle(ndr, "handle", r->out.handle);
4274 ndr_print_WERROR(ndr, "result", r->out.result);
4280 static enum ndr_err_code ndr_push_winreg_OpenHKPN(struct ndr_push *ndr, int flags, const struct winreg_OpenHKPN *r)
4282 if (flags & NDR_IN) {
4283 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.system_name));
4284 if (r->in.system_name) {
4285 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.system_name));
4287 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
4289 if (flags & NDR_OUT) {
4290 if (r->out.handle == NULL) {
4291 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
4293 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
4294 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
4296 return NDR_ERR_SUCCESS;
4299 static enum ndr_err_code ndr_pull_winreg_OpenHKPN(struct ndr_pull *ndr, int flags, struct winreg_OpenHKPN *r)
4301 uint32_t _ptr_system_name;
4302 TALLOC_CTX *_mem_save_system_name_0;
4303 TALLOC_CTX *_mem_save_handle_0;
4304 if (flags & NDR_IN) {
4305 ZERO_STRUCT(r->out);
4307 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_system_name));
4308 if (_ptr_system_name) {
4309 NDR_PULL_ALLOC(ndr, r->in.system_name);
4311 r->in.system_name = NULL;
4313 if (r->in.system_name) {
4314 _mem_save_system_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4315 NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0);
4316 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.system_name));
4317 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0);
4319 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
4320 NDR_PULL_ALLOC(ndr, r->out.handle);
4321 ZERO_STRUCTP(r->out.handle);
4323 if (flags & NDR_OUT) {
4324 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
4325 NDR_PULL_ALLOC(ndr, r->out.handle);
4327 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
4328 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
4329 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
4330 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
4331 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
4333 return NDR_ERR_SUCCESS;
4336 _PUBLIC_ void ndr_print_winreg_OpenHKPN(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenHKPN *r)
4338 ndr_print_struct(ndr, name, "winreg_OpenHKPN");
4340 if (flags & NDR_SET_VALUES) {
4341 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
4343 if (flags & NDR_IN) {
4344 ndr_print_struct(ndr, "in", "winreg_OpenHKPN");
4346 ndr_print_ptr(ndr, "system_name", r->in.system_name);
4348 if (r->in.system_name) {
4349 ndr_print_uint16(ndr, "system_name", *r->in.system_name);
4352 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
4355 if (flags & NDR_OUT) {
4356 ndr_print_struct(ndr, "out", "winreg_OpenHKPN");
4358 ndr_print_ptr(ndr, "handle", r->out.handle);
4360 ndr_print_policy_handle(ndr, "handle", r->out.handle);
4362 ndr_print_WERROR(ndr, "result", r->out.result);
4368 static enum ndr_err_code ndr_push_winreg_QueryMultipleValues2(struct ndr_push *ndr, int flags, const struct winreg_QueryMultipleValues2 *r)
4370 uint32_t cntr_values_1;
4371 if (flags & NDR_IN) {
4372 if (r->in.key_handle == NULL) {
4373 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
4375 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.key_handle));
4376 if (r->in.values == NULL) {
4377 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
4379 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.num_values));
4380 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
4381 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.num_values));
4382 for (cntr_values_1 = 0; cntr_values_1 < r->in.num_values; cntr_values_1++) {
4383 NDR_CHECK(ndr_push_QueryMultipleValue(ndr, NDR_SCALARS, &r->in.values[cntr_values_1]));
4385 for (cntr_values_1 = 0; cntr_values_1 < r->in.num_values; cntr_values_1++) {
4386 NDR_CHECK(ndr_push_QueryMultipleValue(ndr, NDR_BUFFERS, &r->in.values[cntr_values_1]));
4388 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.num_values));
4389 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
4391 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.offered));
4392 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
4393 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.offered));
4394 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.offered));
4396 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
4398 if (flags & NDR_OUT) {
4399 if (r->out.values == NULL) {
4400 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
4402 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.num_values));
4403 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
4404 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.num_values));
4405 for (cntr_values_1 = 0; cntr_values_1 < r->in.num_values; cntr_values_1++) {
4406 NDR_CHECK(ndr_push_QueryMultipleValue(ndr, NDR_SCALARS, &r->out.values[cntr_values_1]));
4408 for (cntr_values_1 = 0; cntr_values_1 < r->in.num_values; cntr_values_1++) {
4409 NDR_CHECK(ndr_push_QueryMultipleValue(ndr, NDR_BUFFERS, &r->out.values[cntr_values_1]));
4411 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.buffer));
4412 if (r->out.buffer) {
4413 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.offered));
4414 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
4415 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.offered));
4416 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.offered));
4418 if (r->out.needed == NULL) {
4419 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
4421 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
4422 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
4424 return NDR_ERR_SUCCESS;
4427 static enum ndr_err_code ndr_pull_winreg_QueryMultipleValues2(struct ndr_pull *ndr, int flags, struct winreg_QueryMultipleValues2 *r)
4429 uint32_t cntr_values_1;
4430 uint32_t _ptr_buffer;
4431 TALLOC_CTX *_mem_save_key_handle_0;
4432 TALLOC_CTX *_mem_save_values_1;
4433 TALLOC_CTX *_mem_save_buffer_0;
4434 TALLOC_CTX *_mem_save_needed_0;
4435 if (flags & NDR_IN) {
4436 ZERO_STRUCT(r->out);
4438 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
4439 NDR_PULL_ALLOC(ndr, r->in.key_handle);
4441 _mem_save_key_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
4442 NDR_PULL_SET_MEM_CTX(ndr, r->in.key_handle, LIBNDR_FLAG_REF_ALLOC);
4443 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.key_handle));
4444 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_key_handle_0, LIBNDR_FLAG_REF_ALLOC);
4445 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.values));
4446 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.values));
4447 if (ndr_get_array_length(ndr, &r->in.values) > ndr_get_array_size(ndr, &r->in.values)) {
4448 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));
4450 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
4451 NDR_PULL_ALLOC_N(ndr, r->in.values, ndr_get_array_size(ndr, &r->in.values));
4453 memcpy(r->out.values, r->in.values, (ndr_get_array_size(ndr, &r->in.values)) * sizeof(*r->in.values));
4454 _mem_save_values_1 = NDR_PULL_GET_MEM_CTX(ndr);
4455 NDR_PULL_SET_MEM_CTX(ndr, r->in.values, 0);
4456 for (cntr_values_1 = 0; cntr_values_1 < ndr_get_array_length(ndr, &r->in.values); cntr_values_1++) {
4457 NDR_CHECK(ndr_pull_QueryMultipleValue(ndr, NDR_SCALARS, &r->in.values[cntr_values_1]));
4459 for (cntr_values_1 = 0; cntr_values_1 < ndr_get_array_length(ndr, &r->in.values); cntr_values_1++) {
4460 NDR_CHECK(ndr_pull_QueryMultipleValue(ndr, NDR_BUFFERS, &r->in.values[cntr_values_1]));
4462 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_values_1, 0);
4463 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.num_values));
4464 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
4466 NDR_PULL_ALLOC(ndr, r->in.buffer);
4468 r->in.buffer = NULL;
4471 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
4472 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
4473 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
4474 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.buffer));
4475 if (ndr_get_array_length(ndr, &r->in.buffer) > ndr_get_array_size(ndr, &r->in.buffer)) {
4476 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));
4478 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
4479 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_length(ndr, &r->in.buffer)));
4480 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
4482 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
4483 NDR_PULL_ALLOC_N(ndr, r->out.values, r->in.num_values);
4484 memcpy(r->out.values, r->in.values, (r->in.num_values) * sizeof(*r->in.values));
4485 NDR_PULL_ALLOC(ndr, r->out.needed);
4486 ZERO_STRUCTP(r->out.needed);
4488 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.values, r->in.num_values));
4491 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->in.values, r->in.num_values));
4494 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.offered));
4497 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->in.buffer, r->in.offered));
4500 if (flags & NDR_OUT) {
4501 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.values));
4502 NDR_CHECK(ndr_pull_array_length(ndr, &r->out.values));
4503 if (ndr_get_array_length(ndr, &r->out.values) > ndr_get_array_size(ndr, &r->out.values)) {
4504 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));
4506 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
4507 NDR_PULL_ALLOC_N(ndr, r->out.values, ndr_get_array_size(ndr, &r->out.values));
4509 memcpy(r->out.values, r->in.values, (ndr_get_array_size(ndr, &r->out.values)) * sizeof(*r->in.values));
4510 _mem_save_values_1 = NDR_PULL_GET_MEM_CTX(ndr);
4511 NDR_PULL_SET_MEM_CTX(ndr, r->out.values, 0);
4512 for (cntr_values_1 = 0; cntr_values_1 < ndr_get_array_length(ndr, &r->out.values); cntr_values_1++) {
4513 NDR_CHECK(ndr_pull_QueryMultipleValue(ndr, NDR_SCALARS, &r->out.values[cntr_values_1]));
4515 for (cntr_values_1 = 0; cntr_values_1 < ndr_get_array_length(ndr, &r->out.values); cntr_values_1++) {
4516 NDR_CHECK(ndr_pull_QueryMultipleValue(ndr, NDR_BUFFERS, &r->out.values[cntr_values_1]));
4518 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_values_1, 0);
4519 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
4521 NDR_PULL_ALLOC(ndr, r->out.buffer);
4523 r->out.buffer = NULL;
4525 if (r->out.buffer) {
4526 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
4527 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, 0);
4528 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
4529 NDR_CHECK(ndr_pull_array_length(ndr, &r->out.buffer));
4530 if (ndr_get_array_length(ndr, &r->out.buffer) > ndr_get_array_size(ndr, &r->out.buffer)) {
4531 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));
4533 NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
4534 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_length(ndr, &r->out.buffer)));
4535 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
4537 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
4538 NDR_PULL_ALLOC(ndr, r->out.needed);
4540 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
4541 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
4542 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
4543 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
4544 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
4545 if (r->out.values) {
4546 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.values, r->in.num_values));
4548 if (r->out.values) {
4549 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->out.values, r->in.num_values));
4551 if (r->out.buffer) {
4552 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, r->in.offered));
4554 if (r->out.buffer) {
4555 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->out.buffer, r->in.offered));
4558 return NDR_ERR_SUCCESS;
4561 _PUBLIC_ void ndr_print_winreg_QueryMultipleValues2(struct ndr_print *ndr, const char *name, int flags, const struct winreg_QueryMultipleValues2 *r)
4563 uint32_t cntr_values_1;
4564 ndr_print_struct(ndr, name, "winreg_QueryMultipleValues2");
4566 if (flags & NDR_SET_VALUES) {
4567 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
4569 if (flags & NDR_IN) {
4570 ndr_print_struct(ndr, "in", "winreg_QueryMultipleValues2");
4572 ndr_print_ptr(ndr, "key_handle", r->in.key_handle);
4574 ndr_print_policy_handle(ndr, "key_handle", r->in.key_handle);
4576 ndr_print_ptr(ndr, "values", r->in.values);
4578 ndr->print(ndr, "%s: ARRAY(%d)", "values", (int)r->in.num_values);
4580 for (cntr_values_1=0;cntr_values_1<r->in.num_values;cntr_values_1++) {
4582 if (asprintf(&idx_1, "[%d]", cntr_values_1) != -1) {
4583 ndr_print_QueryMultipleValue(ndr, "values", &r->in.values[cntr_values_1]);
4589 ndr_print_uint32(ndr, "num_values", r->in.num_values);
4590 ndr_print_ptr(ndr, "buffer", r->in.buffer);
4593 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.offered);
4596 ndr_print_uint32(ndr, "offered", r->in.offered);
4599 if (flags & NDR_OUT) {
4600 ndr_print_struct(ndr, "out", "winreg_QueryMultipleValues2");
4602 ndr_print_ptr(ndr, "values", r->out.values);
4604 ndr->print(ndr, "%s: ARRAY(%d)", "values", (int)r->in.num_values);
4606 for (cntr_values_1=0;cntr_values_1<r->in.num_values;cntr_values_1++) {
4608 if (asprintf(&idx_1, "[%d]", cntr_values_1) != -1) {
4609 ndr_print_QueryMultipleValue(ndr, "values", &r->out.values[cntr_values_1]);
4615 ndr_print_ptr(ndr, "buffer", r->out.buffer);
4617 if (r->out.buffer) {
4618 ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.offered);
4621 ndr_print_ptr(ndr, "needed", r->out.needed);
4623 ndr_print_uint32(ndr, "needed", *r->out.needed);
4625 ndr_print_WERROR(ndr, "result", r->out.result);
4631 static enum ndr_err_code ndr_push_winreg_DeleteKeyEx(struct ndr_push *ndr, int flags, const struct winreg_DeleteKeyEx *r)
4633 if (flags & NDR_IN) {
4634 if (r->in.handle == NULL) {
4635 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
4637 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
4638 if (r->in.key == NULL) {
4639 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
4641 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.key));
4642 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
4643 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.reserved));
4645 if (flags & NDR_OUT) {
4646 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
4648 return NDR_ERR_SUCCESS;
4651 static enum ndr_err_code ndr_pull_winreg_DeleteKeyEx(struct ndr_pull *ndr, int flags, struct winreg_DeleteKeyEx *r)
4653 TALLOC_CTX *_mem_save_handle_0;
4654 TALLOC_CTX *_mem_save_key_0;
4655 if (flags & NDR_IN) {
4656 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
4657 NDR_PULL_ALLOC(ndr, r->in.handle);
4659 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
4660 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
4661 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
4662 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
4663 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
4664 NDR_PULL_ALLOC(ndr, r->in.key);
4666 _mem_save_key_0 = NDR_PULL_GET_MEM_CTX(ndr);
4667 NDR_PULL_SET_MEM_CTX(ndr, r->in.key, LIBNDR_FLAG_REF_ALLOC);
4668 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.key));
4669 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_key_0, LIBNDR_FLAG_REF_ALLOC);
4670 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
4671 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.reserved));
4673 if (flags & NDR_OUT) {
4674 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
4676 return NDR_ERR_SUCCESS;
4679 _PUBLIC_ void ndr_print_winreg_DeleteKeyEx(struct ndr_print *ndr, const char *name, int flags, const struct winreg_DeleteKeyEx *r)
4681 ndr_print_struct(ndr, name, "winreg_DeleteKeyEx");
4683 if (flags & NDR_SET_VALUES) {
4684 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
4686 if (flags & NDR_IN) {
4687 ndr_print_struct(ndr, "in", "winreg_DeleteKeyEx");
4689 ndr_print_ptr(ndr, "handle", r->in.handle);
4691 ndr_print_policy_handle(ndr, "handle", r->in.handle);
4693 ndr_print_ptr(ndr, "key", r->in.key);
4695 ndr_print_winreg_String(ndr, "key", r->in.key);
4697 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
4698 ndr_print_uint32(ndr, "reserved", r->in.reserved);
4701 if (flags & NDR_OUT) {
4702 ndr_print_struct(ndr, "out", "winreg_DeleteKeyEx");
4704 ndr_print_WERROR(ndr, "result", r->out.result);
4710 static const struct ndr_interface_call winreg_calls[] = {
4713 sizeof(struct winreg_OpenHKCR),
4714 (ndr_push_flags_fn_t) ndr_push_winreg_OpenHKCR,
4715 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenHKCR,
4716 (ndr_print_function_t) ndr_print_winreg_OpenHKCR,
4721 sizeof(struct winreg_OpenHKCU),
4722 (ndr_push_flags_fn_t) ndr_push_winreg_OpenHKCU,
4723 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenHKCU,
4724 (ndr_print_function_t) ndr_print_winreg_OpenHKCU,
4729 sizeof(struct winreg_OpenHKLM),
4730 (ndr_push_flags_fn_t) ndr_push_winreg_OpenHKLM,
4731 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenHKLM,
4732 (ndr_print_function_t) ndr_print_winreg_OpenHKLM,
4737 sizeof(struct winreg_OpenHKPD),
4738 (ndr_push_flags_fn_t) ndr_push_winreg_OpenHKPD,
4739 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenHKPD,
4740 (ndr_print_function_t) ndr_print_winreg_OpenHKPD,
4745 sizeof(struct winreg_OpenHKU),
4746 (ndr_push_flags_fn_t) ndr_push_winreg_OpenHKU,
4747 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenHKU,
4748 (ndr_print_function_t) ndr_print_winreg_OpenHKU,
4753 sizeof(struct winreg_CloseKey),
4754 (ndr_push_flags_fn_t) ndr_push_winreg_CloseKey,
4755 (ndr_pull_flags_fn_t) ndr_pull_winreg_CloseKey,
4756 (ndr_print_function_t) ndr_print_winreg_CloseKey,
4761 sizeof(struct winreg_CreateKey),
4762 (ndr_push_flags_fn_t) ndr_push_winreg_CreateKey,
4763 (ndr_pull_flags_fn_t) ndr_pull_winreg_CreateKey,
4764 (ndr_print_function_t) ndr_print_winreg_CreateKey,
4769 sizeof(struct winreg_DeleteKey),
4770 (ndr_push_flags_fn_t) ndr_push_winreg_DeleteKey,
4771 (ndr_pull_flags_fn_t) ndr_pull_winreg_DeleteKey,
4772 (ndr_print_function_t) ndr_print_winreg_DeleteKey,
4776 "winreg_DeleteValue",
4777 sizeof(struct winreg_DeleteValue),
4778 (ndr_push_flags_fn_t) ndr_push_winreg_DeleteValue,
4779 (ndr_pull_flags_fn_t) ndr_pull_winreg_DeleteValue,
4780 (ndr_print_function_t) ndr_print_winreg_DeleteValue,
4785 sizeof(struct winreg_EnumKey),
4786 (ndr_push_flags_fn_t) ndr_push_winreg_EnumKey,
4787 (ndr_pull_flags_fn_t) ndr_pull_winreg_EnumKey,
4788 (ndr_print_function_t) ndr_print_winreg_EnumKey,
4793 sizeof(struct winreg_EnumValue),
4794 (ndr_push_flags_fn_t) ndr_push_winreg_EnumValue,
4795 (ndr_pull_flags_fn_t) ndr_pull_winreg_EnumValue,
4796 (ndr_print_function_t) ndr_print_winreg_EnumValue,
4801 sizeof(struct winreg_FlushKey),
4802 (ndr_push_flags_fn_t) ndr_push_winreg_FlushKey,
4803 (ndr_pull_flags_fn_t) ndr_pull_winreg_FlushKey,
4804 (ndr_print_function_t) ndr_print_winreg_FlushKey,
4808 "winreg_GetKeySecurity",
4809 sizeof(struct winreg_GetKeySecurity),
4810 (ndr_push_flags_fn_t) ndr_push_winreg_GetKeySecurity,
4811 (ndr_pull_flags_fn_t) ndr_pull_winreg_GetKeySecurity,
4812 (ndr_print_function_t) ndr_print_winreg_GetKeySecurity,
4817 sizeof(struct winreg_LoadKey),
4818 (ndr_push_flags_fn_t) ndr_push_winreg_LoadKey,
4819 (ndr_pull_flags_fn_t) ndr_pull_winreg_LoadKey,
4820 (ndr_print_function_t) ndr_print_winreg_LoadKey,
4824 "winreg_NotifyChangeKeyValue",
4825 sizeof(struct winreg_NotifyChangeKeyValue),
4826 (ndr_push_flags_fn_t) ndr_push_winreg_NotifyChangeKeyValue,
4827 (ndr_pull_flags_fn_t) ndr_pull_winreg_NotifyChangeKeyValue,
4828 (ndr_print_function_t) ndr_print_winreg_NotifyChangeKeyValue,
4833 sizeof(struct winreg_OpenKey),
4834 (ndr_push_flags_fn_t) ndr_push_winreg_OpenKey,
4835 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenKey,
4836 (ndr_print_function_t) ndr_print_winreg_OpenKey,
4840 "winreg_QueryInfoKey",
4841 sizeof(struct winreg_QueryInfoKey),
4842 (ndr_push_flags_fn_t) ndr_push_winreg_QueryInfoKey,
4843 (ndr_pull_flags_fn_t) ndr_pull_winreg_QueryInfoKey,
4844 (ndr_print_function_t) ndr_print_winreg_QueryInfoKey,
4848 "winreg_QueryValue",
4849 sizeof(struct winreg_QueryValue),
4850 (ndr_push_flags_fn_t) ndr_push_winreg_QueryValue,
4851 (ndr_pull_flags_fn_t) ndr_pull_winreg_QueryValue,
4852 (ndr_print_function_t) ndr_print_winreg_QueryValue,
4856 "winreg_ReplaceKey",
4857 sizeof(struct winreg_ReplaceKey),
4858 (ndr_push_flags_fn_t) ndr_push_winreg_ReplaceKey,
4859 (ndr_pull_flags_fn_t) ndr_pull_winreg_ReplaceKey,
4860 (ndr_print_function_t) ndr_print_winreg_ReplaceKey,
4864 "winreg_RestoreKey",
4865 sizeof(struct winreg_RestoreKey),
4866 (ndr_push_flags_fn_t) ndr_push_winreg_RestoreKey,
4867 (ndr_pull_flags_fn_t) ndr_pull_winreg_RestoreKey,
4868 (ndr_print_function_t) ndr_print_winreg_RestoreKey,
4873 sizeof(struct winreg_SaveKey),
4874 (ndr_push_flags_fn_t) ndr_push_winreg_SaveKey,
4875 (ndr_pull_flags_fn_t) ndr_pull_winreg_SaveKey,
4876 (ndr_print_function_t) ndr_print_winreg_SaveKey,
4880 "winreg_SetKeySecurity",
4881 sizeof(struct winreg_SetKeySecurity),
4882 (ndr_push_flags_fn_t) ndr_push_winreg_SetKeySecurity,
4883 (ndr_pull_flags_fn_t) ndr_pull_winreg_SetKeySecurity,
4884 (ndr_print_function_t) ndr_print_winreg_SetKeySecurity,
4889 sizeof(struct winreg_SetValue),
4890 (ndr_push_flags_fn_t) ndr_push_winreg_SetValue,
4891 (ndr_pull_flags_fn_t) ndr_pull_winreg_SetValue,
4892 (ndr_print_function_t) ndr_print_winreg_SetValue,
4897 sizeof(struct winreg_UnLoadKey),
4898 (ndr_push_flags_fn_t) ndr_push_winreg_UnLoadKey,
4899 (ndr_pull_flags_fn_t) ndr_pull_winreg_UnLoadKey,
4900 (ndr_print_function_t) ndr_print_winreg_UnLoadKey,
4904 "winreg_InitiateSystemShutdown",
4905 sizeof(struct winreg_InitiateSystemShutdown),
4906 (ndr_push_flags_fn_t) ndr_push_winreg_InitiateSystemShutdown,
4907 (ndr_pull_flags_fn_t) ndr_pull_winreg_InitiateSystemShutdown,
4908 (ndr_print_function_t) ndr_print_winreg_InitiateSystemShutdown,
4912 "winreg_AbortSystemShutdown",
4913 sizeof(struct winreg_AbortSystemShutdown),
4914 (ndr_push_flags_fn_t) ndr_push_winreg_AbortSystemShutdown,
4915 (ndr_pull_flags_fn_t) ndr_pull_winreg_AbortSystemShutdown,
4916 (ndr_print_function_t) ndr_print_winreg_AbortSystemShutdown,
4920 "winreg_GetVersion",
4921 sizeof(struct winreg_GetVersion),
4922 (ndr_push_flags_fn_t) ndr_push_winreg_GetVersion,
4923 (ndr_pull_flags_fn_t) ndr_pull_winreg_GetVersion,
4924 (ndr_print_function_t) ndr_print_winreg_GetVersion,
4929 sizeof(struct winreg_OpenHKCC),
4930 (ndr_push_flags_fn_t) ndr_push_winreg_OpenHKCC,
4931 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenHKCC,
4932 (ndr_print_function_t) ndr_print_winreg_OpenHKCC,
4937 sizeof(struct winreg_OpenHKDD),
4938 (ndr_push_flags_fn_t) ndr_push_winreg_OpenHKDD,
4939 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenHKDD,
4940 (ndr_print_function_t) ndr_print_winreg_OpenHKDD,
4944 "winreg_QueryMultipleValues",
4945 sizeof(struct winreg_QueryMultipleValues),
4946 (ndr_push_flags_fn_t) ndr_push_winreg_QueryMultipleValues,
4947 (ndr_pull_flags_fn_t) ndr_pull_winreg_QueryMultipleValues,
4948 (ndr_print_function_t) ndr_print_winreg_QueryMultipleValues,
4952 "winreg_InitiateSystemShutdownEx",
4953 sizeof(struct winreg_InitiateSystemShutdownEx),
4954 (ndr_push_flags_fn_t) ndr_push_winreg_InitiateSystemShutdownEx,
4955 (ndr_pull_flags_fn_t) ndr_pull_winreg_InitiateSystemShutdownEx,
4956 (ndr_print_function_t) ndr_print_winreg_InitiateSystemShutdownEx,
4961 sizeof(struct winreg_SaveKeyEx),
4962 (ndr_push_flags_fn_t) ndr_push_winreg_SaveKeyEx,
4963 (ndr_pull_flags_fn_t) ndr_pull_winreg_SaveKeyEx,
4964 (ndr_print_function_t) ndr_print_winreg_SaveKeyEx,
4969 sizeof(struct winreg_OpenHKPT),
4970 (ndr_push_flags_fn_t) ndr_push_winreg_OpenHKPT,
4971 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenHKPT,
4972 (ndr_print_function_t) ndr_print_winreg_OpenHKPT,
4977 sizeof(struct winreg_OpenHKPN),
4978 (ndr_push_flags_fn_t) ndr_push_winreg_OpenHKPN,
4979 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenHKPN,
4980 (ndr_print_function_t) ndr_print_winreg_OpenHKPN,
4984 "winreg_QueryMultipleValues2",
4985 sizeof(struct winreg_QueryMultipleValues2),
4986 (ndr_push_flags_fn_t) ndr_push_winreg_QueryMultipleValues2,
4987 (ndr_pull_flags_fn_t) ndr_pull_winreg_QueryMultipleValues2,
4988 (ndr_print_function_t) ndr_print_winreg_QueryMultipleValues2,
4992 "winreg_DeleteKeyEx",
4993 sizeof(struct winreg_DeleteKeyEx),
4994 (ndr_push_flags_fn_t) ndr_push_winreg_DeleteKeyEx,
4995 (ndr_pull_flags_fn_t) ndr_pull_winreg_DeleteKeyEx,
4996 (ndr_print_function_t) ndr_print_winreg_DeleteKeyEx,
4999 { NULL, 0, NULL, NULL, NULL, false }
5002 static const char * const winreg_endpoint_strings[] = {
5003 "ncacn_np:[\\pipe\\winreg]",
5008 static const struct ndr_interface_string_array winreg_endpoints = {
5010 .names = winreg_endpoint_strings
5013 static const char * const winreg_authservice_strings[] = {
5017 static const struct ndr_interface_string_array winreg_authservices = {
5019 .names = winreg_authservice_strings
5023 const struct ndr_interface_table ndr_table_winreg = {
5026 {0x338cd001,0x2244,0x31f1,{0xaa,0xaa},{0x90,0x00,0x38,0x00,0x10,0x03}},
5029 .helpstring = NDR_WINREG_HELPSTRING,
5031 .calls = winreg_calls,
5032 .endpoints = &winreg_endpoints,
5033 .authservices = &winreg_authservices