1 /* parser auto-generated by pidl */
4 #include "librpc/gen_ndr/ndr_winreg.h"
6 #include "librpc/gen_ndr/ndr_lsa.h"
7 #include "librpc/gen_ndr/ndr_initshutdown.h"
8 #include "librpc/gen_ndr/ndr_security.h"
9 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_Type(struct ndr_push *ndr, int ndr_flags, enum winreg_Type r)
40 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
41 return NDR_ERR_SUCCESS;
44 _PUBLIC_ enum ndr_err_code ndr_pull_winreg_Type(struct ndr_pull *ndr, int ndr_flags, enum winreg_Type *r)
47 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
49 return NDR_ERR_SUCCESS;
52 _PUBLIC_ void ndr_print_winreg_Type(struct ndr_print *ndr, const char *name, enum winreg_Type r)
54 const char *val = NULL;
57 case REG_NONE: val = "REG_NONE"; break;
58 case REG_SZ: val = "REG_SZ"; break;
59 case REG_EXPAND_SZ: val = "REG_EXPAND_SZ"; break;
60 case REG_BINARY: val = "REG_BINARY"; break;
61 case REG_DWORD: val = "REG_DWORD"; break;
62 case REG_DWORD_BIG_ENDIAN: val = "REG_DWORD_BIG_ENDIAN"; break;
63 case REG_LINK: val = "REG_LINK"; break;
64 case REG_MULTI_SZ: val = "REG_MULTI_SZ"; break;
65 case REG_RESOURCE_LIST: val = "REG_RESOURCE_LIST"; break;
66 case REG_FULL_RESOURCE_DESCRIPTOR: val = "REG_FULL_RESOURCE_DESCRIPTOR"; break;
67 case REG_RESOURCE_REQUIREMENTS_LIST: val = "REG_RESOURCE_REQUIREMENTS_LIST"; break;
68 case REG_QWORD: val = "REG_QWORD"; break;
70 ndr_print_enum(ndr, name, "ENUM", val, r);
73 _PUBLIC_ enum ndr_err_code ndr_push_winreg_String(struct ndr_push *ndr, int ndr_flags, const struct winreg_String *r)
75 if (ndr_flags & NDR_SCALARS) {
76 NDR_CHECK(ndr_push_align(ndr, 4));
77 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, strlen_m_term(r->name) * 2));
78 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, strlen_m_term(r->name) * 2));
79 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
81 if (ndr_flags & NDR_BUFFERS) {
83 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
84 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
85 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
86 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, ndr_charset_length(r->name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
89 return NDR_ERR_SUCCESS;
92 _PUBLIC_ enum ndr_err_code ndr_pull_winreg_String(struct ndr_pull *ndr, int ndr_flags, struct winreg_String *r)
95 TALLOC_CTX *_mem_save_name_0;
96 if (ndr_flags & NDR_SCALARS) {
97 NDR_CHECK(ndr_pull_align(ndr, 4));
98 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->name_len));
99 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->name_size));
100 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
102 NDR_PULL_ALLOC(ndr, r->name);
107 if (ndr_flags & NDR_BUFFERS) {
109 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
110 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
111 NDR_CHECK(ndr_pull_array_size(ndr, &r->name));
112 NDR_CHECK(ndr_pull_array_length(ndr, &r->name));
113 if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) {
114 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));
116 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t)));
117 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16));
118 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
121 return NDR_ERR_SUCCESS;
124 _PUBLIC_ void ndr_print_winreg_String(struct ndr_print *ndr, const char *name, const struct winreg_String *r)
126 ndr_print_struct(ndr, name, "winreg_String");
128 ndr_print_uint16(ndr, "name_len", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?strlen_m_term(r->name) * 2:r->name_len);
129 ndr_print_uint16(ndr, "name_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?strlen_m_term(r->name) * 2:r->name_size);
130 ndr_print_ptr(ndr, "name", r->name);
133 ndr_print_string(ndr, "name", r->name);
139 static enum ndr_err_code ndr_push_KeySecurityData(struct ndr_push *ndr, int ndr_flags, const struct KeySecurityData *r)
141 if (ndr_flags & NDR_SCALARS) {
142 NDR_CHECK(ndr_push_align(ndr, 4));
143 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
144 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
145 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->len));
147 if (ndr_flags & NDR_BUFFERS) {
149 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
150 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
151 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->len));
152 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, r->len));
155 return NDR_ERR_SUCCESS;
158 static enum ndr_err_code ndr_pull_KeySecurityData(struct ndr_pull *ndr, int ndr_flags, struct KeySecurityData *r)
161 TALLOC_CTX *_mem_save_data_0;
162 if (ndr_flags & NDR_SCALARS) {
163 NDR_CHECK(ndr_pull_align(ndr, 4));
164 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
166 NDR_PULL_ALLOC(ndr, r->data);
170 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
171 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->len));
173 if (ndr_flags & NDR_BUFFERS) {
175 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
176 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
177 NDR_CHECK(ndr_pull_array_size(ndr, &r->data));
178 NDR_CHECK(ndr_pull_array_length(ndr, &r->data));
179 if (ndr_get_array_length(ndr, &r->data) > ndr_get_array_size(ndr, &r->data)) {
180 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));
182 NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data));
183 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, ndr_get_array_length(ndr, &r->data)));
184 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
187 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->size));
190 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->data, r->len));
193 return NDR_ERR_SUCCESS;
196 _PUBLIC_ void ndr_print_KeySecurityData(struct ndr_print *ndr, const char *name, const struct KeySecurityData *r)
198 ndr_print_struct(ndr, name, "KeySecurityData");
200 ndr_print_ptr(ndr, "data", r->data);
203 ndr_print_array_uint8(ndr, "data", r->data, r->len);
206 ndr_print_uint32(ndr, "size", r->size);
207 ndr_print_uint32(ndr, "len", r->len);
211 static enum ndr_err_code ndr_push_winreg_SecBuf(struct ndr_push *ndr, int ndr_flags, const struct winreg_SecBuf *r)
213 if (ndr_flags & NDR_SCALARS) {
214 NDR_CHECK(ndr_push_align(ndr, 4));
215 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
216 NDR_CHECK(ndr_push_KeySecurityData(ndr, NDR_SCALARS, &r->sd));
217 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->inherit));
219 if (ndr_flags & NDR_BUFFERS) {
220 NDR_CHECK(ndr_push_KeySecurityData(ndr, NDR_BUFFERS, &r->sd));
222 return NDR_ERR_SUCCESS;
225 static enum ndr_err_code ndr_pull_winreg_SecBuf(struct ndr_pull *ndr, int ndr_flags, struct winreg_SecBuf *r)
227 if (ndr_flags & NDR_SCALARS) {
228 NDR_CHECK(ndr_pull_align(ndr, 4));
229 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
230 NDR_CHECK(ndr_pull_KeySecurityData(ndr, NDR_SCALARS, &r->sd));
231 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->inherit));
233 if (ndr_flags & NDR_BUFFERS) {
234 NDR_CHECK(ndr_pull_KeySecurityData(ndr, NDR_BUFFERS, &r->sd));
236 return NDR_ERR_SUCCESS;
239 _PUBLIC_ void ndr_print_winreg_SecBuf(struct ndr_print *ndr, const char *name, const struct winreg_SecBuf *r)
241 ndr_print_struct(ndr, name, "winreg_SecBuf");
243 ndr_print_uint32(ndr, "length", r->length);
244 ndr_print_KeySecurityData(ndr, "sd", &r->sd);
245 ndr_print_uint8(ndr, "inherit", r->inherit);
249 static enum ndr_err_code ndr_push_winreg_CreateAction(struct ndr_push *ndr, int ndr_flags, enum winreg_CreateAction r)
251 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
252 return NDR_ERR_SUCCESS;
255 static enum ndr_err_code ndr_pull_winreg_CreateAction(struct ndr_pull *ndr, int ndr_flags, enum winreg_CreateAction *r)
258 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
260 return NDR_ERR_SUCCESS;
263 _PUBLIC_ void ndr_print_winreg_CreateAction(struct ndr_print *ndr, const char *name, enum winreg_CreateAction r)
265 const char *val = NULL;
268 case REG_ACTION_NONE: val = "REG_ACTION_NONE"; break;
269 case REG_CREATED_NEW_KEY: val = "REG_CREATED_NEW_KEY"; break;
270 case REG_OPENED_EXISTING_KEY: val = "REG_OPENED_EXISTING_KEY"; break;
272 ndr_print_enum(ndr, name, "ENUM", val, r);
275 static enum ndr_err_code ndr_push_winreg_StringBuf(struct ndr_push *ndr, int ndr_flags, const struct winreg_StringBuf *r)
277 if (ndr_flags & NDR_SCALARS) {
278 NDR_CHECK(ndr_push_align(ndr, 4));
279 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, strlen_m_term_null(r->name) * 2));
280 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->size));
281 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
283 if (ndr_flags & NDR_BUFFERS) {
285 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size / 2));
286 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
287 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, strlen_m_term_null(r->name) * 2 / 2));
288 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, strlen_m_term_null(r->name) * 2 / 2, sizeof(uint16_t), CH_UTF16));
291 return NDR_ERR_SUCCESS;
294 static enum ndr_err_code ndr_pull_winreg_StringBuf(struct ndr_pull *ndr, int ndr_flags, struct winreg_StringBuf *r)
297 TALLOC_CTX *_mem_save_name_0;
298 if (ndr_flags & NDR_SCALARS) {
299 NDR_CHECK(ndr_pull_align(ndr, 4));
300 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
301 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
302 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
304 NDR_PULL_ALLOC(ndr, r->name);
309 if (ndr_flags & NDR_BUFFERS) {
311 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
312 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
313 NDR_CHECK(ndr_pull_array_size(ndr, &r->name));
314 NDR_CHECK(ndr_pull_array_length(ndr, &r->name));
315 if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) {
316 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));
318 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16));
319 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
322 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->name, r->size / 2));
325 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->name, r->length / 2));
328 return NDR_ERR_SUCCESS;
331 _PUBLIC_ void ndr_print_winreg_StringBuf(struct ndr_print *ndr, const char *name, const struct winreg_StringBuf *r)
333 ndr_print_struct(ndr, name, "winreg_StringBuf");
335 ndr_print_uint16(ndr, "length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?strlen_m_term_null(r->name) * 2:r->length);
336 ndr_print_uint16(ndr, "size", r->size);
337 ndr_print_ptr(ndr, "name", r->name);
340 ndr_print_string(ndr, "name", r->name);
346 static enum ndr_err_code ndr_push_winreg_ValNameBuf(struct ndr_push *ndr, int ndr_flags, const struct winreg_ValNameBuf *r)
348 if (ndr_flags & NDR_SCALARS) {
349 NDR_CHECK(ndr_push_align(ndr, 4));
350 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, strlen_m_term(r->name) * 2));
351 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->size));
352 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
354 if (ndr_flags & NDR_BUFFERS) {
356 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size / 2));
357 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
358 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, strlen_m_term(r->name) * 2 / 2));
359 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, strlen_m_term(r->name) * 2 / 2, sizeof(uint16_t), CH_UTF16));
362 return NDR_ERR_SUCCESS;
365 static enum ndr_err_code ndr_pull_winreg_ValNameBuf(struct ndr_pull *ndr, int ndr_flags, struct winreg_ValNameBuf *r)
368 TALLOC_CTX *_mem_save_name_0;
369 if (ndr_flags & NDR_SCALARS) {
370 NDR_CHECK(ndr_pull_align(ndr, 4));
371 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
372 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
373 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
375 NDR_PULL_ALLOC(ndr, r->name);
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, 4));
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));
450 if (ndr_flags & NDR_BUFFERS) {
451 NDR_CHECK(ndr_push_KeySecurityData(ndr, NDR_BUFFERS, &r->sec_data));
453 return NDR_ERR_SUCCESS;
456 static enum ndr_err_code ndr_pull_KeySecurityAttribute(struct ndr_pull *ndr, int ndr_flags, struct KeySecurityAttribute *r)
458 if (ndr_flags & NDR_SCALARS) {
459 NDR_CHECK(ndr_pull_align(ndr, 4));
460 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->data_size));
461 NDR_CHECK(ndr_pull_KeySecurityData(ndr, NDR_SCALARS, &r->sec_data));
462 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->inherit));
464 if (ndr_flags & NDR_BUFFERS) {
465 NDR_CHECK(ndr_pull_KeySecurityData(ndr, NDR_BUFFERS, &r->sec_data));
467 return NDR_ERR_SUCCESS;
470 _PUBLIC_ void ndr_print_KeySecurityAttribute(struct ndr_print *ndr, const char *name, const struct KeySecurityAttribute *r)
472 ndr_print_struct(ndr, name, "KeySecurityAttribute");
474 ndr_print_uint32(ndr, "data_size", r->data_size);
475 ndr_print_KeySecurityData(ndr, "sec_data", &r->sec_data);
476 ndr_print_uint8(ndr, "inherit", r->inherit);
480 static enum ndr_err_code ndr_push_QueryMultipleValue(struct ndr_push *ndr, int ndr_flags, const struct QueryMultipleValue *r)
482 if (ndr_flags & NDR_SCALARS) {
483 NDR_CHECK(ndr_push_align(ndr, 4));
484 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
485 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->type));
486 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->offset));
487 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
489 if (ndr_flags & NDR_BUFFERS) {
491 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->name));
494 return NDR_ERR_SUCCESS;
497 static enum ndr_err_code ndr_pull_QueryMultipleValue(struct ndr_pull *ndr, int ndr_flags, struct QueryMultipleValue *r)
500 TALLOC_CTX *_mem_save_name_0;
501 if (ndr_flags & NDR_SCALARS) {
502 NDR_CHECK(ndr_pull_align(ndr, 4));
503 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
505 NDR_PULL_ALLOC(ndr, r->name);
509 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->type));
510 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->offset));
511 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
513 if (ndr_flags & NDR_BUFFERS) {
515 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
516 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
517 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->name));
518 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
521 return NDR_ERR_SUCCESS;
524 _PUBLIC_ void ndr_print_QueryMultipleValue(struct ndr_print *ndr, const char *name, const struct QueryMultipleValue *r)
526 ndr_print_struct(ndr, name, "QueryMultipleValue");
528 ndr_print_ptr(ndr, "name", r->name);
531 ndr_print_winreg_String(ndr, "name", r->name);
534 ndr_print_winreg_Type(ndr, "type", r->type);
535 ndr_print_uint32(ndr, "offset", r->offset);
536 ndr_print_uint32(ndr, "length", r->length);
540 static enum ndr_err_code ndr_push_winreg_OpenHKCR(struct ndr_push *ndr, int flags, const struct winreg_OpenHKCR *r)
542 if (flags & NDR_IN) {
543 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.system_name));
544 if (r->in.system_name) {
545 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.system_name));
547 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
549 if (flags & NDR_OUT) {
550 if (r->out.handle == NULL) {
551 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
553 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
554 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
556 return NDR_ERR_SUCCESS;
559 static enum ndr_err_code ndr_pull_winreg_OpenHKCR(struct ndr_pull *ndr, int flags, struct winreg_OpenHKCR *r)
561 uint32_t _ptr_system_name;
562 TALLOC_CTX *_mem_save_system_name_0;
563 TALLOC_CTX *_mem_save_handle_0;
564 if (flags & NDR_IN) {
567 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_system_name));
568 if (_ptr_system_name) {
569 NDR_PULL_ALLOC(ndr, r->in.system_name);
571 r->in.system_name = NULL;
573 if (r->in.system_name) {
574 _mem_save_system_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
575 NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0);
576 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.system_name));
577 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0);
579 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
580 NDR_PULL_ALLOC(ndr, r->out.handle);
581 ZERO_STRUCTP(r->out.handle);
583 if (flags & NDR_OUT) {
584 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
585 NDR_PULL_ALLOC(ndr, r->out.handle);
587 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
588 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
589 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
590 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
591 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
593 return NDR_ERR_SUCCESS;
596 _PUBLIC_ void ndr_print_winreg_OpenHKCR(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenHKCR *r)
598 ndr_print_struct(ndr, name, "winreg_OpenHKCR");
600 if (flags & NDR_SET_VALUES) {
601 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
603 if (flags & NDR_IN) {
604 ndr_print_struct(ndr, "in", "winreg_OpenHKCR");
606 ndr_print_ptr(ndr, "system_name", r->in.system_name);
608 if (r->in.system_name) {
609 ndr_print_uint16(ndr, "system_name", *r->in.system_name);
612 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
615 if (flags & NDR_OUT) {
616 ndr_print_struct(ndr, "out", "winreg_OpenHKCR");
618 ndr_print_ptr(ndr, "handle", r->out.handle);
620 ndr_print_policy_handle(ndr, "handle", r->out.handle);
622 ndr_print_WERROR(ndr, "result", r->out.result);
628 static enum ndr_err_code ndr_push_winreg_OpenHKCU(struct ndr_push *ndr, int flags, const struct winreg_OpenHKCU *r)
630 if (flags & NDR_IN) {
631 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.system_name));
632 if (r->in.system_name) {
633 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.system_name));
635 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
637 if (flags & NDR_OUT) {
638 if (r->out.handle == NULL) {
639 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
641 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
642 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
644 return NDR_ERR_SUCCESS;
647 static enum ndr_err_code ndr_pull_winreg_OpenHKCU(struct ndr_pull *ndr, int flags, struct winreg_OpenHKCU *r)
649 uint32_t _ptr_system_name;
650 TALLOC_CTX *_mem_save_system_name_0;
651 TALLOC_CTX *_mem_save_handle_0;
652 if (flags & NDR_IN) {
655 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_system_name));
656 if (_ptr_system_name) {
657 NDR_PULL_ALLOC(ndr, r->in.system_name);
659 r->in.system_name = NULL;
661 if (r->in.system_name) {
662 _mem_save_system_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
663 NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0);
664 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.system_name));
665 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0);
667 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
668 NDR_PULL_ALLOC(ndr, r->out.handle);
669 ZERO_STRUCTP(r->out.handle);
671 if (flags & NDR_OUT) {
672 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
673 NDR_PULL_ALLOC(ndr, r->out.handle);
675 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
676 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
677 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
678 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
679 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
681 return NDR_ERR_SUCCESS;
684 _PUBLIC_ void ndr_print_winreg_OpenHKCU(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenHKCU *r)
686 ndr_print_struct(ndr, name, "winreg_OpenHKCU");
688 if (flags & NDR_SET_VALUES) {
689 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
691 if (flags & NDR_IN) {
692 ndr_print_struct(ndr, "in", "winreg_OpenHKCU");
694 ndr_print_ptr(ndr, "system_name", r->in.system_name);
696 if (r->in.system_name) {
697 ndr_print_uint16(ndr, "system_name", *r->in.system_name);
700 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
703 if (flags & NDR_OUT) {
704 ndr_print_struct(ndr, "out", "winreg_OpenHKCU");
706 ndr_print_ptr(ndr, "handle", r->out.handle);
708 ndr_print_policy_handle(ndr, "handle", r->out.handle);
710 ndr_print_WERROR(ndr, "result", r->out.result);
716 _PUBLIC_ enum ndr_err_code ndr_push_winreg_OpenHKLM(struct ndr_push *ndr, int flags, const struct winreg_OpenHKLM *r)
718 if (flags & NDR_IN) {
719 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.system_name));
720 if (r->in.system_name) {
721 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.system_name));
723 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
725 if (flags & NDR_OUT) {
726 if (r->out.handle == NULL) {
727 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
729 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
730 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
732 return NDR_ERR_SUCCESS;
735 _PUBLIC_ enum ndr_err_code ndr_pull_winreg_OpenHKLM(struct ndr_pull *ndr, int flags, struct winreg_OpenHKLM *r)
737 uint32_t _ptr_system_name;
738 TALLOC_CTX *_mem_save_system_name_0;
739 TALLOC_CTX *_mem_save_handle_0;
740 if (flags & NDR_IN) {
743 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_system_name));
744 if (_ptr_system_name) {
745 NDR_PULL_ALLOC(ndr, r->in.system_name);
747 r->in.system_name = NULL;
749 if (r->in.system_name) {
750 _mem_save_system_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
751 NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0);
752 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.system_name));
753 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0);
755 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
756 NDR_PULL_ALLOC(ndr, r->out.handle);
757 ZERO_STRUCTP(r->out.handle);
759 if (flags & NDR_OUT) {
760 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
761 NDR_PULL_ALLOC(ndr, r->out.handle);
763 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
764 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
765 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
766 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
767 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
769 return NDR_ERR_SUCCESS;
772 _PUBLIC_ void ndr_print_winreg_OpenHKLM(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenHKLM *r)
774 ndr_print_struct(ndr, name, "winreg_OpenHKLM");
776 if (flags & NDR_SET_VALUES) {
777 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
779 if (flags & NDR_IN) {
780 ndr_print_struct(ndr, "in", "winreg_OpenHKLM");
782 ndr_print_ptr(ndr, "system_name", r->in.system_name);
784 if (r->in.system_name) {
785 ndr_print_uint16(ndr, "system_name", *r->in.system_name);
788 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
791 if (flags & NDR_OUT) {
792 ndr_print_struct(ndr, "out", "winreg_OpenHKLM");
794 ndr_print_ptr(ndr, "handle", r->out.handle);
796 ndr_print_policy_handle(ndr, "handle", r->out.handle);
798 ndr_print_WERROR(ndr, "result", r->out.result);
804 static enum ndr_err_code ndr_push_winreg_OpenHKPD(struct ndr_push *ndr, int flags, const struct winreg_OpenHKPD *r)
806 if (flags & NDR_IN) {
807 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.system_name));
808 if (r->in.system_name) {
809 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.system_name));
811 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
813 if (flags & NDR_OUT) {
814 if (r->out.handle == NULL) {
815 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
817 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
818 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
820 return NDR_ERR_SUCCESS;
823 static enum ndr_err_code ndr_pull_winreg_OpenHKPD(struct ndr_pull *ndr, int flags, struct winreg_OpenHKPD *r)
825 uint32_t _ptr_system_name;
826 TALLOC_CTX *_mem_save_system_name_0;
827 TALLOC_CTX *_mem_save_handle_0;
828 if (flags & NDR_IN) {
831 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_system_name));
832 if (_ptr_system_name) {
833 NDR_PULL_ALLOC(ndr, r->in.system_name);
835 r->in.system_name = NULL;
837 if (r->in.system_name) {
838 _mem_save_system_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
839 NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0);
840 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.system_name));
841 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0);
843 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
844 NDR_PULL_ALLOC(ndr, r->out.handle);
845 ZERO_STRUCTP(r->out.handle);
847 if (flags & NDR_OUT) {
848 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
849 NDR_PULL_ALLOC(ndr, r->out.handle);
851 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
852 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
853 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
854 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
855 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
857 return NDR_ERR_SUCCESS;
860 _PUBLIC_ void ndr_print_winreg_OpenHKPD(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenHKPD *r)
862 ndr_print_struct(ndr, name, "winreg_OpenHKPD");
864 if (flags & NDR_SET_VALUES) {
865 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
867 if (flags & NDR_IN) {
868 ndr_print_struct(ndr, "in", "winreg_OpenHKPD");
870 ndr_print_ptr(ndr, "system_name", r->in.system_name);
872 if (r->in.system_name) {
873 ndr_print_uint16(ndr, "system_name", *r->in.system_name);
876 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
879 if (flags & NDR_OUT) {
880 ndr_print_struct(ndr, "out", "winreg_OpenHKPD");
882 ndr_print_ptr(ndr, "handle", r->out.handle);
884 ndr_print_policy_handle(ndr, "handle", r->out.handle);
886 ndr_print_WERROR(ndr, "result", r->out.result);
892 static enum ndr_err_code ndr_push_winreg_OpenHKU(struct ndr_push *ndr, int flags, const struct winreg_OpenHKU *r)
894 if (flags & NDR_IN) {
895 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.system_name));
896 if (r->in.system_name) {
897 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.system_name));
899 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
901 if (flags & NDR_OUT) {
902 if (r->out.handle == NULL) {
903 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
905 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
906 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
908 return NDR_ERR_SUCCESS;
911 static enum ndr_err_code ndr_pull_winreg_OpenHKU(struct ndr_pull *ndr, int flags, struct winreg_OpenHKU *r)
913 uint32_t _ptr_system_name;
914 TALLOC_CTX *_mem_save_system_name_0;
915 TALLOC_CTX *_mem_save_handle_0;
916 if (flags & NDR_IN) {
919 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_system_name));
920 if (_ptr_system_name) {
921 NDR_PULL_ALLOC(ndr, r->in.system_name);
923 r->in.system_name = NULL;
925 if (r->in.system_name) {
926 _mem_save_system_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
927 NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0);
928 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.system_name));
929 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0);
931 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
932 NDR_PULL_ALLOC(ndr, r->out.handle);
933 ZERO_STRUCTP(r->out.handle);
935 if (flags & NDR_OUT) {
936 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
937 NDR_PULL_ALLOC(ndr, r->out.handle);
939 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
940 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
941 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
942 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
943 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
945 return NDR_ERR_SUCCESS;
948 _PUBLIC_ void ndr_print_winreg_OpenHKU(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenHKU *r)
950 ndr_print_struct(ndr, name, "winreg_OpenHKU");
952 if (flags & NDR_SET_VALUES) {
953 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
955 if (flags & NDR_IN) {
956 ndr_print_struct(ndr, "in", "winreg_OpenHKU");
958 ndr_print_ptr(ndr, "system_name", r->in.system_name);
960 if (r->in.system_name) {
961 ndr_print_uint16(ndr, "system_name", *r->in.system_name);
964 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
967 if (flags & NDR_OUT) {
968 ndr_print_struct(ndr, "out", "winreg_OpenHKU");
970 ndr_print_ptr(ndr, "handle", r->out.handle);
972 ndr_print_policy_handle(ndr, "handle", r->out.handle);
974 ndr_print_WERROR(ndr, "result", r->out.result);
980 _PUBLIC_ enum ndr_err_code ndr_push_winreg_CloseKey(struct ndr_push *ndr, int flags, const struct winreg_CloseKey *r)
982 if (flags & NDR_IN) {
983 if (r->in.handle == NULL) {
984 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
986 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
988 if (flags & NDR_OUT) {
989 if (r->out.handle == NULL) {
990 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
992 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
993 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
995 return NDR_ERR_SUCCESS;
998 _PUBLIC_ enum ndr_err_code ndr_pull_winreg_CloseKey(struct ndr_pull *ndr, int flags, struct winreg_CloseKey *r)
1000 TALLOC_CTX *_mem_save_handle_0;
1001 if (flags & NDR_IN) {
1002 ZERO_STRUCT(r->out);
1004 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1005 NDR_PULL_ALLOC(ndr, r->in.handle);
1007 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
1008 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
1009 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
1010 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
1011 NDR_PULL_ALLOC(ndr, r->out.handle);
1012 *r->out.handle = *r->in.handle;
1014 if (flags & NDR_OUT) {
1015 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1016 NDR_PULL_ALLOC(ndr, r->out.handle);
1018 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
1019 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
1020 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
1021 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
1022 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
1024 return NDR_ERR_SUCCESS;
1027 _PUBLIC_ void ndr_print_winreg_CloseKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_CloseKey *r)
1029 ndr_print_struct(ndr, name, "winreg_CloseKey");
1031 if (flags & NDR_SET_VALUES) {
1032 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1034 if (flags & NDR_IN) {
1035 ndr_print_struct(ndr, "in", "winreg_CloseKey");
1037 ndr_print_ptr(ndr, "handle", r->in.handle);
1039 ndr_print_policy_handle(ndr, "handle", r->in.handle);
1043 if (flags & NDR_OUT) {
1044 ndr_print_struct(ndr, "out", "winreg_CloseKey");
1046 ndr_print_ptr(ndr, "handle", r->out.handle);
1048 ndr_print_policy_handle(ndr, "handle", r->out.handle);
1050 ndr_print_WERROR(ndr, "result", r->out.result);
1056 _PUBLIC_ enum ndr_err_code ndr_push_winreg_CreateKey(struct ndr_push *ndr, int flags, const struct winreg_CreateKey *r)
1058 if (flags & NDR_IN) {
1059 if (r->in.handle == NULL) {
1060 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1062 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
1063 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.name));
1064 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.keyclass));
1065 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.options));
1066 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
1067 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.secdesc));
1068 if (r->in.secdesc) {
1069 NDR_CHECK(ndr_push_winreg_SecBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc));
1071 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.action_taken));
1072 if (r->in.action_taken) {
1073 NDR_CHECK(ndr_push_winreg_CreateAction(ndr, NDR_SCALARS, *r->in.action_taken));
1076 if (flags & NDR_OUT) {
1077 if (r->out.new_handle == NULL) {
1078 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1080 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.new_handle));
1081 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.action_taken));
1082 if (r->out.action_taken) {
1083 NDR_CHECK(ndr_push_winreg_CreateAction(ndr, NDR_SCALARS, *r->out.action_taken));
1085 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
1087 return NDR_ERR_SUCCESS;
1090 _PUBLIC_ enum ndr_err_code ndr_pull_winreg_CreateKey(struct ndr_pull *ndr, int flags, struct winreg_CreateKey *r)
1092 uint32_t _ptr_secdesc;
1093 uint32_t _ptr_action_taken;
1094 TALLOC_CTX *_mem_save_handle_0;
1095 TALLOC_CTX *_mem_save_secdesc_0;
1096 TALLOC_CTX *_mem_save_new_handle_0;
1097 TALLOC_CTX *_mem_save_action_taken_0;
1098 if (flags & NDR_IN) {
1099 ZERO_STRUCT(r->out);
1101 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1102 NDR_PULL_ALLOC(ndr, r->in.handle);
1104 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
1105 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
1106 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
1107 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
1108 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.name));
1109 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.keyclass));
1110 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.options));
1111 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
1112 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
1114 NDR_PULL_ALLOC(ndr, r->in.secdesc);
1116 r->in.secdesc = NULL;
1118 if (r->in.secdesc) {
1119 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
1120 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc, 0);
1121 NDR_CHECK(ndr_pull_winreg_SecBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc));
1122 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
1124 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_action_taken));
1125 if (_ptr_action_taken) {
1126 NDR_PULL_ALLOC(ndr, r->in.action_taken);
1128 r->in.action_taken = NULL;
1130 if (r->in.action_taken) {
1131 _mem_save_action_taken_0 = NDR_PULL_GET_MEM_CTX(ndr);
1132 NDR_PULL_SET_MEM_CTX(ndr, r->in.action_taken, 0);
1133 NDR_CHECK(ndr_pull_winreg_CreateAction(ndr, NDR_SCALARS, r->in.action_taken));
1134 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_action_taken_0, 0);
1136 NDR_PULL_ALLOC(ndr, r->out.new_handle);
1137 ZERO_STRUCTP(r->out.new_handle);
1139 if (flags & NDR_OUT) {
1140 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1141 NDR_PULL_ALLOC(ndr, r->out.new_handle);
1143 _mem_save_new_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
1144 NDR_PULL_SET_MEM_CTX(ndr, r->out.new_handle, LIBNDR_FLAG_REF_ALLOC);
1145 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.new_handle));
1146 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_new_handle_0, LIBNDR_FLAG_REF_ALLOC);
1147 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_action_taken));
1148 if (_ptr_action_taken) {
1149 NDR_PULL_ALLOC(ndr, r->out.action_taken);
1151 r->out.action_taken = NULL;
1153 if (r->out.action_taken) {
1154 _mem_save_action_taken_0 = NDR_PULL_GET_MEM_CTX(ndr);
1155 NDR_PULL_SET_MEM_CTX(ndr, r->out.action_taken, 0);
1156 NDR_CHECK(ndr_pull_winreg_CreateAction(ndr, NDR_SCALARS, r->out.action_taken));
1157 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_action_taken_0, 0);
1159 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
1161 return NDR_ERR_SUCCESS;
1164 _PUBLIC_ void ndr_print_winreg_CreateKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_CreateKey *r)
1166 ndr_print_struct(ndr, name, "winreg_CreateKey");
1168 if (flags & NDR_SET_VALUES) {
1169 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1171 if (flags & NDR_IN) {
1172 ndr_print_struct(ndr, "in", "winreg_CreateKey");
1174 ndr_print_ptr(ndr, "handle", r->in.handle);
1176 ndr_print_policy_handle(ndr, "handle", r->in.handle);
1178 ndr_print_winreg_String(ndr, "name", &r->in.name);
1179 ndr_print_winreg_String(ndr, "keyclass", &r->in.keyclass);
1180 ndr_print_uint32(ndr, "options", r->in.options);
1181 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
1182 ndr_print_ptr(ndr, "secdesc", r->in.secdesc);
1184 if (r->in.secdesc) {
1185 ndr_print_winreg_SecBuf(ndr, "secdesc", r->in.secdesc);
1188 ndr_print_ptr(ndr, "action_taken", r->in.action_taken);
1190 if (r->in.action_taken) {
1191 ndr_print_winreg_CreateAction(ndr, "action_taken", *r->in.action_taken);
1196 if (flags & NDR_OUT) {
1197 ndr_print_struct(ndr, "out", "winreg_CreateKey");
1199 ndr_print_ptr(ndr, "new_handle", r->out.new_handle);
1201 ndr_print_policy_handle(ndr, "new_handle", r->out.new_handle);
1203 ndr_print_ptr(ndr, "action_taken", r->out.action_taken);
1205 if (r->out.action_taken) {
1206 ndr_print_winreg_CreateAction(ndr, "action_taken", *r->out.action_taken);
1209 ndr_print_WERROR(ndr, "result", r->out.result);
1215 _PUBLIC_ enum ndr_err_code ndr_push_winreg_DeleteKey(struct ndr_push *ndr, int flags, const struct winreg_DeleteKey *r)
1217 if (flags & NDR_IN) {
1218 if (r->in.handle == NULL) {
1219 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1221 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
1222 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.key));
1224 if (flags & NDR_OUT) {
1225 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
1227 return NDR_ERR_SUCCESS;
1230 _PUBLIC_ enum ndr_err_code ndr_pull_winreg_DeleteKey(struct ndr_pull *ndr, int flags, struct winreg_DeleteKey *r)
1232 TALLOC_CTX *_mem_save_handle_0;
1233 if (flags & NDR_IN) {
1234 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1235 NDR_PULL_ALLOC(ndr, r->in.handle);
1237 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
1238 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
1239 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
1240 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
1241 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.key));
1243 if (flags & NDR_OUT) {
1244 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
1246 return NDR_ERR_SUCCESS;
1249 _PUBLIC_ void ndr_print_winreg_DeleteKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_DeleteKey *r)
1251 ndr_print_struct(ndr, name, "winreg_DeleteKey");
1253 if (flags & NDR_SET_VALUES) {
1254 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1256 if (flags & NDR_IN) {
1257 ndr_print_struct(ndr, "in", "winreg_DeleteKey");
1259 ndr_print_ptr(ndr, "handle", r->in.handle);
1261 ndr_print_policy_handle(ndr, "handle", r->in.handle);
1263 ndr_print_winreg_String(ndr, "key", &r->in.key);
1266 if (flags & NDR_OUT) {
1267 ndr_print_struct(ndr, "out", "winreg_DeleteKey");
1269 ndr_print_WERROR(ndr, "result", r->out.result);
1275 static enum ndr_err_code ndr_push_winreg_DeleteValue(struct ndr_push *ndr, int flags, const struct winreg_DeleteValue *r)
1277 if (flags & NDR_IN) {
1278 if (r->in.handle == NULL) {
1279 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1281 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
1282 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.value));
1284 if (flags & NDR_OUT) {
1285 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
1287 return NDR_ERR_SUCCESS;
1290 static enum ndr_err_code ndr_pull_winreg_DeleteValue(struct ndr_pull *ndr, int flags, struct winreg_DeleteValue *r)
1292 TALLOC_CTX *_mem_save_handle_0;
1293 if (flags & NDR_IN) {
1294 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1295 NDR_PULL_ALLOC(ndr, r->in.handle);
1297 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
1298 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
1299 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
1300 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
1301 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.value));
1303 if (flags & NDR_OUT) {
1304 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
1306 return NDR_ERR_SUCCESS;
1309 _PUBLIC_ void ndr_print_winreg_DeleteValue(struct ndr_print *ndr, const char *name, int flags, const struct winreg_DeleteValue *r)
1311 ndr_print_struct(ndr, name, "winreg_DeleteValue");
1313 if (flags & NDR_SET_VALUES) {
1314 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1316 if (flags & NDR_IN) {
1317 ndr_print_struct(ndr, "in", "winreg_DeleteValue");
1319 ndr_print_ptr(ndr, "handle", r->in.handle);
1321 ndr_print_policy_handle(ndr, "handle", r->in.handle);
1323 ndr_print_winreg_String(ndr, "value", &r->in.value);
1326 if (flags & NDR_OUT) {
1327 ndr_print_struct(ndr, "out", "winreg_DeleteValue");
1329 ndr_print_WERROR(ndr, "result", r->out.result);
1335 _PUBLIC_ enum ndr_err_code ndr_push_winreg_EnumKey(struct ndr_push *ndr, int flags, const struct winreg_EnumKey *r)
1337 if (flags & NDR_IN) {
1338 if (r->in.handle == NULL) {
1339 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1341 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
1342 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.enum_index));
1343 if (r->in.name == NULL) {
1344 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1346 NDR_CHECK(ndr_push_winreg_StringBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.name));
1347 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.keyclass));
1348 if (r->in.keyclass) {
1349 NDR_CHECK(ndr_push_winreg_StringBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.keyclass));
1351 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.last_changed_time));
1352 if (r->in.last_changed_time) {
1353 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, *r->in.last_changed_time));
1356 if (flags & NDR_OUT) {
1357 if (r->out.name == NULL) {
1358 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1360 NDR_CHECK(ndr_push_winreg_StringBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.name));
1361 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.keyclass));
1362 if (r->out.keyclass) {
1363 NDR_CHECK(ndr_push_winreg_StringBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.keyclass));
1365 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.last_changed_time));
1366 if (r->out.last_changed_time) {
1367 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, *r->out.last_changed_time));
1369 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
1371 return NDR_ERR_SUCCESS;
1374 _PUBLIC_ enum ndr_err_code ndr_pull_winreg_EnumKey(struct ndr_pull *ndr, int flags, struct winreg_EnumKey *r)
1376 uint32_t _ptr_keyclass;
1377 uint32_t _ptr_last_changed_time;
1378 TALLOC_CTX *_mem_save_handle_0;
1379 TALLOC_CTX *_mem_save_name_0;
1380 TALLOC_CTX *_mem_save_keyclass_0;
1381 TALLOC_CTX *_mem_save_last_changed_time_0;
1382 if (flags & NDR_IN) {
1383 ZERO_STRUCT(r->out);
1385 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1386 NDR_PULL_ALLOC(ndr, r->in.handle);
1388 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
1389 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
1390 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
1391 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
1392 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.enum_index));
1393 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1394 NDR_PULL_ALLOC(ndr, r->in.name);
1396 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
1397 NDR_PULL_SET_MEM_CTX(ndr, r->in.name, LIBNDR_FLAG_REF_ALLOC);
1398 NDR_CHECK(ndr_pull_winreg_StringBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.name));
1399 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, LIBNDR_FLAG_REF_ALLOC);
1400 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_keyclass));
1401 if (_ptr_keyclass) {
1402 NDR_PULL_ALLOC(ndr, r->in.keyclass);
1404 r->in.keyclass = NULL;
1406 if (r->in.keyclass) {
1407 _mem_save_keyclass_0 = NDR_PULL_GET_MEM_CTX(ndr);
1408 NDR_PULL_SET_MEM_CTX(ndr, r->in.keyclass, 0);
1409 NDR_CHECK(ndr_pull_winreg_StringBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.keyclass));
1410 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_keyclass_0, 0);
1412 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_last_changed_time));
1413 if (_ptr_last_changed_time) {
1414 NDR_PULL_ALLOC(ndr, r->in.last_changed_time);
1416 r->in.last_changed_time = NULL;
1418 if (r->in.last_changed_time) {
1419 _mem_save_last_changed_time_0 = NDR_PULL_GET_MEM_CTX(ndr);
1420 NDR_PULL_SET_MEM_CTX(ndr, r->in.last_changed_time, 0);
1421 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, r->in.last_changed_time));
1422 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_last_changed_time_0, 0);
1424 NDR_PULL_ALLOC(ndr, r->out.name);
1425 *r->out.name = *r->in.name;
1427 if (flags & NDR_OUT) {
1428 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1429 NDR_PULL_ALLOC(ndr, r->out.name);
1431 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
1432 NDR_PULL_SET_MEM_CTX(ndr, r->out.name, LIBNDR_FLAG_REF_ALLOC);
1433 NDR_CHECK(ndr_pull_winreg_StringBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.name));
1434 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, LIBNDR_FLAG_REF_ALLOC);
1435 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_keyclass));
1436 if (_ptr_keyclass) {
1437 NDR_PULL_ALLOC(ndr, r->out.keyclass);
1439 r->out.keyclass = NULL;
1441 if (r->out.keyclass) {
1442 _mem_save_keyclass_0 = NDR_PULL_GET_MEM_CTX(ndr);
1443 NDR_PULL_SET_MEM_CTX(ndr, r->out.keyclass, 0);
1444 NDR_CHECK(ndr_pull_winreg_StringBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.keyclass));
1445 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_keyclass_0, 0);
1447 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_last_changed_time));
1448 if (_ptr_last_changed_time) {
1449 NDR_PULL_ALLOC(ndr, r->out.last_changed_time);
1451 r->out.last_changed_time = NULL;
1453 if (r->out.last_changed_time) {
1454 _mem_save_last_changed_time_0 = NDR_PULL_GET_MEM_CTX(ndr);
1455 NDR_PULL_SET_MEM_CTX(ndr, r->out.last_changed_time, 0);
1456 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, r->out.last_changed_time));
1457 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_last_changed_time_0, 0);
1459 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
1461 return NDR_ERR_SUCCESS;
1464 _PUBLIC_ void ndr_print_winreg_EnumKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_EnumKey *r)
1466 ndr_print_struct(ndr, name, "winreg_EnumKey");
1468 if (flags & NDR_SET_VALUES) {
1469 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1471 if (flags & NDR_IN) {
1472 ndr_print_struct(ndr, "in", "winreg_EnumKey");
1474 ndr_print_ptr(ndr, "handle", r->in.handle);
1476 ndr_print_policy_handle(ndr, "handle", r->in.handle);
1478 ndr_print_uint32(ndr, "enum_index", r->in.enum_index);
1479 ndr_print_ptr(ndr, "name", r->in.name);
1481 ndr_print_winreg_StringBuf(ndr, "name", r->in.name);
1483 ndr_print_ptr(ndr, "keyclass", r->in.keyclass);
1485 if (r->in.keyclass) {
1486 ndr_print_winreg_StringBuf(ndr, "keyclass", r->in.keyclass);
1489 ndr_print_ptr(ndr, "last_changed_time", r->in.last_changed_time);
1491 if (r->in.last_changed_time) {
1492 ndr_print_NTTIME(ndr, "last_changed_time", *r->in.last_changed_time);
1497 if (flags & NDR_OUT) {
1498 ndr_print_struct(ndr, "out", "winreg_EnumKey");
1500 ndr_print_ptr(ndr, "name", r->out.name);
1502 ndr_print_winreg_StringBuf(ndr, "name", r->out.name);
1504 ndr_print_ptr(ndr, "keyclass", r->out.keyclass);
1506 if (r->out.keyclass) {
1507 ndr_print_winreg_StringBuf(ndr, "keyclass", r->out.keyclass);
1510 ndr_print_ptr(ndr, "last_changed_time", r->out.last_changed_time);
1512 if (r->out.last_changed_time) {
1513 ndr_print_NTTIME(ndr, "last_changed_time", *r->out.last_changed_time);
1516 ndr_print_WERROR(ndr, "result", r->out.result);
1522 _PUBLIC_ enum ndr_err_code ndr_push_winreg_EnumValue(struct ndr_push *ndr, int flags, const struct winreg_EnumValue *r)
1524 if (flags & NDR_IN) {
1525 if (r->in.handle == NULL) {
1526 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1528 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
1529 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.enum_index));
1530 if (r->in.name == NULL) {
1531 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1533 NDR_CHECK(ndr_push_winreg_ValNameBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.name));
1534 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.type));
1536 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->in.type));
1538 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.value));
1540 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.size));
1541 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
1542 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.length));
1543 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.value, *r->in.length));
1545 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.size));
1547 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.size));
1549 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.length));
1551 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.length));
1554 if (flags & NDR_OUT) {
1555 if (r->out.name == NULL) {
1556 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1558 NDR_CHECK(ndr_push_winreg_ValNameBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.name));
1559 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.type));
1561 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
1563 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.value));
1565 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.size));
1566 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
1567 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.length));
1568 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.value, *r->out.length));
1570 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.size));
1572 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.size));
1574 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.length));
1575 if (r->out.length) {
1576 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.length));
1578 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
1580 return NDR_ERR_SUCCESS;
1583 _PUBLIC_ enum ndr_err_code ndr_pull_winreg_EnumValue(struct ndr_pull *ndr, int flags, struct winreg_EnumValue *r)
1586 uint32_t _ptr_value;
1588 uint32_t _ptr_length;
1589 TALLOC_CTX *_mem_save_handle_0;
1590 TALLOC_CTX *_mem_save_name_0;
1591 TALLOC_CTX *_mem_save_type_0;
1592 TALLOC_CTX *_mem_save_value_0;
1593 TALLOC_CTX *_mem_save_size_0;
1594 TALLOC_CTX *_mem_save_length_0;
1595 if (flags & NDR_IN) {
1596 ZERO_STRUCT(r->out);
1598 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1599 NDR_PULL_ALLOC(ndr, r->in.handle);
1601 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
1602 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
1603 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
1604 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
1605 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.enum_index));
1606 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1607 NDR_PULL_ALLOC(ndr, r->in.name);
1609 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
1610 NDR_PULL_SET_MEM_CTX(ndr, r->in.name, LIBNDR_FLAG_REF_ALLOC);
1611 NDR_CHECK(ndr_pull_winreg_ValNameBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.name));
1612 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, LIBNDR_FLAG_REF_ALLOC);
1613 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_type));
1615 NDR_PULL_ALLOC(ndr, r->in.type);
1620 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
1621 NDR_PULL_SET_MEM_CTX(ndr, r->in.type, 0);
1622 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->in.type));
1623 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, 0);
1625 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_value));
1627 NDR_PULL_ALLOC(ndr, r->in.value);
1632 _mem_save_value_0 = NDR_PULL_GET_MEM_CTX(ndr);
1633 NDR_PULL_SET_MEM_CTX(ndr, r->in.value, 0);
1634 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value));
1635 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value));
1636 if (ndr_get_array_length(ndr, &r->in.value) > ndr_get_array_size(ndr, &r->in.value)) {
1637 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));
1639 NDR_PULL_ALLOC_N(ndr, r->in.value, ndr_get_array_size(ndr, &r->in.value));
1640 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.value, ndr_get_array_length(ndr, &r->in.value)));
1641 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_0, 0);
1643 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_size));
1645 NDR_PULL_ALLOC(ndr, r->in.size);
1650 _mem_save_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
1651 NDR_PULL_SET_MEM_CTX(ndr, r->in.size, 0);
1652 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.size));
1653 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_size_0, 0);
1655 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_length));
1657 NDR_PULL_ALLOC(ndr, r->in.length);
1659 r->in.length = NULL;
1662 _mem_save_length_0 = NDR_PULL_GET_MEM_CTX(ndr);
1663 NDR_PULL_SET_MEM_CTX(ndr, r->in.length, 0);
1664 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.length));
1665 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_length_0, 0);
1667 NDR_PULL_ALLOC(ndr, r->out.name);
1668 *r->out.name = *r->in.name;
1670 if (r->in.size == NULL) return ndr_pull_error(ndr, NDR_ERR_INVALID_POINTER, "NULL Pointer for size_is()");
1671 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.value, *r->in.size));
1674 if (r->in.length == NULL) return ndr_pull_error(ndr, NDR_ERR_INVALID_POINTER, "NULL Pointer for length_is()");
1675 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->in.value, *r->in.length));
1678 if (flags & NDR_OUT) {
1679 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1680 NDR_PULL_ALLOC(ndr, r->out.name);
1682 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
1683 NDR_PULL_SET_MEM_CTX(ndr, r->out.name, LIBNDR_FLAG_REF_ALLOC);
1684 NDR_CHECK(ndr_pull_winreg_ValNameBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.name));
1685 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, LIBNDR_FLAG_REF_ALLOC);
1686 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_type));
1688 NDR_PULL_ALLOC(ndr, r->out.type);
1693 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
1694 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, 0);
1695 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
1696 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, 0);
1698 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_value));
1700 NDR_PULL_ALLOC(ndr, r->out.value);
1702 r->out.value = NULL;
1705 _mem_save_value_0 = NDR_PULL_GET_MEM_CTX(ndr);
1706 NDR_PULL_SET_MEM_CTX(ndr, r->out.value, 0);
1707 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.value));
1708 NDR_CHECK(ndr_pull_array_length(ndr, &r->out.value));
1709 if (ndr_get_array_length(ndr, &r->out.value) > ndr_get_array_size(ndr, &r->out.value)) {
1710 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));
1712 NDR_PULL_ALLOC_N(ndr, r->out.value, ndr_get_array_size(ndr, &r->out.value));
1713 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.value, ndr_get_array_length(ndr, &r->out.value)));
1714 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_0, 0);
1716 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_size));
1718 NDR_PULL_ALLOC(ndr, r->out.size);
1723 _mem_save_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
1724 NDR_PULL_SET_MEM_CTX(ndr, r->out.size, 0);
1725 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.size));
1726 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_size_0, 0);
1728 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_length));
1730 NDR_PULL_ALLOC(ndr, r->out.length);
1732 r->out.length = NULL;
1734 if (r->out.length) {
1735 _mem_save_length_0 = NDR_PULL_GET_MEM_CTX(ndr);
1736 NDR_PULL_SET_MEM_CTX(ndr, r->out.length, 0);
1737 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.length));
1738 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_length_0, 0);
1740 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
1742 if (r->out.size == NULL) return ndr_pull_error(ndr, NDR_ERR_INVALID_POINTER, "NULL Pointer for size_is()");
1743 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.value, *r->out.size));
1746 if (r->out.length == NULL) return ndr_pull_error(ndr, NDR_ERR_INVALID_POINTER, "NULL Pointer for length_is()");
1747 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->out.value, *r->out.length));
1750 return NDR_ERR_SUCCESS;
1753 _PUBLIC_ void ndr_print_winreg_EnumValue(struct ndr_print *ndr, const char *name, int flags, const struct winreg_EnumValue *r)
1755 ndr_print_struct(ndr, name, "winreg_EnumValue");
1757 if (flags & NDR_SET_VALUES) {
1758 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1760 if (flags & NDR_IN) {
1761 ndr_print_struct(ndr, "in", "winreg_EnumValue");
1763 ndr_print_ptr(ndr, "handle", r->in.handle);
1765 ndr_print_policy_handle(ndr, "handle", r->in.handle);
1767 ndr_print_uint32(ndr, "enum_index", r->in.enum_index);
1768 ndr_print_ptr(ndr, "name", r->in.name);
1770 ndr_print_winreg_ValNameBuf(ndr, "name", r->in.name);
1772 ndr_print_ptr(ndr, "type", r->in.type);
1775 ndr_print_winreg_Type(ndr, "type", *r->in.type);
1778 ndr_print_ptr(ndr, "value", r->in.value);
1781 if (r->in.length == NULL) return;
1782 ndr_print_array_uint8(ndr, "value", r->in.value, *r->in.length);
1785 ndr_print_ptr(ndr, "size", r->in.size);
1788 ndr_print_uint32(ndr, "size", *r->in.size);
1791 ndr_print_ptr(ndr, "length", r->in.length);
1794 ndr_print_uint32(ndr, "length", *r->in.length);
1799 if (flags & NDR_OUT) {
1800 ndr_print_struct(ndr, "out", "winreg_EnumValue");
1802 ndr_print_ptr(ndr, "name", r->out.name);
1804 ndr_print_winreg_ValNameBuf(ndr, "name", r->out.name);
1806 ndr_print_ptr(ndr, "type", r->out.type);
1809 ndr_print_winreg_Type(ndr, "type", *r->out.type);
1812 ndr_print_ptr(ndr, "value", r->out.value);
1815 if (r->out.length == NULL) return;
1816 ndr_print_array_uint8(ndr, "value", r->out.value, *r->out.length);
1819 ndr_print_ptr(ndr, "size", r->out.size);
1822 ndr_print_uint32(ndr, "size", *r->out.size);
1825 ndr_print_ptr(ndr, "length", r->out.length);
1827 if (r->out.length) {
1828 ndr_print_uint32(ndr, "length", *r->out.length);
1831 ndr_print_WERROR(ndr, "result", r->out.result);
1837 _PUBLIC_ enum ndr_err_code ndr_push_winreg_FlushKey(struct ndr_push *ndr, int flags, const struct winreg_FlushKey *r)
1839 if (flags & NDR_IN) {
1840 if (r->in.handle == NULL) {
1841 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1843 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
1845 if (flags & NDR_OUT) {
1846 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
1848 return NDR_ERR_SUCCESS;
1851 _PUBLIC_ enum ndr_err_code ndr_pull_winreg_FlushKey(struct ndr_pull *ndr, int flags, struct winreg_FlushKey *r)
1853 TALLOC_CTX *_mem_save_handle_0;
1854 if (flags & NDR_IN) {
1855 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1856 NDR_PULL_ALLOC(ndr, r->in.handle);
1858 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
1859 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
1860 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
1861 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
1863 if (flags & NDR_OUT) {
1864 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
1866 return NDR_ERR_SUCCESS;
1869 _PUBLIC_ void ndr_print_winreg_FlushKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_FlushKey *r)
1871 ndr_print_struct(ndr, name, "winreg_FlushKey");
1873 if (flags & NDR_SET_VALUES) {
1874 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1876 if (flags & NDR_IN) {
1877 ndr_print_struct(ndr, "in", "winreg_FlushKey");
1879 ndr_print_ptr(ndr, "handle", r->in.handle);
1881 ndr_print_policy_handle(ndr, "handle", r->in.handle);
1885 if (flags & NDR_OUT) {
1886 ndr_print_struct(ndr, "out", "winreg_FlushKey");
1888 ndr_print_WERROR(ndr, "result", r->out.result);
1894 _PUBLIC_ enum ndr_err_code ndr_push_winreg_GetKeySecurity(struct ndr_push *ndr, int flags, const struct winreg_GetKeySecurity *r)
1896 if (flags & NDR_IN) {
1897 if (r->in.handle == NULL) {
1898 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1900 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
1901 NDR_CHECK(ndr_push_security_secinfo(ndr, NDR_SCALARS, r->in.sec_info));
1902 if (r->in.sd == NULL) {
1903 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1905 NDR_CHECK(ndr_push_KeySecurityData(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sd));
1907 if (flags & NDR_OUT) {
1908 if (r->out.sd == NULL) {
1909 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1911 NDR_CHECK(ndr_push_KeySecurityData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.sd));
1912 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
1914 return NDR_ERR_SUCCESS;
1917 _PUBLIC_ enum ndr_err_code ndr_pull_winreg_GetKeySecurity(struct ndr_pull *ndr, int flags, struct winreg_GetKeySecurity *r)
1919 TALLOC_CTX *_mem_save_handle_0;
1920 TALLOC_CTX *_mem_save_sd_0;
1921 if (flags & NDR_IN) {
1922 ZERO_STRUCT(r->out);
1924 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1925 NDR_PULL_ALLOC(ndr, r->in.handle);
1927 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
1928 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
1929 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
1930 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
1931 NDR_CHECK(ndr_pull_security_secinfo(ndr, NDR_SCALARS, &r->in.sec_info));
1932 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1933 NDR_PULL_ALLOC(ndr, r->in.sd);
1935 _mem_save_sd_0 = NDR_PULL_GET_MEM_CTX(ndr);
1936 NDR_PULL_SET_MEM_CTX(ndr, r->in.sd, LIBNDR_FLAG_REF_ALLOC);
1937 NDR_CHECK(ndr_pull_KeySecurityData(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sd));
1938 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sd_0, LIBNDR_FLAG_REF_ALLOC);
1939 NDR_PULL_ALLOC(ndr, r->out.sd);
1940 *r->out.sd = *r->in.sd;
1942 if (flags & NDR_OUT) {
1943 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1944 NDR_PULL_ALLOC(ndr, r->out.sd);
1946 _mem_save_sd_0 = NDR_PULL_GET_MEM_CTX(ndr);
1947 NDR_PULL_SET_MEM_CTX(ndr, r->out.sd, LIBNDR_FLAG_REF_ALLOC);
1948 NDR_CHECK(ndr_pull_KeySecurityData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.sd));
1949 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sd_0, LIBNDR_FLAG_REF_ALLOC);
1950 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
1952 return NDR_ERR_SUCCESS;
1955 _PUBLIC_ void ndr_print_winreg_GetKeySecurity(struct ndr_print *ndr, const char *name, int flags, const struct winreg_GetKeySecurity *r)
1957 ndr_print_struct(ndr, name, "winreg_GetKeySecurity");
1959 if (flags & NDR_SET_VALUES) {
1960 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1962 if (flags & NDR_IN) {
1963 ndr_print_struct(ndr, "in", "winreg_GetKeySecurity");
1965 ndr_print_ptr(ndr, "handle", r->in.handle);
1967 ndr_print_policy_handle(ndr, "handle", r->in.handle);
1969 ndr_print_security_secinfo(ndr, "sec_info", r->in.sec_info);
1970 ndr_print_ptr(ndr, "sd", r->in.sd);
1972 ndr_print_KeySecurityData(ndr, "sd", r->in.sd);
1976 if (flags & NDR_OUT) {
1977 ndr_print_struct(ndr, "out", "winreg_GetKeySecurity");
1979 ndr_print_ptr(ndr, "sd", r->out.sd);
1981 ndr_print_KeySecurityData(ndr, "sd", r->out.sd);
1983 ndr_print_WERROR(ndr, "result", r->out.result);
1989 static enum ndr_err_code ndr_push_winreg_LoadKey(struct ndr_push *ndr, int flags, const struct winreg_LoadKey *r)
1991 if (flags & NDR_IN) {
1992 if (r->in.handle == NULL) {
1993 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1995 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
1996 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.keyname));
1997 if (r->in.keyname) {
1998 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.keyname));
2000 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.filename));
2001 if (r->in.filename) {
2002 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.filename));
2005 if (flags & NDR_OUT) {
2006 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
2008 return NDR_ERR_SUCCESS;
2011 static enum ndr_err_code ndr_pull_winreg_LoadKey(struct ndr_pull *ndr, int flags, struct winreg_LoadKey *r)
2013 uint32_t _ptr_keyname;
2014 uint32_t _ptr_filename;
2015 TALLOC_CTX *_mem_save_handle_0;
2016 TALLOC_CTX *_mem_save_keyname_0;
2017 TALLOC_CTX *_mem_save_filename_0;
2018 if (flags & NDR_IN) {
2019 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2020 NDR_PULL_ALLOC(ndr, r->in.handle);
2022 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
2023 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
2024 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
2025 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
2026 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_keyname));
2028 NDR_PULL_ALLOC(ndr, r->in.keyname);
2030 r->in.keyname = NULL;
2032 if (r->in.keyname) {
2033 _mem_save_keyname_0 = NDR_PULL_GET_MEM_CTX(ndr);
2034 NDR_PULL_SET_MEM_CTX(ndr, r->in.keyname, 0);
2035 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.keyname));
2036 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_keyname_0, 0);
2038 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_filename));
2039 if (_ptr_filename) {
2040 NDR_PULL_ALLOC(ndr, r->in.filename);
2042 r->in.filename = NULL;
2044 if (r->in.filename) {
2045 _mem_save_filename_0 = NDR_PULL_GET_MEM_CTX(ndr);
2046 NDR_PULL_SET_MEM_CTX(ndr, r->in.filename, 0);
2047 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.filename));
2048 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_filename_0, 0);
2051 if (flags & NDR_OUT) {
2052 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
2054 return NDR_ERR_SUCCESS;
2057 _PUBLIC_ void ndr_print_winreg_LoadKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_LoadKey *r)
2059 ndr_print_struct(ndr, name, "winreg_LoadKey");
2061 if (flags & NDR_SET_VALUES) {
2062 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2064 if (flags & NDR_IN) {
2065 ndr_print_struct(ndr, "in", "winreg_LoadKey");
2067 ndr_print_ptr(ndr, "handle", r->in.handle);
2069 ndr_print_policy_handle(ndr, "handle", r->in.handle);
2071 ndr_print_ptr(ndr, "keyname", r->in.keyname);
2073 if (r->in.keyname) {
2074 ndr_print_winreg_String(ndr, "keyname", r->in.keyname);
2077 ndr_print_ptr(ndr, "filename", r->in.filename);
2079 if (r->in.filename) {
2080 ndr_print_winreg_String(ndr, "filename", r->in.filename);
2085 if (flags & NDR_OUT) {
2086 ndr_print_struct(ndr, "out", "winreg_LoadKey");
2088 ndr_print_WERROR(ndr, "result", r->out.result);
2094 _PUBLIC_ enum ndr_err_code ndr_push_winreg_NotifyChangeKeyValue(struct ndr_push *ndr, int flags, const struct winreg_NotifyChangeKeyValue *r)
2096 if (flags & NDR_IN) {
2097 if (r->in.handle == NULL) {
2098 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2100 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
2101 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->in.watch_subtree));
2102 NDR_CHECK(ndr_push_winreg_NotifyChangeType(ndr, NDR_SCALARS, r->in.notify_filter));
2103 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown));
2104 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.string1));
2105 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.string2));
2106 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown2));
2108 if (flags & NDR_OUT) {
2109 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
2111 return NDR_ERR_SUCCESS;
2114 _PUBLIC_ enum ndr_err_code ndr_pull_winreg_NotifyChangeKeyValue(struct ndr_pull *ndr, int flags, struct winreg_NotifyChangeKeyValue *r)
2116 TALLOC_CTX *_mem_save_handle_0;
2117 if (flags & NDR_IN) {
2118 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2119 NDR_PULL_ALLOC(ndr, r->in.handle);
2121 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
2122 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
2123 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
2124 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
2125 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->in.watch_subtree));
2126 NDR_CHECK(ndr_pull_winreg_NotifyChangeType(ndr, NDR_SCALARS, &r->in.notify_filter));
2127 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown));
2128 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.string1));
2129 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.string2));
2130 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown2));
2132 if (flags & NDR_OUT) {
2133 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
2135 return NDR_ERR_SUCCESS;
2138 _PUBLIC_ void ndr_print_winreg_NotifyChangeKeyValue(struct ndr_print *ndr, const char *name, int flags, const struct winreg_NotifyChangeKeyValue *r)
2140 ndr_print_struct(ndr, name, "winreg_NotifyChangeKeyValue");
2142 if (flags & NDR_SET_VALUES) {
2143 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2145 if (flags & NDR_IN) {
2146 ndr_print_struct(ndr, "in", "winreg_NotifyChangeKeyValue");
2148 ndr_print_ptr(ndr, "handle", r->in.handle);
2150 ndr_print_policy_handle(ndr, "handle", r->in.handle);
2152 ndr_print_uint8(ndr, "watch_subtree", r->in.watch_subtree);
2153 ndr_print_winreg_NotifyChangeType(ndr, "notify_filter", r->in.notify_filter);
2154 ndr_print_uint32(ndr, "unknown", r->in.unknown);
2155 ndr_print_winreg_String(ndr, "string1", &r->in.string1);
2156 ndr_print_winreg_String(ndr, "string2", &r->in.string2);
2157 ndr_print_uint32(ndr, "unknown2", r->in.unknown2);
2160 if (flags & NDR_OUT) {
2161 ndr_print_struct(ndr, "out", "winreg_NotifyChangeKeyValue");
2163 ndr_print_WERROR(ndr, "result", r->out.result);
2169 _PUBLIC_ enum ndr_err_code ndr_push_winreg_OpenKey(struct ndr_push *ndr, int flags, const struct winreg_OpenKey *r)
2171 if (flags & NDR_IN) {
2172 if (r->in.parent_handle == NULL) {
2173 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2175 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.parent_handle));
2176 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.keyname));
2177 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown));
2178 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
2180 if (flags & NDR_OUT) {
2181 if (r->out.handle == NULL) {
2182 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2184 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
2185 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
2187 return NDR_ERR_SUCCESS;
2190 _PUBLIC_ enum ndr_err_code ndr_pull_winreg_OpenKey(struct ndr_pull *ndr, int flags, struct winreg_OpenKey *r)
2192 TALLOC_CTX *_mem_save_parent_handle_0;
2193 TALLOC_CTX *_mem_save_handle_0;
2194 if (flags & NDR_IN) {
2195 ZERO_STRUCT(r->out);
2197 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2198 NDR_PULL_ALLOC(ndr, r->in.parent_handle);
2200 _mem_save_parent_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
2201 NDR_PULL_SET_MEM_CTX(ndr, r->in.parent_handle, LIBNDR_FLAG_REF_ALLOC);
2202 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.parent_handle));
2203 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parent_handle_0, LIBNDR_FLAG_REF_ALLOC);
2204 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.keyname));
2205 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown));
2206 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
2207 NDR_PULL_ALLOC(ndr, r->out.handle);
2208 ZERO_STRUCTP(r->out.handle);
2210 if (flags & NDR_OUT) {
2211 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2212 NDR_PULL_ALLOC(ndr, r->out.handle);
2214 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
2215 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
2216 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
2217 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
2218 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
2220 return NDR_ERR_SUCCESS;
2223 _PUBLIC_ void ndr_print_winreg_OpenKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenKey *r)
2225 ndr_print_struct(ndr, name, "winreg_OpenKey");
2227 if (flags & NDR_SET_VALUES) {
2228 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2230 if (flags & NDR_IN) {
2231 ndr_print_struct(ndr, "in", "winreg_OpenKey");
2233 ndr_print_ptr(ndr, "parent_handle", r->in.parent_handle);
2235 ndr_print_policy_handle(ndr, "parent_handle", r->in.parent_handle);
2237 ndr_print_winreg_String(ndr, "keyname", &r->in.keyname);
2238 ndr_print_uint32(ndr, "unknown", r->in.unknown);
2239 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
2242 if (flags & NDR_OUT) {
2243 ndr_print_struct(ndr, "out", "winreg_OpenKey");
2245 ndr_print_ptr(ndr, "handle", r->out.handle);
2247 ndr_print_policy_handle(ndr, "handle", r->out.handle);
2249 ndr_print_WERROR(ndr, "result", r->out.result);
2255 _PUBLIC_ enum ndr_err_code ndr_push_winreg_QueryInfoKey(struct ndr_push *ndr, int flags, const struct winreg_QueryInfoKey *r)
2257 if (flags & NDR_IN) {
2258 if (r->in.handle == NULL) {
2259 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2261 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
2262 if (r->in.classname == NULL) {
2263 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2265 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.classname));
2267 if (flags & NDR_OUT) {
2268 if (r->out.classname == NULL) {
2269 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2271 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.classname));
2272 if (r->out.num_subkeys == NULL) {
2273 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2275 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.num_subkeys));
2276 if (r->out.max_subkeylen == 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.max_subkeylen));
2280 if (r->out.max_classlen == 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_classlen));
2284 if (r->out.num_values == 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.num_values));
2288 if (r->out.max_valnamelen == 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.max_valnamelen));
2292 if (r->out.max_valbufsize == 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_valbufsize));
2296 if (r->out.secdescsize == 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.secdescsize));
2300 if (r->out.last_changed_time == NULL) {
2301 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2303 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, *r->out.last_changed_time));
2304 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
2306 return NDR_ERR_SUCCESS;
2309 _PUBLIC_ enum ndr_err_code ndr_pull_winreg_QueryInfoKey(struct ndr_pull *ndr, int flags, struct winreg_QueryInfoKey *r)
2311 TALLOC_CTX *_mem_save_handle_0;
2312 TALLOC_CTX *_mem_save_classname_0;
2313 TALLOC_CTX *_mem_save_num_subkeys_0;
2314 TALLOC_CTX *_mem_save_max_subkeylen_0;
2315 TALLOC_CTX *_mem_save_max_classlen_0;
2316 TALLOC_CTX *_mem_save_num_values_0;
2317 TALLOC_CTX *_mem_save_max_valnamelen_0;
2318 TALLOC_CTX *_mem_save_max_valbufsize_0;
2319 TALLOC_CTX *_mem_save_secdescsize_0;
2320 TALLOC_CTX *_mem_save_last_changed_time_0;
2321 if (flags & NDR_IN) {
2322 ZERO_STRUCT(r->out);
2324 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2325 NDR_PULL_ALLOC(ndr, r->in.handle);
2327 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
2328 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
2329 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
2330 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
2331 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2332 NDR_PULL_ALLOC(ndr, r->in.classname);
2334 _mem_save_classname_0 = NDR_PULL_GET_MEM_CTX(ndr);
2335 NDR_PULL_SET_MEM_CTX(ndr, r->in.classname, LIBNDR_FLAG_REF_ALLOC);
2336 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.classname));
2337 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_classname_0, LIBNDR_FLAG_REF_ALLOC);
2338 NDR_PULL_ALLOC(ndr, r->out.classname);
2339 *r->out.classname = *r->in.classname;
2340 NDR_PULL_ALLOC(ndr, r->out.num_subkeys);
2341 ZERO_STRUCTP(r->out.num_subkeys);
2342 NDR_PULL_ALLOC(ndr, r->out.max_subkeylen);
2343 ZERO_STRUCTP(r->out.max_subkeylen);
2344 NDR_PULL_ALLOC(ndr, r->out.max_classlen);
2345 ZERO_STRUCTP(r->out.max_classlen);
2346 NDR_PULL_ALLOC(ndr, r->out.num_values);
2347 ZERO_STRUCTP(r->out.num_values);
2348 NDR_PULL_ALLOC(ndr, r->out.max_valnamelen);
2349 ZERO_STRUCTP(r->out.max_valnamelen);
2350 NDR_PULL_ALLOC(ndr, r->out.max_valbufsize);
2351 ZERO_STRUCTP(r->out.max_valbufsize);
2352 NDR_PULL_ALLOC(ndr, r->out.secdescsize);
2353 ZERO_STRUCTP(r->out.secdescsize);
2354 NDR_PULL_ALLOC(ndr, r->out.last_changed_time);
2355 ZERO_STRUCTP(r->out.last_changed_time);
2357 if (flags & NDR_OUT) {
2358 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2359 NDR_PULL_ALLOC(ndr, r->out.classname);
2361 _mem_save_classname_0 = NDR_PULL_GET_MEM_CTX(ndr);
2362 NDR_PULL_SET_MEM_CTX(ndr, r->out.classname, LIBNDR_FLAG_REF_ALLOC);
2363 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.classname));
2364 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_classname_0, LIBNDR_FLAG_REF_ALLOC);
2365 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2366 NDR_PULL_ALLOC(ndr, r->out.num_subkeys);
2368 _mem_save_num_subkeys_0 = NDR_PULL_GET_MEM_CTX(ndr);
2369 NDR_PULL_SET_MEM_CTX(ndr, r->out.num_subkeys, LIBNDR_FLAG_REF_ALLOC);
2370 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.num_subkeys));
2371 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_num_subkeys_0, LIBNDR_FLAG_REF_ALLOC);
2372 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2373 NDR_PULL_ALLOC(ndr, r->out.max_subkeylen);
2375 _mem_save_max_subkeylen_0 = NDR_PULL_GET_MEM_CTX(ndr);
2376 NDR_PULL_SET_MEM_CTX(ndr, r->out.max_subkeylen, LIBNDR_FLAG_REF_ALLOC);
2377 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.max_subkeylen));
2378 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_max_subkeylen_0, LIBNDR_FLAG_REF_ALLOC);
2379 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2380 NDR_PULL_ALLOC(ndr, r->out.max_classlen);
2382 _mem_save_max_classlen_0 = NDR_PULL_GET_MEM_CTX(ndr);
2383 NDR_PULL_SET_MEM_CTX(ndr, r->out.max_classlen, LIBNDR_FLAG_REF_ALLOC);
2384 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.max_classlen));
2385 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_max_classlen_0, LIBNDR_FLAG_REF_ALLOC);
2386 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2387 NDR_PULL_ALLOC(ndr, r->out.num_values);
2389 _mem_save_num_values_0 = NDR_PULL_GET_MEM_CTX(ndr);
2390 NDR_PULL_SET_MEM_CTX(ndr, r->out.num_values, LIBNDR_FLAG_REF_ALLOC);
2391 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.num_values));
2392 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_num_values_0, LIBNDR_FLAG_REF_ALLOC);
2393 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2394 NDR_PULL_ALLOC(ndr, r->out.max_valnamelen);
2396 _mem_save_max_valnamelen_0 = NDR_PULL_GET_MEM_CTX(ndr);
2397 NDR_PULL_SET_MEM_CTX(ndr, r->out.max_valnamelen, LIBNDR_FLAG_REF_ALLOC);
2398 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.max_valnamelen));
2399 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_max_valnamelen_0, LIBNDR_FLAG_REF_ALLOC);
2400 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2401 NDR_PULL_ALLOC(ndr, r->out.max_valbufsize);
2403 _mem_save_max_valbufsize_0 = NDR_PULL_GET_MEM_CTX(ndr);
2404 NDR_PULL_SET_MEM_CTX(ndr, r->out.max_valbufsize, LIBNDR_FLAG_REF_ALLOC);
2405 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.max_valbufsize));
2406 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_max_valbufsize_0, LIBNDR_FLAG_REF_ALLOC);
2407 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2408 NDR_PULL_ALLOC(ndr, r->out.secdescsize);
2410 _mem_save_secdescsize_0 = NDR_PULL_GET_MEM_CTX(ndr);
2411 NDR_PULL_SET_MEM_CTX(ndr, r->out.secdescsize, LIBNDR_FLAG_REF_ALLOC);
2412 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.secdescsize));
2413 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdescsize_0, LIBNDR_FLAG_REF_ALLOC);
2414 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2415 NDR_PULL_ALLOC(ndr, r->out.last_changed_time);
2417 _mem_save_last_changed_time_0 = NDR_PULL_GET_MEM_CTX(ndr);
2418 NDR_PULL_SET_MEM_CTX(ndr, r->out.last_changed_time, LIBNDR_FLAG_REF_ALLOC);
2419 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, r->out.last_changed_time));
2420 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_last_changed_time_0, LIBNDR_FLAG_REF_ALLOC);
2421 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
2423 return NDR_ERR_SUCCESS;
2426 _PUBLIC_ void ndr_print_winreg_QueryInfoKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_QueryInfoKey *r)
2428 ndr_print_struct(ndr, name, "winreg_QueryInfoKey");
2430 if (flags & NDR_SET_VALUES) {
2431 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2433 if (flags & NDR_IN) {
2434 ndr_print_struct(ndr, "in", "winreg_QueryInfoKey");
2436 ndr_print_ptr(ndr, "handle", r->in.handle);
2438 ndr_print_policy_handle(ndr, "handle", r->in.handle);
2440 ndr_print_ptr(ndr, "classname", r->in.classname);
2442 ndr_print_winreg_String(ndr, "classname", r->in.classname);
2446 if (flags & NDR_OUT) {
2447 ndr_print_struct(ndr, "out", "winreg_QueryInfoKey");
2449 ndr_print_ptr(ndr, "classname", r->out.classname);
2451 ndr_print_winreg_String(ndr, "classname", r->out.classname);
2453 ndr_print_ptr(ndr, "num_subkeys", r->out.num_subkeys);
2455 ndr_print_uint32(ndr, "num_subkeys", *r->out.num_subkeys);
2457 ndr_print_ptr(ndr, "max_subkeylen", r->out.max_subkeylen);
2459 ndr_print_uint32(ndr, "max_subkeylen", *r->out.max_subkeylen);
2461 ndr_print_ptr(ndr, "max_classlen", r->out.max_classlen);
2463 ndr_print_uint32(ndr, "max_classlen", *r->out.max_classlen);
2465 ndr_print_ptr(ndr, "num_values", r->out.num_values);
2467 ndr_print_uint32(ndr, "num_values", *r->out.num_values);
2469 ndr_print_ptr(ndr, "max_valnamelen", r->out.max_valnamelen);
2471 ndr_print_uint32(ndr, "max_valnamelen", *r->out.max_valnamelen);
2473 ndr_print_ptr(ndr, "max_valbufsize", r->out.max_valbufsize);
2475 ndr_print_uint32(ndr, "max_valbufsize", *r->out.max_valbufsize);
2477 ndr_print_ptr(ndr, "secdescsize", r->out.secdescsize);
2479 ndr_print_uint32(ndr, "secdescsize", *r->out.secdescsize);
2481 ndr_print_ptr(ndr, "last_changed_time", r->out.last_changed_time);
2483 ndr_print_NTTIME(ndr, "last_changed_time", *r->out.last_changed_time);
2485 ndr_print_WERROR(ndr, "result", r->out.result);
2491 _PUBLIC_ enum ndr_err_code ndr_push_winreg_QueryValue(struct ndr_push *ndr, int flags, const struct winreg_QueryValue *r)
2493 if (flags & NDR_IN) {
2494 if (r->in.handle == NULL) {
2495 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2497 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
2498 if (r->in.value_name == NULL) {
2499 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2501 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.value_name));
2502 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.type));
2504 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->in.type));
2506 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.data));
2508 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.data_size));
2509 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
2510 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.value_length));
2511 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.data, *r->in.value_length));
2513 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.data_size));
2514 if (r->in.data_size) {
2515 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.data_size));
2517 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.value_length));
2518 if (r->in.value_length) {
2519 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.value_length));
2522 if (flags & NDR_OUT) {
2523 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.type));
2525 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
2527 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.data));
2529 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.data_size));
2530 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
2531 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.value_length));
2532 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, *r->out.value_length));
2534 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.data_size));
2535 if (r->out.data_size) {
2536 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.data_size));
2538 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.value_length));
2539 if (r->out.value_length) {
2540 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.value_length));
2542 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
2544 return NDR_ERR_SUCCESS;
2547 _PUBLIC_ enum ndr_err_code ndr_pull_winreg_QueryValue(struct ndr_pull *ndr, int flags, struct winreg_QueryValue *r)
2551 uint32_t _ptr_data_size;
2552 uint32_t _ptr_value_length;
2553 TALLOC_CTX *_mem_save_handle_0;
2554 TALLOC_CTX *_mem_save_value_name_0;
2555 TALLOC_CTX *_mem_save_type_0;
2556 TALLOC_CTX *_mem_save_data_0;
2557 TALLOC_CTX *_mem_save_data_size_0;
2558 TALLOC_CTX *_mem_save_value_length_0;
2559 if (flags & NDR_IN) {
2560 ZERO_STRUCT(r->out);
2562 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2563 NDR_PULL_ALLOC(ndr, r->in.handle);
2565 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
2566 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
2567 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
2568 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
2569 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2570 NDR_PULL_ALLOC(ndr, r->in.value_name);
2572 _mem_save_value_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
2573 NDR_PULL_SET_MEM_CTX(ndr, r->in.value_name, LIBNDR_FLAG_REF_ALLOC);
2574 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.value_name));
2575 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_name_0, LIBNDR_FLAG_REF_ALLOC);
2576 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_type));
2578 NDR_PULL_ALLOC(ndr, r->in.type);
2583 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
2584 NDR_PULL_SET_MEM_CTX(ndr, r->in.type, 0);
2585 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->in.type));
2586 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, 0);
2588 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
2590 NDR_PULL_ALLOC(ndr, r->in.data);
2595 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
2596 NDR_PULL_SET_MEM_CTX(ndr, r->in.data, 0);
2597 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.data));
2598 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.data));
2599 if (ndr_get_array_length(ndr, &r->in.data) > ndr_get_array_size(ndr, &r->in.data)) {
2600 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));
2602 NDR_PULL_ALLOC_N(ndr, r->in.data, ndr_get_array_size(ndr, &r->in.data));
2603 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.data, ndr_get_array_length(ndr, &r->in.data)));
2604 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
2606 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_size));
2607 if (_ptr_data_size) {
2608 NDR_PULL_ALLOC(ndr, r->in.data_size);
2610 r->in.data_size = NULL;
2612 if (r->in.data_size) {
2613 _mem_save_data_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
2614 NDR_PULL_SET_MEM_CTX(ndr, r->in.data_size, 0);
2615 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.data_size));
2616 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_size_0, 0);
2618 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_value_length));
2619 if (_ptr_value_length) {
2620 NDR_PULL_ALLOC(ndr, r->in.value_length);
2622 r->in.value_length = NULL;
2624 if (r->in.value_length) {
2625 _mem_save_value_length_0 = NDR_PULL_GET_MEM_CTX(ndr);
2626 NDR_PULL_SET_MEM_CTX(ndr, r->in.value_length, 0);
2627 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.value_length));
2628 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_length_0, 0);
2631 if (r->in.data_size == NULL) return ndr_pull_error(ndr, NDR_ERR_INVALID_POINTER, "NULL Pointer for size_is()");
2632 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.data, *r->in.data_size));
2635 if (r->in.value_length == NULL) return ndr_pull_error(ndr, NDR_ERR_INVALID_POINTER, "NULL Pointer for length_is()");
2636 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->in.data, *r->in.value_length));
2639 if (flags & NDR_OUT) {
2640 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_type));
2642 NDR_PULL_ALLOC(ndr, r->out.type);
2647 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
2648 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, 0);
2649 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
2650 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, 0);
2652 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
2654 NDR_PULL_ALLOC(ndr, r->out.data);
2659 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
2660 NDR_PULL_SET_MEM_CTX(ndr, r->out.data, 0);
2661 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
2662 NDR_CHECK(ndr_pull_array_length(ndr, &r->out.data));
2663 if (ndr_get_array_length(ndr, &r->out.data) > ndr_get_array_size(ndr, &r->out.data)) {
2664 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));
2666 NDR_PULL_ALLOC_N(ndr, r->out.data, ndr_get_array_size(ndr, &r->out.data));
2667 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, ndr_get_array_length(ndr, &r->out.data)));
2668 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
2670 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_size));
2671 if (_ptr_data_size) {
2672 NDR_PULL_ALLOC(ndr, r->out.data_size);
2674 r->out.data_size = NULL;
2676 if (r->out.data_size) {
2677 _mem_save_data_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
2678 NDR_PULL_SET_MEM_CTX(ndr, r->out.data_size, 0);
2679 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.data_size));
2680 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_size_0, 0);
2682 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_value_length));
2683 if (_ptr_value_length) {
2684 NDR_PULL_ALLOC(ndr, r->out.value_length);
2686 r->out.value_length = NULL;
2688 if (r->out.value_length) {
2689 _mem_save_value_length_0 = NDR_PULL_GET_MEM_CTX(ndr);
2690 NDR_PULL_SET_MEM_CTX(ndr, r->out.value_length, 0);
2691 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.value_length));
2692 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_length_0, 0);
2694 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
2696 if (r->out.data_size == NULL) return ndr_pull_error(ndr, NDR_ERR_INVALID_POINTER, "NULL Pointer for size_is()");
2697 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, *r->out.data_size));
2700 if (r->out.value_length == NULL) return ndr_pull_error(ndr, NDR_ERR_INVALID_POINTER, "NULL Pointer for length_is()");
2701 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->out.data, *r->out.value_length));
2704 return NDR_ERR_SUCCESS;
2707 _PUBLIC_ void ndr_print_winreg_QueryValue(struct ndr_print *ndr, const char *name, int flags, const struct winreg_QueryValue *r)
2709 ndr_print_struct(ndr, name, "winreg_QueryValue");
2711 if (flags & NDR_SET_VALUES) {
2712 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2714 if (flags & NDR_IN) {
2715 ndr_print_struct(ndr, "in", "winreg_QueryValue");
2717 ndr_print_ptr(ndr, "handle", r->in.handle);
2719 ndr_print_policy_handle(ndr, "handle", r->in.handle);
2721 ndr_print_ptr(ndr, "value_name", r->in.value_name);
2723 ndr_print_winreg_String(ndr, "value_name", r->in.value_name);
2725 ndr_print_ptr(ndr, "type", r->in.type);
2728 ndr_print_winreg_Type(ndr, "type", *r->in.type);
2731 ndr_print_ptr(ndr, "data", r->in.data);
2734 if (r->in.value_length == NULL) return;
2735 ndr_print_array_uint8(ndr, "data", r->in.data, *r->in.value_length);
2738 ndr_print_ptr(ndr, "data_size", r->in.data_size);
2740 if (r->in.data_size) {
2741 ndr_print_uint32(ndr, "data_size", *r->in.data_size);
2744 ndr_print_ptr(ndr, "value_length", r->in.value_length);
2746 if (r->in.value_length) {
2747 ndr_print_uint32(ndr, "value_length", *r->in.value_length);
2752 if (flags & NDR_OUT) {
2753 ndr_print_struct(ndr, "out", "winreg_QueryValue");
2755 ndr_print_ptr(ndr, "type", r->out.type);
2758 ndr_print_winreg_Type(ndr, "type", *r->out.type);
2761 ndr_print_ptr(ndr, "data", r->out.data);
2764 if (r->out.value_length == NULL) return;
2765 ndr_print_array_uint8(ndr, "data", r->out.data, *r->out.value_length);
2768 ndr_print_ptr(ndr, "data_size", r->out.data_size);
2770 if (r->out.data_size) {
2771 ndr_print_uint32(ndr, "data_size", *r->out.data_size);
2774 ndr_print_ptr(ndr, "value_length", r->out.value_length);
2776 if (r->out.value_length) {
2777 ndr_print_uint32(ndr, "value_length", *r->out.value_length);
2780 ndr_print_WERROR(ndr, "result", r->out.result);
2786 static enum ndr_err_code ndr_push_winreg_ReplaceKey(struct ndr_push *ndr, int flags, const struct winreg_ReplaceKey *r)
2788 if (flags & NDR_IN) {
2790 if (flags & NDR_OUT) {
2791 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
2793 return NDR_ERR_SUCCESS;
2796 static enum ndr_err_code ndr_pull_winreg_ReplaceKey(struct ndr_pull *ndr, int flags, struct winreg_ReplaceKey *r)
2798 if (flags & NDR_IN) {
2800 if (flags & NDR_OUT) {
2801 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
2803 return NDR_ERR_SUCCESS;
2806 _PUBLIC_ void ndr_print_winreg_ReplaceKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_ReplaceKey *r)
2808 ndr_print_struct(ndr, name, "winreg_ReplaceKey");
2810 if (flags & NDR_SET_VALUES) {
2811 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2813 if (flags & NDR_IN) {
2814 ndr_print_struct(ndr, "in", "winreg_ReplaceKey");
2818 if (flags & NDR_OUT) {
2819 ndr_print_struct(ndr, "out", "winreg_ReplaceKey");
2821 ndr_print_WERROR(ndr, "result", r->out.result);
2827 static enum ndr_err_code ndr_push_winreg_RestoreKey(struct ndr_push *ndr, int flags, const struct winreg_RestoreKey *r)
2829 if (flags & NDR_IN) {
2830 if (r->in.handle == NULL) {
2831 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2833 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
2834 if (r->in.filename == NULL) {
2835 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2837 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.filename));
2838 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.flags));
2840 if (flags & NDR_OUT) {
2841 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
2843 return NDR_ERR_SUCCESS;
2846 static enum ndr_err_code ndr_pull_winreg_RestoreKey(struct ndr_pull *ndr, int flags, struct winreg_RestoreKey *r)
2848 TALLOC_CTX *_mem_save_handle_0;
2849 TALLOC_CTX *_mem_save_filename_0;
2850 if (flags & NDR_IN) {
2851 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2852 NDR_PULL_ALLOC(ndr, r->in.handle);
2854 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
2855 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
2856 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
2857 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
2858 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2859 NDR_PULL_ALLOC(ndr, r->in.filename);
2861 _mem_save_filename_0 = NDR_PULL_GET_MEM_CTX(ndr);
2862 NDR_PULL_SET_MEM_CTX(ndr, r->in.filename, LIBNDR_FLAG_REF_ALLOC);
2863 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.filename));
2864 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_filename_0, LIBNDR_FLAG_REF_ALLOC);
2865 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.flags));
2867 if (flags & NDR_OUT) {
2868 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
2870 return NDR_ERR_SUCCESS;
2873 _PUBLIC_ void ndr_print_winreg_RestoreKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_RestoreKey *r)
2875 ndr_print_struct(ndr, name, "winreg_RestoreKey");
2877 if (flags & NDR_SET_VALUES) {
2878 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2880 if (flags & NDR_IN) {
2881 ndr_print_struct(ndr, "in", "winreg_RestoreKey");
2883 ndr_print_ptr(ndr, "handle", r->in.handle);
2885 ndr_print_policy_handle(ndr, "handle", r->in.handle);
2887 ndr_print_ptr(ndr, "filename", r->in.filename);
2889 ndr_print_winreg_String(ndr, "filename", r->in.filename);
2891 ndr_print_uint32(ndr, "flags", r->in.flags);
2894 if (flags & NDR_OUT) {
2895 ndr_print_struct(ndr, "out", "winreg_RestoreKey");
2897 ndr_print_WERROR(ndr, "result", r->out.result);
2903 static enum ndr_err_code ndr_push_winreg_SaveKey(struct ndr_push *ndr, int flags, const struct winreg_SaveKey *r)
2905 if (flags & NDR_IN) {
2906 if (r->in.handle == NULL) {
2907 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2909 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
2910 if (r->in.filename == NULL) {
2911 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2913 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.filename));
2914 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.sec_attrib));
2915 if (r->in.sec_attrib) {
2916 NDR_CHECK(ndr_push_KeySecurityAttribute(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sec_attrib));
2919 if (flags & NDR_OUT) {
2920 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
2922 return NDR_ERR_SUCCESS;
2925 static enum ndr_err_code ndr_pull_winreg_SaveKey(struct ndr_pull *ndr, int flags, struct winreg_SaveKey *r)
2927 uint32_t _ptr_sec_attrib;
2928 TALLOC_CTX *_mem_save_handle_0;
2929 TALLOC_CTX *_mem_save_filename_0;
2930 TALLOC_CTX *_mem_save_sec_attrib_0;
2931 if (flags & NDR_IN) {
2932 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2933 NDR_PULL_ALLOC(ndr, r->in.handle);
2935 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
2936 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
2937 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
2938 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
2939 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2940 NDR_PULL_ALLOC(ndr, r->in.filename);
2942 _mem_save_filename_0 = NDR_PULL_GET_MEM_CTX(ndr);
2943 NDR_PULL_SET_MEM_CTX(ndr, r->in.filename, LIBNDR_FLAG_REF_ALLOC);
2944 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.filename));
2945 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_filename_0, LIBNDR_FLAG_REF_ALLOC);
2946 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sec_attrib));
2947 if (_ptr_sec_attrib) {
2948 NDR_PULL_ALLOC(ndr, r->in.sec_attrib);
2950 r->in.sec_attrib = NULL;
2952 if (r->in.sec_attrib) {
2953 _mem_save_sec_attrib_0 = NDR_PULL_GET_MEM_CTX(ndr);
2954 NDR_PULL_SET_MEM_CTX(ndr, r->in.sec_attrib, 0);
2955 NDR_CHECK(ndr_pull_KeySecurityAttribute(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sec_attrib));
2956 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sec_attrib_0, 0);
2959 if (flags & NDR_OUT) {
2960 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
2962 return NDR_ERR_SUCCESS;
2965 _PUBLIC_ void ndr_print_winreg_SaveKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_SaveKey *r)
2967 ndr_print_struct(ndr, name, "winreg_SaveKey");
2969 if (flags & NDR_SET_VALUES) {
2970 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2972 if (flags & NDR_IN) {
2973 ndr_print_struct(ndr, "in", "winreg_SaveKey");
2975 ndr_print_ptr(ndr, "handle", r->in.handle);
2977 ndr_print_policy_handle(ndr, "handle", r->in.handle);
2979 ndr_print_ptr(ndr, "filename", r->in.filename);
2981 ndr_print_winreg_String(ndr, "filename", r->in.filename);
2983 ndr_print_ptr(ndr, "sec_attrib", r->in.sec_attrib);
2985 if (r->in.sec_attrib) {
2986 ndr_print_KeySecurityAttribute(ndr, "sec_attrib", r->in.sec_attrib);
2991 if (flags & NDR_OUT) {
2992 ndr_print_struct(ndr, "out", "winreg_SaveKey");
2994 ndr_print_WERROR(ndr, "result", r->out.result);
3000 static enum ndr_err_code ndr_push_winreg_SetKeySecurity(struct ndr_push *ndr, int flags, const struct winreg_SetKeySecurity *r)
3002 if (flags & NDR_IN) {
3003 if (r->in.handle == NULL) {
3004 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
3006 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
3007 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
3008 if (r->in.sd == NULL) {
3009 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
3011 NDR_CHECK(ndr_push_KeySecurityData(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sd));
3013 if (flags & NDR_OUT) {
3014 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3016 return NDR_ERR_SUCCESS;
3019 static enum ndr_err_code ndr_pull_winreg_SetKeySecurity(struct ndr_pull *ndr, int flags, struct winreg_SetKeySecurity *r)
3021 TALLOC_CTX *_mem_save_handle_0;
3022 TALLOC_CTX *_mem_save_sd_0;
3023 if (flags & NDR_IN) {
3024 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3025 NDR_PULL_ALLOC(ndr, r->in.handle);
3027 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
3028 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
3029 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
3030 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
3031 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
3032 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3033 NDR_PULL_ALLOC(ndr, r->in.sd);
3035 _mem_save_sd_0 = NDR_PULL_GET_MEM_CTX(ndr);
3036 NDR_PULL_SET_MEM_CTX(ndr, r->in.sd, LIBNDR_FLAG_REF_ALLOC);
3037 NDR_CHECK(ndr_pull_KeySecurityData(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sd));
3038 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sd_0, LIBNDR_FLAG_REF_ALLOC);
3040 if (flags & NDR_OUT) {
3041 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3043 return NDR_ERR_SUCCESS;
3046 _PUBLIC_ void ndr_print_winreg_SetKeySecurity(struct ndr_print *ndr, const char *name, int flags, const struct winreg_SetKeySecurity *r)
3048 ndr_print_struct(ndr, name, "winreg_SetKeySecurity");
3050 if (flags & NDR_SET_VALUES) {
3051 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3053 if (flags & NDR_IN) {
3054 ndr_print_struct(ndr, "in", "winreg_SetKeySecurity");
3056 ndr_print_ptr(ndr, "handle", r->in.handle);
3058 ndr_print_policy_handle(ndr, "handle", r->in.handle);
3060 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
3061 ndr_print_ptr(ndr, "sd", r->in.sd);
3063 ndr_print_KeySecurityData(ndr, "sd", r->in.sd);
3067 if (flags & NDR_OUT) {
3068 ndr_print_struct(ndr, "out", "winreg_SetKeySecurity");
3070 ndr_print_WERROR(ndr, "result", r->out.result);
3076 static enum ndr_err_code ndr_push_winreg_SetValue(struct ndr_push *ndr, int flags, const struct winreg_SetValue *r)
3078 if (flags & NDR_IN) {
3079 if (r->in.handle == NULL) {
3080 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
3082 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
3083 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.name));
3084 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
3085 if (r->in.data == NULL) {
3086 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
3088 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.size));
3089 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.data, r->in.size));
3090 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.size));
3092 if (flags & NDR_OUT) {
3093 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3095 return NDR_ERR_SUCCESS;
3098 static enum ndr_err_code ndr_pull_winreg_SetValue(struct ndr_pull *ndr, int flags, struct winreg_SetValue *r)
3100 TALLOC_CTX *_mem_save_handle_0;
3101 if (flags & NDR_IN) {
3102 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3103 NDR_PULL_ALLOC(ndr, r->in.handle);
3105 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
3106 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
3107 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
3108 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
3109 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.name));
3110 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
3111 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.data));
3112 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3113 NDR_PULL_ALLOC_N(ndr, r->in.data, ndr_get_array_size(ndr, &r->in.data));
3115 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.data, ndr_get_array_size(ndr, &r->in.data)));
3116 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.size));
3118 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.data, r->in.size));
3121 if (flags & NDR_OUT) {
3122 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3124 return NDR_ERR_SUCCESS;
3127 _PUBLIC_ void ndr_print_winreg_SetValue(struct ndr_print *ndr, const char *name, int flags, const struct winreg_SetValue *r)
3129 ndr_print_struct(ndr, name, "winreg_SetValue");
3131 if (flags & NDR_SET_VALUES) {
3132 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3134 if (flags & NDR_IN) {
3135 ndr_print_struct(ndr, "in", "winreg_SetValue");
3137 ndr_print_ptr(ndr, "handle", r->in.handle);
3139 ndr_print_policy_handle(ndr, "handle", r->in.handle);
3141 ndr_print_winreg_String(ndr, "name", &r->in.name);
3142 ndr_print_winreg_Type(ndr, "type", r->in.type);
3143 ndr_print_ptr(ndr, "data", r->in.data);
3145 ndr_print_array_uint8(ndr, "data", r->in.data, r->in.size);
3147 ndr_print_uint32(ndr, "size", r->in.size);
3150 if (flags & NDR_OUT) {
3151 ndr_print_struct(ndr, "out", "winreg_SetValue");
3153 ndr_print_WERROR(ndr, "result", r->out.result);
3159 static enum ndr_err_code ndr_push_winreg_UnLoadKey(struct ndr_push *ndr, int flags, const struct winreg_UnLoadKey *r)
3161 if (flags & NDR_IN) {
3163 if (flags & NDR_OUT) {
3164 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3166 return NDR_ERR_SUCCESS;
3169 static enum ndr_err_code ndr_pull_winreg_UnLoadKey(struct ndr_pull *ndr, int flags, struct winreg_UnLoadKey *r)
3171 if (flags & NDR_IN) {
3173 if (flags & NDR_OUT) {
3174 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3176 return NDR_ERR_SUCCESS;
3179 _PUBLIC_ void ndr_print_winreg_UnLoadKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_UnLoadKey *r)
3181 ndr_print_struct(ndr, name, "winreg_UnLoadKey");
3183 if (flags & NDR_SET_VALUES) {
3184 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3186 if (flags & NDR_IN) {
3187 ndr_print_struct(ndr, "in", "winreg_UnLoadKey");
3191 if (flags & NDR_OUT) {
3192 ndr_print_struct(ndr, "out", "winreg_UnLoadKey");
3194 ndr_print_WERROR(ndr, "result", r->out.result);
3200 static enum ndr_err_code ndr_push_winreg_InitiateSystemShutdown(struct ndr_push *ndr, int flags, const struct winreg_InitiateSystemShutdown *r)
3202 if (flags & NDR_IN) {
3203 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.hostname));
3204 if (r->in.hostname) {
3205 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.hostname));
3207 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.message));
3208 if (r->in.message) {
3209 NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.message));
3211 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.timeout));
3212 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->in.force_apps));
3213 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->in.reboot));
3215 if (flags & NDR_OUT) {
3216 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3218 return NDR_ERR_SUCCESS;
3221 static enum ndr_err_code ndr_pull_winreg_InitiateSystemShutdown(struct ndr_pull *ndr, int flags, struct winreg_InitiateSystemShutdown *r)
3223 uint32_t _ptr_hostname;
3224 uint32_t _ptr_message;
3225 TALLOC_CTX *_mem_save_hostname_0;
3226 TALLOC_CTX *_mem_save_message_0;
3227 if (flags & NDR_IN) {
3228 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hostname));
3229 if (_ptr_hostname) {
3230 NDR_PULL_ALLOC(ndr, r->in.hostname);
3232 r->in.hostname = NULL;
3234 if (r->in.hostname) {
3235 _mem_save_hostname_0 = NDR_PULL_GET_MEM_CTX(ndr);
3236 NDR_PULL_SET_MEM_CTX(ndr, r->in.hostname, 0);
3237 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.hostname));
3238 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hostname_0, 0);
3240 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_message));
3242 NDR_PULL_ALLOC(ndr, r->in.message);
3244 r->in.message = NULL;
3246 if (r->in.message) {
3247 _mem_save_message_0 = NDR_PULL_GET_MEM_CTX(ndr);
3248 NDR_PULL_SET_MEM_CTX(ndr, r->in.message, 0);
3249 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.message));
3250 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_message_0, 0);
3252 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.timeout));
3253 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->in.force_apps));
3254 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->in.reboot));
3256 if (flags & NDR_OUT) {
3257 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3259 return NDR_ERR_SUCCESS;
3262 _PUBLIC_ void ndr_print_winreg_InitiateSystemShutdown(struct ndr_print *ndr, const char *name, int flags, const struct winreg_InitiateSystemShutdown *r)
3264 ndr_print_struct(ndr, name, "winreg_InitiateSystemShutdown");
3266 if (flags & NDR_SET_VALUES) {
3267 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3269 if (flags & NDR_IN) {
3270 ndr_print_struct(ndr, "in", "winreg_InitiateSystemShutdown");
3272 ndr_print_ptr(ndr, "hostname", r->in.hostname);
3274 if (r->in.hostname) {
3275 ndr_print_uint16(ndr, "hostname", *r->in.hostname);
3278 ndr_print_ptr(ndr, "message", r->in.message);
3280 if (r->in.message) {
3281 ndr_print_lsa_StringLarge(ndr, "message", r->in.message);
3284 ndr_print_uint32(ndr, "timeout", r->in.timeout);
3285 ndr_print_uint8(ndr, "force_apps", r->in.force_apps);
3286 ndr_print_uint8(ndr, "reboot", r->in.reboot);
3289 if (flags & NDR_OUT) {
3290 ndr_print_struct(ndr, "out", "winreg_InitiateSystemShutdown");
3292 ndr_print_WERROR(ndr, "result", r->out.result);
3298 static enum ndr_err_code ndr_push_winreg_AbortSystemShutdown(struct ndr_push *ndr, int flags, const struct winreg_AbortSystemShutdown *r)
3300 if (flags & NDR_IN) {
3301 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
3303 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.server));
3306 if (flags & NDR_OUT) {
3307 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3309 return NDR_ERR_SUCCESS;
3312 static enum ndr_err_code ndr_pull_winreg_AbortSystemShutdown(struct ndr_pull *ndr, int flags, struct winreg_AbortSystemShutdown *r)
3314 uint32_t _ptr_server;
3315 TALLOC_CTX *_mem_save_server_0;
3316 if (flags & NDR_IN) {
3317 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
3319 NDR_PULL_ALLOC(ndr, r->in.server);
3321 r->in.server = NULL;
3324 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
3325 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
3326 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.server));
3327 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
3330 if (flags & NDR_OUT) {
3331 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3333 return NDR_ERR_SUCCESS;
3336 _PUBLIC_ void ndr_print_winreg_AbortSystemShutdown(struct ndr_print *ndr, const char *name, int flags, const struct winreg_AbortSystemShutdown *r)
3338 ndr_print_struct(ndr, name, "winreg_AbortSystemShutdown");
3340 if (flags & NDR_SET_VALUES) {
3341 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3343 if (flags & NDR_IN) {
3344 ndr_print_struct(ndr, "in", "winreg_AbortSystemShutdown");
3346 ndr_print_ptr(ndr, "server", r->in.server);
3349 ndr_print_uint16(ndr, "server", *r->in.server);
3354 if (flags & NDR_OUT) {
3355 ndr_print_struct(ndr, "out", "winreg_AbortSystemShutdown");
3357 ndr_print_WERROR(ndr, "result", r->out.result);
3363 _PUBLIC_ enum ndr_err_code ndr_push_winreg_GetVersion(struct ndr_push *ndr, int flags, const struct winreg_GetVersion *r)
3365 if (flags & NDR_IN) {
3366 if (r->in.handle == NULL) {
3367 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
3369 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
3371 if (flags & NDR_OUT) {
3372 if (r->out.version == NULL) {
3373 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
3375 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.version));
3376 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3378 return NDR_ERR_SUCCESS;
3381 _PUBLIC_ enum ndr_err_code ndr_pull_winreg_GetVersion(struct ndr_pull *ndr, int flags, struct winreg_GetVersion *r)
3383 TALLOC_CTX *_mem_save_handle_0;
3384 TALLOC_CTX *_mem_save_version_0;
3385 if (flags & NDR_IN) {
3386 ZERO_STRUCT(r->out);
3388 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3389 NDR_PULL_ALLOC(ndr, r->in.handle);
3391 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
3392 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
3393 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
3394 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
3395 NDR_PULL_ALLOC(ndr, r->out.version);
3396 ZERO_STRUCTP(r->out.version);
3398 if (flags & NDR_OUT) {
3399 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3400 NDR_PULL_ALLOC(ndr, r->out.version);
3402 _mem_save_version_0 = NDR_PULL_GET_MEM_CTX(ndr);
3403 NDR_PULL_SET_MEM_CTX(ndr, r->out.version, LIBNDR_FLAG_REF_ALLOC);
3404 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.version));
3405 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_version_0, LIBNDR_FLAG_REF_ALLOC);
3406 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3408 return NDR_ERR_SUCCESS;
3411 _PUBLIC_ void ndr_print_winreg_GetVersion(struct ndr_print *ndr, const char *name, int flags, const struct winreg_GetVersion *r)
3413 ndr_print_struct(ndr, name, "winreg_GetVersion");
3415 if (flags & NDR_SET_VALUES) {
3416 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3418 if (flags & NDR_IN) {
3419 ndr_print_struct(ndr, "in", "winreg_GetVersion");
3421 ndr_print_ptr(ndr, "handle", r->in.handle);
3423 ndr_print_policy_handle(ndr, "handle", r->in.handle);
3427 if (flags & NDR_OUT) {
3428 ndr_print_struct(ndr, "out", "winreg_GetVersion");
3430 ndr_print_ptr(ndr, "version", r->out.version);
3432 ndr_print_uint32(ndr, "version", *r->out.version);
3434 ndr_print_WERROR(ndr, "result", r->out.result);
3440 static enum ndr_err_code ndr_push_winreg_OpenHKCC(struct ndr_push *ndr, int flags, const struct winreg_OpenHKCC *r)
3442 if (flags & NDR_IN) {
3443 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.system_name));
3444 if (r->in.system_name) {
3445 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.system_name));
3447 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
3449 if (flags & NDR_OUT) {
3450 if (r->out.handle == NULL) {
3451 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
3453 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
3454 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3456 return NDR_ERR_SUCCESS;
3459 static enum ndr_err_code ndr_pull_winreg_OpenHKCC(struct ndr_pull *ndr, int flags, struct winreg_OpenHKCC *r)
3461 uint32_t _ptr_system_name;
3462 TALLOC_CTX *_mem_save_system_name_0;
3463 TALLOC_CTX *_mem_save_handle_0;
3464 if (flags & NDR_IN) {
3465 ZERO_STRUCT(r->out);
3467 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_system_name));
3468 if (_ptr_system_name) {
3469 NDR_PULL_ALLOC(ndr, r->in.system_name);
3471 r->in.system_name = NULL;
3473 if (r->in.system_name) {
3474 _mem_save_system_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3475 NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0);
3476 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.system_name));
3477 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0);
3479 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
3480 NDR_PULL_ALLOC(ndr, r->out.handle);
3481 ZERO_STRUCTP(r->out.handle);
3483 if (flags & NDR_OUT) {
3484 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3485 NDR_PULL_ALLOC(ndr, r->out.handle);
3487 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
3488 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
3489 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
3490 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
3491 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3493 return NDR_ERR_SUCCESS;
3496 _PUBLIC_ void ndr_print_winreg_OpenHKCC(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenHKCC *r)
3498 ndr_print_struct(ndr, name, "winreg_OpenHKCC");
3500 if (flags & NDR_SET_VALUES) {
3501 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3503 if (flags & NDR_IN) {
3504 ndr_print_struct(ndr, "in", "winreg_OpenHKCC");
3506 ndr_print_ptr(ndr, "system_name", r->in.system_name);
3508 if (r->in.system_name) {
3509 ndr_print_uint16(ndr, "system_name", *r->in.system_name);
3512 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
3515 if (flags & NDR_OUT) {
3516 ndr_print_struct(ndr, "out", "winreg_OpenHKCC");
3518 ndr_print_ptr(ndr, "handle", r->out.handle);
3520 ndr_print_policy_handle(ndr, "handle", r->out.handle);
3522 ndr_print_WERROR(ndr, "result", r->out.result);
3528 static enum ndr_err_code ndr_push_winreg_OpenHKDD(struct ndr_push *ndr, int flags, const struct winreg_OpenHKDD *r)
3530 if (flags & NDR_IN) {
3531 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.system_name));
3532 if (r->in.system_name) {
3533 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.system_name));
3535 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
3537 if (flags & NDR_OUT) {
3538 if (r->out.handle == NULL) {
3539 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
3541 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
3542 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3544 return NDR_ERR_SUCCESS;
3547 static enum ndr_err_code ndr_pull_winreg_OpenHKDD(struct ndr_pull *ndr, int flags, struct winreg_OpenHKDD *r)
3549 uint32_t _ptr_system_name;
3550 TALLOC_CTX *_mem_save_system_name_0;
3551 TALLOC_CTX *_mem_save_handle_0;
3552 if (flags & NDR_IN) {
3553 ZERO_STRUCT(r->out);
3555 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_system_name));
3556 if (_ptr_system_name) {
3557 NDR_PULL_ALLOC(ndr, r->in.system_name);
3559 r->in.system_name = NULL;
3561 if (r->in.system_name) {
3562 _mem_save_system_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3563 NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0);
3564 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.system_name));
3565 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0);
3567 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
3568 NDR_PULL_ALLOC(ndr, r->out.handle);
3569 ZERO_STRUCTP(r->out.handle);
3571 if (flags & NDR_OUT) {
3572 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3573 NDR_PULL_ALLOC(ndr, r->out.handle);
3575 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
3576 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
3577 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
3578 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
3579 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3581 return NDR_ERR_SUCCESS;
3584 _PUBLIC_ void ndr_print_winreg_OpenHKDD(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenHKDD *r)
3586 ndr_print_struct(ndr, name, "winreg_OpenHKDD");
3588 if (flags & NDR_SET_VALUES) {
3589 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3591 if (flags & NDR_IN) {
3592 ndr_print_struct(ndr, "in", "winreg_OpenHKDD");
3594 ndr_print_ptr(ndr, "system_name", r->in.system_name);
3596 if (r->in.system_name) {
3597 ndr_print_uint16(ndr, "system_name", *r->in.system_name);
3600 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
3603 if (flags & NDR_OUT) {
3604 ndr_print_struct(ndr, "out", "winreg_OpenHKDD");
3606 ndr_print_ptr(ndr, "handle", r->out.handle);
3608 ndr_print_policy_handle(ndr, "handle", r->out.handle);
3610 ndr_print_WERROR(ndr, "result", r->out.result);
3616 _PUBLIC_ enum ndr_err_code ndr_push_winreg_QueryMultipleValues(struct ndr_push *ndr, int flags, const struct winreg_QueryMultipleValues *r)
3618 uint32_t cntr_values_1;
3619 if (flags & NDR_IN) {
3620 if (r->in.key_handle == NULL) {
3621 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
3623 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.key_handle));
3624 if (r->in.values == NULL) {
3625 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
3627 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.num_values));
3628 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3629 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.num_values));
3630 for (cntr_values_1 = 0; cntr_values_1 < r->in.num_values; cntr_values_1++) {
3631 NDR_CHECK(ndr_push_QueryMultipleValue(ndr, NDR_SCALARS, &r->in.values[cntr_values_1]));
3633 for (cntr_values_1 = 0; cntr_values_1 < r->in.num_values; cntr_values_1++) {
3634 NDR_CHECK(ndr_push_QueryMultipleValue(ndr, NDR_BUFFERS, &r->in.values[cntr_values_1]));
3636 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.num_values));
3637 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
3639 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.buffer_size));
3640 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3641 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.buffer_size));
3642 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, *r->in.buffer_size));
3644 if (r->in.buffer_size == NULL) {
3645 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
3647 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.buffer_size));
3649 if (flags & NDR_OUT) {
3650 if (r->out.values == NULL) {
3651 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
3653 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.num_values));
3654 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3655 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.num_values));
3656 for (cntr_values_1 = 0; cntr_values_1 < r->in.num_values; cntr_values_1++) {
3657 NDR_CHECK(ndr_push_QueryMultipleValue(ndr, NDR_SCALARS, &r->out.values[cntr_values_1]));
3659 for (cntr_values_1 = 0; cntr_values_1 < r->in.num_values; cntr_values_1++) {
3660 NDR_CHECK(ndr_push_QueryMultipleValue(ndr, NDR_BUFFERS, &r->out.values[cntr_values_1]));
3662 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.buffer));
3663 if (r->out.buffer) {
3664 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.buffer_size));
3665 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3666 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.buffer_size));
3667 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, *r->out.buffer_size));
3669 if (r->out.buffer_size == NULL) {
3670 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
3672 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.buffer_size));
3673 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3675 return NDR_ERR_SUCCESS;
3678 _PUBLIC_ enum ndr_err_code ndr_pull_winreg_QueryMultipleValues(struct ndr_pull *ndr, int flags, struct winreg_QueryMultipleValues *r)
3680 uint32_t cntr_values_1;
3681 uint32_t _ptr_buffer;
3682 TALLOC_CTX *_mem_save_key_handle_0;
3683 TALLOC_CTX *_mem_save_values_1;
3684 TALLOC_CTX *_mem_save_buffer_0;
3685 TALLOC_CTX *_mem_save_buffer_size_0;
3686 if (flags & NDR_IN) {
3687 ZERO_STRUCT(r->out);
3689 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3690 NDR_PULL_ALLOC(ndr, r->in.key_handle);
3692 _mem_save_key_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
3693 NDR_PULL_SET_MEM_CTX(ndr, r->in.key_handle, LIBNDR_FLAG_REF_ALLOC);
3694 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.key_handle));
3695 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_key_handle_0, LIBNDR_FLAG_REF_ALLOC);
3696 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.values));
3697 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.values));
3698 if (ndr_get_array_length(ndr, &r->in.values) > ndr_get_array_size(ndr, &r->in.values)) {
3699 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));
3701 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3702 NDR_PULL_ALLOC_N(ndr, r->in.values, ndr_get_array_size(ndr, &r->in.values));
3704 memcpy(r->out.values, r->in.values, ndr_get_array_size(ndr, &r->in.values) * sizeof(*r->in.values));
3705 _mem_save_values_1 = NDR_PULL_GET_MEM_CTX(ndr);
3706 NDR_PULL_SET_MEM_CTX(ndr, r->in.values, 0);
3707 for (cntr_values_1 = 0; cntr_values_1 < r->in.num_values; cntr_values_1++) {
3708 NDR_CHECK(ndr_pull_QueryMultipleValue(ndr, NDR_SCALARS, &r->in.values[cntr_values_1]));
3710 for (cntr_values_1 = 0; cntr_values_1 < r->in.num_values; cntr_values_1++) {
3711 NDR_CHECK(ndr_pull_QueryMultipleValue(ndr, NDR_BUFFERS, &r->in.values[cntr_values_1]));
3713 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_values_1, 0);
3714 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.num_values));
3715 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
3717 NDR_PULL_ALLOC(ndr, r->in.buffer);
3719 r->in.buffer = NULL;
3722 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
3723 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
3724 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
3725 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.buffer));
3726 if (ndr_get_array_length(ndr, &r->in.buffer) > ndr_get_array_size(ndr, &r->in.buffer)) {
3727 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));
3729 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
3730 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_length(ndr, &r->in.buffer)));
3731 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
3733 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3734 NDR_PULL_ALLOC(ndr, r->in.buffer_size);
3736 _mem_save_buffer_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
3737 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer_size, LIBNDR_FLAG_REF_ALLOC);
3738 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.buffer_size));
3739 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_size_0, LIBNDR_FLAG_REF_ALLOC);
3740 NDR_PULL_ALLOC_N(ndr, r->out.values, r->in.num_values);
3741 memcpy(r->out.values, r->in.values, (r->in.num_values) * sizeof(*r->in.values));
3742 NDR_PULL_ALLOC(ndr, r->out.buffer_size);
3743 *r->out.buffer_size = *r->in.buffer_size;
3745 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.values, r->in.num_values));
3748 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->in.values, r->in.num_values));
3751 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, *r->in.buffer_size));
3754 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->in.buffer, *r->in.buffer_size));
3757 if (flags & NDR_OUT) {
3758 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.values));
3759 NDR_CHECK(ndr_pull_array_length(ndr, &r->out.values));
3760 if (ndr_get_array_length(ndr, &r->out.values) > ndr_get_array_size(ndr, &r->out.values)) {
3761 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));
3763 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3764 NDR_PULL_ALLOC_N(ndr, r->out.values, ndr_get_array_size(ndr, &r->out.values));
3766 memcpy(r->out.values, r->in.values, ndr_get_array_size(ndr, &r->out.values) * sizeof(*r->in.values));
3767 _mem_save_values_1 = NDR_PULL_GET_MEM_CTX(ndr);
3768 NDR_PULL_SET_MEM_CTX(ndr, r->out.values, 0);
3769 for (cntr_values_1 = 0; cntr_values_1 < r->in.num_values; cntr_values_1++) {
3770 NDR_CHECK(ndr_pull_QueryMultipleValue(ndr, NDR_SCALARS, &r->out.values[cntr_values_1]));
3772 for (cntr_values_1 = 0; cntr_values_1 < r->in.num_values; cntr_values_1++) {
3773 NDR_CHECK(ndr_pull_QueryMultipleValue(ndr, NDR_BUFFERS, &r->out.values[cntr_values_1]));
3775 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_values_1, 0);
3776 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
3778 NDR_PULL_ALLOC(ndr, r->out.buffer);
3780 r->out.buffer = NULL;
3782 if (r->out.buffer) {
3783 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
3784 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, 0);
3785 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
3786 NDR_CHECK(ndr_pull_array_length(ndr, &r->out.buffer));
3787 if (ndr_get_array_length(ndr, &r->out.buffer) > ndr_get_array_size(ndr, &r->out.buffer)) {
3788 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));
3790 NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
3791 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_length(ndr, &r->out.buffer)));
3792 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
3794 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3795 NDR_PULL_ALLOC(ndr, r->out.buffer_size);
3797 _mem_save_buffer_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
3798 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer_size, LIBNDR_FLAG_REF_ALLOC);
3799 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.buffer_size));
3800 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_size_0, LIBNDR_FLAG_REF_ALLOC);
3801 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3802 if (r->out.values) {
3803 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.values, r->in.num_values));
3805 if (r->out.values) {
3806 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->out.values, r->in.num_values));
3808 if (r->out.buffer) {
3809 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, *r->out.buffer_size));
3811 if (r->out.buffer) {
3812 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->out.buffer, *r->out.buffer_size));
3815 return NDR_ERR_SUCCESS;
3818 _PUBLIC_ void ndr_print_winreg_QueryMultipleValues(struct ndr_print *ndr, const char *name, int flags, const struct winreg_QueryMultipleValues *r)
3820 uint32_t cntr_values_1;
3821 ndr_print_struct(ndr, name, "winreg_QueryMultipleValues");
3823 if (flags & NDR_SET_VALUES) {
3824 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3826 if (flags & NDR_IN) {
3827 ndr_print_struct(ndr, "in", "winreg_QueryMultipleValues");
3829 ndr_print_ptr(ndr, "key_handle", r->in.key_handle);
3831 ndr_print_policy_handle(ndr, "key_handle", r->in.key_handle);
3833 ndr_print_ptr(ndr, "values", r->in.values);
3835 ndr->print(ndr, "%s: ARRAY(%d)", "values", (int)r->in.num_values);
3837 for (cntr_values_1=0;cntr_values_1<r->in.num_values;cntr_values_1++) {
3839 if (asprintf(&idx_1, "[%d]", cntr_values_1) != -1) {
3840 ndr_print_QueryMultipleValue(ndr, "values", &r->in.values[cntr_values_1]);
3846 ndr_print_uint32(ndr, "num_values", r->in.num_values);
3847 ndr_print_ptr(ndr, "buffer", r->in.buffer);
3850 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, *r->in.buffer_size);
3853 ndr_print_ptr(ndr, "buffer_size", r->in.buffer_size);
3855 ndr_print_uint32(ndr, "buffer_size", *r->in.buffer_size);
3859 if (flags & NDR_OUT) {
3860 ndr_print_struct(ndr, "out", "winreg_QueryMultipleValues");
3862 ndr_print_ptr(ndr, "values", r->out.values);
3864 ndr->print(ndr, "%s: ARRAY(%d)", "values", (int)r->in.num_values);
3866 for (cntr_values_1=0;cntr_values_1<r->in.num_values;cntr_values_1++) {
3868 if (asprintf(&idx_1, "[%d]", cntr_values_1) != -1) {
3869 ndr_print_QueryMultipleValue(ndr, "values", &r->out.values[cntr_values_1]);
3875 ndr_print_ptr(ndr, "buffer", r->out.buffer);
3877 if (r->out.buffer) {
3878 ndr_print_array_uint8(ndr, "buffer", r->out.buffer, *r->out.buffer_size);
3881 ndr_print_ptr(ndr, "buffer_size", r->out.buffer_size);
3883 ndr_print_uint32(ndr, "buffer_size", *r->out.buffer_size);
3885 ndr_print_WERROR(ndr, "result", r->out.result);
3891 static enum ndr_err_code ndr_push_winreg_InitiateSystemShutdownEx(struct ndr_push *ndr, int flags, const struct winreg_InitiateSystemShutdownEx *r)
3893 if (flags & NDR_IN) {
3894 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.hostname));
3895 if (r->in.hostname) {
3896 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.hostname));
3898 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.message));
3899 if (r->in.message) {
3900 NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.message));
3902 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.timeout));
3903 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->in.force_apps));
3904 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->in.reboot));
3905 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.reason));
3907 if (flags & NDR_OUT) {
3908 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3910 return NDR_ERR_SUCCESS;
3913 static enum ndr_err_code ndr_pull_winreg_InitiateSystemShutdownEx(struct ndr_pull *ndr, int flags, struct winreg_InitiateSystemShutdownEx *r)
3915 uint32_t _ptr_hostname;
3916 uint32_t _ptr_message;
3917 TALLOC_CTX *_mem_save_hostname_0;
3918 TALLOC_CTX *_mem_save_message_0;
3919 if (flags & NDR_IN) {
3920 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hostname));
3921 if (_ptr_hostname) {
3922 NDR_PULL_ALLOC(ndr, r->in.hostname);
3924 r->in.hostname = NULL;
3926 if (r->in.hostname) {
3927 _mem_save_hostname_0 = NDR_PULL_GET_MEM_CTX(ndr);
3928 NDR_PULL_SET_MEM_CTX(ndr, r->in.hostname, 0);
3929 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.hostname));
3930 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hostname_0, 0);
3932 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_message));
3934 NDR_PULL_ALLOC(ndr, r->in.message);
3936 r->in.message = NULL;
3938 if (r->in.message) {
3939 _mem_save_message_0 = NDR_PULL_GET_MEM_CTX(ndr);
3940 NDR_PULL_SET_MEM_CTX(ndr, r->in.message, 0);
3941 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.message));
3942 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_message_0, 0);
3944 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.timeout));
3945 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->in.force_apps));
3946 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->in.reboot));
3947 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.reason));
3949 if (flags & NDR_OUT) {
3950 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3952 return NDR_ERR_SUCCESS;
3955 _PUBLIC_ void ndr_print_winreg_InitiateSystemShutdownEx(struct ndr_print *ndr, const char *name, int flags, const struct winreg_InitiateSystemShutdownEx *r)
3957 ndr_print_struct(ndr, name, "winreg_InitiateSystemShutdownEx");
3959 if (flags & NDR_SET_VALUES) {
3960 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3962 if (flags & NDR_IN) {
3963 ndr_print_struct(ndr, "in", "winreg_InitiateSystemShutdownEx");
3965 ndr_print_ptr(ndr, "hostname", r->in.hostname);
3967 if (r->in.hostname) {
3968 ndr_print_uint16(ndr, "hostname", *r->in.hostname);
3971 ndr_print_ptr(ndr, "message", r->in.message);
3973 if (r->in.message) {
3974 ndr_print_lsa_StringLarge(ndr, "message", r->in.message);
3977 ndr_print_uint32(ndr, "timeout", r->in.timeout);
3978 ndr_print_uint8(ndr, "force_apps", r->in.force_apps);
3979 ndr_print_uint8(ndr, "reboot", r->in.reboot);
3980 ndr_print_uint32(ndr, "reason", r->in.reason);
3983 if (flags & NDR_OUT) {
3984 ndr_print_struct(ndr, "out", "winreg_InitiateSystemShutdownEx");
3986 ndr_print_WERROR(ndr, "result", r->out.result);
3992 static enum ndr_err_code ndr_push_winreg_SaveKeyEx(struct ndr_push *ndr, int flags, const struct winreg_SaveKeyEx *r)
3994 if (flags & NDR_IN) {
3996 if (flags & NDR_OUT) {
3997 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3999 return NDR_ERR_SUCCESS;
4002 static enum ndr_err_code ndr_pull_winreg_SaveKeyEx(struct ndr_pull *ndr, int flags, struct winreg_SaveKeyEx *r)
4004 if (flags & NDR_IN) {
4006 if (flags & NDR_OUT) {
4007 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
4009 return NDR_ERR_SUCCESS;
4012 _PUBLIC_ void ndr_print_winreg_SaveKeyEx(struct ndr_print *ndr, const char *name, int flags, const struct winreg_SaveKeyEx *r)
4014 ndr_print_struct(ndr, name, "winreg_SaveKeyEx");
4016 if (flags & NDR_SET_VALUES) {
4017 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
4019 if (flags & NDR_IN) {
4020 ndr_print_struct(ndr, "in", "winreg_SaveKeyEx");
4024 if (flags & NDR_OUT) {
4025 ndr_print_struct(ndr, "out", "winreg_SaveKeyEx");
4027 ndr_print_WERROR(ndr, "result", r->out.result);
4033 static enum ndr_err_code ndr_push_winreg_OpenHKPT(struct ndr_push *ndr, int flags, const struct winreg_OpenHKPT *r)
4035 if (flags & NDR_IN) {
4036 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.system_name));
4037 if (r->in.system_name) {
4038 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.system_name));
4040 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
4042 if (flags & NDR_OUT) {
4043 if (r->out.handle == NULL) {
4044 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
4046 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
4047 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
4049 return NDR_ERR_SUCCESS;
4052 static enum ndr_err_code ndr_pull_winreg_OpenHKPT(struct ndr_pull *ndr, int flags, struct winreg_OpenHKPT *r)
4054 uint32_t _ptr_system_name;
4055 TALLOC_CTX *_mem_save_system_name_0;
4056 TALLOC_CTX *_mem_save_handle_0;
4057 if (flags & NDR_IN) {
4058 ZERO_STRUCT(r->out);
4060 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_system_name));
4061 if (_ptr_system_name) {
4062 NDR_PULL_ALLOC(ndr, r->in.system_name);
4064 r->in.system_name = NULL;
4066 if (r->in.system_name) {
4067 _mem_save_system_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4068 NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0);
4069 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.system_name));
4070 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0);
4072 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
4073 NDR_PULL_ALLOC(ndr, r->out.handle);
4074 ZERO_STRUCTP(r->out.handle);
4076 if (flags & NDR_OUT) {
4077 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
4078 NDR_PULL_ALLOC(ndr, r->out.handle);
4080 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
4081 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
4082 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
4083 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
4084 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
4086 return NDR_ERR_SUCCESS;
4089 _PUBLIC_ void ndr_print_winreg_OpenHKPT(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenHKPT *r)
4091 ndr_print_struct(ndr, name, "winreg_OpenHKPT");
4093 if (flags & NDR_SET_VALUES) {
4094 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
4096 if (flags & NDR_IN) {
4097 ndr_print_struct(ndr, "in", "winreg_OpenHKPT");
4099 ndr_print_ptr(ndr, "system_name", r->in.system_name);
4101 if (r->in.system_name) {
4102 ndr_print_uint16(ndr, "system_name", *r->in.system_name);
4105 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
4108 if (flags & NDR_OUT) {
4109 ndr_print_struct(ndr, "out", "winreg_OpenHKPT");
4111 ndr_print_ptr(ndr, "handle", r->out.handle);
4113 ndr_print_policy_handle(ndr, "handle", r->out.handle);
4115 ndr_print_WERROR(ndr, "result", r->out.result);
4121 static enum ndr_err_code ndr_push_winreg_OpenHKPN(struct ndr_push *ndr, int flags, const struct winreg_OpenHKPN *r)
4123 if (flags & NDR_IN) {
4124 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.system_name));
4125 if (r->in.system_name) {
4126 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.system_name));
4128 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
4130 if (flags & NDR_OUT) {
4131 if (r->out.handle == NULL) {
4132 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
4134 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
4135 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
4137 return NDR_ERR_SUCCESS;
4140 static enum ndr_err_code ndr_pull_winreg_OpenHKPN(struct ndr_pull *ndr, int flags, struct winreg_OpenHKPN *r)
4142 uint32_t _ptr_system_name;
4143 TALLOC_CTX *_mem_save_system_name_0;
4144 TALLOC_CTX *_mem_save_handle_0;
4145 if (flags & NDR_IN) {
4146 ZERO_STRUCT(r->out);
4148 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_system_name));
4149 if (_ptr_system_name) {
4150 NDR_PULL_ALLOC(ndr, r->in.system_name);
4152 r->in.system_name = NULL;
4154 if (r->in.system_name) {
4155 _mem_save_system_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4156 NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0);
4157 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.system_name));
4158 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0);
4160 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
4161 NDR_PULL_ALLOC(ndr, r->out.handle);
4162 ZERO_STRUCTP(r->out.handle);
4164 if (flags & NDR_OUT) {
4165 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
4166 NDR_PULL_ALLOC(ndr, r->out.handle);
4168 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
4169 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
4170 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
4171 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
4172 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
4174 return NDR_ERR_SUCCESS;
4177 _PUBLIC_ void ndr_print_winreg_OpenHKPN(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenHKPN *r)
4179 ndr_print_struct(ndr, name, "winreg_OpenHKPN");
4181 if (flags & NDR_SET_VALUES) {
4182 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
4184 if (flags & NDR_IN) {
4185 ndr_print_struct(ndr, "in", "winreg_OpenHKPN");
4187 ndr_print_ptr(ndr, "system_name", r->in.system_name);
4189 if (r->in.system_name) {
4190 ndr_print_uint16(ndr, "system_name", *r->in.system_name);
4193 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
4196 if (flags & NDR_OUT) {
4197 ndr_print_struct(ndr, "out", "winreg_OpenHKPN");
4199 ndr_print_ptr(ndr, "handle", r->out.handle);
4201 ndr_print_policy_handle(ndr, "handle", r->out.handle);
4203 ndr_print_WERROR(ndr, "result", r->out.result);
4209 static enum ndr_err_code ndr_push_winreg_QueryMultipleValues2(struct ndr_push *ndr, int flags, const struct winreg_QueryMultipleValues2 *r)
4211 if (flags & NDR_IN) {
4213 if (flags & NDR_OUT) {
4214 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
4216 return NDR_ERR_SUCCESS;
4219 static enum ndr_err_code ndr_pull_winreg_QueryMultipleValues2(struct ndr_pull *ndr, int flags, struct winreg_QueryMultipleValues2 *r)
4221 if (flags & NDR_IN) {
4223 if (flags & NDR_OUT) {
4224 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
4226 return NDR_ERR_SUCCESS;
4229 _PUBLIC_ void ndr_print_winreg_QueryMultipleValues2(struct ndr_print *ndr, const char *name, int flags, const struct winreg_QueryMultipleValues2 *r)
4231 ndr_print_struct(ndr, name, "winreg_QueryMultipleValues2");
4233 if (flags & NDR_SET_VALUES) {
4234 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
4236 if (flags & NDR_IN) {
4237 ndr_print_struct(ndr, "in", "winreg_QueryMultipleValues2");
4241 if (flags & NDR_OUT) {
4242 ndr_print_struct(ndr, "out", "winreg_QueryMultipleValues2");
4244 ndr_print_WERROR(ndr, "result", r->out.result);
4250 static const struct ndr_interface_call winreg_calls[] = {
4253 sizeof(struct winreg_OpenHKCR),
4254 (ndr_push_flags_fn_t) ndr_push_winreg_OpenHKCR,
4255 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenHKCR,
4256 (ndr_print_function_t) ndr_print_winreg_OpenHKCR,
4261 sizeof(struct winreg_OpenHKCU),
4262 (ndr_push_flags_fn_t) ndr_push_winreg_OpenHKCU,
4263 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenHKCU,
4264 (ndr_print_function_t) ndr_print_winreg_OpenHKCU,
4269 sizeof(struct winreg_OpenHKLM),
4270 (ndr_push_flags_fn_t) ndr_push_winreg_OpenHKLM,
4271 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenHKLM,
4272 (ndr_print_function_t) ndr_print_winreg_OpenHKLM,
4277 sizeof(struct winreg_OpenHKPD),
4278 (ndr_push_flags_fn_t) ndr_push_winreg_OpenHKPD,
4279 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenHKPD,
4280 (ndr_print_function_t) ndr_print_winreg_OpenHKPD,
4285 sizeof(struct winreg_OpenHKU),
4286 (ndr_push_flags_fn_t) ndr_push_winreg_OpenHKU,
4287 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenHKU,
4288 (ndr_print_function_t) ndr_print_winreg_OpenHKU,
4293 sizeof(struct winreg_CloseKey),
4294 (ndr_push_flags_fn_t) ndr_push_winreg_CloseKey,
4295 (ndr_pull_flags_fn_t) ndr_pull_winreg_CloseKey,
4296 (ndr_print_function_t) ndr_print_winreg_CloseKey,
4301 sizeof(struct winreg_CreateKey),
4302 (ndr_push_flags_fn_t) ndr_push_winreg_CreateKey,
4303 (ndr_pull_flags_fn_t) ndr_pull_winreg_CreateKey,
4304 (ndr_print_function_t) ndr_print_winreg_CreateKey,
4309 sizeof(struct winreg_DeleteKey),
4310 (ndr_push_flags_fn_t) ndr_push_winreg_DeleteKey,
4311 (ndr_pull_flags_fn_t) ndr_pull_winreg_DeleteKey,
4312 (ndr_print_function_t) ndr_print_winreg_DeleteKey,
4316 "winreg_DeleteValue",
4317 sizeof(struct winreg_DeleteValue),
4318 (ndr_push_flags_fn_t) ndr_push_winreg_DeleteValue,
4319 (ndr_pull_flags_fn_t) ndr_pull_winreg_DeleteValue,
4320 (ndr_print_function_t) ndr_print_winreg_DeleteValue,
4325 sizeof(struct winreg_EnumKey),
4326 (ndr_push_flags_fn_t) ndr_push_winreg_EnumKey,
4327 (ndr_pull_flags_fn_t) ndr_pull_winreg_EnumKey,
4328 (ndr_print_function_t) ndr_print_winreg_EnumKey,
4333 sizeof(struct winreg_EnumValue),
4334 (ndr_push_flags_fn_t) ndr_push_winreg_EnumValue,
4335 (ndr_pull_flags_fn_t) ndr_pull_winreg_EnumValue,
4336 (ndr_print_function_t) ndr_print_winreg_EnumValue,
4341 sizeof(struct winreg_FlushKey),
4342 (ndr_push_flags_fn_t) ndr_push_winreg_FlushKey,
4343 (ndr_pull_flags_fn_t) ndr_pull_winreg_FlushKey,
4344 (ndr_print_function_t) ndr_print_winreg_FlushKey,
4348 "winreg_GetKeySecurity",
4349 sizeof(struct winreg_GetKeySecurity),
4350 (ndr_push_flags_fn_t) ndr_push_winreg_GetKeySecurity,
4351 (ndr_pull_flags_fn_t) ndr_pull_winreg_GetKeySecurity,
4352 (ndr_print_function_t) ndr_print_winreg_GetKeySecurity,
4357 sizeof(struct winreg_LoadKey),
4358 (ndr_push_flags_fn_t) ndr_push_winreg_LoadKey,
4359 (ndr_pull_flags_fn_t) ndr_pull_winreg_LoadKey,
4360 (ndr_print_function_t) ndr_print_winreg_LoadKey,
4364 "winreg_NotifyChangeKeyValue",
4365 sizeof(struct winreg_NotifyChangeKeyValue),
4366 (ndr_push_flags_fn_t) ndr_push_winreg_NotifyChangeKeyValue,
4367 (ndr_pull_flags_fn_t) ndr_pull_winreg_NotifyChangeKeyValue,
4368 (ndr_print_function_t) ndr_print_winreg_NotifyChangeKeyValue,
4373 sizeof(struct winreg_OpenKey),
4374 (ndr_push_flags_fn_t) ndr_push_winreg_OpenKey,
4375 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenKey,
4376 (ndr_print_function_t) ndr_print_winreg_OpenKey,
4380 "winreg_QueryInfoKey",
4381 sizeof(struct winreg_QueryInfoKey),
4382 (ndr_push_flags_fn_t) ndr_push_winreg_QueryInfoKey,
4383 (ndr_pull_flags_fn_t) ndr_pull_winreg_QueryInfoKey,
4384 (ndr_print_function_t) ndr_print_winreg_QueryInfoKey,
4388 "winreg_QueryValue",
4389 sizeof(struct winreg_QueryValue),
4390 (ndr_push_flags_fn_t) ndr_push_winreg_QueryValue,
4391 (ndr_pull_flags_fn_t) ndr_pull_winreg_QueryValue,
4392 (ndr_print_function_t) ndr_print_winreg_QueryValue,
4396 "winreg_ReplaceKey",
4397 sizeof(struct winreg_ReplaceKey),
4398 (ndr_push_flags_fn_t) ndr_push_winreg_ReplaceKey,
4399 (ndr_pull_flags_fn_t) ndr_pull_winreg_ReplaceKey,
4400 (ndr_print_function_t) ndr_print_winreg_ReplaceKey,
4404 "winreg_RestoreKey",
4405 sizeof(struct winreg_RestoreKey),
4406 (ndr_push_flags_fn_t) ndr_push_winreg_RestoreKey,
4407 (ndr_pull_flags_fn_t) ndr_pull_winreg_RestoreKey,
4408 (ndr_print_function_t) ndr_print_winreg_RestoreKey,
4413 sizeof(struct winreg_SaveKey),
4414 (ndr_push_flags_fn_t) ndr_push_winreg_SaveKey,
4415 (ndr_pull_flags_fn_t) ndr_pull_winreg_SaveKey,
4416 (ndr_print_function_t) ndr_print_winreg_SaveKey,
4420 "winreg_SetKeySecurity",
4421 sizeof(struct winreg_SetKeySecurity),
4422 (ndr_push_flags_fn_t) ndr_push_winreg_SetKeySecurity,
4423 (ndr_pull_flags_fn_t) ndr_pull_winreg_SetKeySecurity,
4424 (ndr_print_function_t) ndr_print_winreg_SetKeySecurity,
4429 sizeof(struct winreg_SetValue),
4430 (ndr_push_flags_fn_t) ndr_push_winreg_SetValue,
4431 (ndr_pull_flags_fn_t) ndr_pull_winreg_SetValue,
4432 (ndr_print_function_t) ndr_print_winreg_SetValue,
4437 sizeof(struct winreg_UnLoadKey),
4438 (ndr_push_flags_fn_t) ndr_push_winreg_UnLoadKey,
4439 (ndr_pull_flags_fn_t) ndr_pull_winreg_UnLoadKey,
4440 (ndr_print_function_t) ndr_print_winreg_UnLoadKey,
4444 "winreg_InitiateSystemShutdown",
4445 sizeof(struct winreg_InitiateSystemShutdown),
4446 (ndr_push_flags_fn_t) ndr_push_winreg_InitiateSystemShutdown,
4447 (ndr_pull_flags_fn_t) ndr_pull_winreg_InitiateSystemShutdown,
4448 (ndr_print_function_t) ndr_print_winreg_InitiateSystemShutdown,
4452 "winreg_AbortSystemShutdown",
4453 sizeof(struct winreg_AbortSystemShutdown),
4454 (ndr_push_flags_fn_t) ndr_push_winreg_AbortSystemShutdown,
4455 (ndr_pull_flags_fn_t) ndr_pull_winreg_AbortSystemShutdown,
4456 (ndr_print_function_t) ndr_print_winreg_AbortSystemShutdown,
4460 "winreg_GetVersion",
4461 sizeof(struct winreg_GetVersion),
4462 (ndr_push_flags_fn_t) ndr_push_winreg_GetVersion,
4463 (ndr_pull_flags_fn_t) ndr_pull_winreg_GetVersion,
4464 (ndr_print_function_t) ndr_print_winreg_GetVersion,
4469 sizeof(struct winreg_OpenHKCC),
4470 (ndr_push_flags_fn_t) ndr_push_winreg_OpenHKCC,
4471 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenHKCC,
4472 (ndr_print_function_t) ndr_print_winreg_OpenHKCC,
4477 sizeof(struct winreg_OpenHKDD),
4478 (ndr_push_flags_fn_t) ndr_push_winreg_OpenHKDD,
4479 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenHKDD,
4480 (ndr_print_function_t) ndr_print_winreg_OpenHKDD,
4484 "winreg_QueryMultipleValues",
4485 sizeof(struct winreg_QueryMultipleValues),
4486 (ndr_push_flags_fn_t) ndr_push_winreg_QueryMultipleValues,
4487 (ndr_pull_flags_fn_t) ndr_pull_winreg_QueryMultipleValues,
4488 (ndr_print_function_t) ndr_print_winreg_QueryMultipleValues,
4492 "winreg_InitiateSystemShutdownEx",
4493 sizeof(struct winreg_InitiateSystemShutdownEx),
4494 (ndr_push_flags_fn_t) ndr_push_winreg_InitiateSystemShutdownEx,
4495 (ndr_pull_flags_fn_t) ndr_pull_winreg_InitiateSystemShutdownEx,
4496 (ndr_print_function_t) ndr_print_winreg_InitiateSystemShutdownEx,
4501 sizeof(struct winreg_SaveKeyEx),
4502 (ndr_push_flags_fn_t) ndr_push_winreg_SaveKeyEx,
4503 (ndr_pull_flags_fn_t) ndr_pull_winreg_SaveKeyEx,
4504 (ndr_print_function_t) ndr_print_winreg_SaveKeyEx,
4509 sizeof(struct winreg_OpenHKPT),
4510 (ndr_push_flags_fn_t) ndr_push_winreg_OpenHKPT,
4511 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenHKPT,
4512 (ndr_print_function_t) ndr_print_winreg_OpenHKPT,
4517 sizeof(struct winreg_OpenHKPN),
4518 (ndr_push_flags_fn_t) ndr_push_winreg_OpenHKPN,
4519 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenHKPN,
4520 (ndr_print_function_t) ndr_print_winreg_OpenHKPN,
4524 "winreg_QueryMultipleValues2",
4525 sizeof(struct winreg_QueryMultipleValues2),
4526 (ndr_push_flags_fn_t) ndr_push_winreg_QueryMultipleValues2,
4527 (ndr_pull_flags_fn_t) ndr_pull_winreg_QueryMultipleValues2,
4528 (ndr_print_function_t) ndr_print_winreg_QueryMultipleValues2,
4531 { NULL, 0, NULL, NULL, NULL, false }
4534 static const char * const winreg_endpoint_strings[] = {
4535 "ncacn_np:[\\pipe\\winreg]",
4540 static const struct ndr_interface_string_array winreg_endpoints = {
4542 .names = winreg_endpoint_strings
4545 static const char * const winreg_authservice_strings[] = {
4549 static const struct ndr_interface_string_array winreg_authservices = {
4551 .names = winreg_authservice_strings
4555 const struct ndr_interface_table ndr_table_winreg = {
4558 {0x338cd001,0x2244,0x31f1,{0xaa,0xaa},{0x90,0x00,0x38,0x00,0x10,0x03}},
4561 .helpstring = NDR_WINREG_HELPSTRING,
4563 .calls = winreg_calls,
4564 .endpoints = &winreg_endpoints,
4565 .authservices = &winreg_authservices