LDB:TDB backend - change counter variables to "unsigned" where appropriate
[Samba/cd1.git] / librpc / gen_ndr / ndr_winreg.c
blob6f432d37c5711b85d662efd3d3d6424055a0b5c6
1 /* parser auto-generated by pidl */
3 #include "includes.h"
4 #include "../librpc/gen_ndr/ndr_winreg.h"
6 #include "librpc/gen_ndr/ndr_lsa.h"
7 #include "librpc/gen_ndr/ndr_security.h"
8 #include "librpc/gen_ndr/ndr_misc.h"
9 static enum ndr_err_code ndr_push_winreg_AccessMask(struct ndr_push *ndr, int ndr_flags, uint32_t r)
11 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
12 return NDR_ERR_SUCCESS;
15 static enum ndr_err_code ndr_pull_winreg_AccessMask(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
17 uint32_t v;
18 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
19 *r = 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);
26 ndr->depth++;
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);
35 ndr->depth--;
38 _PUBLIC_ enum ndr_err_code ndr_push_winreg_String(struct ndr_push *ndr, int ndr_flags, const struct winreg_String *r)
40 if (ndr_flags & NDR_SCALARS) {
41 NDR_CHECK(ndr_push_align(ndr, 5));
42 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, strlen_m_term(r->name) * 2));
43 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, strlen_m_term(r->name) * 2));
44 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
45 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
47 if (ndr_flags & NDR_BUFFERS) {
48 if (r->name) {
49 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
50 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
51 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
52 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, ndr_charset_length(r->name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
55 return NDR_ERR_SUCCESS;
58 _PUBLIC_ enum ndr_err_code ndr_pull_winreg_String(struct ndr_pull *ndr, int ndr_flags, struct winreg_String *r)
60 uint32_t _ptr_name;
61 TALLOC_CTX *_mem_save_name_0;
62 if (ndr_flags & NDR_SCALARS) {
63 NDR_CHECK(ndr_pull_align(ndr, 5));
64 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->name_len));
65 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->name_size));
66 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
67 if (_ptr_name) {
68 NDR_PULL_ALLOC(ndr, r->name);
69 } else {
70 r->name = NULL;
72 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
74 if (ndr_flags & NDR_BUFFERS) {
75 if (r->name) {
76 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
77 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
78 NDR_CHECK(ndr_pull_array_size(ndr, &r->name));
79 NDR_CHECK(ndr_pull_array_length(ndr, &r->name));
80 if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) {
81 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->name), ndr_get_array_length(ndr, &r->name));
83 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t)));
84 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16));
85 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
88 return NDR_ERR_SUCCESS;
91 _PUBLIC_ void ndr_print_winreg_String(struct ndr_print *ndr, const char *name, const struct winreg_String *r)
93 ndr_print_struct(ndr, name, "winreg_String");
94 ndr->depth++;
95 ndr_print_uint16(ndr, "name_len", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?strlen_m_term(r->name) * 2:r->name_len);
96 ndr_print_uint16(ndr, "name_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?strlen_m_term(r->name) * 2:r->name_size);
97 ndr_print_ptr(ndr, "name", r->name);
98 ndr->depth++;
99 if (r->name) {
100 ndr_print_string(ndr, "name", r->name);
102 ndr->depth--;
103 ndr->depth--;
106 static enum ndr_err_code ndr_push_KeySecurityData(struct ndr_push *ndr, int ndr_flags, const struct KeySecurityData *r)
108 if (ndr_flags & NDR_SCALARS) {
109 NDR_CHECK(ndr_push_align(ndr, 5));
110 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
111 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
112 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->len));
113 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
115 if (ndr_flags & NDR_BUFFERS) {
116 if (r->data) {
117 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->size));
118 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
119 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->len));
120 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, r->len));
123 return NDR_ERR_SUCCESS;
126 static enum ndr_err_code ndr_pull_KeySecurityData(struct ndr_pull *ndr, int ndr_flags, struct KeySecurityData *r)
128 uint32_t _ptr_data;
129 TALLOC_CTX *_mem_save_data_0;
130 if (ndr_flags & NDR_SCALARS) {
131 NDR_CHECK(ndr_pull_align(ndr, 5));
132 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
133 if (_ptr_data) {
134 NDR_PULL_ALLOC(ndr, r->data);
135 } else {
136 r->data = NULL;
138 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
139 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->len));
140 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
142 if (ndr_flags & NDR_BUFFERS) {
143 if (r->data) {
144 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
145 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
146 NDR_CHECK(ndr_pull_array_size(ndr, &r->data));
147 NDR_CHECK(ndr_pull_array_length(ndr, &r->data));
148 if (ndr_get_array_length(ndr, &r->data) > ndr_get_array_size(ndr, &r->data)) {
149 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->data), ndr_get_array_length(ndr, &r->data));
151 NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data));
152 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, ndr_get_array_length(ndr, &r->data)));
153 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
155 if (r->data) {
156 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->size));
158 if (r->data) {
159 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->data, r->len));
162 return NDR_ERR_SUCCESS;
165 _PUBLIC_ void ndr_print_KeySecurityData(struct ndr_print *ndr, const char *name, const struct KeySecurityData *r)
167 ndr_print_struct(ndr, name, "KeySecurityData");
168 ndr->depth++;
169 ndr_print_ptr(ndr, "data", r->data);
170 ndr->depth++;
171 if (r->data) {
172 ndr_print_array_uint8(ndr, "data", r->data, r->len);
174 ndr->depth--;
175 ndr_print_uint32(ndr, "size", r->size);
176 ndr_print_uint32(ndr, "len", r->len);
177 ndr->depth--;
180 static enum ndr_err_code ndr_push_winreg_SecBuf(struct ndr_push *ndr, int ndr_flags, const struct winreg_SecBuf *r)
182 if (ndr_flags & NDR_SCALARS) {
183 NDR_CHECK(ndr_push_align(ndr, 5));
184 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
185 NDR_CHECK(ndr_push_KeySecurityData(ndr, NDR_SCALARS, &r->sd));
186 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->inherit));
187 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
189 if (ndr_flags & NDR_BUFFERS) {
190 NDR_CHECK(ndr_push_KeySecurityData(ndr, NDR_BUFFERS, &r->sd));
192 return NDR_ERR_SUCCESS;
195 static enum ndr_err_code ndr_pull_winreg_SecBuf(struct ndr_pull *ndr, int ndr_flags, struct winreg_SecBuf *r)
197 if (ndr_flags & NDR_SCALARS) {
198 NDR_CHECK(ndr_pull_align(ndr, 5));
199 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
200 NDR_CHECK(ndr_pull_KeySecurityData(ndr, NDR_SCALARS, &r->sd));
201 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->inherit));
202 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
204 if (ndr_flags & NDR_BUFFERS) {
205 NDR_CHECK(ndr_pull_KeySecurityData(ndr, NDR_BUFFERS, &r->sd));
207 return NDR_ERR_SUCCESS;
210 _PUBLIC_ void ndr_print_winreg_SecBuf(struct ndr_print *ndr, const char *name, const struct winreg_SecBuf *r)
212 ndr_print_struct(ndr, name, "winreg_SecBuf");
213 ndr->depth++;
214 ndr_print_uint32(ndr, "length", r->length);
215 ndr_print_KeySecurityData(ndr, "sd", &r->sd);
216 ndr_print_uint8(ndr, "inherit", r->inherit);
217 ndr->depth--;
220 static enum ndr_err_code ndr_push_winreg_CreateAction(struct ndr_push *ndr, int ndr_flags, enum winreg_CreateAction r)
222 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
223 return NDR_ERR_SUCCESS;
226 static enum ndr_err_code ndr_pull_winreg_CreateAction(struct ndr_pull *ndr, int ndr_flags, enum winreg_CreateAction *r)
228 uint32_t v;
229 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
230 *r = v;
231 return NDR_ERR_SUCCESS;
234 _PUBLIC_ void ndr_print_winreg_CreateAction(struct ndr_print *ndr, const char *name, enum winreg_CreateAction r)
236 const char *val = NULL;
238 switch (r) {
239 case REG_ACTION_NONE: val = "REG_ACTION_NONE"; break;
240 case REG_CREATED_NEW_KEY: val = "REG_CREATED_NEW_KEY"; break;
241 case REG_OPENED_EXISTING_KEY: val = "REG_OPENED_EXISTING_KEY"; break;
243 ndr_print_enum(ndr, name, "ENUM", val, r);
246 static enum ndr_err_code ndr_push_winreg_StringBuf(struct ndr_push *ndr, int ndr_flags, const struct winreg_StringBuf *r)
248 if (ndr_flags & NDR_SCALARS) {
249 NDR_CHECK(ndr_push_align(ndr, 5));
250 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, strlen_m_term_null(r->name) * 2));
251 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->size));
252 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
253 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
255 if (ndr_flags & NDR_BUFFERS) {
256 if (r->name) {
257 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->size / 2));
258 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
259 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, strlen_m_term_null(r->name) * 2 / 2));
260 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, strlen_m_term_null(r->name) * 2 / 2, sizeof(uint16_t), CH_UTF16));
263 return NDR_ERR_SUCCESS;
266 static enum ndr_err_code ndr_pull_winreg_StringBuf(struct ndr_pull *ndr, int ndr_flags, struct winreg_StringBuf *r)
268 uint32_t _ptr_name;
269 TALLOC_CTX *_mem_save_name_0;
270 if (ndr_flags & NDR_SCALARS) {
271 NDR_CHECK(ndr_pull_align(ndr, 5));
272 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
273 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
274 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
275 if (_ptr_name) {
276 NDR_PULL_ALLOC(ndr, r->name);
277 } else {
278 r->name = NULL;
280 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
282 if (ndr_flags & NDR_BUFFERS) {
283 if (r->name) {
284 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
285 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
286 NDR_CHECK(ndr_pull_array_size(ndr, &r->name));
287 NDR_CHECK(ndr_pull_array_length(ndr, &r->name));
288 if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) {
289 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));
291 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16));
292 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
294 if (r->name) {
295 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->name, r->size / 2));
297 if (r->name) {
298 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->name, r->length / 2));
301 return NDR_ERR_SUCCESS;
304 _PUBLIC_ void ndr_print_winreg_StringBuf(struct ndr_print *ndr, const char *name, const struct winreg_StringBuf *r)
306 ndr_print_struct(ndr, name, "winreg_StringBuf");
307 ndr->depth++;
308 ndr_print_uint16(ndr, "length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?strlen_m_term_null(r->name) * 2:r->length);
309 ndr_print_uint16(ndr, "size", r->size);
310 ndr_print_ptr(ndr, "name", r->name);
311 ndr->depth++;
312 if (r->name) {
313 ndr_print_string(ndr, "name", r->name);
315 ndr->depth--;
316 ndr->depth--;
319 static enum ndr_err_code ndr_push_winreg_ValNameBuf(struct ndr_push *ndr, int ndr_flags, const struct winreg_ValNameBuf *r)
321 if (ndr_flags & NDR_SCALARS) {
322 NDR_CHECK(ndr_push_align(ndr, 5));
323 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, strlen_m_term(r->name) * 2));
324 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->size));
325 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
326 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
328 if (ndr_flags & NDR_BUFFERS) {
329 if (r->name) {
330 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->size / 2));
331 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
332 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, strlen_m_term(r->name) * 2 / 2));
333 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, strlen_m_term(r->name) * 2 / 2, sizeof(uint16_t), CH_UTF16));
336 return NDR_ERR_SUCCESS;
339 static enum ndr_err_code ndr_pull_winreg_ValNameBuf(struct ndr_pull *ndr, int ndr_flags, struct winreg_ValNameBuf *r)
341 uint32_t _ptr_name;
342 TALLOC_CTX *_mem_save_name_0;
343 if (ndr_flags & NDR_SCALARS) {
344 NDR_CHECK(ndr_pull_align(ndr, 5));
345 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
346 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
347 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
348 if (_ptr_name) {
349 NDR_PULL_ALLOC(ndr, r->name);
350 } else {
351 r->name = NULL;
353 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
355 if (ndr_flags & NDR_BUFFERS) {
356 if (r->name) {
357 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
358 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
359 NDR_CHECK(ndr_pull_array_size(ndr, &r->name));
360 NDR_CHECK(ndr_pull_array_length(ndr, &r->name));
361 if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) {
362 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));
364 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16));
365 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
367 if (r->name) {
368 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->name, r->size / 2));
370 if (r->name) {
371 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->name, r->length / 2));
374 return NDR_ERR_SUCCESS;
377 _PUBLIC_ void ndr_print_winreg_ValNameBuf(struct ndr_print *ndr, const char *name, const struct winreg_ValNameBuf *r)
379 ndr_print_struct(ndr, name, "winreg_ValNameBuf");
380 ndr->depth++;
381 ndr_print_uint16(ndr, "length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?strlen_m_term(r->name) * 2:r->length);
382 ndr_print_uint16(ndr, "size", r->size);
383 ndr_print_ptr(ndr, "name", r->name);
384 ndr->depth++;
385 if (r->name) {
386 ndr_print_string(ndr, "name", r->name);
388 ndr->depth--;
389 ndr->depth--;
392 _PUBLIC_ enum ndr_err_code ndr_push_winreg_NotifyChangeType(struct ndr_push *ndr, int ndr_flags, uint32_t r)
394 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
395 return NDR_ERR_SUCCESS;
398 _PUBLIC_ enum ndr_err_code ndr_pull_winreg_NotifyChangeType(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
400 uint32_t v;
401 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
402 *r = v;
403 return NDR_ERR_SUCCESS;
406 _PUBLIC_ void ndr_print_winreg_NotifyChangeType(struct ndr_print *ndr, const char *name, uint32_t r)
408 ndr_print_uint32(ndr, name, r);
409 ndr->depth++;
410 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "REG_NOTIFY_CHANGE_NAME", REG_NOTIFY_CHANGE_NAME, r);
411 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "REG_NOTIFY_CHANGE_ATTRIBUTES", REG_NOTIFY_CHANGE_ATTRIBUTES, r);
412 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "REG_NOTIFY_CHANGE_LAST_SET", REG_NOTIFY_CHANGE_LAST_SET, r);
413 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "REG_NOTIFY_CHANGE_SECURITY", REG_NOTIFY_CHANGE_SECURITY, r);
414 ndr->depth--;
417 static enum ndr_err_code ndr_push_KeySecurityAttribute(struct ndr_push *ndr, int ndr_flags, const struct KeySecurityAttribute *r)
419 if (ndr_flags & NDR_SCALARS) {
420 NDR_CHECK(ndr_push_align(ndr, 5));
421 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->data_size));
422 NDR_CHECK(ndr_push_KeySecurityData(ndr, NDR_SCALARS, &r->sec_data));
423 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->inherit));
424 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
426 if (ndr_flags & NDR_BUFFERS) {
427 NDR_CHECK(ndr_push_KeySecurityData(ndr, NDR_BUFFERS, &r->sec_data));
429 return NDR_ERR_SUCCESS;
432 static enum ndr_err_code ndr_pull_KeySecurityAttribute(struct ndr_pull *ndr, int ndr_flags, struct KeySecurityAttribute *r)
434 if (ndr_flags & NDR_SCALARS) {
435 NDR_CHECK(ndr_pull_align(ndr, 5));
436 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->data_size));
437 NDR_CHECK(ndr_pull_KeySecurityData(ndr, NDR_SCALARS, &r->sec_data));
438 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->inherit));
439 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
441 if (ndr_flags & NDR_BUFFERS) {
442 NDR_CHECK(ndr_pull_KeySecurityData(ndr, NDR_BUFFERS, &r->sec_data));
444 return NDR_ERR_SUCCESS;
447 _PUBLIC_ void ndr_print_KeySecurityAttribute(struct ndr_print *ndr, const char *name, const struct KeySecurityAttribute *r)
449 ndr_print_struct(ndr, name, "KeySecurityAttribute");
450 ndr->depth++;
451 ndr_print_uint32(ndr, "data_size", r->data_size);
452 ndr_print_KeySecurityData(ndr, "sec_data", &r->sec_data);
453 ndr_print_uint8(ndr, "inherit", r->inherit);
454 ndr->depth--;
457 static enum ndr_err_code ndr_push_QueryMultipleValue(struct ndr_push *ndr, int ndr_flags, const struct QueryMultipleValue *r)
459 if (ndr_flags & NDR_SCALARS) {
460 NDR_CHECK(ndr_push_align(ndr, 5));
461 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
462 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->type));
463 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->offset));
464 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
465 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
467 if (ndr_flags & NDR_BUFFERS) {
468 if (r->name) {
469 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->name));
472 return NDR_ERR_SUCCESS;
475 static enum ndr_err_code ndr_pull_QueryMultipleValue(struct ndr_pull *ndr, int ndr_flags, struct QueryMultipleValue *r)
477 uint32_t _ptr_name;
478 TALLOC_CTX *_mem_save_name_0;
479 if (ndr_flags & NDR_SCALARS) {
480 NDR_CHECK(ndr_pull_align(ndr, 5));
481 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
482 if (_ptr_name) {
483 NDR_PULL_ALLOC(ndr, r->name);
484 } else {
485 r->name = NULL;
487 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->type));
488 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->offset));
489 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
490 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
492 if (ndr_flags & NDR_BUFFERS) {
493 if (r->name) {
494 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
495 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
496 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->name));
497 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
500 return NDR_ERR_SUCCESS;
503 _PUBLIC_ void ndr_print_QueryMultipleValue(struct ndr_print *ndr, const char *name, const struct QueryMultipleValue *r)
505 ndr_print_struct(ndr, name, "QueryMultipleValue");
506 ndr->depth++;
507 ndr_print_ptr(ndr, "name", r->name);
508 ndr->depth++;
509 if (r->name) {
510 ndr_print_winreg_String(ndr, "name", r->name);
512 ndr->depth--;
513 ndr_print_winreg_Type(ndr, "type", r->type);
514 ndr_print_uint32(ndr, "offset", r->offset);
515 ndr_print_uint32(ndr, "length", r->length);
516 ndr->depth--;
519 static enum ndr_err_code ndr_push_winreg_OpenHKCR(struct ndr_push *ndr, int flags, const struct winreg_OpenHKCR *r)
521 if (flags & NDR_IN) {
522 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.system_name));
523 if (r->in.system_name) {
524 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.system_name));
526 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
528 if (flags & NDR_OUT) {
529 if (r->out.handle == NULL) {
530 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
532 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
533 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
535 return NDR_ERR_SUCCESS;
538 static enum ndr_err_code ndr_pull_winreg_OpenHKCR(struct ndr_pull *ndr, int flags, struct winreg_OpenHKCR *r)
540 uint32_t _ptr_system_name;
541 TALLOC_CTX *_mem_save_system_name_0;
542 TALLOC_CTX *_mem_save_handle_0;
543 if (flags & NDR_IN) {
544 ZERO_STRUCT(r->out);
546 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_system_name));
547 if (_ptr_system_name) {
548 NDR_PULL_ALLOC(ndr, r->in.system_name);
549 } else {
550 r->in.system_name = NULL;
552 if (r->in.system_name) {
553 _mem_save_system_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
554 NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0);
555 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.system_name));
556 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0);
558 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
559 NDR_PULL_ALLOC(ndr, r->out.handle);
560 ZERO_STRUCTP(r->out.handle);
562 if (flags & NDR_OUT) {
563 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
564 NDR_PULL_ALLOC(ndr, r->out.handle);
566 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
567 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
568 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
569 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
570 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
572 return NDR_ERR_SUCCESS;
575 _PUBLIC_ void ndr_print_winreg_OpenHKCR(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenHKCR *r)
577 ndr_print_struct(ndr, name, "winreg_OpenHKCR");
578 ndr->depth++;
579 if (flags & NDR_SET_VALUES) {
580 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
582 if (flags & NDR_IN) {
583 ndr_print_struct(ndr, "in", "winreg_OpenHKCR");
584 ndr->depth++;
585 ndr_print_ptr(ndr, "system_name", r->in.system_name);
586 ndr->depth++;
587 if (r->in.system_name) {
588 ndr_print_uint16(ndr, "system_name", *r->in.system_name);
590 ndr->depth--;
591 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
592 ndr->depth--;
594 if (flags & NDR_OUT) {
595 ndr_print_struct(ndr, "out", "winreg_OpenHKCR");
596 ndr->depth++;
597 ndr_print_ptr(ndr, "handle", r->out.handle);
598 ndr->depth++;
599 ndr_print_policy_handle(ndr, "handle", r->out.handle);
600 ndr->depth--;
601 ndr_print_WERROR(ndr, "result", r->out.result);
602 ndr->depth--;
604 ndr->depth--;
607 static enum ndr_err_code ndr_push_winreg_OpenHKCU(struct ndr_push *ndr, int flags, const struct winreg_OpenHKCU *r)
609 if (flags & NDR_IN) {
610 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.system_name));
611 if (r->in.system_name) {
612 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.system_name));
614 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
616 if (flags & NDR_OUT) {
617 if (r->out.handle == NULL) {
618 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
620 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
621 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
623 return NDR_ERR_SUCCESS;
626 static enum ndr_err_code ndr_pull_winreg_OpenHKCU(struct ndr_pull *ndr, int flags, struct winreg_OpenHKCU *r)
628 uint32_t _ptr_system_name;
629 TALLOC_CTX *_mem_save_system_name_0;
630 TALLOC_CTX *_mem_save_handle_0;
631 if (flags & NDR_IN) {
632 ZERO_STRUCT(r->out);
634 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_system_name));
635 if (_ptr_system_name) {
636 NDR_PULL_ALLOC(ndr, r->in.system_name);
637 } else {
638 r->in.system_name = NULL;
640 if (r->in.system_name) {
641 _mem_save_system_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
642 NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0);
643 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.system_name));
644 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0);
646 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
647 NDR_PULL_ALLOC(ndr, r->out.handle);
648 ZERO_STRUCTP(r->out.handle);
650 if (flags & NDR_OUT) {
651 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
652 NDR_PULL_ALLOC(ndr, r->out.handle);
654 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
655 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
656 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
657 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
658 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
660 return NDR_ERR_SUCCESS;
663 _PUBLIC_ void ndr_print_winreg_OpenHKCU(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenHKCU *r)
665 ndr_print_struct(ndr, name, "winreg_OpenHKCU");
666 ndr->depth++;
667 if (flags & NDR_SET_VALUES) {
668 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
670 if (flags & NDR_IN) {
671 ndr_print_struct(ndr, "in", "winreg_OpenHKCU");
672 ndr->depth++;
673 ndr_print_ptr(ndr, "system_name", r->in.system_name);
674 ndr->depth++;
675 if (r->in.system_name) {
676 ndr_print_uint16(ndr, "system_name", *r->in.system_name);
678 ndr->depth--;
679 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
680 ndr->depth--;
682 if (flags & NDR_OUT) {
683 ndr_print_struct(ndr, "out", "winreg_OpenHKCU");
684 ndr->depth++;
685 ndr_print_ptr(ndr, "handle", r->out.handle);
686 ndr->depth++;
687 ndr_print_policy_handle(ndr, "handle", r->out.handle);
688 ndr->depth--;
689 ndr_print_WERROR(ndr, "result", r->out.result);
690 ndr->depth--;
692 ndr->depth--;
695 _PUBLIC_ enum ndr_err_code ndr_push_winreg_OpenHKLM(struct ndr_push *ndr, int flags, const struct winreg_OpenHKLM *r)
697 if (flags & NDR_IN) {
698 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.system_name));
699 if (r->in.system_name) {
700 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.system_name));
702 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
704 if (flags & NDR_OUT) {
705 if (r->out.handle == NULL) {
706 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
708 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
709 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
711 return NDR_ERR_SUCCESS;
714 _PUBLIC_ enum ndr_err_code ndr_pull_winreg_OpenHKLM(struct ndr_pull *ndr, int flags, struct winreg_OpenHKLM *r)
716 uint32_t _ptr_system_name;
717 TALLOC_CTX *_mem_save_system_name_0;
718 TALLOC_CTX *_mem_save_handle_0;
719 if (flags & NDR_IN) {
720 ZERO_STRUCT(r->out);
722 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_system_name));
723 if (_ptr_system_name) {
724 NDR_PULL_ALLOC(ndr, r->in.system_name);
725 } else {
726 r->in.system_name = NULL;
728 if (r->in.system_name) {
729 _mem_save_system_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
730 NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0);
731 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.system_name));
732 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0);
734 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
735 NDR_PULL_ALLOC(ndr, r->out.handle);
736 ZERO_STRUCTP(r->out.handle);
738 if (flags & NDR_OUT) {
739 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
740 NDR_PULL_ALLOC(ndr, r->out.handle);
742 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
743 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
744 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
745 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
746 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
748 return NDR_ERR_SUCCESS;
751 _PUBLIC_ void ndr_print_winreg_OpenHKLM(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenHKLM *r)
753 ndr_print_struct(ndr, name, "winreg_OpenHKLM");
754 ndr->depth++;
755 if (flags & NDR_SET_VALUES) {
756 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
758 if (flags & NDR_IN) {
759 ndr_print_struct(ndr, "in", "winreg_OpenHKLM");
760 ndr->depth++;
761 ndr_print_ptr(ndr, "system_name", r->in.system_name);
762 ndr->depth++;
763 if (r->in.system_name) {
764 ndr_print_uint16(ndr, "system_name", *r->in.system_name);
766 ndr->depth--;
767 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
768 ndr->depth--;
770 if (flags & NDR_OUT) {
771 ndr_print_struct(ndr, "out", "winreg_OpenHKLM");
772 ndr->depth++;
773 ndr_print_ptr(ndr, "handle", r->out.handle);
774 ndr->depth++;
775 ndr_print_policy_handle(ndr, "handle", r->out.handle);
776 ndr->depth--;
777 ndr_print_WERROR(ndr, "result", r->out.result);
778 ndr->depth--;
780 ndr->depth--;
783 static enum ndr_err_code ndr_push_winreg_OpenHKPD(struct ndr_push *ndr, int flags, const struct winreg_OpenHKPD *r)
785 if (flags & NDR_IN) {
786 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.system_name));
787 if (r->in.system_name) {
788 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.system_name));
790 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
792 if (flags & NDR_OUT) {
793 if (r->out.handle == NULL) {
794 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
796 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
797 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
799 return NDR_ERR_SUCCESS;
802 static enum ndr_err_code ndr_pull_winreg_OpenHKPD(struct ndr_pull *ndr, int flags, struct winreg_OpenHKPD *r)
804 uint32_t _ptr_system_name;
805 TALLOC_CTX *_mem_save_system_name_0;
806 TALLOC_CTX *_mem_save_handle_0;
807 if (flags & NDR_IN) {
808 ZERO_STRUCT(r->out);
810 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_system_name));
811 if (_ptr_system_name) {
812 NDR_PULL_ALLOC(ndr, r->in.system_name);
813 } else {
814 r->in.system_name = NULL;
816 if (r->in.system_name) {
817 _mem_save_system_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
818 NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0);
819 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.system_name));
820 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0);
822 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
823 NDR_PULL_ALLOC(ndr, r->out.handle);
824 ZERO_STRUCTP(r->out.handle);
826 if (flags & NDR_OUT) {
827 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
828 NDR_PULL_ALLOC(ndr, r->out.handle);
830 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
831 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
832 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
833 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
834 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
836 return NDR_ERR_SUCCESS;
839 _PUBLIC_ void ndr_print_winreg_OpenHKPD(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenHKPD *r)
841 ndr_print_struct(ndr, name, "winreg_OpenHKPD");
842 ndr->depth++;
843 if (flags & NDR_SET_VALUES) {
844 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
846 if (flags & NDR_IN) {
847 ndr_print_struct(ndr, "in", "winreg_OpenHKPD");
848 ndr->depth++;
849 ndr_print_ptr(ndr, "system_name", r->in.system_name);
850 ndr->depth++;
851 if (r->in.system_name) {
852 ndr_print_uint16(ndr, "system_name", *r->in.system_name);
854 ndr->depth--;
855 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
856 ndr->depth--;
858 if (flags & NDR_OUT) {
859 ndr_print_struct(ndr, "out", "winreg_OpenHKPD");
860 ndr->depth++;
861 ndr_print_ptr(ndr, "handle", r->out.handle);
862 ndr->depth++;
863 ndr_print_policy_handle(ndr, "handle", r->out.handle);
864 ndr->depth--;
865 ndr_print_WERROR(ndr, "result", r->out.result);
866 ndr->depth--;
868 ndr->depth--;
871 static enum ndr_err_code ndr_push_winreg_OpenHKU(struct ndr_push *ndr, int flags, const struct winreg_OpenHKU *r)
873 if (flags & NDR_IN) {
874 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.system_name));
875 if (r->in.system_name) {
876 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.system_name));
878 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
880 if (flags & NDR_OUT) {
881 if (r->out.handle == NULL) {
882 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
884 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
885 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
887 return NDR_ERR_SUCCESS;
890 static enum ndr_err_code ndr_pull_winreg_OpenHKU(struct ndr_pull *ndr, int flags, struct winreg_OpenHKU *r)
892 uint32_t _ptr_system_name;
893 TALLOC_CTX *_mem_save_system_name_0;
894 TALLOC_CTX *_mem_save_handle_0;
895 if (flags & NDR_IN) {
896 ZERO_STRUCT(r->out);
898 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_system_name));
899 if (_ptr_system_name) {
900 NDR_PULL_ALLOC(ndr, r->in.system_name);
901 } else {
902 r->in.system_name = NULL;
904 if (r->in.system_name) {
905 _mem_save_system_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
906 NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0);
907 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.system_name));
908 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0);
910 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
911 NDR_PULL_ALLOC(ndr, r->out.handle);
912 ZERO_STRUCTP(r->out.handle);
914 if (flags & NDR_OUT) {
915 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
916 NDR_PULL_ALLOC(ndr, r->out.handle);
918 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
919 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
920 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
921 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
922 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
924 return NDR_ERR_SUCCESS;
927 _PUBLIC_ void ndr_print_winreg_OpenHKU(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenHKU *r)
929 ndr_print_struct(ndr, name, "winreg_OpenHKU");
930 ndr->depth++;
931 if (flags & NDR_SET_VALUES) {
932 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
934 if (flags & NDR_IN) {
935 ndr_print_struct(ndr, "in", "winreg_OpenHKU");
936 ndr->depth++;
937 ndr_print_ptr(ndr, "system_name", r->in.system_name);
938 ndr->depth++;
939 if (r->in.system_name) {
940 ndr_print_uint16(ndr, "system_name", *r->in.system_name);
942 ndr->depth--;
943 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
944 ndr->depth--;
946 if (flags & NDR_OUT) {
947 ndr_print_struct(ndr, "out", "winreg_OpenHKU");
948 ndr->depth++;
949 ndr_print_ptr(ndr, "handle", r->out.handle);
950 ndr->depth++;
951 ndr_print_policy_handle(ndr, "handle", r->out.handle);
952 ndr->depth--;
953 ndr_print_WERROR(ndr, "result", r->out.result);
954 ndr->depth--;
956 ndr->depth--;
959 _PUBLIC_ enum ndr_err_code ndr_push_winreg_CloseKey(struct ndr_push *ndr, int flags, const struct winreg_CloseKey *r)
961 if (flags & NDR_IN) {
962 if (r->in.handle == NULL) {
963 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
965 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
967 if (flags & NDR_OUT) {
968 if (r->out.handle == NULL) {
969 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
971 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
972 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
974 return NDR_ERR_SUCCESS;
977 _PUBLIC_ enum ndr_err_code ndr_pull_winreg_CloseKey(struct ndr_pull *ndr, int flags, struct winreg_CloseKey *r)
979 TALLOC_CTX *_mem_save_handle_0;
980 if (flags & NDR_IN) {
981 ZERO_STRUCT(r->out);
983 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
984 NDR_PULL_ALLOC(ndr, r->in.handle);
986 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
987 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
988 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
989 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
990 NDR_PULL_ALLOC(ndr, r->out.handle);
991 *r->out.handle = *r->in.handle;
993 if (flags & NDR_OUT) {
994 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
995 NDR_PULL_ALLOC(ndr, r->out.handle);
997 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
998 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
999 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
1000 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
1001 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
1003 return NDR_ERR_SUCCESS;
1006 _PUBLIC_ void ndr_print_winreg_CloseKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_CloseKey *r)
1008 ndr_print_struct(ndr, name, "winreg_CloseKey");
1009 ndr->depth++;
1010 if (flags & NDR_SET_VALUES) {
1011 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1013 if (flags & NDR_IN) {
1014 ndr_print_struct(ndr, "in", "winreg_CloseKey");
1015 ndr->depth++;
1016 ndr_print_ptr(ndr, "handle", r->in.handle);
1017 ndr->depth++;
1018 ndr_print_policy_handle(ndr, "handle", r->in.handle);
1019 ndr->depth--;
1020 ndr->depth--;
1022 if (flags & NDR_OUT) {
1023 ndr_print_struct(ndr, "out", "winreg_CloseKey");
1024 ndr->depth++;
1025 ndr_print_ptr(ndr, "handle", r->out.handle);
1026 ndr->depth++;
1027 ndr_print_policy_handle(ndr, "handle", r->out.handle);
1028 ndr->depth--;
1029 ndr_print_WERROR(ndr, "result", r->out.result);
1030 ndr->depth--;
1032 ndr->depth--;
1035 _PUBLIC_ enum ndr_err_code ndr_push_winreg_CreateKey(struct ndr_push *ndr, int flags, const struct winreg_CreateKey *r)
1037 if (flags & NDR_IN) {
1038 if (r->in.handle == NULL) {
1039 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1041 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
1042 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.name));
1043 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.keyclass));
1044 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.options));
1045 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
1046 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.secdesc));
1047 if (r->in.secdesc) {
1048 NDR_CHECK(ndr_push_winreg_SecBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc));
1050 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.action_taken));
1051 if (r->in.action_taken) {
1052 NDR_CHECK(ndr_push_winreg_CreateAction(ndr, NDR_SCALARS, *r->in.action_taken));
1055 if (flags & NDR_OUT) {
1056 if (r->out.new_handle == NULL) {
1057 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1059 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.new_handle));
1060 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.action_taken));
1061 if (r->out.action_taken) {
1062 NDR_CHECK(ndr_push_winreg_CreateAction(ndr, NDR_SCALARS, *r->out.action_taken));
1064 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
1066 return NDR_ERR_SUCCESS;
1069 _PUBLIC_ enum ndr_err_code ndr_pull_winreg_CreateKey(struct ndr_pull *ndr, int flags, struct winreg_CreateKey *r)
1071 uint32_t _ptr_secdesc;
1072 uint32_t _ptr_action_taken;
1073 TALLOC_CTX *_mem_save_handle_0;
1074 TALLOC_CTX *_mem_save_secdesc_0;
1075 TALLOC_CTX *_mem_save_new_handle_0;
1076 TALLOC_CTX *_mem_save_action_taken_0;
1077 if (flags & NDR_IN) {
1078 ZERO_STRUCT(r->out);
1080 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1081 NDR_PULL_ALLOC(ndr, r->in.handle);
1083 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
1084 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
1085 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
1086 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
1087 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.name));
1088 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.keyclass));
1089 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.options));
1090 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
1091 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
1092 if (_ptr_secdesc) {
1093 NDR_PULL_ALLOC(ndr, r->in.secdesc);
1094 } else {
1095 r->in.secdesc = NULL;
1097 if (r->in.secdesc) {
1098 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
1099 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc, 0);
1100 NDR_CHECK(ndr_pull_winreg_SecBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc));
1101 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
1103 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_action_taken));
1104 if (_ptr_action_taken) {
1105 NDR_PULL_ALLOC(ndr, r->in.action_taken);
1106 } else {
1107 r->in.action_taken = NULL;
1109 if (r->in.action_taken) {
1110 _mem_save_action_taken_0 = NDR_PULL_GET_MEM_CTX(ndr);
1111 NDR_PULL_SET_MEM_CTX(ndr, r->in.action_taken, 0);
1112 NDR_CHECK(ndr_pull_winreg_CreateAction(ndr, NDR_SCALARS, r->in.action_taken));
1113 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_action_taken_0, 0);
1115 NDR_PULL_ALLOC(ndr, r->out.new_handle);
1116 ZERO_STRUCTP(r->out.new_handle);
1118 if (flags & NDR_OUT) {
1119 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1120 NDR_PULL_ALLOC(ndr, r->out.new_handle);
1122 _mem_save_new_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
1123 NDR_PULL_SET_MEM_CTX(ndr, r->out.new_handle, LIBNDR_FLAG_REF_ALLOC);
1124 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.new_handle));
1125 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_new_handle_0, LIBNDR_FLAG_REF_ALLOC);
1126 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_action_taken));
1127 if (_ptr_action_taken) {
1128 NDR_PULL_ALLOC(ndr, r->out.action_taken);
1129 } else {
1130 r->out.action_taken = NULL;
1132 if (r->out.action_taken) {
1133 _mem_save_action_taken_0 = NDR_PULL_GET_MEM_CTX(ndr);
1134 NDR_PULL_SET_MEM_CTX(ndr, r->out.action_taken, 0);
1135 NDR_CHECK(ndr_pull_winreg_CreateAction(ndr, NDR_SCALARS, r->out.action_taken));
1136 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_action_taken_0, 0);
1138 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
1140 return NDR_ERR_SUCCESS;
1143 _PUBLIC_ void ndr_print_winreg_CreateKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_CreateKey *r)
1145 ndr_print_struct(ndr, name, "winreg_CreateKey");
1146 ndr->depth++;
1147 if (flags & NDR_SET_VALUES) {
1148 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1150 if (flags & NDR_IN) {
1151 ndr_print_struct(ndr, "in", "winreg_CreateKey");
1152 ndr->depth++;
1153 ndr_print_ptr(ndr, "handle", r->in.handle);
1154 ndr->depth++;
1155 ndr_print_policy_handle(ndr, "handle", r->in.handle);
1156 ndr->depth--;
1157 ndr_print_winreg_String(ndr, "name", &r->in.name);
1158 ndr_print_winreg_String(ndr, "keyclass", &r->in.keyclass);
1159 ndr_print_uint32(ndr, "options", r->in.options);
1160 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
1161 ndr_print_ptr(ndr, "secdesc", r->in.secdesc);
1162 ndr->depth++;
1163 if (r->in.secdesc) {
1164 ndr_print_winreg_SecBuf(ndr, "secdesc", r->in.secdesc);
1166 ndr->depth--;
1167 ndr_print_ptr(ndr, "action_taken", r->in.action_taken);
1168 ndr->depth++;
1169 if (r->in.action_taken) {
1170 ndr_print_winreg_CreateAction(ndr, "action_taken", *r->in.action_taken);
1172 ndr->depth--;
1173 ndr->depth--;
1175 if (flags & NDR_OUT) {
1176 ndr_print_struct(ndr, "out", "winreg_CreateKey");
1177 ndr->depth++;
1178 ndr_print_ptr(ndr, "new_handle", r->out.new_handle);
1179 ndr->depth++;
1180 ndr_print_policy_handle(ndr, "new_handle", r->out.new_handle);
1181 ndr->depth--;
1182 ndr_print_ptr(ndr, "action_taken", r->out.action_taken);
1183 ndr->depth++;
1184 if (r->out.action_taken) {
1185 ndr_print_winreg_CreateAction(ndr, "action_taken", *r->out.action_taken);
1187 ndr->depth--;
1188 ndr_print_WERROR(ndr, "result", r->out.result);
1189 ndr->depth--;
1191 ndr->depth--;
1194 _PUBLIC_ enum ndr_err_code ndr_push_winreg_DeleteKey(struct ndr_push *ndr, int flags, const struct winreg_DeleteKey *r)
1196 if (flags & NDR_IN) {
1197 if (r->in.handle == NULL) {
1198 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1200 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
1201 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.key));
1203 if (flags & NDR_OUT) {
1204 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
1206 return NDR_ERR_SUCCESS;
1209 _PUBLIC_ enum ndr_err_code ndr_pull_winreg_DeleteKey(struct ndr_pull *ndr, int flags, struct winreg_DeleteKey *r)
1211 TALLOC_CTX *_mem_save_handle_0;
1212 if (flags & NDR_IN) {
1213 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1214 NDR_PULL_ALLOC(ndr, r->in.handle);
1216 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
1217 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
1218 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
1219 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
1220 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.key));
1222 if (flags & NDR_OUT) {
1223 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
1225 return NDR_ERR_SUCCESS;
1228 _PUBLIC_ void ndr_print_winreg_DeleteKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_DeleteKey *r)
1230 ndr_print_struct(ndr, name, "winreg_DeleteKey");
1231 ndr->depth++;
1232 if (flags & NDR_SET_VALUES) {
1233 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1235 if (flags & NDR_IN) {
1236 ndr_print_struct(ndr, "in", "winreg_DeleteKey");
1237 ndr->depth++;
1238 ndr_print_ptr(ndr, "handle", r->in.handle);
1239 ndr->depth++;
1240 ndr_print_policy_handle(ndr, "handle", r->in.handle);
1241 ndr->depth--;
1242 ndr_print_winreg_String(ndr, "key", &r->in.key);
1243 ndr->depth--;
1245 if (flags & NDR_OUT) {
1246 ndr_print_struct(ndr, "out", "winreg_DeleteKey");
1247 ndr->depth++;
1248 ndr_print_WERROR(ndr, "result", r->out.result);
1249 ndr->depth--;
1251 ndr->depth--;
1254 static enum ndr_err_code ndr_push_winreg_DeleteValue(struct ndr_push *ndr, int flags, const struct winreg_DeleteValue *r)
1256 if (flags & NDR_IN) {
1257 if (r->in.handle == NULL) {
1258 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1260 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
1261 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.value));
1263 if (flags & NDR_OUT) {
1264 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
1266 return NDR_ERR_SUCCESS;
1269 static enum ndr_err_code ndr_pull_winreg_DeleteValue(struct ndr_pull *ndr, int flags, struct winreg_DeleteValue *r)
1271 TALLOC_CTX *_mem_save_handle_0;
1272 if (flags & NDR_IN) {
1273 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1274 NDR_PULL_ALLOC(ndr, r->in.handle);
1276 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
1277 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
1278 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
1279 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
1280 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.value));
1282 if (flags & NDR_OUT) {
1283 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
1285 return NDR_ERR_SUCCESS;
1288 _PUBLIC_ void ndr_print_winreg_DeleteValue(struct ndr_print *ndr, const char *name, int flags, const struct winreg_DeleteValue *r)
1290 ndr_print_struct(ndr, name, "winreg_DeleteValue");
1291 ndr->depth++;
1292 if (flags & NDR_SET_VALUES) {
1293 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1295 if (flags & NDR_IN) {
1296 ndr_print_struct(ndr, "in", "winreg_DeleteValue");
1297 ndr->depth++;
1298 ndr_print_ptr(ndr, "handle", r->in.handle);
1299 ndr->depth++;
1300 ndr_print_policy_handle(ndr, "handle", r->in.handle);
1301 ndr->depth--;
1302 ndr_print_winreg_String(ndr, "value", &r->in.value);
1303 ndr->depth--;
1305 if (flags & NDR_OUT) {
1306 ndr_print_struct(ndr, "out", "winreg_DeleteValue");
1307 ndr->depth++;
1308 ndr_print_WERROR(ndr, "result", r->out.result);
1309 ndr->depth--;
1311 ndr->depth--;
1314 _PUBLIC_ enum ndr_err_code ndr_push_winreg_EnumKey(struct ndr_push *ndr, int flags, const struct winreg_EnumKey *r)
1316 if (flags & NDR_IN) {
1317 if (r->in.handle == NULL) {
1318 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1320 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
1321 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.enum_index));
1322 if (r->in.name == NULL) {
1323 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1325 NDR_CHECK(ndr_push_winreg_StringBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.name));
1326 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.keyclass));
1327 if (r->in.keyclass) {
1328 NDR_CHECK(ndr_push_winreg_StringBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.keyclass));
1330 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.last_changed_time));
1331 if (r->in.last_changed_time) {
1332 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, *r->in.last_changed_time));
1335 if (flags & NDR_OUT) {
1336 if (r->out.name == NULL) {
1337 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1339 NDR_CHECK(ndr_push_winreg_StringBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.name));
1340 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.keyclass));
1341 if (r->out.keyclass) {
1342 NDR_CHECK(ndr_push_winreg_StringBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.keyclass));
1344 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.last_changed_time));
1345 if (r->out.last_changed_time) {
1346 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, *r->out.last_changed_time));
1348 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
1350 return NDR_ERR_SUCCESS;
1353 _PUBLIC_ enum ndr_err_code ndr_pull_winreg_EnumKey(struct ndr_pull *ndr, int flags, struct winreg_EnumKey *r)
1355 uint32_t _ptr_keyclass;
1356 uint32_t _ptr_last_changed_time;
1357 TALLOC_CTX *_mem_save_handle_0;
1358 TALLOC_CTX *_mem_save_name_0;
1359 TALLOC_CTX *_mem_save_keyclass_0;
1360 TALLOC_CTX *_mem_save_last_changed_time_0;
1361 if (flags & NDR_IN) {
1362 ZERO_STRUCT(r->out);
1364 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1365 NDR_PULL_ALLOC(ndr, r->in.handle);
1367 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
1368 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
1369 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
1370 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
1371 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.enum_index));
1372 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1373 NDR_PULL_ALLOC(ndr, r->in.name);
1375 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
1376 NDR_PULL_SET_MEM_CTX(ndr, r->in.name, LIBNDR_FLAG_REF_ALLOC);
1377 NDR_CHECK(ndr_pull_winreg_StringBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.name));
1378 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, LIBNDR_FLAG_REF_ALLOC);
1379 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_keyclass));
1380 if (_ptr_keyclass) {
1381 NDR_PULL_ALLOC(ndr, r->in.keyclass);
1382 } else {
1383 r->in.keyclass = NULL;
1385 if (r->in.keyclass) {
1386 _mem_save_keyclass_0 = NDR_PULL_GET_MEM_CTX(ndr);
1387 NDR_PULL_SET_MEM_CTX(ndr, r->in.keyclass, 0);
1388 NDR_CHECK(ndr_pull_winreg_StringBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.keyclass));
1389 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_keyclass_0, 0);
1391 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_last_changed_time));
1392 if (_ptr_last_changed_time) {
1393 NDR_PULL_ALLOC(ndr, r->in.last_changed_time);
1394 } else {
1395 r->in.last_changed_time = NULL;
1397 if (r->in.last_changed_time) {
1398 _mem_save_last_changed_time_0 = NDR_PULL_GET_MEM_CTX(ndr);
1399 NDR_PULL_SET_MEM_CTX(ndr, r->in.last_changed_time, 0);
1400 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, r->in.last_changed_time));
1401 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_last_changed_time_0, 0);
1403 NDR_PULL_ALLOC(ndr, r->out.name);
1404 *r->out.name = *r->in.name;
1406 if (flags & NDR_OUT) {
1407 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1408 NDR_PULL_ALLOC(ndr, r->out.name);
1410 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
1411 NDR_PULL_SET_MEM_CTX(ndr, r->out.name, LIBNDR_FLAG_REF_ALLOC);
1412 NDR_CHECK(ndr_pull_winreg_StringBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.name));
1413 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, LIBNDR_FLAG_REF_ALLOC);
1414 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_keyclass));
1415 if (_ptr_keyclass) {
1416 NDR_PULL_ALLOC(ndr, r->out.keyclass);
1417 } else {
1418 r->out.keyclass = NULL;
1420 if (r->out.keyclass) {
1421 _mem_save_keyclass_0 = NDR_PULL_GET_MEM_CTX(ndr);
1422 NDR_PULL_SET_MEM_CTX(ndr, r->out.keyclass, 0);
1423 NDR_CHECK(ndr_pull_winreg_StringBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.keyclass));
1424 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_keyclass_0, 0);
1426 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_last_changed_time));
1427 if (_ptr_last_changed_time) {
1428 NDR_PULL_ALLOC(ndr, r->out.last_changed_time);
1429 } else {
1430 r->out.last_changed_time = NULL;
1432 if (r->out.last_changed_time) {
1433 _mem_save_last_changed_time_0 = NDR_PULL_GET_MEM_CTX(ndr);
1434 NDR_PULL_SET_MEM_CTX(ndr, r->out.last_changed_time, 0);
1435 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, r->out.last_changed_time));
1436 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_last_changed_time_0, 0);
1438 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
1440 return NDR_ERR_SUCCESS;
1443 _PUBLIC_ void ndr_print_winreg_EnumKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_EnumKey *r)
1445 ndr_print_struct(ndr, name, "winreg_EnumKey");
1446 ndr->depth++;
1447 if (flags & NDR_SET_VALUES) {
1448 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1450 if (flags & NDR_IN) {
1451 ndr_print_struct(ndr, "in", "winreg_EnumKey");
1452 ndr->depth++;
1453 ndr_print_ptr(ndr, "handle", r->in.handle);
1454 ndr->depth++;
1455 ndr_print_policy_handle(ndr, "handle", r->in.handle);
1456 ndr->depth--;
1457 ndr_print_uint32(ndr, "enum_index", r->in.enum_index);
1458 ndr_print_ptr(ndr, "name", r->in.name);
1459 ndr->depth++;
1460 ndr_print_winreg_StringBuf(ndr, "name", r->in.name);
1461 ndr->depth--;
1462 ndr_print_ptr(ndr, "keyclass", r->in.keyclass);
1463 ndr->depth++;
1464 if (r->in.keyclass) {
1465 ndr_print_winreg_StringBuf(ndr, "keyclass", r->in.keyclass);
1467 ndr->depth--;
1468 ndr_print_ptr(ndr, "last_changed_time", r->in.last_changed_time);
1469 ndr->depth++;
1470 if (r->in.last_changed_time) {
1471 ndr_print_NTTIME(ndr, "last_changed_time", *r->in.last_changed_time);
1473 ndr->depth--;
1474 ndr->depth--;
1476 if (flags & NDR_OUT) {
1477 ndr_print_struct(ndr, "out", "winreg_EnumKey");
1478 ndr->depth++;
1479 ndr_print_ptr(ndr, "name", r->out.name);
1480 ndr->depth++;
1481 ndr_print_winreg_StringBuf(ndr, "name", r->out.name);
1482 ndr->depth--;
1483 ndr_print_ptr(ndr, "keyclass", r->out.keyclass);
1484 ndr->depth++;
1485 if (r->out.keyclass) {
1486 ndr_print_winreg_StringBuf(ndr, "keyclass", r->out.keyclass);
1488 ndr->depth--;
1489 ndr_print_ptr(ndr, "last_changed_time", r->out.last_changed_time);
1490 ndr->depth++;
1491 if (r->out.last_changed_time) {
1492 ndr_print_NTTIME(ndr, "last_changed_time", *r->out.last_changed_time);
1494 ndr->depth--;
1495 ndr_print_WERROR(ndr, "result", r->out.result);
1496 ndr->depth--;
1498 ndr->depth--;
1501 _PUBLIC_ enum ndr_err_code ndr_push_winreg_EnumValue(struct ndr_push *ndr, int flags, const struct winreg_EnumValue *r)
1503 if (flags & NDR_IN) {
1504 if (r->in.handle == NULL) {
1505 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1507 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
1508 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.enum_index));
1509 if (r->in.name == NULL) {
1510 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1512 NDR_CHECK(ndr_push_winreg_ValNameBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.name));
1513 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.type));
1514 if (r->in.type) {
1515 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->in.type));
1517 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.value));
1518 if (r->in.value) {
1519 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, *r->in.size));
1520 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
1521 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, *r->in.length));
1522 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.value, *r->in.length));
1524 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.size));
1525 if (r->in.size) {
1526 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.size));
1528 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.length));
1529 if (r->in.length) {
1530 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.length));
1533 if (flags & NDR_OUT) {
1534 if (r->out.name == NULL) {
1535 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1537 NDR_CHECK(ndr_push_winreg_ValNameBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.name));
1538 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.type));
1539 if (r->out.type) {
1540 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
1542 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.value));
1543 if (r->out.value) {
1544 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, *r->out.size));
1545 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
1546 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, *r->out.length));
1547 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.value, *r->out.length));
1549 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.size));
1550 if (r->out.size) {
1551 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.size));
1553 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.length));
1554 if (r->out.length) {
1555 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.length));
1557 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
1559 return NDR_ERR_SUCCESS;
1562 _PUBLIC_ enum ndr_err_code ndr_pull_winreg_EnumValue(struct ndr_pull *ndr, int flags, struct winreg_EnumValue *r)
1564 uint32_t _ptr_type;
1565 uint32_t _ptr_value;
1566 uint32_t _ptr_size;
1567 uint32_t _ptr_length;
1568 TALLOC_CTX *_mem_save_handle_0;
1569 TALLOC_CTX *_mem_save_name_0;
1570 TALLOC_CTX *_mem_save_type_0;
1571 TALLOC_CTX *_mem_save_value_0;
1572 TALLOC_CTX *_mem_save_size_0;
1573 TALLOC_CTX *_mem_save_length_0;
1574 if (flags & NDR_IN) {
1575 ZERO_STRUCT(r->out);
1577 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1578 NDR_PULL_ALLOC(ndr, r->in.handle);
1580 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
1581 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
1582 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
1583 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
1584 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.enum_index));
1585 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1586 NDR_PULL_ALLOC(ndr, r->in.name);
1588 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
1589 NDR_PULL_SET_MEM_CTX(ndr, r->in.name, LIBNDR_FLAG_REF_ALLOC);
1590 NDR_CHECK(ndr_pull_winreg_ValNameBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.name));
1591 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, LIBNDR_FLAG_REF_ALLOC);
1592 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_type));
1593 if (_ptr_type) {
1594 NDR_PULL_ALLOC(ndr, r->in.type);
1595 } else {
1596 r->in.type = NULL;
1598 if (r->in.type) {
1599 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
1600 NDR_PULL_SET_MEM_CTX(ndr, r->in.type, 0);
1601 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->in.type));
1602 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, 0);
1604 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_value));
1605 if (_ptr_value) {
1606 NDR_PULL_ALLOC(ndr, r->in.value);
1607 } else {
1608 r->in.value = NULL;
1610 if (r->in.value) {
1611 _mem_save_value_0 = NDR_PULL_GET_MEM_CTX(ndr);
1612 NDR_PULL_SET_MEM_CTX(ndr, r->in.value, 0);
1613 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value));
1614 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value));
1615 if (ndr_get_array_length(ndr, &r->in.value) > ndr_get_array_size(ndr, &r->in.value)) {
1616 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));
1618 NDR_PULL_ALLOC_N(ndr, r->in.value, ndr_get_array_size(ndr, &r->in.value));
1619 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.value, ndr_get_array_length(ndr, &r->in.value)));
1620 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_0, 0);
1622 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_size));
1623 if (_ptr_size) {
1624 NDR_PULL_ALLOC(ndr, r->in.size);
1625 } else {
1626 r->in.size = NULL;
1628 if (r->in.size) {
1629 _mem_save_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
1630 NDR_PULL_SET_MEM_CTX(ndr, r->in.size, 0);
1631 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.size));
1632 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_size_0, 0);
1634 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_length));
1635 if (_ptr_length) {
1636 NDR_PULL_ALLOC(ndr, r->in.length);
1637 } else {
1638 r->in.length = NULL;
1640 if (r->in.length) {
1641 _mem_save_length_0 = NDR_PULL_GET_MEM_CTX(ndr);
1642 NDR_PULL_SET_MEM_CTX(ndr, r->in.length, 0);
1643 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.length));
1644 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_length_0, 0);
1646 NDR_PULL_ALLOC(ndr, r->out.name);
1647 *r->out.name = *r->in.name;
1648 if (r->in.value) {
1649 if (r->in.size == NULL) return ndr_pull_error(ndr, NDR_ERR_INVALID_POINTER, "NULL Pointer for size_is()");
1650 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.value, *r->in.size));
1652 if (r->in.value) {
1653 if (r->in.length == NULL) return ndr_pull_error(ndr, NDR_ERR_INVALID_POINTER, "NULL Pointer for length_is()");
1654 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->in.value, *r->in.length));
1657 if (flags & NDR_OUT) {
1658 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1659 NDR_PULL_ALLOC(ndr, r->out.name);
1661 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
1662 NDR_PULL_SET_MEM_CTX(ndr, r->out.name, LIBNDR_FLAG_REF_ALLOC);
1663 NDR_CHECK(ndr_pull_winreg_ValNameBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.name));
1664 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, LIBNDR_FLAG_REF_ALLOC);
1665 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_type));
1666 if (_ptr_type) {
1667 NDR_PULL_ALLOC(ndr, r->out.type);
1668 } else {
1669 r->out.type = NULL;
1671 if (r->out.type) {
1672 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
1673 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, 0);
1674 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
1675 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, 0);
1677 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_value));
1678 if (_ptr_value) {
1679 NDR_PULL_ALLOC(ndr, r->out.value);
1680 } else {
1681 r->out.value = NULL;
1683 if (r->out.value) {
1684 _mem_save_value_0 = NDR_PULL_GET_MEM_CTX(ndr);
1685 NDR_PULL_SET_MEM_CTX(ndr, r->out.value, 0);
1686 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.value));
1687 NDR_CHECK(ndr_pull_array_length(ndr, &r->out.value));
1688 if (ndr_get_array_length(ndr, &r->out.value) > ndr_get_array_size(ndr, &r->out.value)) {
1689 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));
1691 NDR_PULL_ALLOC_N(ndr, r->out.value, ndr_get_array_size(ndr, &r->out.value));
1692 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.value, ndr_get_array_length(ndr, &r->out.value)));
1693 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_0, 0);
1695 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_size));
1696 if (_ptr_size) {
1697 NDR_PULL_ALLOC(ndr, r->out.size);
1698 } else {
1699 r->out.size = NULL;
1701 if (r->out.size) {
1702 _mem_save_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
1703 NDR_PULL_SET_MEM_CTX(ndr, r->out.size, 0);
1704 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.size));
1705 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_size_0, 0);
1707 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_length));
1708 if (_ptr_length) {
1709 NDR_PULL_ALLOC(ndr, r->out.length);
1710 } else {
1711 r->out.length = NULL;
1713 if (r->out.length) {
1714 _mem_save_length_0 = NDR_PULL_GET_MEM_CTX(ndr);
1715 NDR_PULL_SET_MEM_CTX(ndr, r->out.length, 0);
1716 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.length));
1717 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_length_0, 0);
1719 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
1720 if (r->out.value) {
1721 if (r->out.size == NULL) return ndr_pull_error(ndr, NDR_ERR_INVALID_POINTER, "NULL Pointer for size_is()");
1722 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.value, *r->out.size));
1724 if (r->out.value) {
1725 if (r->out.length == NULL) return ndr_pull_error(ndr, NDR_ERR_INVALID_POINTER, "NULL Pointer for length_is()");
1726 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->out.value, *r->out.length));
1729 return NDR_ERR_SUCCESS;
1732 _PUBLIC_ void ndr_print_winreg_EnumValue(struct ndr_print *ndr, const char *name, int flags, const struct winreg_EnumValue *r)
1734 ndr_print_struct(ndr, name, "winreg_EnumValue");
1735 ndr->depth++;
1736 if (flags & NDR_SET_VALUES) {
1737 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1739 if (flags & NDR_IN) {
1740 ndr_print_struct(ndr, "in", "winreg_EnumValue");
1741 ndr->depth++;
1742 ndr_print_ptr(ndr, "handle", r->in.handle);
1743 ndr->depth++;
1744 ndr_print_policy_handle(ndr, "handle", r->in.handle);
1745 ndr->depth--;
1746 ndr_print_uint32(ndr, "enum_index", r->in.enum_index);
1747 ndr_print_ptr(ndr, "name", r->in.name);
1748 ndr->depth++;
1749 ndr_print_winreg_ValNameBuf(ndr, "name", r->in.name);
1750 ndr->depth--;
1751 ndr_print_ptr(ndr, "type", r->in.type);
1752 ndr->depth++;
1753 if (r->in.type) {
1754 ndr_print_winreg_Type(ndr, "type", *r->in.type);
1756 ndr->depth--;
1757 ndr_print_ptr(ndr, "value", r->in.value);
1758 ndr->depth++;
1759 if (r->in.value) {
1760 if (r->in.length == NULL) return;
1761 ndr_print_array_uint8(ndr, "value", r->in.value, *r->in.length);
1763 ndr->depth--;
1764 ndr_print_ptr(ndr, "size", r->in.size);
1765 ndr->depth++;
1766 if (r->in.size) {
1767 ndr_print_uint32(ndr, "size", *r->in.size);
1769 ndr->depth--;
1770 ndr_print_ptr(ndr, "length", r->in.length);
1771 ndr->depth++;
1772 if (r->in.length) {
1773 ndr_print_uint32(ndr, "length", *r->in.length);
1775 ndr->depth--;
1776 ndr->depth--;
1778 if (flags & NDR_OUT) {
1779 ndr_print_struct(ndr, "out", "winreg_EnumValue");
1780 ndr->depth++;
1781 ndr_print_ptr(ndr, "name", r->out.name);
1782 ndr->depth++;
1783 ndr_print_winreg_ValNameBuf(ndr, "name", r->out.name);
1784 ndr->depth--;
1785 ndr_print_ptr(ndr, "type", r->out.type);
1786 ndr->depth++;
1787 if (r->out.type) {
1788 ndr_print_winreg_Type(ndr, "type", *r->out.type);
1790 ndr->depth--;
1791 ndr_print_ptr(ndr, "value", r->out.value);
1792 ndr->depth++;
1793 if (r->out.value) {
1794 if (r->out.length == NULL) return;
1795 ndr_print_array_uint8(ndr, "value", r->out.value, *r->out.length);
1797 ndr->depth--;
1798 ndr_print_ptr(ndr, "size", r->out.size);
1799 ndr->depth++;
1800 if (r->out.size) {
1801 ndr_print_uint32(ndr, "size", *r->out.size);
1803 ndr->depth--;
1804 ndr_print_ptr(ndr, "length", r->out.length);
1805 ndr->depth++;
1806 if (r->out.length) {
1807 ndr_print_uint32(ndr, "length", *r->out.length);
1809 ndr->depth--;
1810 ndr_print_WERROR(ndr, "result", r->out.result);
1811 ndr->depth--;
1813 ndr->depth--;
1816 _PUBLIC_ enum ndr_err_code ndr_push_winreg_FlushKey(struct ndr_push *ndr, int flags, const struct winreg_FlushKey *r)
1818 if (flags & NDR_IN) {
1819 if (r->in.handle == NULL) {
1820 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1822 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
1824 if (flags & NDR_OUT) {
1825 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
1827 return NDR_ERR_SUCCESS;
1830 _PUBLIC_ enum ndr_err_code ndr_pull_winreg_FlushKey(struct ndr_pull *ndr, int flags, struct winreg_FlushKey *r)
1832 TALLOC_CTX *_mem_save_handle_0;
1833 if (flags & NDR_IN) {
1834 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1835 NDR_PULL_ALLOC(ndr, r->in.handle);
1837 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
1838 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
1839 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
1840 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
1842 if (flags & NDR_OUT) {
1843 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
1845 return NDR_ERR_SUCCESS;
1848 _PUBLIC_ void ndr_print_winreg_FlushKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_FlushKey *r)
1850 ndr_print_struct(ndr, name, "winreg_FlushKey");
1851 ndr->depth++;
1852 if (flags & NDR_SET_VALUES) {
1853 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1855 if (flags & NDR_IN) {
1856 ndr_print_struct(ndr, "in", "winreg_FlushKey");
1857 ndr->depth++;
1858 ndr_print_ptr(ndr, "handle", r->in.handle);
1859 ndr->depth++;
1860 ndr_print_policy_handle(ndr, "handle", r->in.handle);
1861 ndr->depth--;
1862 ndr->depth--;
1864 if (flags & NDR_OUT) {
1865 ndr_print_struct(ndr, "out", "winreg_FlushKey");
1866 ndr->depth++;
1867 ndr_print_WERROR(ndr, "result", r->out.result);
1868 ndr->depth--;
1870 ndr->depth--;
1873 _PUBLIC_ enum ndr_err_code ndr_push_winreg_GetKeySecurity(struct ndr_push *ndr, int flags, const struct winreg_GetKeySecurity *r)
1875 if (flags & NDR_IN) {
1876 if (r->in.handle == NULL) {
1877 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1879 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
1880 NDR_CHECK(ndr_push_security_secinfo(ndr, NDR_SCALARS, r->in.sec_info));
1881 if (r->in.sd == NULL) {
1882 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1884 NDR_CHECK(ndr_push_KeySecurityData(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sd));
1886 if (flags & NDR_OUT) {
1887 if (r->out.sd == NULL) {
1888 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1890 NDR_CHECK(ndr_push_KeySecurityData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.sd));
1891 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
1893 return NDR_ERR_SUCCESS;
1896 _PUBLIC_ enum ndr_err_code ndr_pull_winreg_GetKeySecurity(struct ndr_pull *ndr, int flags, struct winreg_GetKeySecurity *r)
1898 TALLOC_CTX *_mem_save_handle_0;
1899 TALLOC_CTX *_mem_save_sd_0;
1900 if (flags & NDR_IN) {
1901 ZERO_STRUCT(r->out);
1903 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1904 NDR_PULL_ALLOC(ndr, r->in.handle);
1906 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
1907 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
1908 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
1909 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
1910 NDR_CHECK(ndr_pull_security_secinfo(ndr, NDR_SCALARS, &r->in.sec_info));
1911 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1912 NDR_PULL_ALLOC(ndr, r->in.sd);
1914 _mem_save_sd_0 = NDR_PULL_GET_MEM_CTX(ndr);
1915 NDR_PULL_SET_MEM_CTX(ndr, r->in.sd, LIBNDR_FLAG_REF_ALLOC);
1916 NDR_CHECK(ndr_pull_KeySecurityData(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sd));
1917 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sd_0, LIBNDR_FLAG_REF_ALLOC);
1918 NDR_PULL_ALLOC(ndr, r->out.sd);
1919 *r->out.sd = *r->in.sd;
1921 if (flags & NDR_OUT) {
1922 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1923 NDR_PULL_ALLOC(ndr, r->out.sd);
1925 _mem_save_sd_0 = NDR_PULL_GET_MEM_CTX(ndr);
1926 NDR_PULL_SET_MEM_CTX(ndr, r->out.sd, LIBNDR_FLAG_REF_ALLOC);
1927 NDR_CHECK(ndr_pull_KeySecurityData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.sd));
1928 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sd_0, LIBNDR_FLAG_REF_ALLOC);
1929 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
1931 return NDR_ERR_SUCCESS;
1934 _PUBLIC_ void ndr_print_winreg_GetKeySecurity(struct ndr_print *ndr, const char *name, int flags, const struct winreg_GetKeySecurity *r)
1936 ndr_print_struct(ndr, name, "winreg_GetKeySecurity");
1937 ndr->depth++;
1938 if (flags & NDR_SET_VALUES) {
1939 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1941 if (flags & NDR_IN) {
1942 ndr_print_struct(ndr, "in", "winreg_GetKeySecurity");
1943 ndr->depth++;
1944 ndr_print_ptr(ndr, "handle", r->in.handle);
1945 ndr->depth++;
1946 ndr_print_policy_handle(ndr, "handle", r->in.handle);
1947 ndr->depth--;
1948 ndr_print_security_secinfo(ndr, "sec_info", r->in.sec_info);
1949 ndr_print_ptr(ndr, "sd", r->in.sd);
1950 ndr->depth++;
1951 ndr_print_KeySecurityData(ndr, "sd", r->in.sd);
1952 ndr->depth--;
1953 ndr->depth--;
1955 if (flags & NDR_OUT) {
1956 ndr_print_struct(ndr, "out", "winreg_GetKeySecurity");
1957 ndr->depth++;
1958 ndr_print_ptr(ndr, "sd", r->out.sd);
1959 ndr->depth++;
1960 ndr_print_KeySecurityData(ndr, "sd", r->out.sd);
1961 ndr->depth--;
1962 ndr_print_WERROR(ndr, "result", r->out.result);
1963 ndr->depth--;
1965 ndr->depth--;
1968 static enum ndr_err_code ndr_push_winreg_LoadKey(struct ndr_push *ndr, int flags, const struct winreg_LoadKey *r)
1970 if (flags & NDR_IN) {
1971 if (r->in.handle == NULL) {
1972 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1974 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
1975 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.keyname));
1976 if (r->in.keyname) {
1977 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.keyname));
1979 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.filename));
1980 if (r->in.filename) {
1981 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.filename));
1984 if (flags & NDR_OUT) {
1985 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
1987 return NDR_ERR_SUCCESS;
1990 static enum ndr_err_code ndr_pull_winreg_LoadKey(struct ndr_pull *ndr, int flags, struct winreg_LoadKey *r)
1992 uint32_t _ptr_keyname;
1993 uint32_t _ptr_filename;
1994 TALLOC_CTX *_mem_save_handle_0;
1995 TALLOC_CTX *_mem_save_keyname_0;
1996 TALLOC_CTX *_mem_save_filename_0;
1997 if (flags & NDR_IN) {
1998 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1999 NDR_PULL_ALLOC(ndr, r->in.handle);
2001 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
2002 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
2003 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
2004 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
2005 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_keyname));
2006 if (_ptr_keyname) {
2007 NDR_PULL_ALLOC(ndr, r->in.keyname);
2008 } else {
2009 r->in.keyname = NULL;
2011 if (r->in.keyname) {
2012 _mem_save_keyname_0 = NDR_PULL_GET_MEM_CTX(ndr);
2013 NDR_PULL_SET_MEM_CTX(ndr, r->in.keyname, 0);
2014 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.keyname));
2015 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_keyname_0, 0);
2017 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_filename));
2018 if (_ptr_filename) {
2019 NDR_PULL_ALLOC(ndr, r->in.filename);
2020 } else {
2021 r->in.filename = NULL;
2023 if (r->in.filename) {
2024 _mem_save_filename_0 = NDR_PULL_GET_MEM_CTX(ndr);
2025 NDR_PULL_SET_MEM_CTX(ndr, r->in.filename, 0);
2026 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.filename));
2027 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_filename_0, 0);
2030 if (flags & NDR_OUT) {
2031 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
2033 return NDR_ERR_SUCCESS;
2036 _PUBLIC_ void ndr_print_winreg_LoadKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_LoadKey *r)
2038 ndr_print_struct(ndr, name, "winreg_LoadKey");
2039 ndr->depth++;
2040 if (flags & NDR_SET_VALUES) {
2041 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2043 if (flags & NDR_IN) {
2044 ndr_print_struct(ndr, "in", "winreg_LoadKey");
2045 ndr->depth++;
2046 ndr_print_ptr(ndr, "handle", r->in.handle);
2047 ndr->depth++;
2048 ndr_print_policy_handle(ndr, "handle", r->in.handle);
2049 ndr->depth--;
2050 ndr_print_ptr(ndr, "keyname", r->in.keyname);
2051 ndr->depth++;
2052 if (r->in.keyname) {
2053 ndr_print_winreg_String(ndr, "keyname", r->in.keyname);
2055 ndr->depth--;
2056 ndr_print_ptr(ndr, "filename", r->in.filename);
2057 ndr->depth++;
2058 if (r->in.filename) {
2059 ndr_print_winreg_String(ndr, "filename", r->in.filename);
2061 ndr->depth--;
2062 ndr->depth--;
2064 if (flags & NDR_OUT) {
2065 ndr_print_struct(ndr, "out", "winreg_LoadKey");
2066 ndr->depth++;
2067 ndr_print_WERROR(ndr, "result", r->out.result);
2068 ndr->depth--;
2070 ndr->depth--;
2073 _PUBLIC_ enum ndr_err_code ndr_push_winreg_NotifyChangeKeyValue(struct ndr_push *ndr, int flags, const struct winreg_NotifyChangeKeyValue *r)
2075 if (flags & NDR_IN) {
2076 if (r->in.handle == NULL) {
2077 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2079 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
2080 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->in.watch_subtree));
2081 NDR_CHECK(ndr_push_winreg_NotifyChangeType(ndr, NDR_SCALARS, r->in.notify_filter));
2082 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown));
2083 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.string1));
2084 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.string2));
2085 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown2));
2087 if (flags & NDR_OUT) {
2088 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
2090 return NDR_ERR_SUCCESS;
2093 _PUBLIC_ enum ndr_err_code ndr_pull_winreg_NotifyChangeKeyValue(struct ndr_pull *ndr, int flags, struct winreg_NotifyChangeKeyValue *r)
2095 TALLOC_CTX *_mem_save_handle_0;
2096 if (flags & NDR_IN) {
2097 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2098 NDR_PULL_ALLOC(ndr, r->in.handle);
2100 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
2101 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
2102 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
2103 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
2104 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->in.watch_subtree));
2105 NDR_CHECK(ndr_pull_winreg_NotifyChangeType(ndr, NDR_SCALARS, &r->in.notify_filter));
2106 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown));
2107 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.string1));
2108 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.string2));
2109 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown2));
2111 if (flags & NDR_OUT) {
2112 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
2114 return NDR_ERR_SUCCESS;
2117 _PUBLIC_ void ndr_print_winreg_NotifyChangeKeyValue(struct ndr_print *ndr, const char *name, int flags, const struct winreg_NotifyChangeKeyValue *r)
2119 ndr_print_struct(ndr, name, "winreg_NotifyChangeKeyValue");
2120 ndr->depth++;
2121 if (flags & NDR_SET_VALUES) {
2122 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2124 if (flags & NDR_IN) {
2125 ndr_print_struct(ndr, "in", "winreg_NotifyChangeKeyValue");
2126 ndr->depth++;
2127 ndr_print_ptr(ndr, "handle", r->in.handle);
2128 ndr->depth++;
2129 ndr_print_policy_handle(ndr, "handle", r->in.handle);
2130 ndr->depth--;
2131 ndr_print_uint8(ndr, "watch_subtree", r->in.watch_subtree);
2132 ndr_print_winreg_NotifyChangeType(ndr, "notify_filter", r->in.notify_filter);
2133 ndr_print_uint32(ndr, "unknown", r->in.unknown);
2134 ndr_print_winreg_String(ndr, "string1", &r->in.string1);
2135 ndr_print_winreg_String(ndr, "string2", &r->in.string2);
2136 ndr_print_uint32(ndr, "unknown2", r->in.unknown2);
2137 ndr->depth--;
2139 if (flags & NDR_OUT) {
2140 ndr_print_struct(ndr, "out", "winreg_NotifyChangeKeyValue");
2141 ndr->depth++;
2142 ndr_print_WERROR(ndr, "result", r->out.result);
2143 ndr->depth--;
2145 ndr->depth--;
2148 _PUBLIC_ enum ndr_err_code ndr_push_winreg_OpenKey(struct ndr_push *ndr, int flags, const struct winreg_OpenKey *r)
2150 if (flags & NDR_IN) {
2151 if (r->in.parent_handle == NULL) {
2152 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2154 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.parent_handle));
2155 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.keyname));
2156 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown));
2157 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
2159 if (flags & NDR_OUT) {
2160 if (r->out.handle == NULL) {
2161 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2163 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
2164 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
2166 return NDR_ERR_SUCCESS;
2169 _PUBLIC_ enum ndr_err_code ndr_pull_winreg_OpenKey(struct ndr_pull *ndr, int flags, struct winreg_OpenKey *r)
2171 TALLOC_CTX *_mem_save_parent_handle_0;
2172 TALLOC_CTX *_mem_save_handle_0;
2173 if (flags & NDR_IN) {
2174 ZERO_STRUCT(r->out);
2176 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2177 NDR_PULL_ALLOC(ndr, r->in.parent_handle);
2179 _mem_save_parent_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
2180 NDR_PULL_SET_MEM_CTX(ndr, r->in.parent_handle, LIBNDR_FLAG_REF_ALLOC);
2181 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.parent_handle));
2182 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parent_handle_0, LIBNDR_FLAG_REF_ALLOC);
2183 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.keyname));
2184 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown));
2185 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
2186 NDR_PULL_ALLOC(ndr, r->out.handle);
2187 ZERO_STRUCTP(r->out.handle);
2189 if (flags & NDR_OUT) {
2190 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2191 NDR_PULL_ALLOC(ndr, r->out.handle);
2193 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
2194 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
2195 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
2196 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
2197 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
2199 return NDR_ERR_SUCCESS;
2202 _PUBLIC_ void ndr_print_winreg_OpenKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenKey *r)
2204 ndr_print_struct(ndr, name, "winreg_OpenKey");
2205 ndr->depth++;
2206 if (flags & NDR_SET_VALUES) {
2207 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2209 if (flags & NDR_IN) {
2210 ndr_print_struct(ndr, "in", "winreg_OpenKey");
2211 ndr->depth++;
2212 ndr_print_ptr(ndr, "parent_handle", r->in.parent_handle);
2213 ndr->depth++;
2214 ndr_print_policy_handle(ndr, "parent_handle", r->in.parent_handle);
2215 ndr->depth--;
2216 ndr_print_winreg_String(ndr, "keyname", &r->in.keyname);
2217 ndr_print_uint32(ndr, "unknown", r->in.unknown);
2218 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
2219 ndr->depth--;
2221 if (flags & NDR_OUT) {
2222 ndr_print_struct(ndr, "out", "winreg_OpenKey");
2223 ndr->depth++;
2224 ndr_print_ptr(ndr, "handle", r->out.handle);
2225 ndr->depth++;
2226 ndr_print_policy_handle(ndr, "handle", r->out.handle);
2227 ndr->depth--;
2228 ndr_print_WERROR(ndr, "result", r->out.result);
2229 ndr->depth--;
2231 ndr->depth--;
2234 _PUBLIC_ enum ndr_err_code ndr_push_winreg_QueryInfoKey(struct ndr_push *ndr, int flags, const struct winreg_QueryInfoKey *r)
2236 if (flags & NDR_IN) {
2237 if (r->in.handle == NULL) {
2238 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2240 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
2241 if (r->in.classname == NULL) {
2242 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2244 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.classname));
2246 if (flags & NDR_OUT) {
2247 if (r->out.classname == NULL) {
2248 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2250 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.classname));
2251 if (r->out.num_subkeys == NULL) {
2252 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2254 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.num_subkeys));
2255 if (r->out.max_subkeylen == NULL) {
2256 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2258 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.max_subkeylen));
2259 if (r->out.max_classlen == NULL) {
2260 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2262 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.max_classlen));
2263 if (r->out.num_values == NULL) {
2264 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2266 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.num_values));
2267 if (r->out.max_valnamelen == NULL) {
2268 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2270 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.max_valnamelen));
2271 if (r->out.max_valbufsize == NULL) {
2272 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2274 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.max_valbufsize));
2275 if (r->out.secdescsize == NULL) {
2276 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2278 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.secdescsize));
2279 if (r->out.last_changed_time == NULL) {
2280 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2282 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, *r->out.last_changed_time));
2283 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
2285 return NDR_ERR_SUCCESS;
2288 _PUBLIC_ enum ndr_err_code ndr_pull_winreg_QueryInfoKey(struct ndr_pull *ndr, int flags, struct winreg_QueryInfoKey *r)
2290 TALLOC_CTX *_mem_save_handle_0;
2291 TALLOC_CTX *_mem_save_classname_0;
2292 TALLOC_CTX *_mem_save_num_subkeys_0;
2293 TALLOC_CTX *_mem_save_max_subkeylen_0;
2294 TALLOC_CTX *_mem_save_max_classlen_0;
2295 TALLOC_CTX *_mem_save_num_values_0;
2296 TALLOC_CTX *_mem_save_max_valnamelen_0;
2297 TALLOC_CTX *_mem_save_max_valbufsize_0;
2298 TALLOC_CTX *_mem_save_secdescsize_0;
2299 TALLOC_CTX *_mem_save_last_changed_time_0;
2300 if (flags & NDR_IN) {
2301 ZERO_STRUCT(r->out);
2303 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2304 NDR_PULL_ALLOC(ndr, r->in.handle);
2306 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
2307 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
2308 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
2309 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
2310 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2311 NDR_PULL_ALLOC(ndr, r->in.classname);
2313 _mem_save_classname_0 = NDR_PULL_GET_MEM_CTX(ndr);
2314 NDR_PULL_SET_MEM_CTX(ndr, r->in.classname, LIBNDR_FLAG_REF_ALLOC);
2315 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.classname));
2316 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_classname_0, LIBNDR_FLAG_REF_ALLOC);
2317 NDR_PULL_ALLOC(ndr, r->out.classname);
2318 *r->out.classname = *r->in.classname;
2319 NDR_PULL_ALLOC(ndr, r->out.num_subkeys);
2320 ZERO_STRUCTP(r->out.num_subkeys);
2321 NDR_PULL_ALLOC(ndr, r->out.max_subkeylen);
2322 ZERO_STRUCTP(r->out.max_subkeylen);
2323 NDR_PULL_ALLOC(ndr, r->out.max_classlen);
2324 ZERO_STRUCTP(r->out.max_classlen);
2325 NDR_PULL_ALLOC(ndr, r->out.num_values);
2326 ZERO_STRUCTP(r->out.num_values);
2327 NDR_PULL_ALLOC(ndr, r->out.max_valnamelen);
2328 ZERO_STRUCTP(r->out.max_valnamelen);
2329 NDR_PULL_ALLOC(ndr, r->out.max_valbufsize);
2330 ZERO_STRUCTP(r->out.max_valbufsize);
2331 NDR_PULL_ALLOC(ndr, r->out.secdescsize);
2332 ZERO_STRUCTP(r->out.secdescsize);
2333 NDR_PULL_ALLOC(ndr, r->out.last_changed_time);
2334 ZERO_STRUCTP(r->out.last_changed_time);
2336 if (flags & NDR_OUT) {
2337 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2338 NDR_PULL_ALLOC(ndr, r->out.classname);
2340 _mem_save_classname_0 = NDR_PULL_GET_MEM_CTX(ndr);
2341 NDR_PULL_SET_MEM_CTX(ndr, r->out.classname, LIBNDR_FLAG_REF_ALLOC);
2342 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.classname));
2343 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_classname_0, LIBNDR_FLAG_REF_ALLOC);
2344 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2345 NDR_PULL_ALLOC(ndr, r->out.num_subkeys);
2347 _mem_save_num_subkeys_0 = NDR_PULL_GET_MEM_CTX(ndr);
2348 NDR_PULL_SET_MEM_CTX(ndr, r->out.num_subkeys, LIBNDR_FLAG_REF_ALLOC);
2349 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.num_subkeys));
2350 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_num_subkeys_0, LIBNDR_FLAG_REF_ALLOC);
2351 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2352 NDR_PULL_ALLOC(ndr, r->out.max_subkeylen);
2354 _mem_save_max_subkeylen_0 = NDR_PULL_GET_MEM_CTX(ndr);
2355 NDR_PULL_SET_MEM_CTX(ndr, r->out.max_subkeylen, LIBNDR_FLAG_REF_ALLOC);
2356 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.max_subkeylen));
2357 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_max_subkeylen_0, LIBNDR_FLAG_REF_ALLOC);
2358 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2359 NDR_PULL_ALLOC(ndr, r->out.max_classlen);
2361 _mem_save_max_classlen_0 = NDR_PULL_GET_MEM_CTX(ndr);
2362 NDR_PULL_SET_MEM_CTX(ndr, r->out.max_classlen, LIBNDR_FLAG_REF_ALLOC);
2363 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.max_classlen));
2364 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_max_classlen_0, LIBNDR_FLAG_REF_ALLOC);
2365 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2366 NDR_PULL_ALLOC(ndr, r->out.num_values);
2368 _mem_save_num_values_0 = NDR_PULL_GET_MEM_CTX(ndr);
2369 NDR_PULL_SET_MEM_CTX(ndr, r->out.num_values, LIBNDR_FLAG_REF_ALLOC);
2370 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.num_values));
2371 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_num_values_0, LIBNDR_FLAG_REF_ALLOC);
2372 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2373 NDR_PULL_ALLOC(ndr, r->out.max_valnamelen);
2375 _mem_save_max_valnamelen_0 = NDR_PULL_GET_MEM_CTX(ndr);
2376 NDR_PULL_SET_MEM_CTX(ndr, r->out.max_valnamelen, LIBNDR_FLAG_REF_ALLOC);
2377 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.max_valnamelen));
2378 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_max_valnamelen_0, LIBNDR_FLAG_REF_ALLOC);
2379 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2380 NDR_PULL_ALLOC(ndr, r->out.max_valbufsize);
2382 _mem_save_max_valbufsize_0 = NDR_PULL_GET_MEM_CTX(ndr);
2383 NDR_PULL_SET_MEM_CTX(ndr, r->out.max_valbufsize, LIBNDR_FLAG_REF_ALLOC);
2384 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.max_valbufsize));
2385 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_max_valbufsize_0, LIBNDR_FLAG_REF_ALLOC);
2386 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2387 NDR_PULL_ALLOC(ndr, r->out.secdescsize);
2389 _mem_save_secdescsize_0 = NDR_PULL_GET_MEM_CTX(ndr);
2390 NDR_PULL_SET_MEM_CTX(ndr, r->out.secdescsize, LIBNDR_FLAG_REF_ALLOC);
2391 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.secdescsize));
2392 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdescsize_0, LIBNDR_FLAG_REF_ALLOC);
2393 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2394 NDR_PULL_ALLOC(ndr, r->out.last_changed_time);
2396 _mem_save_last_changed_time_0 = NDR_PULL_GET_MEM_CTX(ndr);
2397 NDR_PULL_SET_MEM_CTX(ndr, r->out.last_changed_time, LIBNDR_FLAG_REF_ALLOC);
2398 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, r->out.last_changed_time));
2399 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_last_changed_time_0, LIBNDR_FLAG_REF_ALLOC);
2400 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
2402 return NDR_ERR_SUCCESS;
2405 _PUBLIC_ void ndr_print_winreg_QueryInfoKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_QueryInfoKey *r)
2407 ndr_print_struct(ndr, name, "winreg_QueryInfoKey");
2408 ndr->depth++;
2409 if (flags & NDR_SET_VALUES) {
2410 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2412 if (flags & NDR_IN) {
2413 ndr_print_struct(ndr, "in", "winreg_QueryInfoKey");
2414 ndr->depth++;
2415 ndr_print_ptr(ndr, "handle", r->in.handle);
2416 ndr->depth++;
2417 ndr_print_policy_handle(ndr, "handle", r->in.handle);
2418 ndr->depth--;
2419 ndr_print_ptr(ndr, "classname", r->in.classname);
2420 ndr->depth++;
2421 ndr_print_winreg_String(ndr, "classname", r->in.classname);
2422 ndr->depth--;
2423 ndr->depth--;
2425 if (flags & NDR_OUT) {
2426 ndr_print_struct(ndr, "out", "winreg_QueryInfoKey");
2427 ndr->depth++;
2428 ndr_print_ptr(ndr, "classname", r->out.classname);
2429 ndr->depth++;
2430 ndr_print_winreg_String(ndr, "classname", r->out.classname);
2431 ndr->depth--;
2432 ndr_print_ptr(ndr, "num_subkeys", r->out.num_subkeys);
2433 ndr->depth++;
2434 ndr_print_uint32(ndr, "num_subkeys", *r->out.num_subkeys);
2435 ndr->depth--;
2436 ndr_print_ptr(ndr, "max_subkeylen", r->out.max_subkeylen);
2437 ndr->depth++;
2438 ndr_print_uint32(ndr, "max_subkeylen", *r->out.max_subkeylen);
2439 ndr->depth--;
2440 ndr_print_ptr(ndr, "max_classlen", r->out.max_classlen);
2441 ndr->depth++;
2442 ndr_print_uint32(ndr, "max_classlen", *r->out.max_classlen);
2443 ndr->depth--;
2444 ndr_print_ptr(ndr, "num_values", r->out.num_values);
2445 ndr->depth++;
2446 ndr_print_uint32(ndr, "num_values", *r->out.num_values);
2447 ndr->depth--;
2448 ndr_print_ptr(ndr, "max_valnamelen", r->out.max_valnamelen);
2449 ndr->depth++;
2450 ndr_print_uint32(ndr, "max_valnamelen", *r->out.max_valnamelen);
2451 ndr->depth--;
2452 ndr_print_ptr(ndr, "max_valbufsize", r->out.max_valbufsize);
2453 ndr->depth++;
2454 ndr_print_uint32(ndr, "max_valbufsize", *r->out.max_valbufsize);
2455 ndr->depth--;
2456 ndr_print_ptr(ndr, "secdescsize", r->out.secdescsize);
2457 ndr->depth++;
2458 ndr_print_uint32(ndr, "secdescsize", *r->out.secdescsize);
2459 ndr->depth--;
2460 ndr_print_ptr(ndr, "last_changed_time", r->out.last_changed_time);
2461 ndr->depth++;
2462 ndr_print_NTTIME(ndr, "last_changed_time", *r->out.last_changed_time);
2463 ndr->depth--;
2464 ndr_print_WERROR(ndr, "result", r->out.result);
2465 ndr->depth--;
2467 ndr->depth--;
2470 _PUBLIC_ enum ndr_err_code ndr_push_winreg_QueryValue(struct ndr_push *ndr, int flags, const struct winreg_QueryValue *r)
2472 if (flags & NDR_IN) {
2473 if (r->in.handle == NULL) {
2474 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2476 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
2477 if (r->in.value_name == NULL) {
2478 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2480 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.value_name));
2481 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.type));
2482 if (r->in.type) {
2483 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->in.type));
2485 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.data));
2486 if (r->in.data) {
2487 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.data_size?*r->in.data_size:0));
2488 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
2489 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.data_length?*r->in.data_length:0));
2490 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.data, r->in.data_length?*r->in.data_length:0));
2492 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.data_size));
2493 if (r->in.data_size) {
2494 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.data_size));
2496 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.data_length));
2497 if (r->in.data_length) {
2498 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.data_length));
2501 if (flags & NDR_OUT) {
2502 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.type));
2503 if (r->out.type) {
2504 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
2506 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.data));
2507 if (r->out.data) {
2508 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->out.data_size?*r->out.data_size:0));
2509 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
2510 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->out.data_length?*r->out.data_length:0));
2511 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, r->out.data_length?*r->out.data_length:0));
2513 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.data_size));
2514 if (r->out.data_size) {
2515 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.data_size));
2517 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.data_length));
2518 if (r->out.data_length) {
2519 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.data_length));
2521 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
2523 return NDR_ERR_SUCCESS;
2526 _PUBLIC_ enum ndr_err_code ndr_pull_winreg_QueryValue(struct ndr_pull *ndr, int flags, struct winreg_QueryValue *r)
2528 uint32_t _ptr_type;
2529 uint32_t _ptr_data;
2530 uint32_t _ptr_data_size;
2531 uint32_t _ptr_data_length;
2532 TALLOC_CTX *_mem_save_handle_0;
2533 TALLOC_CTX *_mem_save_value_name_0;
2534 TALLOC_CTX *_mem_save_type_0;
2535 TALLOC_CTX *_mem_save_data_0;
2536 TALLOC_CTX *_mem_save_data_size_0;
2537 TALLOC_CTX *_mem_save_data_length_0;
2538 if (flags & NDR_IN) {
2539 ZERO_STRUCT(r->out);
2541 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2542 NDR_PULL_ALLOC(ndr, r->in.handle);
2544 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
2545 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
2546 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
2547 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
2548 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2549 NDR_PULL_ALLOC(ndr, r->in.value_name);
2551 _mem_save_value_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
2552 NDR_PULL_SET_MEM_CTX(ndr, r->in.value_name, LIBNDR_FLAG_REF_ALLOC);
2553 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.value_name));
2554 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_name_0, LIBNDR_FLAG_REF_ALLOC);
2555 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_type));
2556 if (_ptr_type) {
2557 NDR_PULL_ALLOC(ndr, r->in.type);
2558 } else {
2559 r->in.type = NULL;
2561 if (r->in.type) {
2562 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
2563 NDR_PULL_SET_MEM_CTX(ndr, r->in.type, 0);
2564 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->in.type));
2565 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, 0);
2567 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
2568 if (_ptr_data) {
2569 NDR_PULL_ALLOC(ndr, r->in.data);
2570 } else {
2571 r->in.data = NULL;
2573 if (r->in.data) {
2574 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
2575 NDR_PULL_SET_MEM_CTX(ndr, r->in.data, 0);
2576 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.data));
2577 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.data));
2578 if (ndr_get_array_length(ndr, &r->in.data) > ndr_get_array_size(ndr, &r->in.data)) {
2579 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));
2581 NDR_PULL_ALLOC_N(ndr, r->in.data, ndr_get_array_size(ndr, &r->in.data));
2582 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.data, ndr_get_array_length(ndr, &r->in.data)));
2583 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
2585 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_size));
2586 if (_ptr_data_size) {
2587 NDR_PULL_ALLOC(ndr, r->in.data_size);
2588 } else {
2589 r->in.data_size = NULL;
2591 if (r->in.data_size) {
2592 _mem_save_data_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
2593 NDR_PULL_SET_MEM_CTX(ndr, r->in.data_size, 0);
2594 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.data_size));
2595 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_size_0, 0);
2597 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_length));
2598 if (_ptr_data_length) {
2599 NDR_PULL_ALLOC(ndr, r->in.data_length);
2600 } else {
2601 r->in.data_length = NULL;
2603 if (r->in.data_length) {
2604 _mem_save_data_length_0 = NDR_PULL_GET_MEM_CTX(ndr);
2605 NDR_PULL_SET_MEM_CTX(ndr, r->in.data_length, 0);
2606 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.data_length));
2607 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_length_0, 0);
2609 if (r->in.data) {
2610 if (r->in.data_size == NULL) return ndr_pull_error(ndr, NDR_ERR_INVALID_POINTER, "NULL Pointer for size_is()");
2611 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.data, r->in.data_size?*r->in.data_size:0));
2613 if (r->in.data) {
2614 if (r->in.data_length == NULL) return ndr_pull_error(ndr, NDR_ERR_INVALID_POINTER, "NULL Pointer for length_is()");
2615 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->in.data, r->in.data_length?*r->in.data_length:0));
2618 if (flags & NDR_OUT) {
2619 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_type));
2620 if (_ptr_type) {
2621 NDR_PULL_ALLOC(ndr, r->out.type);
2622 } else {
2623 r->out.type = NULL;
2625 if (r->out.type) {
2626 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
2627 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, 0);
2628 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
2629 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, 0);
2631 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
2632 if (_ptr_data) {
2633 NDR_PULL_ALLOC(ndr, r->out.data);
2634 } else {
2635 r->out.data = NULL;
2637 if (r->out.data) {
2638 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
2639 NDR_PULL_SET_MEM_CTX(ndr, r->out.data, 0);
2640 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
2641 NDR_CHECK(ndr_pull_array_length(ndr, &r->out.data));
2642 if (ndr_get_array_length(ndr, &r->out.data) > ndr_get_array_size(ndr, &r->out.data)) {
2643 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));
2645 NDR_PULL_ALLOC_N(ndr, r->out.data, ndr_get_array_size(ndr, &r->out.data));
2646 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, ndr_get_array_length(ndr, &r->out.data)));
2647 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
2649 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_size));
2650 if (_ptr_data_size) {
2651 NDR_PULL_ALLOC(ndr, r->out.data_size);
2652 } else {
2653 r->out.data_size = NULL;
2655 if (r->out.data_size) {
2656 _mem_save_data_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
2657 NDR_PULL_SET_MEM_CTX(ndr, r->out.data_size, 0);
2658 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.data_size));
2659 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_size_0, 0);
2661 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_length));
2662 if (_ptr_data_length) {
2663 NDR_PULL_ALLOC(ndr, r->out.data_length);
2664 } else {
2665 r->out.data_length = NULL;
2667 if (r->out.data_length) {
2668 _mem_save_data_length_0 = NDR_PULL_GET_MEM_CTX(ndr);
2669 NDR_PULL_SET_MEM_CTX(ndr, r->out.data_length, 0);
2670 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.data_length));
2671 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_length_0, 0);
2673 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
2674 if (r->out.data) {
2675 if (r->out.data_size == NULL) return ndr_pull_error(ndr, NDR_ERR_INVALID_POINTER, "NULL Pointer for size_is()");
2676 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, r->out.data_size?*r->out.data_size:0));
2678 if (r->out.data) {
2679 if (r->out.data_length == NULL) return ndr_pull_error(ndr, NDR_ERR_INVALID_POINTER, "NULL Pointer for length_is()");
2680 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->out.data, r->out.data_length?*r->out.data_length:0));
2683 return NDR_ERR_SUCCESS;
2686 _PUBLIC_ void ndr_print_winreg_QueryValue(struct ndr_print *ndr, const char *name, int flags, const struct winreg_QueryValue *r)
2688 ndr_print_struct(ndr, name, "winreg_QueryValue");
2689 ndr->depth++;
2690 if (flags & NDR_SET_VALUES) {
2691 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2693 if (flags & NDR_IN) {
2694 ndr_print_struct(ndr, "in", "winreg_QueryValue");
2695 ndr->depth++;
2696 ndr_print_ptr(ndr, "handle", r->in.handle);
2697 ndr->depth++;
2698 ndr_print_policy_handle(ndr, "handle", r->in.handle);
2699 ndr->depth--;
2700 ndr_print_ptr(ndr, "value_name", r->in.value_name);
2701 ndr->depth++;
2702 ndr_print_winreg_String(ndr, "value_name", r->in.value_name);
2703 ndr->depth--;
2704 ndr_print_ptr(ndr, "type", r->in.type);
2705 ndr->depth++;
2706 if (r->in.type) {
2707 ndr_print_winreg_Type(ndr, "type", *r->in.type);
2709 ndr->depth--;
2710 ndr_print_ptr(ndr, "data", r->in.data);
2711 ndr->depth++;
2712 if (r->in.data) {
2713 if (r->in.data_length == NULL) return;
2714 ndr_print_array_uint8(ndr, "data", r->in.data, r->in.data_length?*r->in.data_length:0);
2716 ndr->depth--;
2717 ndr_print_ptr(ndr, "data_size", r->in.data_size);
2718 ndr->depth++;
2719 if (r->in.data_size) {
2720 ndr_print_uint32(ndr, "data_size", *r->in.data_size);
2722 ndr->depth--;
2723 ndr_print_ptr(ndr, "data_length", r->in.data_length);
2724 ndr->depth++;
2725 if (r->in.data_length) {
2726 ndr_print_uint32(ndr, "data_length", *r->in.data_length);
2728 ndr->depth--;
2729 ndr->depth--;
2731 if (flags & NDR_OUT) {
2732 ndr_print_struct(ndr, "out", "winreg_QueryValue");
2733 ndr->depth++;
2734 ndr_print_ptr(ndr, "type", r->out.type);
2735 ndr->depth++;
2736 if (r->out.type) {
2737 ndr_print_winreg_Type(ndr, "type", *r->out.type);
2739 ndr->depth--;
2740 ndr_print_ptr(ndr, "data", r->out.data);
2741 ndr->depth++;
2742 if (r->out.data) {
2743 if (r->out.data_length == NULL) return;
2744 ndr_print_array_uint8(ndr, "data", r->out.data, r->out.data_length?*r->out.data_length:0);
2746 ndr->depth--;
2747 ndr_print_ptr(ndr, "data_size", r->out.data_size);
2748 ndr->depth++;
2749 if (r->out.data_size) {
2750 ndr_print_uint32(ndr, "data_size", *r->out.data_size);
2752 ndr->depth--;
2753 ndr_print_ptr(ndr, "data_length", r->out.data_length);
2754 ndr->depth++;
2755 if (r->out.data_length) {
2756 ndr_print_uint32(ndr, "data_length", *r->out.data_length);
2758 ndr->depth--;
2759 ndr_print_WERROR(ndr, "result", r->out.result);
2760 ndr->depth--;
2762 ndr->depth--;
2765 static enum ndr_err_code ndr_push_winreg_ReplaceKey(struct ndr_push *ndr, int flags, const struct winreg_ReplaceKey *r)
2767 if (flags & NDR_IN) {
2769 if (flags & NDR_OUT) {
2770 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
2772 return NDR_ERR_SUCCESS;
2775 static enum ndr_err_code ndr_pull_winreg_ReplaceKey(struct ndr_pull *ndr, int flags, struct winreg_ReplaceKey *r)
2777 if (flags & NDR_IN) {
2779 if (flags & NDR_OUT) {
2780 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
2782 return NDR_ERR_SUCCESS;
2785 _PUBLIC_ void ndr_print_winreg_ReplaceKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_ReplaceKey *r)
2787 ndr_print_struct(ndr, name, "winreg_ReplaceKey");
2788 ndr->depth++;
2789 if (flags & NDR_SET_VALUES) {
2790 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2792 if (flags & NDR_IN) {
2793 ndr_print_struct(ndr, "in", "winreg_ReplaceKey");
2794 ndr->depth++;
2795 ndr->depth--;
2797 if (flags & NDR_OUT) {
2798 ndr_print_struct(ndr, "out", "winreg_ReplaceKey");
2799 ndr->depth++;
2800 ndr_print_WERROR(ndr, "result", r->out.result);
2801 ndr->depth--;
2803 ndr->depth--;
2806 static enum ndr_err_code ndr_push_winreg_RestoreKey(struct ndr_push *ndr, int flags, const struct winreg_RestoreKey *r)
2808 if (flags & NDR_IN) {
2809 if (r->in.handle == NULL) {
2810 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2812 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
2813 if (r->in.filename == NULL) {
2814 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2816 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.filename));
2817 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.flags));
2819 if (flags & NDR_OUT) {
2820 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
2822 return NDR_ERR_SUCCESS;
2825 static enum ndr_err_code ndr_pull_winreg_RestoreKey(struct ndr_pull *ndr, int flags, struct winreg_RestoreKey *r)
2827 TALLOC_CTX *_mem_save_handle_0;
2828 TALLOC_CTX *_mem_save_filename_0;
2829 if (flags & NDR_IN) {
2830 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2831 NDR_PULL_ALLOC(ndr, r->in.handle);
2833 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
2834 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
2835 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
2836 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
2837 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2838 NDR_PULL_ALLOC(ndr, r->in.filename);
2840 _mem_save_filename_0 = NDR_PULL_GET_MEM_CTX(ndr);
2841 NDR_PULL_SET_MEM_CTX(ndr, r->in.filename, LIBNDR_FLAG_REF_ALLOC);
2842 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.filename));
2843 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_filename_0, LIBNDR_FLAG_REF_ALLOC);
2844 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.flags));
2846 if (flags & NDR_OUT) {
2847 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
2849 return NDR_ERR_SUCCESS;
2852 _PUBLIC_ void ndr_print_winreg_RestoreKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_RestoreKey *r)
2854 ndr_print_struct(ndr, name, "winreg_RestoreKey");
2855 ndr->depth++;
2856 if (flags & NDR_SET_VALUES) {
2857 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2859 if (flags & NDR_IN) {
2860 ndr_print_struct(ndr, "in", "winreg_RestoreKey");
2861 ndr->depth++;
2862 ndr_print_ptr(ndr, "handle", r->in.handle);
2863 ndr->depth++;
2864 ndr_print_policy_handle(ndr, "handle", r->in.handle);
2865 ndr->depth--;
2866 ndr_print_ptr(ndr, "filename", r->in.filename);
2867 ndr->depth++;
2868 ndr_print_winreg_String(ndr, "filename", r->in.filename);
2869 ndr->depth--;
2870 ndr_print_uint32(ndr, "flags", r->in.flags);
2871 ndr->depth--;
2873 if (flags & NDR_OUT) {
2874 ndr_print_struct(ndr, "out", "winreg_RestoreKey");
2875 ndr->depth++;
2876 ndr_print_WERROR(ndr, "result", r->out.result);
2877 ndr->depth--;
2879 ndr->depth--;
2882 static enum ndr_err_code ndr_push_winreg_SaveKey(struct ndr_push *ndr, int flags, const struct winreg_SaveKey *r)
2884 if (flags & NDR_IN) {
2885 if (r->in.handle == NULL) {
2886 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2888 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
2889 if (r->in.filename == NULL) {
2890 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2892 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.filename));
2893 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.sec_attrib));
2894 if (r->in.sec_attrib) {
2895 NDR_CHECK(ndr_push_KeySecurityAttribute(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sec_attrib));
2898 if (flags & NDR_OUT) {
2899 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
2901 return NDR_ERR_SUCCESS;
2904 static enum ndr_err_code ndr_pull_winreg_SaveKey(struct ndr_pull *ndr, int flags, struct winreg_SaveKey *r)
2906 uint32_t _ptr_sec_attrib;
2907 TALLOC_CTX *_mem_save_handle_0;
2908 TALLOC_CTX *_mem_save_filename_0;
2909 TALLOC_CTX *_mem_save_sec_attrib_0;
2910 if (flags & NDR_IN) {
2911 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2912 NDR_PULL_ALLOC(ndr, r->in.handle);
2914 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
2915 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
2916 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
2917 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
2918 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2919 NDR_PULL_ALLOC(ndr, r->in.filename);
2921 _mem_save_filename_0 = NDR_PULL_GET_MEM_CTX(ndr);
2922 NDR_PULL_SET_MEM_CTX(ndr, r->in.filename, LIBNDR_FLAG_REF_ALLOC);
2923 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.filename));
2924 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_filename_0, LIBNDR_FLAG_REF_ALLOC);
2925 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sec_attrib));
2926 if (_ptr_sec_attrib) {
2927 NDR_PULL_ALLOC(ndr, r->in.sec_attrib);
2928 } else {
2929 r->in.sec_attrib = NULL;
2931 if (r->in.sec_attrib) {
2932 _mem_save_sec_attrib_0 = NDR_PULL_GET_MEM_CTX(ndr);
2933 NDR_PULL_SET_MEM_CTX(ndr, r->in.sec_attrib, 0);
2934 NDR_CHECK(ndr_pull_KeySecurityAttribute(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sec_attrib));
2935 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sec_attrib_0, 0);
2938 if (flags & NDR_OUT) {
2939 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
2941 return NDR_ERR_SUCCESS;
2944 _PUBLIC_ void ndr_print_winreg_SaveKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_SaveKey *r)
2946 ndr_print_struct(ndr, name, "winreg_SaveKey");
2947 ndr->depth++;
2948 if (flags & NDR_SET_VALUES) {
2949 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2951 if (flags & NDR_IN) {
2952 ndr_print_struct(ndr, "in", "winreg_SaveKey");
2953 ndr->depth++;
2954 ndr_print_ptr(ndr, "handle", r->in.handle);
2955 ndr->depth++;
2956 ndr_print_policy_handle(ndr, "handle", r->in.handle);
2957 ndr->depth--;
2958 ndr_print_ptr(ndr, "filename", r->in.filename);
2959 ndr->depth++;
2960 ndr_print_winreg_String(ndr, "filename", r->in.filename);
2961 ndr->depth--;
2962 ndr_print_ptr(ndr, "sec_attrib", r->in.sec_attrib);
2963 ndr->depth++;
2964 if (r->in.sec_attrib) {
2965 ndr_print_KeySecurityAttribute(ndr, "sec_attrib", r->in.sec_attrib);
2967 ndr->depth--;
2968 ndr->depth--;
2970 if (flags & NDR_OUT) {
2971 ndr_print_struct(ndr, "out", "winreg_SaveKey");
2972 ndr->depth++;
2973 ndr_print_WERROR(ndr, "result", r->out.result);
2974 ndr->depth--;
2976 ndr->depth--;
2979 static enum ndr_err_code ndr_push_winreg_SetKeySecurity(struct ndr_push *ndr, int flags, const struct winreg_SetKeySecurity *r)
2981 if (flags & NDR_IN) {
2982 if (r->in.handle == NULL) {
2983 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2985 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
2986 NDR_CHECK(ndr_push_security_secinfo(ndr, NDR_SCALARS, r->in.sec_info));
2987 if (r->in.sd == NULL) {
2988 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2990 NDR_CHECK(ndr_push_KeySecurityData(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sd));
2992 if (flags & NDR_OUT) {
2993 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
2995 return NDR_ERR_SUCCESS;
2998 static enum ndr_err_code ndr_pull_winreg_SetKeySecurity(struct ndr_pull *ndr, int flags, struct winreg_SetKeySecurity *r)
3000 TALLOC_CTX *_mem_save_handle_0;
3001 TALLOC_CTX *_mem_save_sd_0;
3002 if (flags & NDR_IN) {
3003 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3004 NDR_PULL_ALLOC(ndr, r->in.handle);
3006 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
3007 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
3008 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
3009 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
3010 NDR_CHECK(ndr_pull_security_secinfo(ndr, NDR_SCALARS, &r->in.sec_info));
3011 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3012 NDR_PULL_ALLOC(ndr, r->in.sd);
3014 _mem_save_sd_0 = NDR_PULL_GET_MEM_CTX(ndr);
3015 NDR_PULL_SET_MEM_CTX(ndr, r->in.sd, LIBNDR_FLAG_REF_ALLOC);
3016 NDR_CHECK(ndr_pull_KeySecurityData(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sd));
3017 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sd_0, LIBNDR_FLAG_REF_ALLOC);
3019 if (flags & NDR_OUT) {
3020 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3022 return NDR_ERR_SUCCESS;
3025 _PUBLIC_ void ndr_print_winreg_SetKeySecurity(struct ndr_print *ndr, const char *name, int flags, const struct winreg_SetKeySecurity *r)
3027 ndr_print_struct(ndr, name, "winreg_SetKeySecurity");
3028 ndr->depth++;
3029 if (flags & NDR_SET_VALUES) {
3030 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3032 if (flags & NDR_IN) {
3033 ndr_print_struct(ndr, "in", "winreg_SetKeySecurity");
3034 ndr->depth++;
3035 ndr_print_ptr(ndr, "handle", r->in.handle);
3036 ndr->depth++;
3037 ndr_print_policy_handle(ndr, "handle", r->in.handle);
3038 ndr->depth--;
3039 ndr_print_security_secinfo(ndr, "sec_info", r->in.sec_info);
3040 ndr_print_ptr(ndr, "sd", r->in.sd);
3041 ndr->depth++;
3042 ndr_print_KeySecurityData(ndr, "sd", r->in.sd);
3043 ndr->depth--;
3044 ndr->depth--;
3046 if (flags & NDR_OUT) {
3047 ndr_print_struct(ndr, "out", "winreg_SetKeySecurity");
3048 ndr->depth++;
3049 ndr_print_WERROR(ndr, "result", r->out.result);
3050 ndr->depth--;
3052 ndr->depth--;
3055 static enum ndr_err_code ndr_push_winreg_SetValue(struct ndr_push *ndr, int flags, const struct winreg_SetValue *r)
3057 if (flags & NDR_IN) {
3058 if (r->in.handle == NULL) {
3059 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
3061 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
3062 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.name));
3063 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
3064 if (r->in.data == NULL) {
3065 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
3067 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.size));
3068 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.data, r->in.size));
3069 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.size));
3071 if (flags & NDR_OUT) {
3072 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3074 return NDR_ERR_SUCCESS;
3077 static enum ndr_err_code ndr_pull_winreg_SetValue(struct ndr_pull *ndr, int flags, struct winreg_SetValue *r)
3079 TALLOC_CTX *_mem_save_handle_0;
3080 if (flags & NDR_IN) {
3081 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3082 NDR_PULL_ALLOC(ndr, r->in.handle);
3084 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
3085 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
3086 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
3087 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
3088 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.name));
3089 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
3090 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.data));
3091 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3092 NDR_PULL_ALLOC_N(ndr, r->in.data, ndr_get_array_size(ndr, &r->in.data));
3094 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.data, ndr_get_array_size(ndr, &r->in.data)));
3095 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.size));
3096 if (r->in.data) {
3097 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.data, r->in.size));
3100 if (flags & NDR_OUT) {
3101 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3103 return NDR_ERR_SUCCESS;
3106 _PUBLIC_ void ndr_print_winreg_SetValue(struct ndr_print *ndr, const char *name, int flags, const struct winreg_SetValue *r)
3108 ndr_print_struct(ndr, name, "winreg_SetValue");
3109 ndr->depth++;
3110 if (flags & NDR_SET_VALUES) {
3111 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3113 if (flags & NDR_IN) {
3114 ndr_print_struct(ndr, "in", "winreg_SetValue");
3115 ndr->depth++;
3116 ndr_print_ptr(ndr, "handle", r->in.handle);
3117 ndr->depth++;
3118 ndr_print_policy_handle(ndr, "handle", r->in.handle);
3119 ndr->depth--;
3120 ndr_print_winreg_String(ndr, "name", &r->in.name);
3121 ndr_print_winreg_Type(ndr, "type", r->in.type);
3122 ndr_print_ptr(ndr, "data", r->in.data);
3123 ndr->depth++;
3124 ndr_print_array_uint8(ndr, "data", r->in.data, r->in.size);
3125 ndr->depth--;
3126 ndr_print_uint32(ndr, "size", r->in.size);
3127 ndr->depth--;
3129 if (flags & NDR_OUT) {
3130 ndr_print_struct(ndr, "out", "winreg_SetValue");
3131 ndr->depth++;
3132 ndr_print_WERROR(ndr, "result", r->out.result);
3133 ndr->depth--;
3135 ndr->depth--;
3138 static enum ndr_err_code ndr_push_winreg_UnLoadKey(struct ndr_push *ndr, int flags, const struct winreg_UnLoadKey *r)
3140 if (flags & NDR_IN) {
3142 if (flags & NDR_OUT) {
3143 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3145 return NDR_ERR_SUCCESS;
3148 static enum ndr_err_code ndr_pull_winreg_UnLoadKey(struct ndr_pull *ndr, int flags, struct winreg_UnLoadKey *r)
3150 if (flags & NDR_IN) {
3152 if (flags & NDR_OUT) {
3153 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3155 return NDR_ERR_SUCCESS;
3158 _PUBLIC_ void ndr_print_winreg_UnLoadKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_UnLoadKey *r)
3160 ndr_print_struct(ndr, name, "winreg_UnLoadKey");
3161 ndr->depth++;
3162 if (flags & NDR_SET_VALUES) {
3163 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3165 if (flags & NDR_IN) {
3166 ndr_print_struct(ndr, "in", "winreg_UnLoadKey");
3167 ndr->depth++;
3168 ndr->depth--;
3170 if (flags & NDR_OUT) {
3171 ndr_print_struct(ndr, "out", "winreg_UnLoadKey");
3172 ndr->depth++;
3173 ndr_print_WERROR(ndr, "result", r->out.result);
3174 ndr->depth--;
3176 ndr->depth--;
3179 static enum ndr_err_code ndr_push_winreg_InitiateSystemShutdown(struct ndr_push *ndr, int flags, const struct winreg_InitiateSystemShutdown *r)
3181 if (flags & NDR_IN) {
3182 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.hostname));
3183 if (r->in.hostname) {
3184 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.hostname));
3186 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.message));
3187 if (r->in.message) {
3188 NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.message));
3190 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.timeout));
3191 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->in.force_apps));
3192 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->in.do_reboot));
3194 if (flags & NDR_OUT) {
3195 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3197 return NDR_ERR_SUCCESS;
3200 static enum ndr_err_code ndr_pull_winreg_InitiateSystemShutdown(struct ndr_pull *ndr, int flags, struct winreg_InitiateSystemShutdown *r)
3202 uint32_t _ptr_hostname;
3203 uint32_t _ptr_message;
3204 TALLOC_CTX *_mem_save_hostname_0;
3205 TALLOC_CTX *_mem_save_message_0;
3206 if (flags & NDR_IN) {
3207 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hostname));
3208 if (_ptr_hostname) {
3209 NDR_PULL_ALLOC(ndr, r->in.hostname);
3210 } else {
3211 r->in.hostname = NULL;
3213 if (r->in.hostname) {
3214 _mem_save_hostname_0 = NDR_PULL_GET_MEM_CTX(ndr);
3215 NDR_PULL_SET_MEM_CTX(ndr, r->in.hostname, 0);
3216 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.hostname));
3217 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hostname_0, 0);
3219 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_message));
3220 if (_ptr_message) {
3221 NDR_PULL_ALLOC(ndr, r->in.message);
3222 } else {
3223 r->in.message = NULL;
3225 if (r->in.message) {
3226 _mem_save_message_0 = NDR_PULL_GET_MEM_CTX(ndr);
3227 NDR_PULL_SET_MEM_CTX(ndr, r->in.message, 0);
3228 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.message));
3229 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_message_0, 0);
3231 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.timeout));
3232 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->in.force_apps));
3233 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->in.do_reboot));
3235 if (flags & NDR_OUT) {
3236 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3238 return NDR_ERR_SUCCESS;
3241 _PUBLIC_ void ndr_print_winreg_InitiateSystemShutdown(struct ndr_print *ndr, const char *name, int flags, const struct winreg_InitiateSystemShutdown *r)
3243 ndr_print_struct(ndr, name, "winreg_InitiateSystemShutdown");
3244 ndr->depth++;
3245 if (flags & NDR_SET_VALUES) {
3246 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3248 if (flags & NDR_IN) {
3249 ndr_print_struct(ndr, "in", "winreg_InitiateSystemShutdown");
3250 ndr->depth++;
3251 ndr_print_ptr(ndr, "hostname", r->in.hostname);
3252 ndr->depth++;
3253 if (r->in.hostname) {
3254 ndr_print_uint16(ndr, "hostname", *r->in.hostname);
3256 ndr->depth--;
3257 ndr_print_ptr(ndr, "message", r->in.message);
3258 ndr->depth++;
3259 if (r->in.message) {
3260 ndr_print_lsa_StringLarge(ndr, "message", r->in.message);
3262 ndr->depth--;
3263 ndr_print_uint32(ndr, "timeout", r->in.timeout);
3264 ndr_print_uint8(ndr, "force_apps", r->in.force_apps);
3265 ndr_print_uint8(ndr, "do_reboot", r->in.do_reboot);
3266 ndr->depth--;
3268 if (flags & NDR_OUT) {
3269 ndr_print_struct(ndr, "out", "winreg_InitiateSystemShutdown");
3270 ndr->depth++;
3271 ndr_print_WERROR(ndr, "result", r->out.result);
3272 ndr->depth--;
3274 ndr->depth--;
3277 static enum ndr_err_code ndr_push_winreg_AbortSystemShutdown(struct ndr_push *ndr, int flags, const struct winreg_AbortSystemShutdown *r)
3279 if (flags & NDR_IN) {
3280 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
3281 if (r->in.server) {
3282 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.server));
3285 if (flags & NDR_OUT) {
3286 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3288 return NDR_ERR_SUCCESS;
3291 static enum ndr_err_code ndr_pull_winreg_AbortSystemShutdown(struct ndr_pull *ndr, int flags, struct winreg_AbortSystemShutdown *r)
3293 uint32_t _ptr_server;
3294 TALLOC_CTX *_mem_save_server_0;
3295 if (flags & NDR_IN) {
3296 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
3297 if (_ptr_server) {
3298 NDR_PULL_ALLOC(ndr, r->in.server);
3299 } else {
3300 r->in.server = NULL;
3302 if (r->in.server) {
3303 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
3304 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
3305 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.server));
3306 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
3309 if (flags & NDR_OUT) {
3310 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3312 return NDR_ERR_SUCCESS;
3315 _PUBLIC_ void ndr_print_winreg_AbortSystemShutdown(struct ndr_print *ndr, const char *name, int flags, const struct winreg_AbortSystemShutdown *r)
3317 ndr_print_struct(ndr, name, "winreg_AbortSystemShutdown");
3318 ndr->depth++;
3319 if (flags & NDR_SET_VALUES) {
3320 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3322 if (flags & NDR_IN) {
3323 ndr_print_struct(ndr, "in", "winreg_AbortSystemShutdown");
3324 ndr->depth++;
3325 ndr_print_ptr(ndr, "server", r->in.server);
3326 ndr->depth++;
3327 if (r->in.server) {
3328 ndr_print_uint16(ndr, "server", *r->in.server);
3330 ndr->depth--;
3331 ndr->depth--;
3333 if (flags & NDR_OUT) {
3334 ndr_print_struct(ndr, "out", "winreg_AbortSystemShutdown");
3335 ndr->depth++;
3336 ndr_print_WERROR(ndr, "result", r->out.result);
3337 ndr->depth--;
3339 ndr->depth--;
3342 _PUBLIC_ enum ndr_err_code ndr_push_winreg_GetVersion(struct ndr_push *ndr, int flags, const struct winreg_GetVersion *r)
3344 if (flags & NDR_IN) {
3345 if (r->in.handle == NULL) {
3346 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
3348 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
3350 if (flags & NDR_OUT) {
3351 if (r->out.version == NULL) {
3352 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
3354 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.version));
3355 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3357 return NDR_ERR_SUCCESS;
3360 _PUBLIC_ enum ndr_err_code ndr_pull_winreg_GetVersion(struct ndr_pull *ndr, int flags, struct winreg_GetVersion *r)
3362 TALLOC_CTX *_mem_save_handle_0;
3363 TALLOC_CTX *_mem_save_version_0;
3364 if (flags & NDR_IN) {
3365 ZERO_STRUCT(r->out);
3367 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3368 NDR_PULL_ALLOC(ndr, r->in.handle);
3370 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
3371 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
3372 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
3373 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
3374 NDR_PULL_ALLOC(ndr, r->out.version);
3375 ZERO_STRUCTP(r->out.version);
3377 if (flags & NDR_OUT) {
3378 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3379 NDR_PULL_ALLOC(ndr, r->out.version);
3381 _mem_save_version_0 = NDR_PULL_GET_MEM_CTX(ndr);
3382 NDR_PULL_SET_MEM_CTX(ndr, r->out.version, LIBNDR_FLAG_REF_ALLOC);
3383 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.version));
3384 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_version_0, LIBNDR_FLAG_REF_ALLOC);
3385 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3387 return NDR_ERR_SUCCESS;
3390 _PUBLIC_ void ndr_print_winreg_GetVersion(struct ndr_print *ndr, const char *name, int flags, const struct winreg_GetVersion *r)
3392 ndr_print_struct(ndr, name, "winreg_GetVersion");
3393 ndr->depth++;
3394 if (flags & NDR_SET_VALUES) {
3395 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3397 if (flags & NDR_IN) {
3398 ndr_print_struct(ndr, "in", "winreg_GetVersion");
3399 ndr->depth++;
3400 ndr_print_ptr(ndr, "handle", r->in.handle);
3401 ndr->depth++;
3402 ndr_print_policy_handle(ndr, "handle", r->in.handle);
3403 ndr->depth--;
3404 ndr->depth--;
3406 if (flags & NDR_OUT) {
3407 ndr_print_struct(ndr, "out", "winreg_GetVersion");
3408 ndr->depth++;
3409 ndr_print_ptr(ndr, "version", r->out.version);
3410 ndr->depth++;
3411 ndr_print_uint32(ndr, "version", *r->out.version);
3412 ndr->depth--;
3413 ndr_print_WERROR(ndr, "result", r->out.result);
3414 ndr->depth--;
3416 ndr->depth--;
3419 static enum ndr_err_code ndr_push_winreg_OpenHKCC(struct ndr_push *ndr, int flags, const struct winreg_OpenHKCC *r)
3421 if (flags & NDR_IN) {
3422 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.system_name));
3423 if (r->in.system_name) {
3424 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.system_name));
3426 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
3428 if (flags & NDR_OUT) {
3429 if (r->out.handle == NULL) {
3430 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
3432 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
3433 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3435 return NDR_ERR_SUCCESS;
3438 static enum ndr_err_code ndr_pull_winreg_OpenHKCC(struct ndr_pull *ndr, int flags, struct winreg_OpenHKCC *r)
3440 uint32_t _ptr_system_name;
3441 TALLOC_CTX *_mem_save_system_name_0;
3442 TALLOC_CTX *_mem_save_handle_0;
3443 if (flags & NDR_IN) {
3444 ZERO_STRUCT(r->out);
3446 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_system_name));
3447 if (_ptr_system_name) {
3448 NDR_PULL_ALLOC(ndr, r->in.system_name);
3449 } else {
3450 r->in.system_name = NULL;
3452 if (r->in.system_name) {
3453 _mem_save_system_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3454 NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0);
3455 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.system_name));
3456 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0);
3458 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
3459 NDR_PULL_ALLOC(ndr, r->out.handle);
3460 ZERO_STRUCTP(r->out.handle);
3462 if (flags & NDR_OUT) {
3463 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3464 NDR_PULL_ALLOC(ndr, r->out.handle);
3466 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
3467 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
3468 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
3469 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
3470 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3472 return NDR_ERR_SUCCESS;
3475 _PUBLIC_ void ndr_print_winreg_OpenHKCC(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenHKCC *r)
3477 ndr_print_struct(ndr, name, "winreg_OpenHKCC");
3478 ndr->depth++;
3479 if (flags & NDR_SET_VALUES) {
3480 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3482 if (flags & NDR_IN) {
3483 ndr_print_struct(ndr, "in", "winreg_OpenHKCC");
3484 ndr->depth++;
3485 ndr_print_ptr(ndr, "system_name", r->in.system_name);
3486 ndr->depth++;
3487 if (r->in.system_name) {
3488 ndr_print_uint16(ndr, "system_name", *r->in.system_name);
3490 ndr->depth--;
3491 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
3492 ndr->depth--;
3494 if (flags & NDR_OUT) {
3495 ndr_print_struct(ndr, "out", "winreg_OpenHKCC");
3496 ndr->depth++;
3497 ndr_print_ptr(ndr, "handle", r->out.handle);
3498 ndr->depth++;
3499 ndr_print_policy_handle(ndr, "handle", r->out.handle);
3500 ndr->depth--;
3501 ndr_print_WERROR(ndr, "result", r->out.result);
3502 ndr->depth--;
3504 ndr->depth--;
3507 static enum ndr_err_code ndr_push_winreg_OpenHKDD(struct ndr_push *ndr, int flags, const struct winreg_OpenHKDD *r)
3509 if (flags & NDR_IN) {
3510 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.system_name));
3511 if (r->in.system_name) {
3512 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.system_name));
3514 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
3516 if (flags & NDR_OUT) {
3517 if (r->out.handle == NULL) {
3518 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
3520 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
3521 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3523 return NDR_ERR_SUCCESS;
3526 static enum ndr_err_code ndr_pull_winreg_OpenHKDD(struct ndr_pull *ndr, int flags, struct winreg_OpenHKDD *r)
3528 uint32_t _ptr_system_name;
3529 TALLOC_CTX *_mem_save_system_name_0;
3530 TALLOC_CTX *_mem_save_handle_0;
3531 if (flags & NDR_IN) {
3532 ZERO_STRUCT(r->out);
3534 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_system_name));
3535 if (_ptr_system_name) {
3536 NDR_PULL_ALLOC(ndr, r->in.system_name);
3537 } else {
3538 r->in.system_name = NULL;
3540 if (r->in.system_name) {
3541 _mem_save_system_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3542 NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0);
3543 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.system_name));
3544 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0);
3546 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
3547 NDR_PULL_ALLOC(ndr, r->out.handle);
3548 ZERO_STRUCTP(r->out.handle);
3550 if (flags & NDR_OUT) {
3551 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3552 NDR_PULL_ALLOC(ndr, r->out.handle);
3554 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
3555 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
3556 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
3557 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
3558 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3560 return NDR_ERR_SUCCESS;
3563 _PUBLIC_ void ndr_print_winreg_OpenHKDD(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenHKDD *r)
3565 ndr_print_struct(ndr, name, "winreg_OpenHKDD");
3566 ndr->depth++;
3567 if (flags & NDR_SET_VALUES) {
3568 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3570 if (flags & NDR_IN) {
3571 ndr_print_struct(ndr, "in", "winreg_OpenHKDD");
3572 ndr->depth++;
3573 ndr_print_ptr(ndr, "system_name", r->in.system_name);
3574 ndr->depth++;
3575 if (r->in.system_name) {
3576 ndr_print_uint16(ndr, "system_name", *r->in.system_name);
3578 ndr->depth--;
3579 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
3580 ndr->depth--;
3582 if (flags & NDR_OUT) {
3583 ndr_print_struct(ndr, "out", "winreg_OpenHKDD");
3584 ndr->depth++;
3585 ndr_print_ptr(ndr, "handle", r->out.handle);
3586 ndr->depth++;
3587 ndr_print_policy_handle(ndr, "handle", r->out.handle);
3588 ndr->depth--;
3589 ndr_print_WERROR(ndr, "result", r->out.result);
3590 ndr->depth--;
3592 ndr->depth--;
3595 _PUBLIC_ enum ndr_err_code ndr_push_winreg_QueryMultipleValues(struct ndr_push *ndr, int flags, const struct winreg_QueryMultipleValues *r)
3597 uint32_t cntr_values_1;
3598 if (flags & NDR_IN) {
3599 if (r->in.key_handle == NULL) {
3600 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
3602 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.key_handle));
3603 if (r->in.values == NULL) {
3604 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
3606 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.num_values));
3607 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
3608 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.num_values));
3609 for (cntr_values_1 = 0; cntr_values_1 < r->in.num_values; cntr_values_1++) {
3610 NDR_CHECK(ndr_push_QueryMultipleValue(ndr, NDR_SCALARS, &r->in.values[cntr_values_1]));
3612 for (cntr_values_1 = 0; cntr_values_1 < r->in.num_values; cntr_values_1++) {
3613 NDR_CHECK(ndr_push_QueryMultipleValue(ndr, NDR_BUFFERS, &r->in.values[cntr_values_1]));
3615 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.num_values));
3616 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
3617 if (r->in.buffer) {
3618 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, *r->in.buffer_size));
3619 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
3620 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, *r->in.buffer_size));
3621 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, *r->in.buffer_size));
3623 if (r->in.buffer_size == NULL) {
3624 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
3626 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.buffer_size));
3628 if (flags & NDR_OUT) {
3629 if (r->out.values == NULL) {
3630 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
3632 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.num_values));
3633 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
3634 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.num_values));
3635 for (cntr_values_1 = 0; cntr_values_1 < r->in.num_values; cntr_values_1++) {
3636 NDR_CHECK(ndr_push_QueryMultipleValue(ndr, NDR_SCALARS, &r->out.values[cntr_values_1]));
3638 for (cntr_values_1 = 0; cntr_values_1 < r->in.num_values; cntr_values_1++) {
3639 NDR_CHECK(ndr_push_QueryMultipleValue(ndr, NDR_BUFFERS, &r->out.values[cntr_values_1]));
3641 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.buffer));
3642 if (r->out.buffer) {
3643 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, *r->out.buffer_size));
3644 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
3645 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, *r->out.buffer_size));
3646 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, *r->out.buffer_size));
3648 if (r->out.buffer_size == NULL) {
3649 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
3651 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.buffer_size));
3652 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3654 return NDR_ERR_SUCCESS;
3657 _PUBLIC_ enum ndr_err_code ndr_pull_winreg_QueryMultipleValues(struct ndr_pull *ndr, int flags, struct winreg_QueryMultipleValues *r)
3659 uint32_t cntr_values_1;
3660 uint32_t _ptr_buffer;
3661 TALLOC_CTX *_mem_save_key_handle_0;
3662 TALLOC_CTX *_mem_save_values_1;
3663 TALLOC_CTX *_mem_save_buffer_0;
3664 TALLOC_CTX *_mem_save_buffer_size_0;
3665 if (flags & NDR_IN) {
3666 ZERO_STRUCT(r->out);
3668 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3669 NDR_PULL_ALLOC(ndr, r->in.key_handle);
3671 _mem_save_key_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
3672 NDR_PULL_SET_MEM_CTX(ndr, r->in.key_handle, LIBNDR_FLAG_REF_ALLOC);
3673 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.key_handle));
3674 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_key_handle_0, LIBNDR_FLAG_REF_ALLOC);
3675 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.values));
3676 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.values));
3677 if (ndr_get_array_length(ndr, &r->in.values) > ndr_get_array_size(ndr, &r->in.values)) {
3678 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));
3680 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3681 NDR_PULL_ALLOC_N(ndr, r->in.values, ndr_get_array_size(ndr, &r->in.values));
3683 memcpy(r->out.values, r->in.values, (ndr_get_array_size(ndr, &r->in.values)) * sizeof(*r->in.values));
3684 _mem_save_values_1 = NDR_PULL_GET_MEM_CTX(ndr);
3685 NDR_PULL_SET_MEM_CTX(ndr, r->in.values, 0);
3686 for (cntr_values_1 = 0; cntr_values_1 < ndr_get_array_length(ndr, &r->in.values); cntr_values_1++) {
3687 NDR_CHECK(ndr_pull_QueryMultipleValue(ndr, NDR_SCALARS, &r->in.values[cntr_values_1]));
3689 for (cntr_values_1 = 0; cntr_values_1 < ndr_get_array_length(ndr, &r->in.values); cntr_values_1++) {
3690 NDR_CHECK(ndr_pull_QueryMultipleValue(ndr, NDR_BUFFERS, &r->in.values[cntr_values_1]));
3692 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_values_1, 0);
3693 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.num_values));
3694 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
3695 if (_ptr_buffer) {
3696 NDR_PULL_ALLOC(ndr, r->in.buffer);
3697 } else {
3698 r->in.buffer = NULL;
3700 if (r->in.buffer) {
3701 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
3702 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
3703 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
3704 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.buffer));
3705 if (ndr_get_array_length(ndr, &r->in.buffer) > ndr_get_array_size(ndr, &r->in.buffer)) {
3706 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));
3708 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
3709 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_length(ndr, &r->in.buffer)));
3710 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
3712 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3713 NDR_PULL_ALLOC(ndr, r->in.buffer_size);
3715 _mem_save_buffer_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
3716 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer_size, LIBNDR_FLAG_REF_ALLOC);
3717 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.buffer_size));
3718 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_size_0, LIBNDR_FLAG_REF_ALLOC);
3719 NDR_PULL_ALLOC_N(ndr, r->out.values, r->in.num_values);
3720 memcpy(r->out.values, r->in.values, (r->in.num_values) * sizeof(*r->in.values));
3721 NDR_PULL_ALLOC(ndr, r->out.buffer_size);
3722 *r->out.buffer_size = *r->in.buffer_size;
3723 if (r->in.values) {
3724 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.values, r->in.num_values));
3726 if (r->in.values) {
3727 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->in.values, r->in.num_values));
3729 if (r->in.buffer) {
3730 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, *r->in.buffer_size));
3732 if (r->in.buffer) {
3733 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->in.buffer, *r->in.buffer_size));
3736 if (flags & NDR_OUT) {
3737 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.values));
3738 NDR_CHECK(ndr_pull_array_length(ndr, &r->out.values));
3739 if (ndr_get_array_length(ndr, &r->out.values) > ndr_get_array_size(ndr, &r->out.values)) {
3740 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));
3742 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3743 NDR_PULL_ALLOC_N(ndr, r->out.values, ndr_get_array_size(ndr, &r->out.values));
3745 memcpy(r->out.values, r->in.values, (ndr_get_array_size(ndr, &r->out.values)) * sizeof(*r->in.values));
3746 _mem_save_values_1 = NDR_PULL_GET_MEM_CTX(ndr);
3747 NDR_PULL_SET_MEM_CTX(ndr, r->out.values, 0);
3748 for (cntr_values_1 = 0; cntr_values_1 < ndr_get_array_length(ndr, &r->out.values); cntr_values_1++) {
3749 NDR_CHECK(ndr_pull_QueryMultipleValue(ndr, NDR_SCALARS, &r->out.values[cntr_values_1]));
3751 for (cntr_values_1 = 0; cntr_values_1 < ndr_get_array_length(ndr, &r->out.values); cntr_values_1++) {
3752 NDR_CHECK(ndr_pull_QueryMultipleValue(ndr, NDR_BUFFERS, &r->out.values[cntr_values_1]));
3754 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_values_1, 0);
3755 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
3756 if (_ptr_buffer) {
3757 NDR_PULL_ALLOC(ndr, r->out.buffer);
3758 } else {
3759 r->out.buffer = NULL;
3761 if (r->out.buffer) {
3762 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
3763 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, 0);
3764 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
3765 NDR_CHECK(ndr_pull_array_length(ndr, &r->out.buffer));
3766 if (ndr_get_array_length(ndr, &r->out.buffer) > ndr_get_array_size(ndr, &r->out.buffer)) {
3767 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));
3769 NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
3770 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_length(ndr, &r->out.buffer)));
3771 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
3773 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3774 NDR_PULL_ALLOC(ndr, r->out.buffer_size);
3776 _mem_save_buffer_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
3777 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer_size, LIBNDR_FLAG_REF_ALLOC);
3778 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.buffer_size));
3779 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_size_0, LIBNDR_FLAG_REF_ALLOC);
3780 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3781 if (r->out.values) {
3782 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.values, r->in.num_values));
3784 if (r->out.values) {
3785 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->out.values, r->in.num_values));
3787 if (r->out.buffer) {
3788 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, *r->out.buffer_size));
3790 if (r->out.buffer) {
3791 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->out.buffer, *r->out.buffer_size));
3794 return NDR_ERR_SUCCESS;
3797 _PUBLIC_ void ndr_print_winreg_QueryMultipleValues(struct ndr_print *ndr, const char *name, int flags, const struct winreg_QueryMultipleValues *r)
3799 uint32_t cntr_values_1;
3800 ndr_print_struct(ndr, name, "winreg_QueryMultipleValues");
3801 ndr->depth++;
3802 if (flags & NDR_SET_VALUES) {
3803 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3805 if (flags & NDR_IN) {
3806 ndr_print_struct(ndr, "in", "winreg_QueryMultipleValues");
3807 ndr->depth++;
3808 ndr_print_ptr(ndr, "key_handle", r->in.key_handle);
3809 ndr->depth++;
3810 ndr_print_policy_handle(ndr, "key_handle", r->in.key_handle);
3811 ndr->depth--;
3812 ndr_print_ptr(ndr, "values", r->in.values);
3813 ndr->depth++;
3814 ndr->print(ndr, "%s: ARRAY(%d)", "values", (int)r->in.num_values);
3815 ndr->depth++;
3816 for (cntr_values_1=0;cntr_values_1<r->in.num_values;cntr_values_1++) {
3817 char *idx_1=NULL;
3818 if (asprintf(&idx_1, "[%d]", cntr_values_1) != -1) {
3819 ndr_print_QueryMultipleValue(ndr, "values", &r->in.values[cntr_values_1]);
3820 free(idx_1);
3823 ndr->depth--;
3824 ndr->depth--;
3825 ndr_print_uint32(ndr, "num_values", r->in.num_values);
3826 ndr_print_ptr(ndr, "buffer", r->in.buffer);
3827 ndr->depth++;
3828 if (r->in.buffer) {
3829 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, *r->in.buffer_size);
3831 ndr->depth--;
3832 ndr_print_ptr(ndr, "buffer_size", r->in.buffer_size);
3833 ndr->depth++;
3834 ndr_print_uint32(ndr, "buffer_size", *r->in.buffer_size);
3835 ndr->depth--;
3836 ndr->depth--;
3838 if (flags & NDR_OUT) {
3839 ndr_print_struct(ndr, "out", "winreg_QueryMultipleValues");
3840 ndr->depth++;
3841 ndr_print_ptr(ndr, "values", r->out.values);
3842 ndr->depth++;
3843 ndr->print(ndr, "%s: ARRAY(%d)", "values", (int)r->in.num_values);
3844 ndr->depth++;
3845 for (cntr_values_1=0;cntr_values_1<r->in.num_values;cntr_values_1++) {
3846 char *idx_1=NULL;
3847 if (asprintf(&idx_1, "[%d]", cntr_values_1) != -1) {
3848 ndr_print_QueryMultipleValue(ndr, "values", &r->out.values[cntr_values_1]);
3849 free(idx_1);
3852 ndr->depth--;
3853 ndr->depth--;
3854 ndr_print_ptr(ndr, "buffer", r->out.buffer);
3855 ndr->depth++;
3856 if (r->out.buffer) {
3857 ndr_print_array_uint8(ndr, "buffer", r->out.buffer, *r->out.buffer_size);
3859 ndr->depth--;
3860 ndr_print_ptr(ndr, "buffer_size", r->out.buffer_size);
3861 ndr->depth++;
3862 ndr_print_uint32(ndr, "buffer_size", *r->out.buffer_size);
3863 ndr->depth--;
3864 ndr_print_WERROR(ndr, "result", r->out.result);
3865 ndr->depth--;
3867 ndr->depth--;
3870 static enum ndr_err_code ndr_push_winreg_InitiateSystemShutdownEx(struct ndr_push *ndr, int flags, const struct winreg_InitiateSystemShutdownEx *r)
3872 if (flags & NDR_IN) {
3873 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.hostname));
3874 if (r->in.hostname) {
3875 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.hostname));
3877 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.message));
3878 if (r->in.message) {
3879 NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.message));
3881 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.timeout));
3882 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->in.force_apps));
3883 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->in.do_reboot));
3884 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.reason));
3886 if (flags & NDR_OUT) {
3887 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3889 return NDR_ERR_SUCCESS;
3892 static enum ndr_err_code ndr_pull_winreg_InitiateSystemShutdownEx(struct ndr_pull *ndr, int flags, struct winreg_InitiateSystemShutdownEx *r)
3894 uint32_t _ptr_hostname;
3895 uint32_t _ptr_message;
3896 TALLOC_CTX *_mem_save_hostname_0;
3897 TALLOC_CTX *_mem_save_message_0;
3898 if (flags & NDR_IN) {
3899 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hostname));
3900 if (_ptr_hostname) {
3901 NDR_PULL_ALLOC(ndr, r->in.hostname);
3902 } else {
3903 r->in.hostname = NULL;
3905 if (r->in.hostname) {
3906 _mem_save_hostname_0 = NDR_PULL_GET_MEM_CTX(ndr);
3907 NDR_PULL_SET_MEM_CTX(ndr, r->in.hostname, 0);
3908 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.hostname));
3909 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hostname_0, 0);
3911 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_message));
3912 if (_ptr_message) {
3913 NDR_PULL_ALLOC(ndr, r->in.message);
3914 } else {
3915 r->in.message = NULL;
3917 if (r->in.message) {
3918 _mem_save_message_0 = NDR_PULL_GET_MEM_CTX(ndr);
3919 NDR_PULL_SET_MEM_CTX(ndr, r->in.message, 0);
3920 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.message));
3921 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_message_0, 0);
3923 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.timeout));
3924 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->in.force_apps));
3925 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->in.do_reboot));
3926 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.reason));
3928 if (flags & NDR_OUT) {
3929 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3931 return NDR_ERR_SUCCESS;
3934 _PUBLIC_ void ndr_print_winreg_InitiateSystemShutdownEx(struct ndr_print *ndr, const char *name, int flags, const struct winreg_InitiateSystemShutdownEx *r)
3936 ndr_print_struct(ndr, name, "winreg_InitiateSystemShutdownEx");
3937 ndr->depth++;
3938 if (flags & NDR_SET_VALUES) {
3939 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3941 if (flags & NDR_IN) {
3942 ndr_print_struct(ndr, "in", "winreg_InitiateSystemShutdownEx");
3943 ndr->depth++;
3944 ndr_print_ptr(ndr, "hostname", r->in.hostname);
3945 ndr->depth++;
3946 if (r->in.hostname) {
3947 ndr_print_uint16(ndr, "hostname", *r->in.hostname);
3949 ndr->depth--;
3950 ndr_print_ptr(ndr, "message", r->in.message);
3951 ndr->depth++;
3952 if (r->in.message) {
3953 ndr_print_lsa_StringLarge(ndr, "message", r->in.message);
3955 ndr->depth--;
3956 ndr_print_uint32(ndr, "timeout", r->in.timeout);
3957 ndr_print_uint8(ndr, "force_apps", r->in.force_apps);
3958 ndr_print_uint8(ndr, "do_reboot", r->in.do_reboot);
3959 ndr_print_uint32(ndr, "reason", r->in.reason);
3960 ndr->depth--;
3962 if (flags & NDR_OUT) {
3963 ndr_print_struct(ndr, "out", "winreg_InitiateSystemShutdownEx");
3964 ndr->depth++;
3965 ndr_print_WERROR(ndr, "result", r->out.result);
3966 ndr->depth--;
3968 ndr->depth--;
3971 static enum ndr_err_code ndr_push_winreg_SaveKeyEx(struct ndr_push *ndr, int flags, const struct winreg_SaveKeyEx *r)
3973 if (flags & NDR_IN) {
3975 if (flags & NDR_OUT) {
3976 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3978 return NDR_ERR_SUCCESS;
3981 static enum ndr_err_code ndr_pull_winreg_SaveKeyEx(struct ndr_pull *ndr, int flags, struct winreg_SaveKeyEx *r)
3983 if (flags & NDR_IN) {
3985 if (flags & NDR_OUT) {
3986 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3988 return NDR_ERR_SUCCESS;
3991 _PUBLIC_ void ndr_print_winreg_SaveKeyEx(struct ndr_print *ndr, const char *name, int flags, const struct winreg_SaveKeyEx *r)
3993 ndr_print_struct(ndr, name, "winreg_SaveKeyEx");
3994 ndr->depth++;
3995 if (flags & NDR_SET_VALUES) {
3996 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3998 if (flags & NDR_IN) {
3999 ndr_print_struct(ndr, "in", "winreg_SaveKeyEx");
4000 ndr->depth++;
4001 ndr->depth--;
4003 if (flags & NDR_OUT) {
4004 ndr_print_struct(ndr, "out", "winreg_SaveKeyEx");
4005 ndr->depth++;
4006 ndr_print_WERROR(ndr, "result", r->out.result);
4007 ndr->depth--;
4009 ndr->depth--;
4012 static enum ndr_err_code ndr_push_winreg_OpenHKPT(struct ndr_push *ndr, int flags, const struct winreg_OpenHKPT *r)
4014 if (flags & NDR_IN) {
4015 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.system_name));
4016 if (r->in.system_name) {
4017 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.system_name));
4019 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
4021 if (flags & NDR_OUT) {
4022 if (r->out.handle == NULL) {
4023 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
4025 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
4026 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
4028 return NDR_ERR_SUCCESS;
4031 static enum ndr_err_code ndr_pull_winreg_OpenHKPT(struct ndr_pull *ndr, int flags, struct winreg_OpenHKPT *r)
4033 uint32_t _ptr_system_name;
4034 TALLOC_CTX *_mem_save_system_name_0;
4035 TALLOC_CTX *_mem_save_handle_0;
4036 if (flags & NDR_IN) {
4037 ZERO_STRUCT(r->out);
4039 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_system_name));
4040 if (_ptr_system_name) {
4041 NDR_PULL_ALLOC(ndr, r->in.system_name);
4042 } else {
4043 r->in.system_name = NULL;
4045 if (r->in.system_name) {
4046 _mem_save_system_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4047 NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0);
4048 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.system_name));
4049 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0);
4051 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
4052 NDR_PULL_ALLOC(ndr, r->out.handle);
4053 ZERO_STRUCTP(r->out.handle);
4055 if (flags & NDR_OUT) {
4056 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
4057 NDR_PULL_ALLOC(ndr, r->out.handle);
4059 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
4060 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
4061 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
4062 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
4063 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
4065 return NDR_ERR_SUCCESS;
4068 _PUBLIC_ void ndr_print_winreg_OpenHKPT(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenHKPT *r)
4070 ndr_print_struct(ndr, name, "winreg_OpenHKPT");
4071 ndr->depth++;
4072 if (flags & NDR_SET_VALUES) {
4073 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
4075 if (flags & NDR_IN) {
4076 ndr_print_struct(ndr, "in", "winreg_OpenHKPT");
4077 ndr->depth++;
4078 ndr_print_ptr(ndr, "system_name", r->in.system_name);
4079 ndr->depth++;
4080 if (r->in.system_name) {
4081 ndr_print_uint16(ndr, "system_name", *r->in.system_name);
4083 ndr->depth--;
4084 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
4085 ndr->depth--;
4087 if (flags & NDR_OUT) {
4088 ndr_print_struct(ndr, "out", "winreg_OpenHKPT");
4089 ndr->depth++;
4090 ndr_print_ptr(ndr, "handle", r->out.handle);
4091 ndr->depth++;
4092 ndr_print_policy_handle(ndr, "handle", r->out.handle);
4093 ndr->depth--;
4094 ndr_print_WERROR(ndr, "result", r->out.result);
4095 ndr->depth--;
4097 ndr->depth--;
4100 static enum ndr_err_code ndr_push_winreg_OpenHKPN(struct ndr_push *ndr, int flags, const struct winreg_OpenHKPN *r)
4102 if (flags & NDR_IN) {
4103 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.system_name));
4104 if (r->in.system_name) {
4105 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.system_name));
4107 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
4109 if (flags & NDR_OUT) {
4110 if (r->out.handle == NULL) {
4111 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
4113 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
4114 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
4116 return NDR_ERR_SUCCESS;
4119 static enum ndr_err_code ndr_pull_winreg_OpenHKPN(struct ndr_pull *ndr, int flags, struct winreg_OpenHKPN *r)
4121 uint32_t _ptr_system_name;
4122 TALLOC_CTX *_mem_save_system_name_0;
4123 TALLOC_CTX *_mem_save_handle_0;
4124 if (flags & NDR_IN) {
4125 ZERO_STRUCT(r->out);
4127 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_system_name));
4128 if (_ptr_system_name) {
4129 NDR_PULL_ALLOC(ndr, r->in.system_name);
4130 } else {
4131 r->in.system_name = NULL;
4133 if (r->in.system_name) {
4134 _mem_save_system_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4135 NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0);
4136 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.system_name));
4137 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0);
4139 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
4140 NDR_PULL_ALLOC(ndr, r->out.handle);
4141 ZERO_STRUCTP(r->out.handle);
4143 if (flags & NDR_OUT) {
4144 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
4145 NDR_PULL_ALLOC(ndr, r->out.handle);
4147 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
4148 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
4149 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
4150 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
4151 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
4153 return NDR_ERR_SUCCESS;
4156 _PUBLIC_ void ndr_print_winreg_OpenHKPN(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenHKPN *r)
4158 ndr_print_struct(ndr, name, "winreg_OpenHKPN");
4159 ndr->depth++;
4160 if (flags & NDR_SET_VALUES) {
4161 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
4163 if (flags & NDR_IN) {
4164 ndr_print_struct(ndr, "in", "winreg_OpenHKPN");
4165 ndr->depth++;
4166 ndr_print_ptr(ndr, "system_name", r->in.system_name);
4167 ndr->depth++;
4168 if (r->in.system_name) {
4169 ndr_print_uint16(ndr, "system_name", *r->in.system_name);
4171 ndr->depth--;
4172 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
4173 ndr->depth--;
4175 if (flags & NDR_OUT) {
4176 ndr_print_struct(ndr, "out", "winreg_OpenHKPN");
4177 ndr->depth++;
4178 ndr_print_ptr(ndr, "handle", r->out.handle);
4179 ndr->depth++;
4180 ndr_print_policy_handle(ndr, "handle", r->out.handle);
4181 ndr->depth--;
4182 ndr_print_WERROR(ndr, "result", r->out.result);
4183 ndr->depth--;
4185 ndr->depth--;
4188 static enum ndr_err_code ndr_push_winreg_QueryMultipleValues2(struct ndr_push *ndr, int flags, const struct winreg_QueryMultipleValues2 *r)
4190 if (flags & NDR_IN) {
4192 if (flags & NDR_OUT) {
4193 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
4195 return NDR_ERR_SUCCESS;
4198 static enum ndr_err_code ndr_pull_winreg_QueryMultipleValues2(struct ndr_pull *ndr, int flags, struct winreg_QueryMultipleValues2 *r)
4200 if (flags & NDR_IN) {
4202 if (flags & NDR_OUT) {
4203 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
4205 return NDR_ERR_SUCCESS;
4208 _PUBLIC_ void ndr_print_winreg_QueryMultipleValues2(struct ndr_print *ndr, const char *name, int flags, const struct winreg_QueryMultipleValues2 *r)
4210 ndr_print_struct(ndr, name, "winreg_QueryMultipleValues2");
4211 ndr->depth++;
4212 if (flags & NDR_SET_VALUES) {
4213 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
4215 if (flags & NDR_IN) {
4216 ndr_print_struct(ndr, "in", "winreg_QueryMultipleValues2");
4217 ndr->depth++;
4218 ndr->depth--;
4220 if (flags & NDR_OUT) {
4221 ndr_print_struct(ndr, "out", "winreg_QueryMultipleValues2");
4222 ndr->depth++;
4223 ndr_print_WERROR(ndr, "result", r->out.result);
4224 ndr->depth--;
4226 ndr->depth--;
4229 static const struct ndr_interface_call winreg_calls[] = {
4231 "winreg_OpenHKCR",
4232 sizeof(struct winreg_OpenHKCR),
4233 (ndr_push_flags_fn_t) ndr_push_winreg_OpenHKCR,
4234 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenHKCR,
4235 (ndr_print_function_t) ndr_print_winreg_OpenHKCR,
4236 false,
4239 "winreg_OpenHKCU",
4240 sizeof(struct winreg_OpenHKCU),
4241 (ndr_push_flags_fn_t) ndr_push_winreg_OpenHKCU,
4242 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenHKCU,
4243 (ndr_print_function_t) ndr_print_winreg_OpenHKCU,
4244 false,
4247 "winreg_OpenHKLM",
4248 sizeof(struct winreg_OpenHKLM),
4249 (ndr_push_flags_fn_t) ndr_push_winreg_OpenHKLM,
4250 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenHKLM,
4251 (ndr_print_function_t) ndr_print_winreg_OpenHKLM,
4252 false,
4255 "winreg_OpenHKPD",
4256 sizeof(struct winreg_OpenHKPD),
4257 (ndr_push_flags_fn_t) ndr_push_winreg_OpenHKPD,
4258 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenHKPD,
4259 (ndr_print_function_t) ndr_print_winreg_OpenHKPD,
4260 false,
4263 "winreg_OpenHKU",
4264 sizeof(struct winreg_OpenHKU),
4265 (ndr_push_flags_fn_t) ndr_push_winreg_OpenHKU,
4266 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenHKU,
4267 (ndr_print_function_t) ndr_print_winreg_OpenHKU,
4268 false,
4271 "winreg_CloseKey",
4272 sizeof(struct winreg_CloseKey),
4273 (ndr_push_flags_fn_t) ndr_push_winreg_CloseKey,
4274 (ndr_pull_flags_fn_t) ndr_pull_winreg_CloseKey,
4275 (ndr_print_function_t) ndr_print_winreg_CloseKey,
4276 false,
4279 "winreg_CreateKey",
4280 sizeof(struct winreg_CreateKey),
4281 (ndr_push_flags_fn_t) ndr_push_winreg_CreateKey,
4282 (ndr_pull_flags_fn_t) ndr_pull_winreg_CreateKey,
4283 (ndr_print_function_t) ndr_print_winreg_CreateKey,
4284 false,
4287 "winreg_DeleteKey",
4288 sizeof(struct winreg_DeleteKey),
4289 (ndr_push_flags_fn_t) ndr_push_winreg_DeleteKey,
4290 (ndr_pull_flags_fn_t) ndr_pull_winreg_DeleteKey,
4291 (ndr_print_function_t) ndr_print_winreg_DeleteKey,
4292 false,
4295 "winreg_DeleteValue",
4296 sizeof(struct winreg_DeleteValue),
4297 (ndr_push_flags_fn_t) ndr_push_winreg_DeleteValue,
4298 (ndr_pull_flags_fn_t) ndr_pull_winreg_DeleteValue,
4299 (ndr_print_function_t) ndr_print_winreg_DeleteValue,
4300 false,
4303 "winreg_EnumKey",
4304 sizeof(struct winreg_EnumKey),
4305 (ndr_push_flags_fn_t) ndr_push_winreg_EnumKey,
4306 (ndr_pull_flags_fn_t) ndr_pull_winreg_EnumKey,
4307 (ndr_print_function_t) ndr_print_winreg_EnumKey,
4308 false,
4311 "winreg_EnumValue",
4312 sizeof(struct winreg_EnumValue),
4313 (ndr_push_flags_fn_t) ndr_push_winreg_EnumValue,
4314 (ndr_pull_flags_fn_t) ndr_pull_winreg_EnumValue,
4315 (ndr_print_function_t) ndr_print_winreg_EnumValue,
4316 false,
4319 "winreg_FlushKey",
4320 sizeof(struct winreg_FlushKey),
4321 (ndr_push_flags_fn_t) ndr_push_winreg_FlushKey,
4322 (ndr_pull_flags_fn_t) ndr_pull_winreg_FlushKey,
4323 (ndr_print_function_t) ndr_print_winreg_FlushKey,
4324 false,
4327 "winreg_GetKeySecurity",
4328 sizeof(struct winreg_GetKeySecurity),
4329 (ndr_push_flags_fn_t) ndr_push_winreg_GetKeySecurity,
4330 (ndr_pull_flags_fn_t) ndr_pull_winreg_GetKeySecurity,
4331 (ndr_print_function_t) ndr_print_winreg_GetKeySecurity,
4332 false,
4335 "winreg_LoadKey",
4336 sizeof(struct winreg_LoadKey),
4337 (ndr_push_flags_fn_t) ndr_push_winreg_LoadKey,
4338 (ndr_pull_flags_fn_t) ndr_pull_winreg_LoadKey,
4339 (ndr_print_function_t) ndr_print_winreg_LoadKey,
4340 false,
4343 "winreg_NotifyChangeKeyValue",
4344 sizeof(struct winreg_NotifyChangeKeyValue),
4345 (ndr_push_flags_fn_t) ndr_push_winreg_NotifyChangeKeyValue,
4346 (ndr_pull_flags_fn_t) ndr_pull_winreg_NotifyChangeKeyValue,
4347 (ndr_print_function_t) ndr_print_winreg_NotifyChangeKeyValue,
4348 false,
4351 "winreg_OpenKey",
4352 sizeof(struct winreg_OpenKey),
4353 (ndr_push_flags_fn_t) ndr_push_winreg_OpenKey,
4354 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenKey,
4355 (ndr_print_function_t) ndr_print_winreg_OpenKey,
4356 false,
4359 "winreg_QueryInfoKey",
4360 sizeof(struct winreg_QueryInfoKey),
4361 (ndr_push_flags_fn_t) ndr_push_winreg_QueryInfoKey,
4362 (ndr_pull_flags_fn_t) ndr_pull_winreg_QueryInfoKey,
4363 (ndr_print_function_t) ndr_print_winreg_QueryInfoKey,
4364 false,
4367 "winreg_QueryValue",
4368 sizeof(struct winreg_QueryValue),
4369 (ndr_push_flags_fn_t) ndr_push_winreg_QueryValue,
4370 (ndr_pull_flags_fn_t) ndr_pull_winreg_QueryValue,
4371 (ndr_print_function_t) ndr_print_winreg_QueryValue,
4372 false,
4375 "winreg_ReplaceKey",
4376 sizeof(struct winreg_ReplaceKey),
4377 (ndr_push_flags_fn_t) ndr_push_winreg_ReplaceKey,
4378 (ndr_pull_flags_fn_t) ndr_pull_winreg_ReplaceKey,
4379 (ndr_print_function_t) ndr_print_winreg_ReplaceKey,
4380 false,
4383 "winreg_RestoreKey",
4384 sizeof(struct winreg_RestoreKey),
4385 (ndr_push_flags_fn_t) ndr_push_winreg_RestoreKey,
4386 (ndr_pull_flags_fn_t) ndr_pull_winreg_RestoreKey,
4387 (ndr_print_function_t) ndr_print_winreg_RestoreKey,
4388 false,
4391 "winreg_SaveKey",
4392 sizeof(struct winreg_SaveKey),
4393 (ndr_push_flags_fn_t) ndr_push_winreg_SaveKey,
4394 (ndr_pull_flags_fn_t) ndr_pull_winreg_SaveKey,
4395 (ndr_print_function_t) ndr_print_winreg_SaveKey,
4396 false,
4399 "winreg_SetKeySecurity",
4400 sizeof(struct winreg_SetKeySecurity),
4401 (ndr_push_flags_fn_t) ndr_push_winreg_SetKeySecurity,
4402 (ndr_pull_flags_fn_t) ndr_pull_winreg_SetKeySecurity,
4403 (ndr_print_function_t) ndr_print_winreg_SetKeySecurity,
4404 false,
4407 "winreg_SetValue",
4408 sizeof(struct winreg_SetValue),
4409 (ndr_push_flags_fn_t) ndr_push_winreg_SetValue,
4410 (ndr_pull_flags_fn_t) ndr_pull_winreg_SetValue,
4411 (ndr_print_function_t) ndr_print_winreg_SetValue,
4412 false,
4415 "winreg_UnLoadKey",
4416 sizeof(struct winreg_UnLoadKey),
4417 (ndr_push_flags_fn_t) ndr_push_winreg_UnLoadKey,
4418 (ndr_pull_flags_fn_t) ndr_pull_winreg_UnLoadKey,
4419 (ndr_print_function_t) ndr_print_winreg_UnLoadKey,
4420 false,
4423 "winreg_InitiateSystemShutdown",
4424 sizeof(struct winreg_InitiateSystemShutdown),
4425 (ndr_push_flags_fn_t) ndr_push_winreg_InitiateSystemShutdown,
4426 (ndr_pull_flags_fn_t) ndr_pull_winreg_InitiateSystemShutdown,
4427 (ndr_print_function_t) ndr_print_winreg_InitiateSystemShutdown,
4428 false,
4431 "winreg_AbortSystemShutdown",
4432 sizeof(struct winreg_AbortSystemShutdown),
4433 (ndr_push_flags_fn_t) ndr_push_winreg_AbortSystemShutdown,
4434 (ndr_pull_flags_fn_t) ndr_pull_winreg_AbortSystemShutdown,
4435 (ndr_print_function_t) ndr_print_winreg_AbortSystemShutdown,
4436 false,
4439 "winreg_GetVersion",
4440 sizeof(struct winreg_GetVersion),
4441 (ndr_push_flags_fn_t) ndr_push_winreg_GetVersion,
4442 (ndr_pull_flags_fn_t) ndr_pull_winreg_GetVersion,
4443 (ndr_print_function_t) ndr_print_winreg_GetVersion,
4444 false,
4447 "winreg_OpenHKCC",
4448 sizeof(struct winreg_OpenHKCC),
4449 (ndr_push_flags_fn_t) ndr_push_winreg_OpenHKCC,
4450 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenHKCC,
4451 (ndr_print_function_t) ndr_print_winreg_OpenHKCC,
4452 false,
4455 "winreg_OpenHKDD",
4456 sizeof(struct winreg_OpenHKDD),
4457 (ndr_push_flags_fn_t) ndr_push_winreg_OpenHKDD,
4458 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenHKDD,
4459 (ndr_print_function_t) ndr_print_winreg_OpenHKDD,
4460 false,
4463 "winreg_QueryMultipleValues",
4464 sizeof(struct winreg_QueryMultipleValues),
4465 (ndr_push_flags_fn_t) ndr_push_winreg_QueryMultipleValues,
4466 (ndr_pull_flags_fn_t) ndr_pull_winreg_QueryMultipleValues,
4467 (ndr_print_function_t) ndr_print_winreg_QueryMultipleValues,
4468 false,
4471 "winreg_InitiateSystemShutdownEx",
4472 sizeof(struct winreg_InitiateSystemShutdownEx),
4473 (ndr_push_flags_fn_t) ndr_push_winreg_InitiateSystemShutdownEx,
4474 (ndr_pull_flags_fn_t) ndr_pull_winreg_InitiateSystemShutdownEx,
4475 (ndr_print_function_t) ndr_print_winreg_InitiateSystemShutdownEx,
4476 false,
4479 "winreg_SaveKeyEx",
4480 sizeof(struct winreg_SaveKeyEx),
4481 (ndr_push_flags_fn_t) ndr_push_winreg_SaveKeyEx,
4482 (ndr_pull_flags_fn_t) ndr_pull_winreg_SaveKeyEx,
4483 (ndr_print_function_t) ndr_print_winreg_SaveKeyEx,
4484 false,
4487 "winreg_OpenHKPT",
4488 sizeof(struct winreg_OpenHKPT),
4489 (ndr_push_flags_fn_t) ndr_push_winreg_OpenHKPT,
4490 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenHKPT,
4491 (ndr_print_function_t) ndr_print_winreg_OpenHKPT,
4492 false,
4495 "winreg_OpenHKPN",
4496 sizeof(struct winreg_OpenHKPN),
4497 (ndr_push_flags_fn_t) ndr_push_winreg_OpenHKPN,
4498 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenHKPN,
4499 (ndr_print_function_t) ndr_print_winreg_OpenHKPN,
4500 false,
4503 "winreg_QueryMultipleValues2",
4504 sizeof(struct winreg_QueryMultipleValues2),
4505 (ndr_push_flags_fn_t) ndr_push_winreg_QueryMultipleValues2,
4506 (ndr_pull_flags_fn_t) ndr_pull_winreg_QueryMultipleValues2,
4507 (ndr_print_function_t) ndr_print_winreg_QueryMultipleValues2,
4508 false,
4510 { NULL, 0, NULL, NULL, NULL, false }
4513 static const char * const winreg_endpoint_strings[] = {
4514 "ncacn_np:[\\pipe\\winreg]",
4515 "ncacn_ip_tcp:",
4516 "ncalrpc:",
4519 static const struct ndr_interface_string_array winreg_endpoints = {
4520 .count = 3,
4521 .names = winreg_endpoint_strings
4524 static const char * const winreg_authservice_strings[] = {
4525 "host",
4528 static const struct ndr_interface_string_array winreg_authservices = {
4529 .count = 1,
4530 .names = winreg_authservice_strings
4534 const struct ndr_interface_table ndr_table_winreg = {
4535 .name = "winreg",
4536 .syntax_id = {
4537 {0x338cd001,0x2244,0x31f1,{0xaa,0xaa},{0x90,0x00,0x38,0x00,0x10,0x03}},
4538 NDR_WINREG_VERSION
4540 .helpstring = NDR_WINREG_HELPSTRING,
4541 .num_calls = 35,
4542 .calls = winreg_calls,
4543 .endpoints = &winreg_endpoints,
4544 .authservices = &winreg_authservices