source: vendor/current/librpc/gen_ndr/ndr_winreg.c@ 427

Last change on this file since 427 was 427, checked in by Silvan Scherrer, 15 years ago

Samba 3.5.x: update to 3.5.2

File size: 162.6 KB
Line 
1/* parser auto-generated by pidl */
2
3#include "includes.h"
4#include "../librpc/gen_ndr/ndr_winreg.h"
5
6#include "librpc/gen_ndr/ndr_lsa.h"
7#include "librpc/gen_ndr/ndr_security.h"
8#include "librpc/gen_ndr/ndr_misc.h"
9static enum ndr_err_code ndr_push_winreg_AccessMask(struct ndr_push *ndr, int ndr_flags, uint32_t r)
10{
11 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
12 return NDR_ERR_SUCCESS;
13}
14
15static enum ndr_err_code ndr_pull_winreg_AccessMask(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
16{
17 uint32_t v;
18 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
19 *r = v;
20 return NDR_ERR_SUCCESS;
21}
22
23_PUBLIC_ void ndr_print_winreg_AccessMask(struct ndr_print *ndr, const char *name, uint32_t r)
24{
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--;
36}
37
38_PUBLIC_ enum ndr_err_code ndr_push_winreg_String(struct ndr_push *ndr, int ndr_flags, const struct winreg_String *r)
39{
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));
46 }
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));
53 }
54 }
55 return NDR_ERR_SUCCESS;
56}
57
58_PUBLIC_ enum ndr_err_code ndr_pull_winreg_String(struct ndr_pull *ndr, int ndr_flags, struct winreg_String *r)
59{
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;
71 }
72 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
73 }
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));
82 }
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);
86 }
87 }
88 return NDR_ERR_SUCCESS;
89}
90
91_PUBLIC_ void ndr_print_winreg_String(struct ndr_print *ndr, const char *name, const struct winreg_String *r)
92{
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);
101 }
102 ndr->depth--;
103 ndr->depth--;
104}
105
106static enum ndr_err_code ndr_push_KeySecurityData(struct ndr_push *ndr, int ndr_flags, const struct KeySecurityData *r)
107{
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));
114 }
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));
121 }
122 }
123 return NDR_ERR_SUCCESS;
124}
125
126static enum ndr_err_code ndr_pull_KeySecurityData(struct ndr_pull *ndr, int ndr_flags, struct KeySecurityData *r)
127{
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;
137 }
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));
141 }
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));
150 }
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);
154 }
155 if (r->data) {
156 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->size));
157 }
158 if (r->data) {
159 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->data, r->len));
160 }
161 }
162 return NDR_ERR_SUCCESS;
163}
164
165_PUBLIC_ void ndr_print_KeySecurityData(struct ndr_print *ndr, const char *name, const struct KeySecurityData *r)
166{
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);
173 }
174 ndr->depth--;
175 ndr_print_uint32(ndr, "size", r->size);
176 ndr_print_uint32(ndr, "len", r->len);
177 ndr->depth--;
178}
179
180static enum ndr_err_code ndr_push_winreg_SecBuf(struct ndr_push *ndr, int ndr_flags, const struct winreg_SecBuf *r)
181{
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));
188 }
189 if (ndr_flags & NDR_BUFFERS) {
190 NDR_CHECK(ndr_push_KeySecurityData(ndr, NDR_BUFFERS, &r->sd));
191 }
192 return NDR_ERR_SUCCESS;
193}
194
195static enum ndr_err_code ndr_pull_winreg_SecBuf(struct ndr_pull *ndr, int ndr_flags, struct winreg_SecBuf *r)
196{
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));
203 }
204 if (ndr_flags & NDR_BUFFERS) {
205 NDR_CHECK(ndr_pull_KeySecurityData(ndr, NDR_BUFFERS, &r->sd));
206 }
207 return NDR_ERR_SUCCESS;
208}
209
210_PUBLIC_ void ndr_print_winreg_SecBuf(struct ndr_print *ndr, const char *name, const struct winreg_SecBuf *r)
211{
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--;
218}
219
220static enum ndr_err_code ndr_push_winreg_CreateAction(struct ndr_push *ndr, int ndr_flags, enum winreg_CreateAction r)
221{
222 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
223 return NDR_ERR_SUCCESS;
224}
225
226static enum ndr_err_code ndr_pull_winreg_CreateAction(struct ndr_pull *ndr, int ndr_flags, enum winreg_CreateAction *r)
227{
228 uint32_t v;
229 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
230 *r = v;
231 return NDR_ERR_SUCCESS;
232}
233
234_PUBLIC_ void ndr_print_winreg_CreateAction(struct ndr_print *ndr, const char *name, enum winreg_CreateAction r)
235{
236 const char *val = NULL;
237
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;
242 }
243 ndr_print_enum(ndr, name, "ENUM", val, r);
244}
245
246static enum ndr_err_code ndr_push_winreg_StringBuf(struct ndr_push *ndr, int ndr_flags, const struct winreg_StringBuf *r)
247{
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));
254 }
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));
261 }
262 }
263 return NDR_ERR_SUCCESS;
264}
265
266static enum ndr_err_code ndr_pull_winreg_StringBuf(struct ndr_pull *ndr, int ndr_flags, struct winreg_StringBuf *r)
267{
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;
279 }
280 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
281 }
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));
290 }
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);
293 }
294 if (r->name) {
295 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->name, r->size / 2));
296 }
297 if (r->name) {
298 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->name, r->length / 2));
299 }
300 }
301 return NDR_ERR_SUCCESS;
302}
303
304_PUBLIC_ void ndr_print_winreg_StringBuf(struct ndr_print *ndr, const char *name, const struct winreg_StringBuf *r)
305{
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);
314 }
315 ndr->depth--;
316 ndr->depth--;
317}
318
319static enum ndr_err_code ndr_push_winreg_ValNameBuf(struct ndr_push *ndr, int ndr_flags, const struct winreg_ValNameBuf *r)
320{
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));
327 }
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));
334 }
335 }
336 return NDR_ERR_SUCCESS;
337}
338
339static enum ndr_err_code ndr_pull_winreg_ValNameBuf(struct ndr_pull *ndr, int ndr_flags, struct winreg_ValNameBuf *r)
340{
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;
352 }
353 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
354 }
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));
363 }
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);
366 }
367 if (r->name) {
368 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->name, r->size / 2));
369 }
370 if (r->name) {
371 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->name, r->length / 2));
372 }
373 }
374 return NDR_ERR_SUCCESS;
375}
376
377_PUBLIC_ void ndr_print_winreg_ValNameBuf(struct ndr_print *ndr, const char *name, const struct winreg_ValNameBuf *r)
378{
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);
387 }
388 ndr->depth--;
389 ndr->depth--;
390}
391
392_PUBLIC_ enum ndr_err_code ndr_push_winreg_NotifyChangeType(struct ndr_push *ndr, int ndr_flags, uint32_t r)
393{
394 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
395 return NDR_ERR_SUCCESS;
396}
397
398_PUBLIC_ enum ndr_err_code ndr_pull_winreg_NotifyChangeType(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
399{
400 uint32_t v;
401 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
402 *r = v;
403 return NDR_ERR_SUCCESS;
404}
405
406_PUBLIC_ void ndr_print_winreg_NotifyChangeType(struct ndr_print *ndr, const char *name, uint32_t r)
407{
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--;
415}
416
417static enum ndr_err_code ndr_push_KeySecurityAttribute(struct ndr_push *ndr, int ndr_flags, const struct KeySecurityAttribute *r)
418{
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));
425 }
426 if (ndr_flags & NDR_BUFFERS) {
427 NDR_CHECK(ndr_push_KeySecurityData(ndr, NDR_BUFFERS, &r->sec_data));
428 }
429 return NDR_ERR_SUCCESS;
430}
431
432static enum ndr_err_code ndr_pull_KeySecurityAttribute(struct ndr_pull *ndr, int ndr_flags, struct KeySecurityAttribute *r)
433{
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));
440 }
441 if (ndr_flags & NDR_BUFFERS) {
442 NDR_CHECK(ndr_pull_KeySecurityData(ndr, NDR_BUFFERS, &r->sec_data));
443 }
444 return NDR_ERR_SUCCESS;
445}
446
447_PUBLIC_ void ndr_print_KeySecurityAttribute(struct ndr_print *ndr, const char *name, const struct KeySecurityAttribute *r)
448{
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--;
455}
456
457static enum ndr_err_code ndr_push_QueryMultipleValue(struct ndr_push *ndr, int ndr_flags, const struct QueryMultipleValue *r)
458{
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));
466 }
467 if (ndr_flags & NDR_BUFFERS) {
468 if (r->name) {
469 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->name));
470 }
471 }
472 return NDR_ERR_SUCCESS;
473}
474
475static enum ndr_err_code ndr_pull_QueryMultipleValue(struct ndr_pull *ndr, int ndr_flags, struct QueryMultipleValue *r)
476{
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;
486 }
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));
491 }
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);
498 }
499 }
500 return NDR_ERR_SUCCESS;
501}
502
503_PUBLIC_ void ndr_print_QueryMultipleValue(struct ndr_print *ndr, const char *name, const struct QueryMultipleValue *r)
504{
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);
511 }
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--;
517}
518
519static enum ndr_err_code ndr_push_winreg_OpenHKCR(struct ndr_push *ndr, int flags, const struct winreg_OpenHKCR *r)
520{
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));
525 }
526 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
527 }
528 if (flags & NDR_OUT) {
529 if (r->out.handle == NULL) {
530 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
531 }
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));
534 }
535 return NDR_ERR_SUCCESS;
536}
537
538static enum ndr_err_code ndr_pull_winreg_OpenHKCR(struct ndr_pull *ndr, int flags, struct winreg_OpenHKCR *r)
539{
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);
545
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;
551 }
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);
557 }
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);
561 }
562 if (flags & NDR_OUT) {
563 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
564 NDR_PULL_ALLOC(ndr, r->out.handle);
565 }
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));
571 }
572 return NDR_ERR_SUCCESS;
573}
574
575_PUBLIC_ void ndr_print_winreg_OpenHKCR(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenHKCR *r)
576{
577 ndr_print_struct(ndr, name, "winreg_OpenHKCR");
578 ndr->depth++;
579 if (flags & NDR_SET_VALUES) {
580 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
581 }
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);
589 }
590 ndr->depth--;
591 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
592 ndr->depth--;
593 }
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--;
603 }
604 ndr->depth--;
605}
606
607static enum ndr_err_code ndr_push_winreg_OpenHKCU(struct ndr_push *ndr, int flags, const struct winreg_OpenHKCU *r)
608{
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));
613 }
614 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
615 }
616 if (flags & NDR_OUT) {
617 if (r->out.handle == NULL) {
618 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
619 }
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));
622 }
623 return NDR_ERR_SUCCESS;
624}
625
626static enum ndr_err_code ndr_pull_winreg_OpenHKCU(struct ndr_pull *ndr, int flags, struct winreg_OpenHKCU *r)
627{
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);
633
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;
639 }
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);
645 }
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);
649 }
650 if (flags & NDR_OUT) {
651 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
652 NDR_PULL_ALLOC(ndr, r->out.handle);
653 }
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));
659 }
660 return NDR_ERR_SUCCESS;
661}
662
663_PUBLIC_ void ndr_print_winreg_OpenHKCU(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenHKCU *r)
664{
665 ndr_print_struct(ndr, name, "winreg_OpenHKCU");
666 ndr->depth++;
667 if (flags & NDR_SET_VALUES) {
668 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
669 }
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);
677 }
678 ndr->depth--;
679 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
680 ndr->depth--;
681 }
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--;
691 }
692 ndr->depth--;
693}
694
695_PUBLIC_ enum ndr_err_code ndr_push_winreg_OpenHKLM(struct ndr_push *ndr, int flags, const struct winreg_OpenHKLM *r)
696{
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));
701 }
702 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
703 }
704 if (flags & NDR_OUT) {
705 if (r->out.handle == NULL) {
706 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
707 }
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));
710 }
711 return NDR_ERR_SUCCESS;
712}
713
714_PUBLIC_ enum ndr_err_code ndr_pull_winreg_OpenHKLM(struct ndr_pull *ndr, int flags, struct winreg_OpenHKLM *r)
715{
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);
721
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;
727 }
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);
733 }
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);
737 }
738 if (flags & NDR_OUT) {
739 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
740 NDR_PULL_ALLOC(ndr, r->out.handle);
741 }
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));
747 }
748 return NDR_ERR_SUCCESS;
749}
750
751_PUBLIC_ void ndr_print_winreg_OpenHKLM(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenHKLM *r)
752{
753 ndr_print_struct(ndr, name, "winreg_OpenHKLM");
754 ndr->depth++;
755 if (flags & NDR_SET_VALUES) {
756 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
757 }
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);
765 }
766 ndr->depth--;
767 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
768 ndr->depth--;
769 }
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--;
779 }
780 ndr->depth--;
781}
782
783static enum ndr_err_code ndr_push_winreg_OpenHKPD(struct ndr_push *ndr, int flags, const struct winreg_OpenHKPD *r)
784{
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));
789 }
790 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
791 }
792 if (flags & NDR_OUT) {
793 if (r->out.handle == NULL) {
794 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
795 }
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));
798 }
799 return NDR_ERR_SUCCESS;
800}
801
802static enum ndr_err_code ndr_pull_winreg_OpenHKPD(struct ndr_pull *ndr, int flags, struct winreg_OpenHKPD *r)
803{
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);
809
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;
815 }
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);
821 }
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);
825 }
826 if (flags & NDR_OUT) {
827 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
828 NDR_PULL_ALLOC(ndr, r->out.handle);
829 }
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));
835 }
836 return NDR_ERR_SUCCESS;
837}
838
839_PUBLIC_ void ndr_print_winreg_OpenHKPD(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenHKPD *r)
840{
841 ndr_print_struct(ndr, name, "winreg_OpenHKPD");
842 ndr->depth++;
843 if (flags & NDR_SET_VALUES) {
844 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
845 }
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);
853 }
854 ndr->depth--;
855 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
856 ndr->depth--;
857 }
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--;
867 }
868 ndr->depth--;
869}
870
871static enum ndr_err_code ndr_push_winreg_OpenHKU(struct ndr_push *ndr, int flags, const struct winreg_OpenHKU *r)
872{
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));
877 }
878 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
879 }
880 if (flags & NDR_OUT) {
881 if (r->out.handle == NULL) {
882 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
883 }
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));
886 }
887 return NDR_ERR_SUCCESS;
888}
889
890static enum ndr_err_code ndr_pull_winreg_OpenHKU(struct ndr_pull *ndr, int flags, struct winreg_OpenHKU *r)
891{
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);
897
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;
903 }
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);
909 }
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);
913 }
914 if (flags & NDR_OUT) {
915 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
916 NDR_PULL_ALLOC(ndr, r->out.handle);
917 }
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));
923 }
924 return NDR_ERR_SUCCESS;
925}
926
927_PUBLIC_ void ndr_print_winreg_OpenHKU(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenHKU *r)
928{
929 ndr_print_struct(ndr, name, "winreg_OpenHKU");
930 ndr->depth++;
931 if (flags & NDR_SET_VALUES) {
932 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
933 }
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);
941 }
942 ndr->depth--;
943 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
944 ndr->depth--;
945 }
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--;
955 }
956 ndr->depth--;
957}
958
959_PUBLIC_ enum ndr_err_code ndr_push_winreg_CloseKey(struct ndr_push *ndr, int flags, const struct winreg_CloseKey *r)
960{
961 if (flags & NDR_IN) {
962 if (r->in.handle == NULL) {
963 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
964 }
965 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
966 }
967 if (flags & NDR_OUT) {
968 if (r->out.handle == NULL) {
969 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
970 }
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));
973 }
974 return NDR_ERR_SUCCESS;
975}
976
977_PUBLIC_ enum ndr_err_code ndr_pull_winreg_CloseKey(struct ndr_pull *ndr, int flags, struct winreg_CloseKey *r)
978{
979 TALLOC_CTX *_mem_save_handle_0;
980 if (flags & NDR_IN) {
981 ZERO_STRUCT(r->out);
982
983 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
984 NDR_PULL_ALLOC(ndr, r->in.handle);
985 }
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;
992 }
993 if (flags & NDR_OUT) {
994 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
995 NDR_PULL_ALLOC(ndr, r->out.handle);
996 }
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));
1002 }
1003 return NDR_ERR_SUCCESS;
1004}
1005
1006_PUBLIC_ void ndr_print_winreg_CloseKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_CloseKey *r)
1007{
1008 ndr_print_struct(ndr, name, "winreg_CloseKey");
1009 ndr->depth++;
1010 if (flags & NDR_SET_VALUES) {
1011 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1012 }
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--;
1021 }
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--;
1031 }
1032 ndr->depth--;
1033}
1034
1035_PUBLIC_ enum ndr_err_code ndr_push_winreg_CreateKey(struct ndr_push *ndr, int flags, const struct winreg_CreateKey *r)
1036{
1037 if (flags & NDR_IN) {
1038 if (r->in.handle == NULL) {
1039 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1040 }
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));
1049 }
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));
1053 }
1054 }
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");
1058 }
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));
1063 }
1064 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
1065 }
1066 return NDR_ERR_SUCCESS;
1067}
1068
1069_PUBLIC_ enum ndr_err_code ndr_pull_winreg_CreateKey(struct ndr_pull *ndr, int flags, struct winreg_CreateKey *r)
1070{
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);
1079
1080 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1081 NDR_PULL_ALLOC(ndr, r->in.handle);
1082 }
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;
1096 }
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);
1102 }
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;
1108 }
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);
1114 }
1115 NDR_PULL_ALLOC(ndr, r->out.new_handle);
1116 ZERO_STRUCTP(r->out.new_handle);
1117 }
1118 if (flags & NDR_OUT) {
1119 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1120 NDR_PULL_ALLOC(ndr, r->out.new_handle);
1121 }
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;
1131 }
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);
1137 }
1138 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
1139 }
1140 return NDR_ERR_SUCCESS;
1141}
1142
1143_PUBLIC_ void ndr_print_winreg_CreateKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_CreateKey *r)
1144{
1145 ndr_print_struct(ndr, name, "winreg_CreateKey");
1146 ndr->depth++;
1147 if (flags & NDR_SET_VALUES) {
1148 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1149 }
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);
1165 }
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);
1171 }
1172 ndr->depth--;
1173 ndr->depth--;
1174 }
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);
1186 }
1187 ndr->depth--;
1188 ndr_print_WERROR(ndr, "result", r->out.result);
1189 ndr->depth--;
1190 }
1191 ndr->depth--;
1192}
1193
1194_PUBLIC_ enum ndr_err_code ndr_push_winreg_DeleteKey(struct ndr_push *ndr, int flags, const struct winreg_DeleteKey *r)
1195{
1196 if (flags & NDR_IN) {
1197 if (r->in.handle == NULL) {
1198 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1199 }
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));
1202 }
1203 if (flags & NDR_OUT) {
1204 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
1205 }
1206 return NDR_ERR_SUCCESS;
1207}
1208
1209_PUBLIC_ enum ndr_err_code ndr_pull_winreg_DeleteKey(struct ndr_pull *ndr, int flags, struct winreg_DeleteKey *r)
1210{
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);
1215 }
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));
1221 }
1222 if (flags & NDR_OUT) {
1223 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
1224 }
1225 return NDR_ERR_SUCCESS;
1226}
1227
1228_PUBLIC_ void ndr_print_winreg_DeleteKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_DeleteKey *r)
1229{
1230 ndr_print_struct(ndr, name, "winreg_DeleteKey");
1231 ndr->depth++;
1232 if (flags & NDR_SET_VALUES) {
1233 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1234 }
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--;
1244 }
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--;
1250 }
1251 ndr->depth--;
1252}
1253
1254static enum ndr_err_code ndr_push_winreg_DeleteValue(struct ndr_push *ndr, int flags, const struct winreg_DeleteValue *r)
1255{
1256 if (flags & NDR_IN) {
1257 if (r->in.handle == NULL) {
1258 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1259 }
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));
1262 }
1263 if (flags & NDR_OUT) {
1264 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
1265 }
1266 return NDR_ERR_SUCCESS;
1267}
1268
1269static enum ndr_err_code ndr_pull_winreg_DeleteValue(struct ndr_pull *ndr, int flags, struct winreg_DeleteValue *r)
1270{
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);
1275 }
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));
1281 }
1282 if (flags & NDR_OUT) {
1283 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
1284 }
1285 return NDR_ERR_SUCCESS;
1286}
1287
1288_PUBLIC_ void ndr_print_winreg_DeleteValue(struct ndr_print *ndr, const char *name, int flags, const struct winreg_DeleteValue *r)
1289{
1290 ndr_print_struct(ndr, name, "winreg_DeleteValue");
1291 ndr->depth++;
1292 if (flags & NDR_SET_VALUES) {
1293 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1294 }
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--;
1304 }
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--;
1310 }
1311 ndr->depth--;
1312}
1313
1314_PUBLIC_ enum ndr_err_code ndr_push_winreg_EnumKey(struct ndr_push *ndr, int flags, const struct winreg_EnumKey *r)
1315{
1316 if (flags & NDR_IN) {
1317 if (r->in.handle == NULL) {
1318 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1319 }
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");
1324 }
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));
1329 }
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));
1333 }
1334 }
1335 if (flags & NDR_OUT) {
1336 if (r->out.name == NULL) {
1337 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1338 }
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));
1343 }
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));
1347 }
1348 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
1349 }
1350 return NDR_ERR_SUCCESS;
1351}
1352
1353_PUBLIC_ enum ndr_err_code ndr_pull_winreg_EnumKey(struct ndr_pull *ndr, int flags, struct winreg_EnumKey *r)
1354{
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);
1363
1364 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1365 NDR_PULL_ALLOC(ndr, r->in.handle);
1366 }
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);
1374 }
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;
1384 }
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);
1390 }
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;
1396 }
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);
1402 }
1403 NDR_PULL_ALLOC(ndr, r->out.name);
1404 *r->out.name = *r->in.name;
1405 }
1406 if (flags & NDR_OUT) {
1407 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1408 NDR_PULL_ALLOC(ndr, r->out.name);
1409 }
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;
1419 }
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);
1425 }
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;
1431 }
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);
1437 }
1438 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
1439 }
1440 return NDR_ERR_SUCCESS;
1441}
1442
1443_PUBLIC_ void ndr_print_winreg_EnumKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_EnumKey *r)
1444{
1445 ndr_print_struct(ndr, name, "winreg_EnumKey");
1446 ndr->depth++;
1447 if (flags & NDR_SET_VALUES) {
1448 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1449 }
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);
1466 }
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);
1472 }
1473 ndr->depth--;
1474 ndr->depth--;
1475 }
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);
1487 }
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);
1493 }
1494 ndr->depth--;
1495 ndr_print_WERROR(ndr, "result", r->out.result);
1496 ndr->depth--;
1497 }
1498 ndr->depth--;
1499}
1500
1501_PUBLIC_ enum ndr_err_code ndr_push_winreg_EnumValue(struct ndr_push *ndr, int flags, const struct winreg_EnumValue *r)
1502{
1503 if (flags & NDR_IN) {
1504 if (r->in.handle == NULL) {
1505 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1506 }
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");
1511 }
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));
1516 }
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));
1523 }
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));
1527 }
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));
1531 }
1532 }
1533 if (flags & NDR_OUT) {
1534 if (r->out.name == NULL) {
1535 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1536 }
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));
1541 }
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));
1548 }
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));
1552 }
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));
1556 }
1557 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
1558 }
1559 return NDR_ERR_SUCCESS;
1560}
1561
1562_PUBLIC_ enum ndr_err_code ndr_pull_winreg_EnumValue(struct ndr_pull *ndr, int flags, struct winreg_EnumValue *r)
1563{
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);
1576
1577 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1578 NDR_PULL_ALLOC(ndr, r->in.handle);
1579 }
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);
1587 }
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;
1597 }
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);
1603 }
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;
1609 }
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));
1617 }
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);
1621 }
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;
1627 }
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);
1633 }
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;
1639 }
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);
1645 }
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));
1651 }
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));
1655 }
1656 }
1657 if (flags & NDR_OUT) {
1658 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1659 NDR_PULL_ALLOC(ndr, r->out.name);
1660 }
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;
1670 }
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);
1676 }
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;
1682 }
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));
1690 }
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);
1694 }
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;
1700 }
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);
1706 }
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;
1712 }
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);
1718 }
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));
1723 }
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));
1727 }
1728 }
1729 return NDR_ERR_SUCCESS;
1730}
1731
1732_PUBLIC_ void ndr_print_winreg_EnumValue(struct ndr_print *ndr, const char *name, int flags, const struct winreg_EnumValue *r)
1733{
1734 ndr_print_struct(ndr, name, "winreg_EnumValue");
1735 ndr->depth++;
1736 if (flags & NDR_SET_VALUES) {
1737 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1738 }
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);
1755 }
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);
1762 }
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);
1768 }
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);
1774 }
1775 ndr->depth--;
1776 ndr->depth--;
1777 }
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);
1789 }
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);
1796 }
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);
1802 }
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);
1808 }
1809 ndr->depth--;
1810 ndr_print_WERROR(ndr, "result", r->out.result);
1811 ndr->depth--;
1812 }
1813 ndr->depth--;
1814}
1815
1816_PUBLIC_ enum ndr_err_code ndr_push_winreg_FlushKey(struct ndr_push *ndr, int flags, const struct winreg_FlushKey *r)
1817{
1818 if (flags & NDR_IN) {
1819 if (r->in.handle == NULL) {
1820 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1821 }
1822 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
1823 }
1824 if (flags & NDR_OUT) {
1825 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
1826 }
1827 return NDR_ERR_SUCCESS;
1828}
1829
1830_PUBLIC_ enum ndr_err_code ndr_pull_winreg_FlushKey(struct ndr_pull *ndr, int flags, struct winreg_FlushKey *r)
1831{
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);
1836 }
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);
1841 }
1842 if (flags & NDR_OUT) {
1843 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
1844 }
1845 return NDR_ERR_SUCCESS;
1846}
1847
1848_PUBLIC_ void ndr_print_winreg_FlushKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_FlushKey *r)
1849{
1850 ndr_print_struct(ndr, name, "winreg_FlushKey");
1851 ndr->depth++;
1852 if (flags & NDR_SET_VALUES) {
1853 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1854 }
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--;
1863 }
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--;
1869 }
1870 ndr->depth--;
1871}
1872
1873_PUBLIC_ enum ndr_err_code ndr_push_winreg_GetKeySecurity(struct ndr_push *ndr, int flags, const struct winreg_GetKeySecurity *r)
1874{
1875 if (flags & NDR_IN) {
1876 if (r->in.handle == NULL) {
1877 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1878 }
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");
1883 }
1884 NDR_CHECK(ndr_push_KeySecurityData(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sd));
1885 }
1886 if (flags & NDR_OUT) {
1887 if (r->out.sd == NULL) {
1888 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1889 }
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));
1892 }
1893 return NDR_ERR_SUCCESS;
1894}
1895
1896_PUBLIC_ enum ndr_err_code ndr_pull_winreg_GetKeySecurity(struct ndr_pull *ndr, int flags, struct winreg_GetKeySecurity *r)
1897{
1898 TALLOC_CTX *_mem_save_handle_0;
1899 TALLOC_CTX *_mem_save_sd_0;
1900 if (flags & NDR_IN) {
1901 ZERO_STRUCT(r->out);
1902
1903 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1904 NDR_PULL_ALLOC(ndr, r->in.handle);
1905 }
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);
1913 }
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;
1920 }
1921 if (flags & NDR_OUT) {
1922 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1923 NDR_PULL_ALLOC(ndr, r->out.sd);
1924 }
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));
1930 }
1931 return NDR_ERR_SUCCESS;
1932}
1933
1934_PUBLIC_ void ndr_print_winreg_GetKeySecurity(struct ndr_print *ndr, const char *name, int flags, const struct winreg_GetKeySecurity *r)
1935{
1936 ndr_print_struct(ndr, name, "winreg_GetKeySecurity");
1937 ndr->depth++;
1938 if (flags & NDR_SET_VALUES) {
1939 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1940 }
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--;
1954 }
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--;
1964 }
1965 ndr->depth--;
1966}
1967
1968static enum ndr_err_code ndr_push_winreg_LoadKey(struct ndr_push *ndr, int flags, const struct winreg_LoadKey *r)
1969{
1970 if (flags & NDR_IN) {
1971 if (r->in.handle == NULL) {
1972 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1973 }
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));
1978 }
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));
1982 }
1983 }
1984 if (flags & NDR_OUT) {
1985 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
1986 }
1987 return NDR_ERR_SUCCESS;
1988}
1989
1990static enum ndr_err_code ndr_pull_winreg_LoadKey(struct ndr_pull *ndr, int flags, struct winreg_LoadKey *r)
1991{
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);
2000 }
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;
2010 }
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);
2016 }
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;
2022 }
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);
2028 }
2029 }
2030 if (flags & NDR_OUT) {
2031 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
2032 }
2033 return NDR_ERR_SUCCESS;
2034}
2035
2036_PUBLIC_ void ndr_print_winreg_LoadKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_LoadKey *r)
2037{
2038 ndr_print_struct(ndr, name, "winreg_LoadKey");
2039 ndr->depth++;
2040 if (flags & NDR_SET_VALUES) {
2041 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2042 }
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);
2054 }
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);
2060 }
2061 ndr->depth--;
2062 ndr->depth--;
2063 }
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--;
2069 }
2070 ndr->depth--;
2071}
2072
2073_PUBLIC_ enum ndr_err_code ndr_push_winreg_NotifyChangeKeyValue(struct ndr_push *ndr, int flags, const struct winreg_NotifyChangeKeyValue *r)
2074{
2075 if (flags & NDR_IN) {
2076 if (r->in.handle == NULL) {
2077 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2078 }
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));
2086 }
2087 if (flags & NDR_OUT) {
2088 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
2089 }
2090 return NDR_ERR_SUCCESS;
2091}
2092
2093_PUBLIC_ enum ndr_err_code ndr_pull_winreg_NotifyChangeKeyValue(struct ndr_pull *ndr, int flags, struct winreg_NotifyChangeKeyValue *r)
2094{
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);
2099 }
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));
2110 }
2111 if (flags & NDR_OUT) {
2112 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
2113 }
2114 return NDR_ERR_SUCCESS;
2115}
2116
2117_PUBLIC_ void ndr_print_winreg_NotifyChangeKeyValue(struct ndr_print *ndr, const char *name, int flags, const struct winreg_NotifyChangeKeyValue *r)
2118{
2119 ndr_print_struct(ndr, name, "winreg_NotifyChangeKeyValue");
2120 ndr->depth++;
2121 if (flags & NDR_SET_VALUES) {
2122 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2123 }
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--;
2138 }
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--;
2144 }
2145 ndr->depth--;
2146}
2147
2148_PUBLIC_ enum ndr_err_code ndr_push_winreg_OpenKey(struct ndr_push *ndr, int flags, const struct winreg_OpenKey *r)
2149{
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");
2153 }
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));
2158 }
2159 if (flags & NDR_OUT) {
2160 if (r->out.handle == NULL) {
2161 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2162 }
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));
2165 }
2166 return NDR_ERR_SUCCESS;
2167}
2168
2169_PUBLIC_ enum ndr_err_code ndr_pull_winreg_OpenKey(struct ndr_pull *ndr, int flags, struct winreg_OpenKey *r)
2170{
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);
2175
2176 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2177 NDR_PULL_ALLOC(ndr, r->in.parent_handle);
2178 }
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);
2188 }
2189 if (flags & NDR_OUT) {
2190 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2191 NDR_PULL_ALLOC(ndr, r->out.handle);
2192 }
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));
2198 }
2199 return NDR_ERR_SUCCESS;
2200}
2201
2202_PUBLIC_ void ndr_print_winreg_OpenKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenKey *r)
2203{
2204 ndr_print_struct(ndr, name, "winreg_OpenKey");
2205 ndr->depth++;
2206 if (flags & NDR_SET_VALUES) {
2207 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2208 }
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--;
2220 }
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--;
2230 }
2231 ndr->depth--;
2232}
2233
2234_PUBLIC_ enum ndr_err_code ndr_push_winreg_QueryInfoKey(struct ndr_push *ndr, int flags, const struct winreg_QueryInfoKey *r)
2235{
2236 if (flags & NDR_IN) {
2237 if (r->in.handle == NULL) {
2238 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2239 }
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");
2243 }
2244 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.classname));
2245 }
2246 if (flags & NDR_OUT) {
2247 if (r->out.classname == NULL) {
2248 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2249 }
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");
2253 }
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");
2257 }
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");
2261 }
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");
2265 }
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");
2269 }
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");
2273 }
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");
2277 }
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");
2281 }
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));
2284 }
2285 return NDR_ERR_SUCCESS;
2286}
2287
2288_PUBLIC_ enum ndr_err_code ndr_pull_winreg_QueryInfoKey(struct ndr_pull *ndr, int flags, struct winreg_QueryInfoKey *r)
2289{
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);
2302
2303 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2304 NDR_PULL_ALLOC(ndr, r->in.handle);
2305 }
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);
2312 }
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);
2335 }
2336 if (flags & NDR_OUT) {
2337 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2338 NDR_PULL_ALLOC(ndr, r->out.classname);
2339 }
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);
2346 }
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);
2353 }
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);
2360 }
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);
2367 }
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);
2374 }
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);
2381 }
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);
2388 }
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);
2395 }
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));
2401 }
2402 return NDR_ERR_SUCCESS;
2403}
2404
2405_PUBLIC_ void ndr_print_winreg_QueryInfoKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_QueryInfoKey *r)
2406{
2407 ndr_print_struct(ndr, name, "winreg_QueryInfoKey");
2408 ndr->depth++;
2409 if (flags & NDR_SET_VALUES) {
2410 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2411 }
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--;
2424 }
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--;
2466 }
2467 ndr->depth--;
2468}
2469
2470_PUBLIC_ enum ndr_err_code ndr_push_winreg_QueryValue(struct ndr_push *ndr, int flags, const struct winreg_QueryValue *r)
2471{
2472 if (flags & NDR_IN) {
2473 if (r->in.handle == NULL) {
2474 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2475 }
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");
2479 }
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));
2484 }
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));
2491 }
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));
2495 }
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));
2499 }
2500 }
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));
2505 }
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));
2512 }
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));
2516 }
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));
2520 }
2521 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
2522 }
2523 return NDR_ERR_SUCCESS;
2524}
2525
2526_PUBLIC_ enum ndr_err_code ndr_pull_winreg_QueryValue(struct ndr_pull *ndr, int flags, struct winreg_QueryValue *r)
2527{
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);
2540
2541 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2542 NDR_PULL_ALLOC(ndr, r->in.handle);
2543 }
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);
2550 }
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;
2560 }
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);
2566 }
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;
2572 }
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));
2580 }
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);
2584 }
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;
2590 }
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);
2596 }
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;
2602 }
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);
2608 }
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));
2612 }
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));
2616 }
2617 }
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;
2624 }
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);
2630 }
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;
2636 }
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));
2644 }
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);
2648 }
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;
2654 }
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);
2660 }
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;
2666 }
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);
2672 }
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));
2677 }
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));
2681 }
2682 }
2683 return NDR_ERR_SUCCESS;
2684}
2685
2686_PUBLIC_ void ndr_print_winreg_QueryValue(struct ndr_print *ndr, const char *name, int flags, const struct winreg_QueryValue *r)
2687{
2688 ndr_print_struct(ndr, name, "winreg_QueryValue");
2689 ndr->depth++;
2690 if (flags & NDR_SET_VALUES) {
2691 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2692 }
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);
2708 }
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);
2715 }
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);
2721 }
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);
2727 }
2728 ndr->depth--;
2729 ndr->depth--;
2730 }
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);
2738 }
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);
2745 }
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);
2751 }
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);
2757 }
2758 ndr->depth--;
2759 ndr_print_WERROR(ndr, "result", r->out.result);
2760 ndr->depth--;
2761 }
2762 ndr->depth--;
2763}
2764
2765static enum ndr_err_code ndr_push_winreg_ReplaceKey(struct ndr_push *ndr, int flags, const struct winreg_ReplaceKey *r)
2766{
2767 if (flags & NDR_IN) {
2768 }
2769 if (flags & NDR_OUT) {
2770 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
2771 }
2772 return NDR_ERR_SUCCESS;
2773}
2774
2775static enum ndr_err_code ndr_pull_winreg_ReplaceKey(struct ndr_pull *ndr, int flags, struct winreg_ReplaceKey *r)
2776{
2777 if (flags & NDR_IN) {
2778 }
2779 if (flags & NDR_OUT) {
2780 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
2781 }
2782 return NDR_ERR_SUCCESS;
2783}
2784
2785_PUBLIC_ void ndr_print_winreg_ReplaceKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_ReplaceKey *r)
2786{
2787 ndr_print_struct(ndr, name, "winreg_ReplaceKey");
2788 ndr->depth++;
2789 if (flags & NDR_SET_VALUES) {
2790 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2791 }
2792 if (flags & NDR_IN) {
2793 ndr_print_struct(ndr, "in", "winreg_ReplaceKey");
2794 ndr->depth++;
2795 ndr->depth--;
2796 }
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--;
2802 }
2803 ndr->depth--;
2804}
2805
2806static enum ndr_err_code ndr_push_winreg_RestoreKey(struct ndr_push *ndr, int flags, const struct winreg_RestoreKey *r)
2807{
2808 if (flags & NDR_IN) {
2809 if (r->in.handle == NULL) {
2810 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2811 }
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");
2815 }
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));
2818 }
2819 if (flags & NDR_OUT) {
2820 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
2821 }
2822 return NDR_ERR_SUCCESS;
2823}
2824
2825static enum ndr_err_code ndr_pull_winreg_RestoreKey(struct ndr_pull *ndr, int flags, struct winreg_RestoreKey *r)
2826{
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);
2832 }
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);
2839 }
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));
2845 }
2846 if (flags & NDR_OUT) {
2847 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
2848 }
2849 return NDR_ERR_SUCCESS;
2850}
2851
2852_PUBLIC_ void ndr_print_winreg_RestoreKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_RestoreKey *r)
2853{
2854 ndr_print_struct(ndr, name, "winreg_RestoreKey");
2855 ndr->depth++;
2856 if (flags & NDR_SET_VALUES) {
2857 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2858 }
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--;
2872 }
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--;
2878 }
2879 ndr->depth--;
2880}
2881
2882static enum ndr_err_code ndr_push_winreg_SaveKey(struct ndr_push *ndr, int flags, const struct winreg_SaveKey *r)
2883{
2884 if (flags & NDR_IN) {
2885 if (r->in.handle == NULL) {
2886 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2887 }
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");
2891 }
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));
2896 }
2897 }
2898 if (flags & NDR_OUT) {
2899 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
2900 }
2901 return NDR_ERR_SUCCESS;
2902}
2903
2904static enum ndr_err_code ndr_pull_winreg_SaveKey(struct ndr_pull *ndr, int flags, struct winreg_SaveKey *r)
2905{
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);
2913 }
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);
2920 }
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;
2930 }
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);
2936 }
2937 }
2938 if (flags & NDR_OUT) {
2939 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
2940 }
2941 return NDR_ERR_SUCCESS;
2942}
2943
2944_PUBLIC_ void ndr_print_winreg_SaveKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_SaveKey *r)
2945{
2946 ndr_print_struct(ndr, name, "winreg_SaveKey");
2947 ndr->depth++;
2948 if (flags & NDR_SET_VALUES) {
2949 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2950 }
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);
2966 }
2967 ndr->depth--;
2968 ndr->depth--;
2969 }
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--;
2975 }
2976 ndr->depth--;
2977}
2978
2979static enum ndr_err_code ndr_push_winreg_SetKeySecurity(struct ndr_push *ndr, int flags, const struct winreg_SetKeySecurity *r)
2980{
2981 if (flags & NDR_IN) {
2982 if (r->in.handle == NULL) {
2983 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
2984 }
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");
2989 }
2990 NDR_CHECK(ndr_push_KeySecurityData(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sd));
2991 }
2992 if (flags & NDR_OUT) {
2993 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
2994 }
2995 return NDR_ERR_SUCCESS;
2996}
2997
2998static enum ndr_err_code ndr_pull_winreg_SetKeySecurity(struct ndr_pull *ndr, int flags, struct winreg_SetKeySecurity *r)
2999{
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);
3005 }
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);
3013 }
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);
3018 }
3019 if (flags & NDR_OUT) {
3020 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3021 }
3022 return NDR_ERR_SUCCESS;
3023}
3024
3025_PUBLIC_ void ndr_print_winreg_SetKeySecurity(struct ndr_print *ndr, const char *name, int flags, const struct winreg_SetKeySecurity *r)
3026{
3027 ndr_print_struct(ndr, name, "winreg_SetKeySecurity");
3028 ndr->depth++;
3029 if (flags & NDR_SET_VALUES) {
3030 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3031 }
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--;
3045 }
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--;
3051 }
3052 ndr->depth--;
3053}
3054
3055static enum ndr_err_code ndr_push_winreg_SetValue(struct ndr_push *ndr, int flags, const struct winreg_SetValue *r)
3056{
3057 if (flags & NDR_IN) {
3058 if (r->in.handle == NULL) {
3059 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
3060 }
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");
3066 }
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));
3070 }
3071 if (flags & NDR_OUT) {
3072 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3073 }
3074 return NDR_ERR_SUCCESS;
3075}
3076
3077static enum ndr_err_code ndr_pull_winreg_SetValue(struct ndr_pull *ndr, int flags, struct winreg_SetValue *r)
3078{
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);
3083 }
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));
3093 }
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));
3098 }
3099 }
3100 if (flags & NDR_OUT) {
3101 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3102 }
3103 return NDR_ERR_SUCCESS;
3104}
3105
3106_PUBLIC_ void ndr_print_winreg_SetValue(struct ndr_print *ndr, const char *name, int flags, const struct winreg_SetValue *r)
3107{
3108 ndr_print_struct(ndr, name, "winreg_SetValue");
3109 ndr->depth++;
3110 if (flags & NDR_SET_VALUES) {
3111 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3112 }
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--;
3128 }
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--;
3134 }
3135 ndr->depth--;
3136}
3137
3138static enum ndr_err_code ndr_push_winreg_UnLoadKey(struct ndr_push *ndr, int flags, const struct winreg_UnLoadKey *r)
3139{
3140 if (flags & NDR_IN) {
3141 }
3142 if (flags & NDR_OUT) {
3143 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3144 }
3145 return NDR_ERR_SUCCESS;
3146}
3147
3148static enum ndr_err_code ndr_pull_winreg_UnLoadKey(struct ndr_pull *ndr, int flags, struct winreg_UnLoadKey *r)
3149{
3150 if (flags & NDR_IN) {
3151 }
3152 if (flags & NDR_OUT) {
3153 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3154 }
3155 return NDR_ERR_SUCCESS;
3156}
3157
3158_PUBLIC_ void ndr_print_winreg_UnLoadKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_UnLoadKey *r)
3159{
3160 ndr_print_struct(ndr, name, "winreg_UnLoadKey");
3161 ndr->depth++;
3162 if (flags & NDR_SET_VALUES) {
3163 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3164 }
3165 if (flags & NDR_IN) {
3166 ndr_print_struct(ndr, "in", "winreg_UnLoadKey");
3167 ndr->depth++;
3168 ndr->depth--;
3169 }
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--;
3175 }
3176 ndr->depth--;
3177}
3178
3179static enum ndr_err_code ndr_push_winreg_InitiateSystemShutdown(struct ndr_push *ndr, int flags, const struct winreg_InitiateSystemShutdown *r)
3180{
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));
3185 }
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));
3189 }
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));
3193 }
3194 if (flags & NDR_OUT) {
3195 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3196 }
3197 return NDR_ERR_SUCCESS;
3198}
3199
3200static enum ndr_err_code ndr_pull_winreg_InitiateSystemShutdown(struct ndr_pull *ndr, int flags, struct winreg_InitiateSystemShutdown *r)
3201{
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;
3212 }
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);
3218 }
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;
3224 }
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);
3230 }
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));
3234 }
3235 if (flags & NDR_OUT) {
3236 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3237 }
3238 return NDR_ERR_SUCCESS;
3239}
3240
3241_PUBLIC_ void ndr_print_winreg_InitiateSystemShutdown(struct ndr_print *ndr, const char *name, int flags, const struct winreg_InitiateSystemShutdown *r)
3242{
3243 ndr_print_struct(ndr, name, "winreg_InitiateSystemShutdown");
3244 ndr->depth++;
3245 if (flags & NDR_SET_VALUES) {
3246 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3247 }
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);
3255 }
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);
3261 }
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--;
3267 }
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--;
3273 }
3274 ndr->depth--;
3275}
3276
3277static enum ndr_err_code ndr_push_winreg_AbortSystemShutdown(struct ndr_push *ndr, int flags, const struct winreg_AbortSystemShutdown *r)
3278{
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));
3283 }
3284 }
3285 if (flags & NDR_OUT) {
3286 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3287 }
3288 return NDR_ERR_SUCCESS;
3289}
3290
3291static enum ndr_err_code ndr_pull_winreg_AbortSystemShutdown(struct ndr_pull *ndr, int flags, struct winreg_AbortSystemShutdown *r)
3292{
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;
3301 }
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);
3307 }
3308 }
3309 if (flags & NDR_OUT) {
3310 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3311 }
3312 return NDR_ERR_SUCCESS;
3313}
3314
3315_PUBLIC_ void ndr_print_winreg_AbortSystemShutdown(struct ndr_print *ndr, const char *name, int flags, const struct winreg_AbortSystemShutdown *r)
3316{
3317 ndr_print_struct(ndr, name, "winreg_AbortSystemShutdown");
3318 ndr->depth++;
3319 if (flags & NDR_SET_VALUES) {
3320 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3321 }
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);
3329 }
3330 ndr->depth--;
3331 ndr->depth--;
3332 }
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--;
3338 }
3339 ndr->depth--;
3340}
3341
3342_PUBLIC_ enum ndr_err_code ndr_push_winreg_GetVersion(struct ndr_push *ndr, int flags, const struct winreg_GetVersion *r)
3343{
3344 if (flags & NDR_IN) {
3345 if (r->in.handle == NULL) {
3346 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
3347 }
3348 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
3349 }
3350 if (flags & NDR_OUT) {
3351 if (r->out.version == NULL) {
3352 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
3353 }
3354 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.version));
3355 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3356 }
3357 return NDR_ERR_SUCCESS;
3358}
3359
3360_PUBLIC_ enum ndr_err_code ndr_pull_winreg_GetVersion(struct ndr_pull *ndr, int flags, struct winreg_GetVersion *r)
3361{
3362 TALLOC_CTX *_mem_save_handle_0;
3363 TALLOC_CTX *_mem_save_version_0;
3364 if (flags & NDR_IN) {
3365 ZERO_STRUCT(r->out);
3366
3367 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3368 NDR_PULL_ALLOC(ndr, r->in.handle);
3369 }
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);
3376 }
3377 if (flags & NDR_OUT) {
3378 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3379 NDR_PULL_ALLOC(ndr, r->out.version);
3380 }
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));
3386 }
3387 return NDR_ERR_SUCCESS;
3388}
3389
3390_PUBLIC_ void ndr_print_winreg_GetVersion(struct ndr_print *ndr, const char *name, int flags, const struct winreg_GetVersion *r)
3391{
3392 ndr_print_struct(ndr, name, "winreg_GetVersion");
3393 ndr->depth++;
3394 if (flags & NDR_SET_VALUES) {
3395 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3396 }
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--;
3405 }
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--;
3415 }
3416 ndr->depth--;
3417}
3418
3419static enum ndr_err_code ndr_push_winreg_OpenHKCC(struct ndr_push *ndr, int flags, const struct winreg_OpenHKCC *r)
3420{
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));
3425 }
3426 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
3427 }
3428 if (flags & NDR_OUT) {
3429 if (r->out.handle == NULL) {
3430 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
3431 }
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));
3434 }
3435 return NDR_ERR_SUCCESS;
3436}
3437
3438static enum ndr_err_code ndr_pull_winreg_OpenHKCC(struct ndr_pull *ndr, int flags, struct winreg_OpenHKCC *r)
3439{
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);
3445
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;
3451 }
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);
3457 }
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);
3461 }
3462 if (flags & NDR_OUT) {
3463 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3464 NDR_PULL_ALLOC(ndr, r->out.handle);
3465 }
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));
3471 }
3472 return NDR_ERR_SUCCESS;
3473}
3474
3475_PUBLIC_ void ndr_print_winreg_OpenHKCC(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenHKCC *r)
3476{
3477 ndr_print_struct(ndr, name, "winreg_OpenHKCC");
3478 ndr->depth++;
3479 if (flags & NDR_SET_VALUES) {
3480 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3481 }
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);
3489 }
3490 ndr->depth--;
3491 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
3492 ndr->depth--;
3493 }
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--;
3503 }
3504 ndr->depth--;
3505}
3506
3507static enum ndr_err_code ndr_push_winreg_OpenHKDD(struct ndr_push *ndr, int flags, const struct winreg_OpenHKDD *r)
3508{
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));
3513 }
3514 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
3515 }
3516 if (flags & NDR_OUT) {
3517 if (r->out.handle == NULL) {
3518 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
3519 }
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));
3522 }
3523 return NDR_ERR_SUCCESS;
3524}
3525
3526static enum ndr_err_code ndr_pull_winreg_OpenHKDD(struct ndr_pull *ndr, int flags, struct winreg_OpenHKDD *r)
3527{
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);
3533
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;
3539 }
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);
3545 }
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);
3549 }
3550 if (flags & NDR_OUT) {
3551 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3552 NDR_PULL_ALLOC(ndr, r->out.handle);
3553 }
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));
3559 }
3560 return NDR_ERR_SUCCESS;
3561}
3562
3563_PUBLIC_ void ndr_print_winreg_OpenHKDD(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenHKDD *r)
3564{
3565 ndr_print_struct(ndr, name, "winreg_OpenHKDD");
3566 ndr->depth++;
3567 if (flags & NDR_SET_VALUES) {
3568 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3569 }
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);
3577 }
3578 ndr->depth--;
3579 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
3580 ndr->depth--;
3581 }
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--;
3591 }
3592 ndr->depth--;
3593}
3594
3595_PUBLIC_ enum ndr_err_code ndr_push_winreg_QueryMultipleValues(struct ndr_push *ndr, int flags, const struct winreg_QueryMultipleValues *r)
3596{
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");
3601 }
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");
3605 }
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]));
3611 }
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]));
3614 }
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));
3622 }
3623 if (r->in.buffer_size == NULL) {
3624 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
3625 }
3626 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.buffer_size));
3627 }
3628 if (flags & NDR_OUT) {
3629 if (r->out.values == NULL) {
3630 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
3631 }
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]));
3637 }
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]));
3640 }
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));
3647 }
3648 if (r->out.buffer_size == NULL) {
3649 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
3650 }
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));
3653 }
3654 return NDR_ERR_SUCCESS;
3655}
3656
3657_PUBLIC_ enum ndr_err_code ndr_pull_winreg_QueryMultipleValues(struct ndr_pull *ndr, int flags, struct winreg_QueryMultipleValues *r)
3658{
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);
3667
3668 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3669 NDR_PULL_ALLOC(ndr, r->in.key_handle);
3670 }
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));
3679 }
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));
3682 }
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]));
3688 }
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]));
3691 }
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;
3699 }
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));
3707 }
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);
3711 }
3712 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3713 NDR_PULL_ALLOC(ndr, r->in.buffer_size);
3714 }
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));
3725 }
3726 if (r->in.values) {
3727 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->in.values, r->in.num_values));
3728 }
3729 if (r->in.buffer) {
3730 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, *r->in.buffer_size));
3731 }
3732 if (r->in.buffer) {
3733 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->in.buffer, *r->in.buffer_size));
3734 }
3735 }
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));
3741 }
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));
3744 }
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]));
3750 }
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]));
3753 }
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;
3760 }
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));
3768 }
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);
3772 }
3773 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3774 NDR_PULL_ALLOC(ndr, r->out.buffer_size);
3775 }
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));
3783 }
3784 if (r->out.values) {
3785 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->out.values, r->in.num_values));
3786 }
3787 if (r->out.buffer) {
3788 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, *r->out.buffer_size));
3789 }
3790 if (r->out.buffer) {
3791 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->out.buffer, *r->out.buffer_size));
3792 }
3793 }
3794 return NDR_ERR_SUCCESS;
3795}
3796
3797_PUBLIC_ void ndr_print_winreg_QueryMultipleValues(struct ndr_print *ndr, const char *name, int flags, const struct winreg_QueryMultipleValues *r)
3798{
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;
3804 }
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);
3821 }
3822 }
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);
3830 }
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--;
3837 }
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);
3850 }
3851 }
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);
3858 }
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--;
3866 }
3867 ndr->depth--;
3868}
3869
3870static enum ndr_err_code ndr_push_winreg_InitiateSystemShutdownEx(struct ndr_push *ndr, int flags, const struct winreg_InitiateSystemShutdownEx *r)
3871{
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));
3876 }
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));
3880 }
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));
3885 }
3886 if (flags & NDR_OUT) {
3887 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3888 }
3889 return NDR_ERR_SUCCESS;
3890}
3891
3892static enum ndr_err_code ndr_pull_winreg_InitiateSystemShutdownEx(struct ndr_pull *ndr, int flags, struct winreg_InitiateSystemShutdownEx *r)
3893{
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;
3904 }
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);
3910 }
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;
3916 }
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);
3922 }
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));
3927 }
3928 if (flags & NDR_OUT) {
3929 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3930 }
3931 return NDR_ERR_SUCCESS;
3932}
3933
3934_PUBLIC_ void ndr_print_winreg_InitiateSystemShutdownEx(struct ndr_print *ndr, const char *name, int flags, const struct winreg_InitiateSystemShutdownEx *r)
3935{
3936 ndr_print_struct(ndr, name, "winreg_InitiateSystemShutdownEx");
3937 ndr->depth++;
3938 if (flags & NDR_SET_VALUES) {
3939 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3940 }
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);
3948 }
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);
3954 }
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--;
3961 }
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--;
3967 }
3968 ndr->depth--;
3969}
3970
3971static enum ndr_err_code ndr_push_winreg_SaveKeyEx(struct ndr_push *ndr, int flags, const struct winreg_SaveKeyEx *r)
3972{
3973 if (flags & NDR_IN) {
3974 }
3975 if (flags & NDR_OUT) {
3976 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3977 }
3978 return NDR_ERR_SUCCESS;
3979}
3980
3981static enum ndr_err_code ndr_pull_winreg_SaveKeyEx(struct ndr_pull *ndr, int flags, struct winreg_SaveKeyEx *r)
3982{
3983 if (flags & NDR_IN) {
3984 }
3985 if (flags & NDR_OUT) {
3986 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3987 }
3988 return NDR_ERR_SUCCESS;
3989}
3990
3991_PUBLIC_ void ndr_print_winreg_SaveKeyEx(struct ndr_print *ndr, const char *name, int flags, const struct winreg_SaveKeyEx *r)
3992{
3993 ndr_print_struct(ndr, name, "winreg_SaveKeyEx");
3994 ndr->depth++;
3995 if (flags & NDR_SET_VALUES) {
3996 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3997 }
3998 if (flags & NDR_IN) {
3999 ndr_print_struct(ndr, "in", "winreg_SaveKeyEx");
4000 ndr->depth++;
4001 ndr->depth--;
4002 }
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--;
4008 }
4009 ndr->depth--;
4010}
4011
4012static enum ndr_err_code ndr_push_winreg_OpenHKPT(struct ndr_push *ndr, int flags, const struct winreg_OpenHKPT *r)
4013{
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));
4018 }
4019 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
4020 }
4021 if (flags & NDR_OUT) {
4022 if (r->out.handle == NULL) {
4023 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
4024 }
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));
4027 }
4028 return NDR_ERR_SUCCESS;
4029}
4030
4031static enum ndr_err_code ndr_pull_winreg_OpenHKPT(struct ndr_pull *ndr, int flags, struct winreg_OpenHKPT *r)
4032{
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);
4038
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;
4044 }
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);
4050 }
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);
4054 }
4055 if (flags & NDR_OUT) {
4056 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
4057 NDR_PULL_ALLOC(ndr, r->out.handle);
4058 }
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));
4064 }
4065 return NDR_ERR_SUCCESS;
4066}
4067
4068_PUBLIC_ void ndr_print_winreg_OpenHKPT(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenHKPT *r)
4069{
4070 ndr_print_struct(ndr, name, "winreg_OpenHKPT");
4071 ndr->depth++;
4072 if (flags & NDR_SET_VALUES) {
4073 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
4074 }
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);
4082 }
4083 ndr->depth--;
4084 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
4085 ndr->depth--;
4086 }
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--;
4096 }
4097 ndr->depth--;
4098}
4099
4100static enum ndr_err_code ndr_push_winreg_OpenHKPN(struct ndr_push *ndr, int flags, const struct winreg_OpenHKPN *r)
4101{
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));
4106 }
4107 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
4108 }
4109 if (flags & NDR_OUT) {
4110 if (r->out.handle == NULL) {
4111 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
4112 }
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));
4115 }
4116 return NDR_ERR_SUCCESS;
4117}
4118
4119static enum ndr_err_code ndr_pull_winreg_OpenHKPN(struct ndr_pull *ndr, int flags, struct winreg_OpenHKPN *r)
4120{
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);
4126
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;
4132 }
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);
4138 }
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);
4142 }
4143 if (flags & NDR_OUT) {
4144 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
4145 NDR_PULL_ALLOC(ndr, r->out.handle);
4146 }
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));
4152 }
4153 return NDR_ERR_SUCCESS;
4154}
4155
4156_PUBLIC_ void ndr_print_winreg_OpenHKPN(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenHKPN *r)
4157{
4158 ndr_print_struct(ndr, name, "winreg_OpenHKPN");
4159 ndr->depth++;
4160 if (flags & NDR_SET_VALUES) {
4161 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
4162 }
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);
4170 }
4171 ndr->depth--;
4172 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
4173 ndr->depth--;
4174 }
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--;
4184 }
4185 ndr->depth--;
4186}
4187
4188static enum ndr_err_code ndr_push_winreg_QueryMultipleValues2(struct ndr_push *ndr, int flags, const struct winreg_QueryMultipleValues2 *r)
4189{
4190 if (flags & NDR_IN) {
4191 }
4192 if (flags & NDR_OUT) {
4193 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
4194 }
4195 return NDR_ERR_SUCCESS;
4196}
4197
4198static enum ndr_err_code ndr_pull_winreg_QueryMultipleValues2(struct ndr_pull *ndr, int flags, struct winreg_QueryMultipleValues2 *r)
4199{
4200 if (flags & NDR_IN) {
4201 }
4202 if (flags & NDR_OUT) {
4203 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
4204 }
4205 return NDR_ERR_SUCCESS;
4206}
4207
4208_PUBLIC_ void ndr_print_winreg_QueryMultipleValues2(struct ndr_print *ndr, const char *name, int flags, const struct winreg_QueryMultipleValues2 *r)
4209{
4210 ndr_print_struct(ndr, name, "winreg_QueryMultipleValues2");
4211 ndr->depth++;
4212 if (flags & NDR_SET_VALUES) {
4213 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
4214 }
4215 if (flags & NDR_IN) {
4216 ndr_print_struct(ndr, "in", "winreg_QueryMultipleValues2");
4217 ndr->depth++;
4218 ndr->depth--;
4219 }
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--;
4225 }
4226 ndr->depth--;
4227}
4228
4229static const struct ndr_interface_call winreg_calls[] = {
4230 {
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,
4237 },
4238 {
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,
4245 },
4246 {
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,
4253 },
4254 {
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,
4261 },
4262 {
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,
4269 },
4270 {
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,
4277 },
4278 {
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,
4285 },
4286 {
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,
4293 },
4294 {
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,
4301 },
4302 {
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,
4309 },
4310 {
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,
4317 },
4318 {
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,
4325 },
4326 {
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,
4333 },
4334 {
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,
4341 },
4342 {
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,
4349 },
4350 {
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,
4357 },
4358 {
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,
4365 },
4366 {
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,
4373 },
4374 {
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,
4381 },
4382 {
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,
4389 },
4390 {
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,
4397 },
4398 {
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,
4405 },
4406 {
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,
4413 },
4414 {
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,
4421 },
4422 {
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,
4429 },
4430 {
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,
4437 },
4438 {
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,
4445 },
4446 {
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,
4453 },
4454 {
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,
4461 },
4462 {
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,
4469 },
4470 {
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,
4477 },
4478 {
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,
4485 },
4486 {
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,
4493 },
4494 {
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,
4501 },
4502 {
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,
4509 },
4510 { NULL, 0, NULL, NULL, NULL, false }
4511};
4512
4513static const char * const winreg_endpoint_strings[] = {
4514 "ncacn_np:[\\pipe\\winreg]",
4515 "ncacn_ip_tcp:",
4516 "ncalrpc:",
4517};
4518
4519static const struct ndr_interface_string_array winreg_endpoints = {
4520 .count = 3,
4521 .names = winreg_endpoint_strings
4522};
4523
4524static const char * const winreg_authservice_strings[] = {
4525 "host",
4526};
4527
4528static const struct ndr_interface_string_array winreg_authservices = {
4529 .count = 1,
4530 .names = winreg_authservice_strings
4531};
4532
4533
4534const 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
4539 },
4540 .helpstring = NDR_WINREG_HELPSTRING,
4541 .num_calls = 35,
4542 .calls = winreg_calls,
4543 .endpoints = &winreg_endpoints,
4544 .authservices = &winreg_authservices
4545};
4546
Note: See TracBrowser for help on using the repository browser.