1 /* parser auto-generated by pidl */
4 #include "librpc/gen_ndr/ndr_winreg.h"
6 #include "librpc/gen_ndr/ndr_lsa.h"
7 #include "librpc/gen_ndr/ndr_initshutdown.h"
8 #include "librpc/gen_ndr/ndr_security.h"
9 NTSTATUS ndr_push_winreg_AccessMask(struct ndr_push *ndr, int ndr_flags, uint32_t r)
11 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
15 NTSTATUS ndr_pull_winreg_AccessMask(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
18 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
23 _PUBLIC_ void ndr_print_winreg_AccessMask(struct ndr_print *ndr, const char *name, uint32_t r)
25 ndr_print_uint32(ndr, name, r);
30 NTSTATUS ndr_push_winreg_Type(struct ndr_push *ndr, int ndr_flags, enum winreg_Type r)
32 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
36 NTSTATUS ndr_pull_winreg_Type(struct ndr_pull *ndr, int ndr_flags, enum winreg_Type *r)
39 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
44 _PUBLIC_ void ndr_print_winreg_Type(struct ndr_print *ndr, const char *name, enum winreg_Type r)
46 const char *val = NULL;
49 case REG_NONE: val = "REG_NONE"; break;
50 case REG_SZ: val = "REG_SZ"; break;
51 case REG_EXPAND_SZ: val = "REG_EXPAND_SZ"; break;
52 case REG_BINARY: val = "REG_BINARY"; break;
53 case REG_DWORD: val = "REG_DWORD"; break;
54 case REG_DWORD_BIG_ENDIAN: val = "REG_DWORD_BIG_ENDIAN"; break;
55 case REG_LINK: val = "REG_LINK"; break;
56 case REG_MULTI_SZ: val = "REG_MULTI_SZ"; break;
57 case REG_RESOURCE_LIST: val = "REG_RESOURCE_LIST"; break;
58 case REG_FULL_RESOURCE_DESCRIPTOR: val = "REG_FULL_RESOURCE_DESCRIPTOR"; break;
59 case REG_RESOURCE_REQUIREMENTS_LIST: val = "REG_RESOURCE_REQUIREMENTS_LIST"; break;
60 case REG_QWORD: val = "REG_QWORD"; break;
62 ndr_print_enum(ndr, name, "ENUM", val, r);
65 _PUBLIC_ NTSTATUS ndr_push_winreg_String(struct ndr_push *ndr, int ndr_flags, const struct winreg_String *r)
67 if (ndr_flags & NDR_SCALARS) {
68 NDR_CHECK(ndr_push_align(ndr, 4));
69 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, strlen_m_term(r->name) * 2));
70 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, strlen_m_term(r->name) * 2));
71 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
73 if (ndr_flags & NDR_BUFFERS) {
75 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
76 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
77 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
78 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, ndr_charset_length(r->name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
84 _PUBLIC_ NTSTATUS ndr_pull_winreg_String(struct ndr_pull *ndr, int ndr_flags, struct winreg_String *r)
87 TALLOC_CTX *_mem_save_name_0;
88 if (ndr_flags & NDR_SCALARS) {
89 NDR_CHECK(ndr_pull_align(ndr, 4));
90 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->name_len));
91 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->name_size));
92 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
94 NDR_PULL_ALLOC(ndr, r->name);
99 if (ndr_flags & NDR_BUFFERS) {
101 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
102 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
103 NDR_CHECK(ndr_pull_array_size(ndr, &r->name));
104 NDR_CHECK(ndr_pull_array_length(ndr, &r->name));
105 if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) {
106 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));
108 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t)));
109 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16));
110 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
116 _PUBLIC_ void ndr_print_winreg_String(struct ndr_print *ndr, const char *name, const struct winreg_String *r)
118 ndr_print_struct(ndr, name, "winreg_String");
120 ndr_print_uint16(ndr, "name_len", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?strlen_m_term(r->name) * 2:r->name_len);
121 ndr_print_uint16(ndr, "name_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?strlen_m_term(r->name) * 2:r->name_size);
122 ndr_print_ptr(ndr, "name", r->name);
125 ndr_print_string(ndr, "name", r->name);
131 NTSTATUS ndr_push_KeySecurityData(struct ndr_push *ndr, int ndr_flags, const struct KeySecurityData *r)
133 if (ndr_flags & NDR_SCALARS) {
134 NDR_CHECK(ndr_push_align(ndr, 4));
135 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
136 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
137 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->len));
139 if (ndr_flags & NDR_BUFFERS) {
141 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
142 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
143 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->len));
144 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, r->len));
150 NTSTATUS ndr_pull_KeySecurityData(struct ndr_pull *ndr, int ndr_flags, struct KeySecurityData *r)
153 TALLOC_CTX *_mem_save_data_0;
154 if (ndr_flags & NDR_SCALARS) {
155 NDR_CHECK(ndr_pull_align(ndr, 4));
156 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
158 NDR_PULL_ALLOC(ndr, r->data);
162 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
163 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->len));
165 if (ndr_flags & NDR_BUFFERS) {
167 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
168 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
169 NDR_CHECK(ndr_pull_array_size(ndr, &r->data));
170 NDR_CHECK(ndr_pull_array_length(ndr, &r->data));
171 if (ndr_get_array_length(ndr, &r->data) > ndr_get_array_size(ndr, &r->data)) {
172 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));
174 NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data));
175 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, ndr_get_array_length(ndr, &r->data)));
176 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
179 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->size));
182 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->data, r->len));
188 _PUBLIC_ void ndr_print_KeySecurityData(struct ndr_print *ndr, const char *name, const struct KeySecurityData *r)
190 ndr_print_struct(ndr, name, "KeySecurityData");
192 ndr_print_ptr(ndr, "data", r->data);
195 ndr_print_array_uint8(ndr, "data", r->data, r->len);
198 ndr_print_uint32(ndr, "size", r->size);
199 ndr_print_uint32(ndr, "len", r->len);
203 NTSTATUS ndr_push_winreg_SecBuf(struct ndr_push *ndr, int ndr_flags, const struct winreg_SecBuf *r)
205 if (ndr_flags & NDR_SCALARS) {
206 NDR_CHECK(ndr_push_align(ndr, 4));
207 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
208 NDR_CHECK(ndr_push_KeySecurityData(ndr, NDR_SCALARS, &r->sd));
209 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->inherit));
211 if (ndr_flags & NDR_BUFFERS) {
212 NDR_CHECK(ndr_push_KeySecurityData(ndr, NDR_BUFFERS, &r->sd));
217 NTSTATUS ndr_pull_winreg_SecBuf(struct ndr_pull *ndr, int ndr_flags, struct winreg_SecBuf *r)
219 if (ndr_flags & NDR_SCALARS) {
220 NDR_CHECK(ndr_pull_align(ndr, 4));
221 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
222 NDR_CHECK(ndr_pull_KeySecurityData(ndr, NDR_SCALARS, &r->sd));
223 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->inherit));
225 if (ndr_flags & NDR_BUFFERS) {
226 NDR_CHECK(ndr_pull_KeySecurityData(ndr, NDR_BUFFERS, &r->sd));
231 _PUBLIC_ void ndr_print_winreg_SecBuf(struct ndr_print *ndr, const char *name, const struct winreg_SecBuf *r)
233 ndr_print_struct(ndr, name, "winreg_SecBuf");
235 ndr_print_uint32(ndr, "length", r->length);
236 ndr_print_KeySecurityData(ndr, "sd", &r->sd);
237 ndr_print_uint8(ndr, "inherit", r->inherit);
241 NTSTATUS ndr_push_winreg_CreateAction(struct ndr_push *ndr, int ndr_flags, enum winreg_CreateAction r)
243 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
247 NTSTATUS ndr_pull_winreg_CreateAction(struct ndr_pull *ndr, int ndr_flags, enum winreg_CreateAction *r)
250 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
255 _PUBLIC_ void ndr_print_winreg_CreateAction(struct ndr_print *ndr, const char *name, enum winreg_CreateAction r)
257 const char *val = NULL;
260 case REG_ACTION_NONE: val = "REG_ACTION_NONE"; break;
261 case REG_CREATED_NEW_KEY: val = "REG_CREATED_NEW_KEY"; break;
262 case REG_OPENED_EXISTING_KEY: val = "REG_OPENED_EXISTING_KEY"; break;
264 ndr_print_enum(ndr, name, "ENUM", val, r);
267 NTSTATUS ndr_push_winreg_StringBuf(struct ndr_push *ndr, int ndr_flags, const struct winreg_StringBuf *r)
269 if (ndr_flags & NDR_SCALARS) {
270 NDR_CHECK(ndr_push_align(ndr, 4));
271 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, strlen_m_term_null(r->name) * 2));
272 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->size));
273 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
275 if (ndr_flags & NDR_BUFFERS) {
277 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size / 2));
278 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
279 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, strlen_m_term_null(r->name) * 2 / 2));
280 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, strlen_m_term_null(r->name) * 2 / 2, sizeof(uint16_t), CH_UTF16));
286 NTSTATUS ndr_pull_winreg_StringBuf(struct ndr_pull *ndr, int ndr_flags, struct winreg_StringBuf *r)
289 TALLOC_CTX *_mem_save_name_0;
290 if (ndr_flags & NDR_SCALARS) {
291 NDR_CHECK(ndr_pull_align(ndr, 4));
292 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
293 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
294 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
296 NDR_PULL_ALLOC(ndr, r->name);
301 if (ndr_flags & NDR_BUFFERS) {
303 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
304 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
305 NDR_CHECK(ndr_pull_array_size(ndr, &r->name));
306 NDR_CHECK(ndr_pull_array_length(ndr, &r->name));
307 if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) {
308 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));
310 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16));
311 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
314 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->name, r->size / 2));
317 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->name, r->length / 2));
323 _PUBLIC_ void ndr_print_winreg_StringBuf(struct ndr_print *ndr, const char *name, const struct winreg_StringBuf *r)
325 ndr_print_struct(ndr, name, "winreg_StringBuf");
327 ndr_print_uint16(ndr, "length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?strlen_m_term_null(r->name) * 2:r->length);
328 ndr_print_uint16(ndr, "size", r->size);
329 ndr_print_ptr(ndr, "name", r->name);
332 ndr_print_string(ndr, "name", r->name);
338 NTSTATUS ndr_push_winreg_ValNameBuf(struct ndr_push *ndr, int ndr_flags, const struct winreg_ValNameBuf *r)
340 if (ndr_flags & NDR_SCALARS) {
341 NDR_CHECK(ndr_push_align(ndr, 4));
342 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, strlen_m_term(r->name) * 2));
343 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->size));
344 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
346 if (ndr_flags & NDR_BUFFERS) {
348 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size / 2));
349 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
350 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, strlen_m_term(r->name) * 2 / 2));
351 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, strlen_m_term(r->name) * 2 / 2, sizeof(uint16_t), CH_UTF16));
357 NTSTATUS ndr_pull_winreg_ValNameBuf(struct ndr_pull *ndr, int ndr_flags, struct winreg_ValNameBuf *r)
360 TALLOC_CTX *_mem_save_name_0;
361 if (ndr_flags & NDR_SCALARS) {
362 NDR_CHECK(ndr_pull_align(ndr, 4));
363 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
364 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
365 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
367 NDR_PULL_ALLOC(ndr, r->name);
372 if (ndr_flags & NDR_BUFFERS) {
374 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
375 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
376 NDR_CHECK(ndr_pull_array_size(ndr, &r->name));
377 NDR_CHECK(ndr_pull_array_length(ndr, &r->name));
378 if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) {
379 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));
381 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16));
382 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
385 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->name, r->size / 2));
388 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->name, r->length / 2));
394 _PUBLIC_ void ndr_print_winreg_ValNameBuf(struct ndr_print *ndr, const char *name, const struct winreg_ValNameBuf *r)
396 ndr_print_struct(ndr, name, "winreg_ValNameBuf");
398 ndr_print_uint16(ndr, "length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?strlen_m_term(r->name) * 2:r->length);
399 ndr_print_uint16(ndr, "size", r->size);
400 ndr_print_ptr(ndr, "name", r->name);
403 ndr_print_string(ndr, "name", r->name);
409 NTSTATUS ndr_push_KeySecurityAttribute(struct ndr_push *ndr, int ndr_flags, const struct KeySecurityAttribute *r)
411 if (ndr_flags & NDR_SCALARS) {
412 NDR_CHECK(ndr_push_align(ndr, 4));
413 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->data_size));
414 NDR_CHECK(ndr_push_KeySecurityData(ndr, NDR_SCALARS, &r->sec_data));
415 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->inherit));
417 if (ndr_flags & NDR_BUFFERS) {
418 NDR_CHECK(ndr_push_KeySecurityData(ndr, NDR_BUFFERS, &r->sec_data));
423 NTSTATUS ndr_pull_KeySecurityAttribute(struct ndr_pull *ndr, int ndr_flags, struct KeySecurityAttribute *r)
425 if (ndr_flags & NDR_SCALARS) {
426 NDR_CHECK(ndr_pull_align(ndr, 4));
427 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->data_size));
428 NDR_CHECK(ndr_pull_KeySecurityData(ndr, NDR_SCALARS, &r->sec_data));
429 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->inherit));
431 if (ndr_flags & NDR_BUFFERS) {
432 NDR_CHECK(ndr_pull_KeySecurityData(ndr, NDR_BUFFERS, &r->sec_data));
437 _PUBLIC_ void ndr_print_KeySecurityAttribute(struct ndr_print *ndr, const char *name, const struct KeySecurityAttribute *r)
439 ndr_print_struct(ndr, name, "KeySecurityAttribute");
441 ndr_print_uint32(ndr, "data_size", r->data_size);
442 ndr_print_KeySecurityData(ndr, "sec_data", &r->sec_data);
443 ndr_print_uint8(ndr, "inherit", r->inherit);
447 NTSTATUS ndr_push_QueryMultipleValue(struct ndr_push *ndr, int ndr_flags, const struct QueryMultipleValue *r)
449 if (ndr_flags & NDR_SCALARS) {
450 NDR_CHECK(ndr_push_align(ndr, 4));
451 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
452 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->type));
453 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->offset));
454 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
456 if (ndr_flags & NDR_BUFFERS) {
458 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->name));
464 NTSTATUS ndr_pull_QueryMultipleValue(struct ndr_pull *ndr, int ndr_flags, struct QueryMultipleValue *r)
467 TALLOC_CTX *_mem_save_name_0;
468 if (ndr_flags & NDR_SCALARS) {
469 NDR_CHECK(ndr_pull_align(ndr, 4));
470 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
472 NDR_PULL_ALLOC(ndr, r->name);
476 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->type));
477 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->offset));
478 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
480 if (ndr_flags & NDR_BUFFERS) {
482 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
483 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
484 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->name));
485 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
491 _PUBLIC_ void ndr_print_QueryMultipleValue(struct ndr_print *ndr, const char *name, const struct QueryMultipleValue *r)
493 ndr_print_struct(ndr, name, "QueryMultipleValue");
495 ndr_print_ptr(ndr, "name", r->name);
498 ndr_print_winreg_String(ndr, "name", r->name);
501 ndr_print_winreg_Type(ndr, "type", r->type);
502 ndr_print_uint32(ndr, "offset", r->offset);
503 ndr_print_uint32(ndr, "length", r->length);
507 NTSTATUS ndr_push_winreg_OpenHKCR(struct ndr_push *ndr, int flags, const struct winreg_OpenHKCR *r)
509 if (flags & NDR_IN) {
510 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.system_name));
511 if (r->in.system_name) {
512 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.system_name));
514 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
516 if (flags & NDR_OUT) {
517 if (r->out.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
518 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.handle));
519 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
524 NTSTATUS ndr_pull_winreg_OpenHKCR(struct ndr_pull *ndr, int flags, struct winreg_OpenHKCR *r)
526 uint32_t _ptr_system_name;
527 TALLOC_CTX *_mem_save_system_name_0;
528 TALLOC_CTX *_mem_save_handle_0;
529 if (flags & NDR_IN) {
532 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_system_name));
533 if (_ptr_system_name) {
534 NDR_PULL_ALLOC(ndr, r->in.system_name);
536 r->in.system_name = NULL;
538 if (r->in.system_name) {
539 _mem_save_system_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
540 NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0);
541 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.system_name));
542 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0);
544 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
545 NDR_PULL_ALLOC(ndr, r->out.handle);
546 ZERO_STRUCTP(r->out.handle);
548 if (flags & NDR_OUT) {
549 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
550 NDR_PULL_ALLOC(ndr, r->out.handle);
552 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
553 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
554 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.handle));
555 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
556 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
561 _PUBLIC_ void ndr_print_winreg_OpenHKCR(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenHKCR *r)
563 ndr_print_struct(ndr, name, "winreg_OpenHKCR");
565 if (flags & NDR_SET_VALUES) {
566 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
568 if (flags & NDR_IN) {
569 ndr_print_struct(ndr, "in", "winreg_OpenHKCR");
571 ndr_print_ptr(ndr, "system_name", r->in.system_name);
573 if (r->in.system_name) {
574 ndr_print_uint16(ndr, "system_name", *r->in.system_name);
577 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
580 if (flags & NDR_OUT) {
581 ndr_print_struct(ndr, "out", "winreg_OpenHKCR");
583 ndr_print_ptr(ndr, "handle", r->out.handle);
585 ndr_print_policy_handle(ndr, "handle", r->out.handle);
587 ndr_print_WERROR(ndr, "result", r->out.result);
593 NTSTATUS ndr_push_winreg_OpenHKCU(struct ndr_push *ndr, int flags, const struct winreg_OpenHKCU *r)
595 if (flags & NDR_IN) {
596 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.system_name));
597 if (r->in.system_name) {
598 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.system_name));
600 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
602 if (flags & NDR_OUT) {
603 if (r->out.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
604 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.handle));
605 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
610 NTSTATUS ndr_pull_winreg_OpenHKCU(struct ndr_pull *ndr, int flags, struct winreg_OpenHKCU *r)
612 uint32_t _ptr_system_name;
613 TALLOC_CTX *_mem_save_system_name_0;
614 TALLOC_CTX *_mem_save_handle_0;
615 if (flags & NDR_IN) {
618 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_system_name));
619 if (_ptr_system_name) {
620 NDR_PULL_ALLOC(ndr, r->in.system_name);
622 r->in.system_name = NULL;
624 if (r->in.system_name) {
625 _mem_save_system_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
626 NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0);
627 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.system_name));
628 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0);
630 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
631 NDR_PULL_ALLOC(ndr, r->out.handle);
632 ZERO_STRUCTP(r->out.handle);
634 if (flags & NDR_OUT) {
635 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
636 NDR_PULL_ALLOC(ndr, r->out.handle);
638 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
639 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
640 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.handle));
641 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
642 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
647 _PUBLIC_ void ndr_print_winreg_OpenHKCU(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenHKCU *r)
649 ndr_print_struct(ndr, name, "winreg_OpenHKCU");
651 if (flags & NDR_SET_VALUES) {
652 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
654 if (flags & NDR_IN) {
655 ndr_print_struct(ndr, "in", "winreg_OpenHKCU");
657 ndr_print_ptr(ndr, "system_name", r->in.system_name);
659 if (r->in.system_name) {
660 ndr_print_uint16(ndr, "system_name", *r->in.system_name);
663 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
666 if (flags & NDR_OUT) {
667 ndr_print_struct(ndr, "out", "winreg_OpenHKCU");
669 ndr_print_ptr(ndr, "handle", r->out.handle);
671 ndr_print_policy_handle(ndr, "handle", r->out.handle);
673 ndr_print_WERROR(ndr, "result", r->out.result);
679 NTSTATUS ndr_push_winreg_OpenHKLM(struct ndr_push *ndr, int flags, const struct winreg_OpenHKLM *r)
681 if (flags & NDR_IN) {
682 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.system_name));
683 if (r->in.system_name) {
684 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.system_name));
686 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
688 if (flags & NDR_OUT) {
689 if (r->out.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
690 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.handle));
691 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
696 NTSTATUS ndr_pull_winreg_OpenHKLM(struct ndr_pull *ndr, int flags, struct winreg_OpenHKLM *r)
698 uint32_t _ptr_system_name;
699 TALLOC_CTX *_mem_save_system_name_0;
700 TALLOC_CTX *_mem_save_handle_0;
701 if (flags & NDR_IN) {
704 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_system_name));
705 if (_ptr_system_name) {
706 NDR_PULL_ALLOC(ndr, r->in.system_name);
708 r->in.system_name = NULL;
710 if (r->in.system_name) {
711 _mem_save_system_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
712 NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0);
713 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.system_name));
714 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0);
716 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
717 NDR_PULL_ALLOC(ndr, r->out.handle);
718 ZERO_STRUCTP(r->out.handle);
720 if (flags & NDR_OUT) {
721 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
722 NDR_PULL_ALLOC(ndr, r->out.handle);
724 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
725 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
726 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.handle));
727 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
728 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
733 _PUBLIC_ void ndr_print_winreg_OpenHKLM(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenHKLM *r)
735 ndr_print_struct(ndr, name, "winreg_OpenHKLM");
737 if (flags & NDR_SET_VALUES) {
738 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
740 if (flags & NDR_IN) {
741 ndr_print_struct(ndr, "in", "winreg_OpenHKLM");
743 ndr_print_ptr(ndr, "system_name", r->in.system_name);
745 if (r->in.system_name) {
746 ndr_print_uint16(ndr, "system_name", *r->in.system_name);
749 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
752 if (flags & NDR_OUT) {
753 ndr_print_struct(ndr, "out", "winreg_OpenHKLM");
755 ndr_print_ptr(ndr, "handle", r->out.handle);
757 ndr_print_policy_handle(ndr, "handle", r->out.handle);
759 ndr_print_WERROR(ndr, "result", r->out.result);
765 NTSTATUS ndr_push_winreg_OpenHKPD(struct ndr_push *ndr, int flags, const struct winreg_OpenHKPD *r)
767 if (flags & NDR_IN) {
768 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.system_name));
769 if (r->in.system_name) {
770 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.system_name));
772 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
774 if (flags & NDR_OUT) {
775 if (r->out.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
776 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.handle));
777 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
782 NTSTATUS ndr_pull_winreg_OpenHKPD(struct ndr_pull *ndr, int flags, struct winreg_OpenHKPD *r)
784 uint32_t _ptr_system_name;
785 TALLOC_CTX *_mem_save_system_name_0;
786 TALLOC_CTX *_mem_save_handle_0;
787 if (flags & NDR_IN) {
790 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_system_name));
791 if (_ptr_system_name) {
792 NDR_PULL_ALLOC(ndr, r->in.system_name);
794 r->in.system_name = NULL;
796 if (r->in.system_name) {
797 _mem_save_system_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
798 NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0);
799 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.system_name));
800 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0);
802 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
803 NDR_PULL_ALLOC(ndr, r->out.handle);
804 ZERO_STRUCTP(r->out.handle);
806 if (flags & NDR_OUT) {
807 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
808 NDR_PULL_ALLOC(ndr, r->out.handle);
810 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
811 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
812 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.handle));
813 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
814 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
819 _PUBLIC_ void ndr_print_winreg_OpenHKPD(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenHKPD *r)
821 ndr_print_struct(ndr, name, "winreg_OpenHKPD");
823 if (flags & NDR_SET_VALUES) {
824 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
826 if (flags & NDR_IN) {
827 ndr_print_struct(ndr, "in", "winreg_OpenHKPD");
829 ndr_print_ptr(ndr, "system_name", r->in.system_name);
831 if (r->in.system_name) {
832 ndr_print_uint16(ndr, "system_name", *r->in.system_name);
835 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
838 if (flags & NDR_OUT) {
839 ndr_print_struct(ndr, "out", "winreg_OpenHKPD");
841 ndr_print_ptr(ndr, "handle", r->out.handle);
843 ndr_print_policy_handle(ndr, "handle", r->out.handle);
845 ndr_print_WERROR(ndr, "result", r->out.result);
851 NTSTATUS ndr_push_winreg_OpenHKU(struct ndr_push *ndr, int flags, const struct winreg_OpenHKU *r)
853 if (flags & NDR_IN) {
854 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.system_name));
855 if (r->in.system_name) {
856 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.system_name));
858 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
860 if (flags & NDR_OUT) {
861 if (r->out.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
862 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.handle));
863 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
868 NTSTATUS ndr_pull_winreg_OpenHKU(struct ndr_pull *ndr, int flags, struct winreg_OpenHKU *r)
870 uint32_t _ptr_system_name;
871 TALLOC_CTX *_mem_save_system_name_0;
872 TALLOC_CTX *_mem_save_handle_0;
873 if (flags & NDR_IN) {
876 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_system_name));
877 if (_ptr_system_name) {
878 NDR_PULL_ALLOC(ndr, r->in.system_name);
880 r->in.system_name = NULL;
882 if (r->in.system_name) {
883 _mem_save_system_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
884 NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0);
885 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.system_name));
886 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0);
888 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
889 NDR_PULL_ALLOC(ndr, r->out.handle);
890 ZERO_STRUCTP(r->out.handle);
892 if (flags & NDR_OUT) {
893 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
894 NDR_PULL_ALLOC(ndr, r->out.handle);
896 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
897 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
898 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.handle));
899 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
900 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
905 _PUBLIC_ void ndr_print_winreg_OpenHKU(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenHKU *r)
907 ndr_print_struct(ndr, name, "winreg_OpenHKU");
909 if (flags & NDR_SET_VALUES) {
910 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
912 if (flags & NDR_IN) {
913 ndr_print_struct(ndr, "in", "winreg_OpenHKU");
915 ndr_print_ptr(ndr, "system_name", r->in.system_name);
917 if (r->in.system_name) {
918 ndr_print_uint16(ndr, "system_name", *r->in.system_name);
921 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
924 if (flags & NDR_OUT) {
925 ndr_print_struct(ndr, "out", "winreg_OpenHKU");
927 ndr_print_ptr(ndr, "handle", r->out.handle);
929 ndr_print_policy_handle(ndr, "handle", r->out.handle);
931 ndr_print_WERROR(ndr, "result", r->out.result);
937 NTSTATUS ndr_push_winreg_CloseKey(struct ndr_push *ndr, int flags, const struct winreg_CloseKey *r)
939 if (flags & NDR_IN) {
940 if (r->in.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
941 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
943 if (flags & NDR_OUT) {
944 if (r->out.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
945 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.handle));
946 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
951 NTSTATUS ndr_pull_winreg_CloseKey(struct ndr_pull *ndr, int flags, struct winreg_CloseKey *r)
953 TALLOC_CTX *_mem_save_handle_0;
954 if (flags & NDR_IN) {
957 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
958 NDR_PULL_ALLOC(ndr, r->in.handle);
960 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
961 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
962 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
963 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
964 NDR_PULL_ALLOC(ndr, r->out.handle);
965 *r->out.handle = *r->in.handle;
967 if (flags & NDR_OUT) {
968 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
969 NDR_PULL_ALLOC(ndr, r->out.handle);
971 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
972 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
973 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.handle));
974 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
975 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
980 _PUBLIC_ void ndr_print_winreg_CloseKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_CloseKey *r)
982 ndr_print_struct(ndr, name, "winreg_CloseKey");
984 if (flags & NDR_SET_VALUES) {
985 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
987 if (flags & NDR_IN) {
988 ndr_print_struct(ndr, "in", "winreg_CloseKey");
990 ndr_print_ptr(ndr, "handle", r->in.handle);
992 ndr_print_policy_handle(ndr, "handle", r->in.handle);
996 if (flags & NDR_OUT) {
997 ndr_print_struct(ndr, "out", "winreg_CloseKey");
999 ndr_print_ptr(ndr, "handle", r->out.handle);
1001 ndr_print_policy_handle(ndr, "handle", r->out.handle);
1003 ndr_print_WERROR(ndr, "result", r->out.result);
1009 NTSTATUS ndr_push_winreg_CreateKey(struct ndr_push *ndr, int flags, const struct winreg_CreateKey *r)
1011 if (flags & NDR_IN) {
1012 if (r->in.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
1013 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
1014 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.name));
1015 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.keyclass));
1016 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.options));
1017 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
1018 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.secdesc));
1019 if (r->in.secdesc) {
1020 NDR_CHECK(ndr_push_winreg_SecBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc));
1022 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.action_taken));
1023 if (r->in.action_taken) {
1024 NDR_CHECK(ndr_push_winreg_CreateAction(ndr, NDR_SCALARS, *r->in.action_taken));
1027 if (flags & NDR_OUT) {
1028 if (r->out.new_handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
1029 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.new_handle));
1030 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.action_taken));
1031 if (r->out.action_taken) {
1032 NDR_CHECK(ndr_push_winreg_CreateAction(ndr, NDR_SCALARS, *r->out.action_taken));
1034 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
1036 return NT_STATUS_OK;
1039 NTSTATUS ndr_pull_winreg_CreateKey(struct ndr_pull *ndr, int flags, struct winreg_CreateKey *r)
1041 uint32_t _ptr_secdesc;
1042 uint32_t _ptr_action_taken;
1043 TALLOC_CTX *_mem_save_handle_0;
1044 TALLOC_CTX *_mem_save_secdesc_0;
1045 TALLOC_CTX *_mem_save_new_handle_0;
1046 TALLOC_CTX *_mem_save_action_taken_0;
1047 if (flags & NDR_IN) {
1048 ZERO_STRUCT(r->out);
1050 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1051 NDR_PULL_ALLOC(ndr, r->in.handle);
1053 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
1054 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
1055 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
1056 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
1057 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.name));
1058 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.keyclass));
1059 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.options));
1060 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
1061 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
1063 NDR_PULL_ALLOC(ndr, r->in.secdesc);
1065 r->in.secdesc = NULL;
1067 if (r->in.secdesc) {
1068 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
1069 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc, 0);
1070 NDR_CHECK(ndr_pull_winreg_SecBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc));
1071 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
1073 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_action_taken));
1074 if (_ptr_action_taken) {
1075 NDR_PULL_ALLOC(ndr, r->in.action_taken);
1077 r->in.action_taken = NULL;
1079 if (r->in.action_taken) {
1080 _mem_save_action_taken_0 = NDR_PULL_GET_MEM_CTX(ndr);
1081 NDR_PULL_SET_MEM_CTX(ndr, r->in.action_taken, 0);
1082 NDR_CHECK(ndr_pull_winreg_CreateAction(ndr, NDR_SCALARS, r->in.action_taken));
1083 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_action_taken_0, 0);
1085 NDR_PULL_ALLOC(ndr, r->out.new_handle);
1086 ZERO_STRUCTP(r->out.new_handle);
1088 if (flags & NDR_OUT) {
1089 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1090 NDR_PULL_ALLOC(ndr, r->out.new_handle);
1092 _mem_save_new_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
1093 NDR_PULL_SET_MEM_CTX(ndr, r->out.new_handle, LIBNDR_FLAG_REF_ALLOC);
1094 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.new_handle));
1095 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_new_handle_0, LIBNDR_FLAG_REF_ALLOC);
1096 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_action_taken));
1097 if (_ptr_action_taken) {
1098 NDR_PULL_ALLOC(ndr, r->out.action_taken);
1100 r->out.action_taken = NULL;
1102 if (r->out.action_taken) {
1103 _mem_save_action_taken_0 = NDR_PULL_GET_MEM_CTX(ndr);
1104 NDR_PULL_SET_MEM_CTX(ndr, r->out.action_taken, 0);
1105 NDR_CHECK(ndr_pull_winreg_CreateAction(ndr, NDR_SCALARS, r->out.action_taken));
1106 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_action_taken_0, 0);
1108 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
1110 return NT_STATUS_OK;
1113 _PUBLIC_ void ndr_print_winreg_CreateKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_CreateKey *r)
1115 ndr_print_struct(ndr, name, "winreg_CreateKey");
1117 if (flags & NDR_SET_VALUES) {
1118 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1120 if (flags & NDR_IN) {
1121 ndr_print_struct(ndr, "in", "winreg_CreateKey");
1123 ndr_print_ptr(ndr, "handle", r->in.handle);
1125 ndr_print_policy_handle(ndr, "handle", r->in.handle);
1127 ndr_print_winreg_String(ndr, "name", &r->in.name);
1128 ndr_print_winreg_String(ndr, "keyclass", &r->in.keyclass);
1129 ndr_print_uint32(ndr, "options", r->in.options);
1130 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
1131 ndr_print_ptr(ndr, "secdesc", r->in.secdesc);
1133 if (r->in.secdesc) {
1134 ndr_print_winreg_SecBuf(ndr, "secdesc", r->in.secdesc);
1137 ndr_print_ptr(ndr, "action_taken", r->in.action_taken);
1139 if (r->in.action_taken) {
1140 ndr_print_winreg_CreateAction(ndr, "action_taken", *r->in.action_taken);
1145 if (flags & NDR_OUT) {
1146 ndr_print_struct(ndr, "out", "winreg_CreateKey");
1148 ndr_print_ptr(ndr, "new_handle", r->out.new_handle);
1150 ndr_print_policy_handle(ndr, "new_handle", r->out.new_handle);
1152 ndr_print_ptr(ndr, "action_taken", r->out.action_taken);
1154 if (r->out.action_taken) {
1155 ndr_print_winreg_CreateAction(ndr, "action_taken", *r->out.action_taken);
1158 ndr_print_WERROR(ndr, "result", r->out.result);
1164 NTSTATUS ndr_push_winreg_DeleteKey(struct ndr_push *ndr, int flags, const struct winreg_DeleteKey *r)
1166 if (flags & NDR_IN) {
1167 if (r->in.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
1168 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
1169 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.key));
1171 if (flags & NDR_OUT) {
1172 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
1174 return NT_STATUS_OK;
1177 NTSTATUS ndr_pull_winreg_DeleteKey(struct ndr_pull *ndr, int flags, struct winreg_DeleteKey *r)
1179 TALLOC_CTX *_mem_save_handle_0;
1180 if (flags & NDR_IN) {
1181 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1182 NDR_PULL_ALLOC(ndr, r->in.handle);
1184 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
1185 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
1186 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
1187 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
1188 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.key));
1190 if (flags & NDR_OUT) {
1191 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
1193 return NT_STATUS_OK;
1196 _PUBLIC_ void ndr_print_winreg_DeleteKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_DeleteKey *r)
1198 ndr_print_struct(ndr, name, "winreg_DeleteKey");
1200 if (flags & NDR_SET_VALUES) {
1201 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1203 if (flags & NDR_IN) {
1204 ndr_print_struct(ndr, "in", "winreg_DeleteKey");
1206 ndr_print_ptr(ndr, "handle", r->in.handle);
1208 ndr_print_policy_handle(ndr, "handle", r->in.handle);
1210 ndr_print_winreg_String(ndr, "key", &r->in.key);
1213 if (flags & NDR_OUT) {
1214 ndr_print_struct(ndr, "out", "winreg_DeleteKey");
1216 ndr_print_WERROR(ndr, "result", r->out.result);
1222 NTSTATUS ndr_push_winreg_DeleteValue(struct ndr_push *ndr, int flags, const struct winreg_DeleteValue *r)
1224 if (flags & NDR_IN) {
1225 if (r->in.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
1226 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
1227 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.value));
1229 if (flags & NDR_OUT) {
1230 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
1232 return NT_STATUS_OK;
1235 NTSTATUS ndr_pull_winreg_DeleteValue(struct ndr_pull *ndr, int flags, struct winreg_DeleteValue *r)
1237 TALLOC_CTX *_mem_save_handle_0;
1238 if (flags & NDR_IN) {
1239 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1240 NDR_PULL_ALLOC(ndr, r->in.handle);
1242 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
1243 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
1244 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
1245 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
1246 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.value));
1248 if (flags & NDR_OUT) {
1249 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
1251 return NT_STATUS_OK;
1254 _PUBLIC_ void ndr_print_winreg_DeleteValue(struct ndr_print *ndr, const char *name, int flags, const struct winreg_DeleteValue *r)
1256 ndr_print_struct(ndr, name, "winreg_DeleteValue");
1258 if (flags & NDR_SET_VALUES) {
1259 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1261 if (flags & NDR_IN) {
1262 ndr_print_struct(ndr, "in", "winreg_DeleteValue");
1264 ndr_print_ptr(ndr, "handle", r->in.handle);
1266 ndr_print_policy_handle(ndr, "handle", r->in.handle);
1268 ndr_print_winreg_String(ndr, "value", &r->in.value);
1271 if (flags & NDR_OUT) {
1272 ndr_print_struct(ndr, "out", "winreg_DeleteValue");
1274 ndr_print_WERROR(ndr, "result", r->out.result);
1280 NTSTATUS ndr_push_winreg_EnumKey(struct ndr_push *ndr, int flags, const struct winreg_EnumKey *r)
1282 if (flags & NDR_IN) {
1283 if (r->in.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
1284 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
1285 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.enum_index));
1286 if (r->in.name == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
1287 NDR_CHECK(ndr_push_winreg_StringBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.name));
1288 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.keyclass));
1289 if (r->in.keyclass) {
1290 NDR_CHECK(ndr_push_winreg_StringBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.keyclass));
1292 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.last_changed_time));
1293 if (r->in.last_changed_time) {
1294 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, *r->in.last_changed_time));
1297 if (flags & NDR_OUT) {
1298 if (r->out.name == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
1299 NDR_CHECK(ndr_push_winreg_StringBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.name));
1300 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.keyclass));
1301 if (r->out.keyclass) {
1302 NDR_CHECK(ndr_push_winreg_StringBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.keyclass));
1304 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.last_changed_time));
1305 if (r->out.last_changed_time) {
1306 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, *r->out.last_changed_time));
1308 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
1310 return NT_STATUS_OK;
1313 NTSTATUS ndr_pull_winreg_EnumKey(struct ndr_pull *ndr, int flags, struct winreg_EnumKey *r)
1315 uint32_t _ptr_keyclass;
1316 uint32_t _ptr_last_changed_time;
1317 TALLOC_CTX *_mem_save_handle_0;
1318 TALLOC_CTX *_mem_save_name_0;
1319 TALLOC_CTX *_mem_save_keyclass_0;
1320 TALLOC_CTX *_mem_save_last_changed_time_0;
1321 if (flags & NDR_IN) {
1322 ZERO_STRUCT(r->out);
1324 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1325 NDR_PULL_ALLOC(ndr, r->in.handle);
1327 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
1328 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
1329 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
1330 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
1331 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.enum_index));
1332 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1333 NDR_PULL_ALLOC(ndr, r->in.name);
1335 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
1336 NDR_PULL_SET_MEM_CTX(ndr, r->in.name, LIBNDR_FLAG_REF_ALLOC);
1337 NDR_CHECK(ndr_pull_winreg_StringBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.name));
1338 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, LIBNDR_FLAG_REF_ALLOC);
1339 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_keyclass));
1340 if (_ptr_keyclass) {
1341 NDR_PULL_ALLOC(ndr, r->in.keyclass);
1343 r->in.keyclass = NULL;
1345 if (r->in.keyclass) {
1346 _mem_save_keyclass_0 = NDR_PULL_GET_MEM_CTX(ndr);
1347 NDR_PULL_SET_MEM_CTX(ndr, r->in.keyclass, 0);
1348 NDR_CHECK(ndr_pull_winreg_StringBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.keyclass));
1349 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_keyclass_0, 0);
1351 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_last_changed_time));
1352 if (_ptr_last_changed_time) {
1353 NDR_PULL_ALLOC(ndr, r->in.last_changed_time);
1355 r->in.last_changed_time = NULL;
1357 if (r->in.last_changed_time) {
1358 _mem_save_last_changed_time_0 = NDR_PULL_GET_MEM_CTX(ndr);
1359 NDR_PULL_SET_MEM_CTX(ndr, r->in.last_changed_time, 0);
1360 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, r->in.last_changed_time));
1361 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_last_changed_time_0, 0);
1363 NDR_PULL_ALLOC(ndr, r->out.name);
1364 *r->out.name = *r->in.name;
1366 if (flags & NDR_OUT) {
1367 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1368 NDR_PULL_ALLOC(ndr, r->out.name);
1370 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
1371 NDR_PULL_SET_MEM_CTX(ndr, r->out.name, LIBNDR_FLAG_REF_ALLOC);
1372 NDR_CHECK(ndr_pull_winreg_StringBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.name));
1373 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, LIBNDR_FLAG_REF_ALLOC);
1374 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_keyclass));
1375 if (_ptr_keyclass) {
1376 NDR_PULL_ALLOC(ndr, r->out.keyclass);
1378 r->out.keyclass = NULL;
1380 if (r->out.keyclass) {
1381 _mem_save_keyclass_0 = NDR_PULL_GET_MEM_CTX(ndr);
1382 NDR_PULL_SET_MEM_CTX(ndr, r->out.keyclass, 0);
1383 NDR_CHECK(ndr_pull_winreg_StringBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.keyclass));
1384 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_keyclass_0, 0);
1386 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_last_changed_time));
1387 if (_ptr_last_changed_time) {
1388 NDR_PULL_ALLOC(ndr, r->out.last_changed_time);
1390 r->out.last_changed_time = NULL;
1392 if (r->out.last_changed_time) {
1393 _mem_save_last_changed_time_0 = NDR_PULL_GET_MEM_CTX(ndr);
1394 NDR_PULL_SET_MEM_CTX(ndr, r->out.last_changed_time, 0);
1395 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, r->out.last_changed_time));
1396 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_last_changed_time_0, 0);
1398 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
1400 return NT_STATUS_OK;
1403 _PUBLIC_ void ndr_print_winreg_EnumKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_EnumKey *r)
1405 ndr_print_struct(ndr, name, "winreg_EnumKey");
1407 if (flags & NDR_SET_VALUES) {
1408 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1410 if (flags & NDR_IN) {
1411 ndr_print_struct(ndr, "in", "winreg_EnumKey");
1413 ndr_print_ptr(ndr, "handle", r->in.handle);
1415 ndr_print_policy_handle(ndr, "handle", r->in.handle);
1417 ndr_print_uint32(ndr, "enum_index", r->in.enum_index);
1418 ndr_print_ptr(ndr, "name", r->in.name);
1420 ndr_print_winreg_StringBuf(ndr, "name", r->in.name);
1422 ndr_print_ptr(ndr, "keyclass", r->in.keyclass);
1424 if (r->in.keyclass) {
1425 ndr_print_winreg_StringBuf(ndr, "keyclass", r->in.keyclass);
1428 ndr_print_ptr(ndr, "last_changed_time", r->in.last_changed_time);
1430 if (r->in.last_changed_time) {
1431 ndr_print_NTTIME(ndr, "last_changed_time", *r->in.last_changed_time);
1436 if (flags & NDR_OUT) {
1437 ndr_print_struct(ndr, "out", "winreg_EnumKey");
1439 ndr_print_ptr(ndr, "name", r->out.name);
1441 ndr_print_winreg_StringBuf(ndr, "name", r->out.name);
1443 ndr_print_ptr(ndr, "keyclass", r->out.keyclass);
1445 if (r->out.keyclass) {
1446 ndr_print_winreg_StringBuf(ndr, "keyclass", r->out.keyclass);
1449 ndr_print_ptr(ndr, "last_changed_time", r->out.last_changed_time);
1451 if (r->out.last_changed_time) {
1452 ndr_print_NTTIME(ndr, "last_changed_time", *r->out.last_changed_time);
1455 ndr_print_WERROR(ndr, "result", r->out.result);
1461 NTSTATUS ndr_push_winreg_EnumValue(struct ndr_push *ndr, int flags, const struct winreg_EnumValue *r)
1463 if (flags & NDR_IN) {
1464 if (r->in.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
1465 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
1466 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.enum_index));
1467 if (r->in.name == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
1468 NDR_CHECK(ndr_push_winreg_ValNameBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.name));
1469 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.type));
1471 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->in.type));
1473 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.data));
1475 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.data_size));
1476 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
1477 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.value_length));
1478 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.data, *r->in.value_length));
1480 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.data_size));
1481 if (r->in.data_size) {
1482 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.data_size));
1484 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.value_length));
1485 if (r->in.value_length) {
1486 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.value_length));
1489 if (flags & NDR_OUT) {
1490 if (r->out.name == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
1491 NDR_CHECK(ndr_push_winreg_ValNameBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.name));
1492 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.type));
1494 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
1496 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.data));
1498 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.data_size));
1499 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
1500 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.value_length));
1501 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, *r->out.value_length));
1503 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.data_size));
1504 if (r->out.data_size) {
1505 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.data_size));
1507 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.value_length));
1508 if (r->out.value_length) {
1509 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.value_length));
1511 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
1513 return NT_STATUS_OK;
1516 NTSTATUS ndr_pull_winreg_EnumValue(struct ndr_pull *ndr, int flags, struct winreg_EnumValue *r)
1520 uint32_t _ptr_data_size;
1521 uint32_t _ptr_value_length;
1522 TALLOC_CTX *_mem_save_handle_0;
1523 TALLOC_CTX *_mem_save_name_0;
1524 TALLOC_CTX *_mem_save_type_0;
1525 TALLOC_CTX *_mem_save_data_0;
1526 TALLOC_CTX *_mem_save_data_size_0;
1527 TALLOC_CTX *_mem_save_value_length_0;
1528 if (flags & NDR_IN) {
1529 ZERO_STRUCT(r->out);
1531 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1532 NDR_PULL_ALLOC(ndr, r->in.handle);
1534 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
1535 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
1536 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
1537 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
1538 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.enum_index));
1539 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1540 NDR_PULL_ALLOC(ndr, r->in.name);
1542 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
1543 NDR_PULL_SET_MEM_CTX(ndr, r->in.name, LIBNDR_FLAG_REF_ALLOC);
1544 NDR_CHECK(ndr_pull_winreg_ValNameBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.name));
1545 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, LIBNDR_FLAG_REF_ALLOC);
1546 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_type));
1548 NDR_PULL_ALLOC(ndr, r->in.type);
1553 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
1554 NDR_PULL_SET_MEM_CTX(ndr, r->in.type, 0);
1555 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->in.type));
1556 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, 0);
1558 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
1560 NDR_PULL_ALLOC(ndr, r->in.data);
1565 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
1566 NDR_PULL_SET_MEM_CTX(ndr, r->in.data, 0);
1567 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.data));
1568 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.data));
1569 if (ndr_get_array_length(ndr, &r->in.data) > ndr_get_array_size(ndr, &r->in.data)) {
1570 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));
1572 NDR_PULL_ALLOC_N(ndr, r->in.data, ndr_get_array_size(ndr, &r->in.data));
1573 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.data, ndr_get_array_length(ndr, &r->in.data)));
1574 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
1576 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_size));
1577 if (_ptr_data_size) {
1578 NDR_PULL_ALLOC(ndr, r->in.data_size);
1580 r->in.data_size = NULL;
1582 if (r->in.data_size) {
1583 _mem_save_data_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
1584 NDR_PULL_SET_MEM_CTX(ndr, r->in.data_size, 0);
1585 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.data_size));
1586 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_size_0, 0);
1588 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_value_length));
1589 if (_ptr_value_length) {
1590 NDR_PULL_ALLOC(ndr, r->in.value_length);
1592 r->in.value_length = NULL;
1594 if (r->in.value_length) {
1595 _mem_save_value_length_0 = NDR_PULL_GET_MEM_CTX(ndr);
1596 NDR_PULL_SET_MEM_CTX(ndr, r->in.value_length, 0);
1597 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.value_length));
1598 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_length_0, 0);
1600 NDR_PULL_ALLOC(ndr, r->out.name);
1601 *r->out.name = *r->in.name;
1603 if (r->in.data_size == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
1604 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.data, *r->in.data_size));
1607 if (r->in.value_length == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
1608 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->in.data, *r->in.value_length));
1611 if (flags & NDR_OUT) {
1612 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1613 NDR_PULL_ALLOC(ndr, r->out.name);
1615 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
1616 NDR_PULL_SET_MEM_CTX(ndr, r->out.name, LIBNDR_FLAG_REF_ALLOC);
1617 NDR_CHECK(ndr_pull_winreg_ValNameBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.name));
1618 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, LIBNDR_FLAG_REF_ALLOC);
1619 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_type));
1621 NDR_PULL_ALLOC(ndr, r->out.type);
1626 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
1627 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, 0);
1628 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
1629 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, 0);
1631 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
1633 NDR_PULL_ALLOC(ndr, r->out.data);
1638 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
1639 NDR_PULL_SET_MEM_CTX(ndr, r->out.data, 0);
1640 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
1641 NDR_CHECK(ndr_pull_array_length(ndr, &r->out.data));
1642 if (ndr_get_array_length(ndr, &r->out.data) > ndr_get_array_size(ndr, &r->out.data)) {
1643 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));
1645 NDR_PULL_ALLOC_N(ndr, r->out.data, ndr_get_array_size(ndr, &r->out.data));
1646 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, ndr_get_array_length(ndr, &r->out.data)));
1647 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
1649 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_size));
1650 if (_ptr_data_size) {
1651 NDR_PULL_ALLOC(ndr, r->out.data_size);
1653 r->out.data_size = NULL;
1655 if (r->out.data_size) {
1656 _mem_save_data_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
1657 NDR_PULL_SET_MEM_CTX(ndr, r->out.data_size, 0);
1658 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.data_size));
1659 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_size_0, 0);
1661 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_value_length));
1662 if (_ptr_value_length) {
1663 NDR_PULL_ALLOC(ndr, r->out.value_length);
1665 r->out.value_length = NULL;
1667 if (r->out.value_length) {
1668 _mem_save_value_length_0 = NDR_PULL_GET_MEM_CTX(ndr);
1669 NDR_PULL_SET_MEM_CTX(ndr, r->out.value_length, 0);
1670 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.value_length));
1671 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_length_0, 0);
1673 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
1675 if (r->out.data_size == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
1676 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, *r->out.data_size));
1679 if (r->out.value_length == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
1680 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->out.data, *r->out.value_length));
1683 return NT_STATUS_OK;
1686 _PUBLIC_ void ndr_print_winreg_EnumValue(struct ndr_print *ndr, const char *name, int flags, const struct winreg_EnumValue *r)
1688 ndr_print_struct(ndr, name, "winreg_EnumValue");
1690 if (flags & NDR_SET_VALUES) {
1691 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1693 if (flags & NDR_IN) {
1694 ndr_print_struct(ndr, "in", "winreg_EnumValue");
1696 ndr_print_ptr(ndr, "handle", r->in.handle);
1698 ndr_print_policy_handle(ndr, "handle", r->in.handle);
1700 ndr_print_uint32(ndr, "enum_index", r->in.enum_index);
1701 ndr_print_ptr(ndr, "name", r->in.name);
1703 ndr_print_winreg_ValNameBuf(ndr, "name", r->in.name);
1705 ndr_print_ptr(ndr, "type", r->in.type);
1708 ndr_print_winreg_Type(ndr, "type", *r->in.type);
1711 ndr_print_ptr(ndr, "data", r->in.data);
1714 if (r->in.value_length == NULL) return;
1715 ndr_print_array_uint8(ndr, "data", r->in.data, *r->in.value_length);
1718 ndr_print_ptr(ndr, "data_size", r->in.data_size);
1720 if (r->in.data_size) {
1721 ndr_print_uint32(ndr, "data_size", *r->in.data_size);
1724 ndr_print_ptr(ndr, "value_length", r->in.value_length);
1726 if (r->in.value_length) {
1727 ndr_print_uint32(ndr, "value_length", *r->in.value_length);
1732 if (flags & NDR_OUT) {
1733 ndr_print_struct(ndr, "out", "winreg_EnumValue");
1735 ndr_print_ptr(ndr, "name", r->out.name);
1737 ndr_print_winreg_ValNameBuf(ndr, "name", r->out.name);
1739 ndr_print_ptr(ndr, "type", r->out.type);
1742 ndr_print_winreg_Type(ndr, "type", *r->out.type);
1745 ndr_print_ptr(ndr, "data", r->out.data);
1748 if (r->out.value_length == NULL) return;
1749 ndr_print_array_uint8(ndr, "data", r->out.data, *r->out.value_length);
1752 ndr_print_ptr(ndr, "data_size", r->out.data_size);
1754 if (r->out.data_size) {
1755 ndr_print_uint32(ndr, "data_size", *r->out.data_size);
1758 ndr_print_ptr(ndr, "value_length", r->out.value_length);
1760 if (r->out.value_length) {
1761 ndr_print_uint32(ndr, "value_length", *r->out.value_length);
1764 ndr_print_WERROR(ndr, "result", r->out.result);
1770 NTSTATUS ndr_push_winreg_FlushKey(struct ndr_push *ndr, int flags, const struct winreg_FlushKey *r)
1772 if (flags & NDR_IN) {
1773 if (r->in.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
1774 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
1776 if (flags & NDR_OUT) {
1777 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
1779 return NT_STATUS_OK;
1782 NTSTATUS ndr_pull_winreg_FlushKey(struct ndr_pull *ndr, int flags, struct winreg_FlushKey *r)
1784 TALLOC_CTX *_mem_save_handle_0;
1785 if (flags & NDR_IN) {
1786 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1787 NDR_PULL_ALLOC(ndr, r->in.handle);
1789 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
1790 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
1791 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
1792 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
1794 if (flags & NDR_OUT) {
1795 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
1797 return NT_STATUS_OK;
1800 _PUBLIC_ void ndr_print_winreg_FlushKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_FlushKey *r)
1802 ndr_print_struct(ndr, name, "winreg_FlushKey");
1804 if (flags & NDR_SET_VALUES) {
1805 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1807 if (flags & NDR_IN) {
1808 ndr_print_struct(ndr, "in", "winreg_FlushKey");
1810 ndr_print_ptr(ndr, "handle", r->in.handle);
1812 ndr_print_policy_handle(ndr, "handle", r->in.handle);
1816 if (flags & NDR_OUT) {
1817 ndr_print_struct(ndr, "out", "winreg_FlushKey");
1819 ndr_print_WERROR(ndr, "result", r->out.result);
1825 NTSTATUS ndr_push_winreg_GetKeySecurity(struct ndr_push *ndr, int flags, const struct winreg_GetKeySecurity *r)
1827 if (flags & NDR_IN) {
1828 if (r->in.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
1829 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
1830 NDR_CHECK(ndr_push_security_secinfo(ndr, NDR_SCALARS, r->in.sec_info));
1831 if (r->in.sd == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
1832 NDR_CHECK(ndr_push_KeySecurityData(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sd));
1834 if (flags & NDR_OUT) {
1835 if (r->out.sd == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
1836 NDR_CHECK(ndr_push_KeySecurityData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.sd));
1837 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
1839 return NT_STATUS_OK;
1842 NTSTATUS ndr_pull_winreg_GetKeySecurity(struct ndr_pull *ndr, int flags, struct winreg_GetKeySecurity *r)
1844 TALLOC_CTX *_mem_save_handle_0;
1845 TALLOC_CTX *_mem_save_sd_0;
1846 if (flags & NDR_IN) {
1847 ZERO_STRUCT(r->out);
1849 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1850 NDR_PULL_ALLOC(ndr, r->in.handle);
1852 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
1853 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
1854 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
1855 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
1856 NDR_CHECK(ndr_pull_security_secinfo(ndr, NDR_SCALARS, &r->in.sec_info));
1857 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1858 NDR_PULL_ALLOC(ndr, r->in.sd);
1860 _mem_save_sd_0 = NDR_PULL_GET_MEM_CTX(ndr);
1861 NDR_PULL_SET_MEM_CTX(ndr, r->in.sd, LIBNDR_FLAG_REF_ALLOC);
1862 NDR_CHECK(ndr_pull_KeySecurityData(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sd));
1863 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sd_0, LIBNDR_FLAG_REF_ALLOC);
1864 NDR_PULL_ALLOC(ndr, r->out.sd);
1865 *r->out.sd = *r->in.sd;
1867 if (flags & NDR_OUT) {
1868 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1869 NDR_PULL_ALLOC(ndr, r->out.sd);
1871 _mem_save_sd_0 = NDR_PULL_GET_MEM_CTX(ndr);
1872 NDR_PULL_SET_MEM_CTX(ndr, r->out.sd, LIBNDR_FLAG_REF_ALLOC);
1873 NDR_CHECK(ndr_pull_KeySecurityData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.sd));
1874 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sd_0, LIBNDR_FLAG_REF_ALLOC);
1875 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
1877 return NT_STATUS_OK;
1880 _PUBLIC_ void ndr_print_winreg_GetKeySecurity(struct ndr_print *ndr, const char *name, int flags, const struct winreg_GetKeySecurity *r)
1882 ndr_print_struct(ndr, name, "winreg_GetKeySecurity");
1884 if (flags & NDR_SET_VALUES) {
1885 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1887 if (flags & NDR_IN) {
1888 ndr_print_struct(ndr, "in", "winreg_GetKeySecurity");
1890 ndr_print_ptr(ndr, "handle", r->in.handle);
1892 ndr_print_policy_handle(ndr, "handle", r->in.handle);
1894 ndr_print_security_secinfo(ndr, "sec_info", r->in.sec_info);
1895 ndr_print_ptr(ndr, "sd", r->in.sd);
1897 ndr_print_KeySecurityData(ndr, "sd", r->in.sd);
1901 if (flags & NDR_OUT) {
1902 ndr_print_struct(ndr, "out", "winreg_GetKeySecurity");
1904 ndr_print_ptr(ndr, "sd", r->out.sd);
1906 ndr_print_KeySecurityData(ndr, "sd", r->out.sd);
1908 ndr_print_WERROR(ndr, "result", r->out.result);
1914 NTSTATUS ndr_push_winreg_LoadKey(struct ndr_push *ndr, int flags, const struct winreg_LoadKey *r)
1916 if (flags & NDR_IN) {
1917 if (r->in.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
1918 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
1919 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.keyname));
1920 if (r->in.keyname) {
1921 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.keyname));
1923 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.filename));
1924 if (r->in.filename) {
1925 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.filename));
1928 if (flags & NDR_OUT) {
1929 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
1931 return NT_STATUS_OK;
1934 NTSTATUS ndr_pull_winreg_LoadKey(struct ndr_pull *ndr, int flags, struct winreg_LoadKey *r)
1936 uint32_t _ptr_keyname;
1937 uint32_t _ptr_filename;
1938 TALLOC_CTX *_mem_save_handle_0;
1939 TALLOC_CTX *_mem_save_keyname_0;
1940 TALLOC_CTX *_mem_save_filename_0;
1941 if (flags & NDR_IN) {
1942 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1943 NDR_PULL_ALLOC(ndr, r->in.handle);
1945 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
1946 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
1947 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
1948 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
1949 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_keyname));
1951 NDR_PULL_ALLOC(ndr, r->in.keyname);
1953 r->in.keyname = NULL;
1955 if (r->in.keyname) {
1956 _mem_save_keyname_0 = NDR_PULL_GET_MEM_CTX(ndr);
1957 NDR_PULL_SET_MEM_CTX(ndr, r->in.keyname, 0);
1958 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.keyname));
1959 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_keyname_0, 0);
1961 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_filename));
1962 if (_ptr_filename) {
1963 NDR_PULL_ALLOC(ndr, r->in.filename);
1965 r->in.filename = NULL;
1967 if (r->in.filename) {
1968 _mem_save_filename_0 = NDR_PULL_GET_MEM_CTX(ndr);
1969 NDR_PULL_SET_MEM_CTX(ndr, r->in.filename, 0);
1970 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.filename));
1971 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_filename_0, 0);
1974 if (flags & NDR_OUT) {
1975 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
1977 return NT_STATUS_OK;
1980 _PUBLIC_ void ndr_print_winreg_LoadKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_LoadKey *r)
1982 ndr_print_struct(ndr, name, "winreg_LoadKey");
1984 if (flags & NDR_SET_VALUES) {
1985 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1987 if (flags & NDR_IN) {
1988 ndr_print_struct(ndr, "in", "winreg_LoadKey");
1990 ndr_print_ptr(ndr, "handle", r->in.handle);
1992 ndr_print_policy_handle(ndr, "handle", r->in.handle);
1994 ndr_print_ptr(ndr, "keyname", r->in.keyname);
1996 if (r->in.keyname) {
1997 ndr_print_winreg_String(ndr, "keyname", r->in.keyname);
2000 ndr_print_ptr(ndr, "filename", r->in.filename);
2002 if (r->in.filename) {
2003 ndr_print_winreg_String(ndr, "filename", r->in.filename);
2008 if (flags & NDR_OUT) {
2009 ndr_print_struct(ndr, "out", "winreg_LoadKey");
2011 ndr_print_WERROR(ndr, "result", r->out.result);
2017 NTSTATUS ndr_push_winreg_NotifyChangeKeyValue(struct ndr_push *ndr, int flags, const struct winreg_NotifyChangeKeyValue *r)
2019 if (flags & NDR_IN) {
2020 if (r->in.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2021 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
2022 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->in.watch_subtree));
2023 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.notify_filter));
2024 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown));
2025 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.string1));
2026 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.string2));
2027 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown2));
2029 if (flags & NDR_OUT) {
2030 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
2032 return NT_STATUS_OK;
2035 NTSTATUS ndr_pull_winreg_NotifyChangeKeyValue(struct ndr_pull *ndr, int flags, struct winreg_NotifyChangeKeyValue *r)
2037 TALLOC_CTX *_mem_save_handle_0;
2038 if (flags & NDR_IN) {
2039 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2040 NDR_PULL_ALLOC(ndr, r->in.handle);
2042 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
2043 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
2044 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
2045 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
2046 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->in.watch_subtree));
2047 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.notify_filter));
2048 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown));
2049 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.string1));
2050 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.string2));
2051 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown2));
2053 if (flags & NDR_OUT) {
2054 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
2056 return NT_STATUS_OK;
2059 _PUBLIC_ void ndr_print_winreg_NotifyChangeKeyValue(struct ndr_print *ndr, const char *name, int flags, const struct winreg_NotifyChangeKeyValue *r)
2061 ndr_print_struct(ndr, name, "winreg_NotifyChangeKeyValue");
2063 if (flags & NDR_SET_VALUES) {
2064 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2066 if (flags & NDR_IN) {
2067 ndr_print_struct(ndr, "in", "winreg_NotifyChangeKeyValue");
2069 ndr_print_ptr(ndr, "handle", r->in.handle);
2071 ndr_print_policy_handle(ndr, "handle", r->in.handle);
2073 ndr_print_uint8(ndr, "watch_subtree", r->in.watch_subtree);
2074 ndr_print_uint32(ndr, "notify_filter", r->in.notify_filter);
2075 ndr_print_uint32(ndr, "unknown", r->in.unknown);
2076 ndr_print_winreg_String(ndr, "string1", &r->in.string1);
2077 ndr_print_winreg_String(ndr, "string2", &r->in.string2);
2078 ndr_print_uint32(ndr, "unknown2", r->in.unknown2);
2081 if (flags & NDR_OUT) {
2082 ndr_print_struct(ndr, "out", "winreg_NotifyChangeKeyValue");
2084 ndr_print_WERROR(ndr, "result", r->out.result);
2090 NTSTATUS ndr_push_winreg_OpenKey(struct ndr_push *ndr, int flags, const struct winreg_OpenKey *r)
2092 if (flags & NDR_IN) {
2093 if (r->in.parent_handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2094 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.parent_handle));
2095 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.keyname));
2096 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown));
2097 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
2099 if (flags & NDR_OUT) {
2100 if (r->out.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2101 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.handle));
2102 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
2104 return NT_STATUS_OK;
2107 NTSTATUS ndr_pull_winreg_OpenKey(struct ndr_pull *ndr, int flags, struct winreg_OpenKey *r)
2109 TALLOC_CTX *_mem_save_parent_handle_0;
2110 TALLOC_CTX *_mem_save_handle_0;
2111 if (flags & NDR_IN) {
2112 ZERO_STRUCT(r->out);
2114 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2115 NDR_PULL_ALLOC(ndr, r->in.parent_handle);
2117 _mem_save_parent_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
2118 NDR_PULL_SET_MEM_CTX(ndr, r->in.parent_handle, LIBNDR_FLAG_REF_ALLOC);
2119 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.parent_handle));
2120 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parent_handle_0, LIBNDR_FLAG_REF_ALLOC);
2121 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.keyname));
2122 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown));
2123 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
2124 NDR_PULL_ALLOC(ndr, r->out.handle);
2125 ZERO_STRUCTP(r->out.handle);
2127 if (flags & NDR_OUT) {
2128 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2129 NDR_PULL_ALLOC(ndr, r->out.handle);
2131 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
2132 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
2133 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.handle));
2134 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
2135 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
2137 return NT_STATUS_OK;
2140 _PUBLIC_ void ndr_print_winreg_OpenKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenKey *r)
2142 ndr_print_struct(ndr, name, "winreg_OpenKey");
2144 if (flags & NDR_SET_VALUES) {
2145 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2147 if (flags & NDR_IN) {
2148 ndr_print_struct(ndr, "in", "winreg_OpenKey");
2150 ndr_print_ptr(ndr, "parent_handle", r->in.parent_handle);
2152 ndr_print_policy_handle(ndr, "parent_handle", r->in.parent_handle);
2154 ndr_print_winreg_String(ndr, "keyname", &r->in.keyname);
2155 ndr_print_uint32(ndr, "unknown", r->in.unknown);
2156 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
2159 if (flags & NDR_OUT) {
2160 ndr_print_struct(ndr, "out", "winreg_OpenKey");
2162 ndr_print_ptr(ndr, "handle", r->out.handle);
2164 ndr_print_policy_handle(ndr, "handle", r->out.handle);
2166 ndr_print_WERROR(ndr, "result", r->out.result);
2172 NTSTATUS ndr_push_winreg_QueryInfoKey(struct ndr_push *ndr, int flags, const struct winreg_QueryInfoKey *r)
2174 if (flags & NDR_IN) {
2175 if (r->in.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2176 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
2177 if (r->in.classname == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2178 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.classname));
2180 if (flags & NDR_OUT) {
2181 if (r->out.classname == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2182 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.classname));
2183 if (r->out.num_subkeys == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2184 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.num_subkeys));
2185 if (r->out.max_subkeylen == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2186 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.max_subkeylen));
2187 if (r->out.max_classlen == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2188 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.max_classlen));
2189 if (r->out.num_values == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2190 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.num_values));
2191 if (r->out.max_valnamelen == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2192 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.max_valnamelen));
2193 if (r->out.max_valbufsize == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2194 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.max_valbufsize));
2195 if (r->out.secdescsize == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2196 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.secdescsize));
2197 if (r->out.last_changed_time == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2198 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, *r->out.last_changed_time));
2199 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
2201 return NT_STATUS_OK;
2204 NTSTATUS ndr_pull_winreg_QueryInfoKey(struct ndr_pull *ndr, int flags, struct winreg_QueryInfoKey *r)
2206 TALLOC_CTX *_mem_save_handle_0;
2207 TALLOC_CTX *_mem_save_classname_0;
2208 TALLOC_CTX *_mem_save_num_subkeys_0;
2209 TALLOC_CTX *_mem_save_max_subkeylen_0;
2210 TALLOC_CTX *_mem_save_max_classlen_0;
2211 TALLOC_CTX *_mem_save_num_values_0;
2212 TALLOC_CTX *_mem_save_max_valnamelen_0;
2213 TALLOC_CTX *_mem_save_max_valbufsize_0;
2214 TALLOC_CTX *_mem_save_secdescsize_0;
2215 TALLOC_CTX *_mem_save_last_changed_time_0;
2216 if (flags & NDR_IN) {
2217 ZERO_STRUCT(r->out);
2219 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2220 NDR_PULL_ALLOC(ndr, r->in.handle);
2222 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
2223 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
2224 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
2225 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
2226 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2227 NDR_PULL_ALLOC(ndr, r->in.classname);
2229 _mem_save_classname_0 = NDR_PULL_GET_MEM_CTX(ndr);
2230 NDR_PULL_SET_MEM_CTX(ndr, r->in.classname, LIBNDR_FLAG_REF_ALLOC);
2231 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.classname));
2232 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_classname_0, LIBNDR_FLAG_REF_ALLOC);
2233 NDR_PULL_ALLOC(ndr, r->out.classname);
2234 *r->out.classname = *r->in.classname;
2235 NDR_PULL_ALLOC(ndr, r->out.num_subkeys);
2236 ZERO_STRUCTP(r->out.num_subkeys);
2237 NDR_PULL_ALLOC(ndr, r->out.max_subkeylen);
2238 ZERO_STRUCTP(r->out.max_subkeylen);
2239 NDR_PULL_ALLOC(ndr, r->out.max_classlen);
2240 ZERO_STRUCTP(r->out.max_classlen);
2241 NDR_PULL_ALLOC(ndr, r->out.num_values);
2242 ZERO_STRUCTP(r->out.num_values);
2243 NDR_PULL_ALLOC(ndr, r->out.max_valnamelen);
2244 ZERO_STRUCTP(r->out.max_valnamelen);
2245 NDR_PULL_ALLOC(ndr, r->out.max_valbufsize);
2246 ZERO_STRUCTP(r->out.max_valbufsize);
2247 NDR_PULL_ALLOC(ndr, r->out.secdescsize);
2248 ZERO_STRUCTP(r->out.secdescsize);
2249 NDR_PULL_ALLOC(ndr, r->out.last_changed_time);
2250 ZERO_STRUCTP(r->out.last_changed_time);
2252 if (flags & NDR_OUT) {
2253 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2254 NDR_PULL_ALLOC(ndr, r->out.classname);
2256 _mem_save_classname_0 = NDR_PULL_GET_MEM_CTX(ndr);
2257 NDR_PULL_SET_MEM_CTX(ndr, r->out.classname, LIBNDR_FLAG_REF_ALLOC);
2258 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.classname));
2259 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_classname_0, LIBNDR_FLAG_REF_ALLOC);
2260 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2261 NDR_PULL_ALLOC(ndr, r->out.num_subkeys);
2263 _mem_save_num_subkeys_0 = NDR_PULL_GET_MEM_CTX(ndr);
2264 NDR_PULL_SET_MEM_CTX(ndr, r->out.num_subkeys, LIBNDR_FLAG_REF_ALLOC);
2265 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.num_subkeys));
2266 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_num_subkeys_0, LIBNDR_FLAG_REF_ALLOC);
2267 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2268 NDR_PULL_ALLOC(ndr, r->out.max_subkeylen);
2270 _mem_save_max_subkeylen_0 = NDR_PULL_GET_MEM_CTX(ndr);
2271 NDR_PULL_SET_MEM_CTX(ndr, r->out.max_subkeylen, LIBNDR_FLAG_REF_ALLOC);
2272 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.max_subkeylen));
2273 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_max_subkeylen_0, LIBNDR_FLAG_REF_ALLOC);
2274 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2275 NDR_PULL_ALLOC(ndr, r->out.max_classlen);
2277 _mem_save_max_classlen_0 = NDR_PULL_GET_MEM_CTX(ndr);
2278 NDR_PULL_SET_MEM_CTX(ndr, r->out.max_classlen, LIBNDR_FLAG_REF_ALLOC);
2279 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.max_classlen));
2280 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_max_classlen_0, LIBNDR_FLAG_REF_ALLOC);
2281 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2282 NDR_PULL_ALLOC(ndr, r->out.num_values);
2284 _mem_save_num_values_0 = NDR_PULL_GET_MEM_CTX(ndr);
2285 NDR_PULL_SET_MEM_CTX(ndr, r->out.num_values, LIBNDR_FLAG_REF_ALLOC);
2286 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.num_values));
2287 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_num_values_0, LIBNDR_FLAG_REF_ALLOC);
2288 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2289 NDR_PULL_ALLOC(ndr, r->out.max_valnamelen);
2291 _mem_save_max_valnamelen_0 = NDR_PULL_GET_MEM_CTX(ndr);
2292 NDR_PULL_SET_MEM_CTX(ndr, r->out.max_valnamelen, LIBNDR_FLAG_REF_ALLOC);
2293 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.max_valnamelen));
2294 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_max_valnamelen_0, LIBNDR_FLAG_REF_ALLOC);
2295 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2296 NDR_PULL_ALLOC(ndr, r->out.max_valbufsize);
2298 _mem_save_max_valbufsize_0 = NDR_PULL_GET_MEM_CTX(ndr);
2299 NDR_PULL_SET_MEM_CTX(ndr, r->out.max_valbufsize, LIBNDR_FLAG_REF_ALLOC);
2300 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.max_valbufsize));
2301 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_max_valbufsize_0, LIBNDR_FLAG_REF_ALLOC);
2302 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2303 NDR_PULL_ALLOC(ndr, r->out.secdescsize);
2305 _mem_save_secdescsize_0 = NDR_PULL_GET_MEM_CTX(ndr);
2306 NDR_PULL_SET_MEM_CTX(ndr, r->out.secdescsize, LIBNDR_FLAG_REF_ALLOC);
2307 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.secdescsize));
2308 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdescsize_0, LIBNDR_FLAG_REF_ALLOC);
2309 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2310 NDR_PULL_ALLOC(ndr, r->out.last_changed_time);
2312 _mem_save_last_changed_time_0 = NDR_PULL_GET_MEM_CTX(ndr);
2313 NDR_PULL_SET_MEM_CTX(ndr, r->out.last_changed_time, LIBNDR_FLAG_REF_ALLOC);
2314 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, r->out.last_changed_time));
2315 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_last_changed_time_0, LIBNDR_FLAG_REF_ALLOC);
2316 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
2318 return NT_STATUS_OK;
2321 _PUBLIC_ void ndr_print_winreg_QueryInfoKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_QueryInfoKey *r)
2323 ndr_print_struct(ndr, name, "winreg_QueryInfoKey");
2325 if (flags & NDR_SET_VALUES) {
2326 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2328 if (flags & NDR_IN) {
2329 ndr_print_struct(ndr, "in", "winreg_QueryInfoKey");
2331 ndr_print_ptr(ndr, "handle", r->in.handle);
2333 ndr_print_policy_handle(ndr, "handle", r->in.handle);
2335 ndr_print_ptr(ndr, "classname", r->in.classname);
2337 ndr_print_winreg_String(ndr, "classname", r->in.classname);
2341 if (flags & NDR_OUT) {
2342 ndr_print_struct(ndr, "out", "winreg_QueryInfoKey");
2344 ndr_print_ptr(ndr, "classname", r->out.classname);
2346 ndr_print_winreg_String(ndr, "classname", r->out.classname);
2348 ndr_print_ptr(ndr, "num_subkeys", r->out.num_subkeys);
2350 ndr_print_uint32(ndr, "num_subkeys", *r->out.num_subkeys);
2352 ndr_print_ptr(ndr, "max_subkeylen", r->out.max_subkeylen);
2354 ndr_print_uint32(ndr, "max_subkeylen", *r->out.max_subkeylen);
2356 ndr_print_ptr(ndr, "max_classlen", r->out.max_classlen);
2358 ndr_print_uint32(ndr, "max_classlen", *r->out.max_classlen);
2360 ndr_print_ptr(ndr, "num_values", r->out.num_values);
2362 ndr_print_uint32(ndr, "num_values", *r->out.num_values);
2364 ndr_print_ptr(ndr, "max_valnamelen", r->out.max_valnamelen);
2366 ndr_print_uint32(ndr, "max_valnamelen", *r->out.max_valnamelen);
2368 ndr_print_ptr(ndr, "max_valbufsize", r->out.max_valbufsize);
2370 ndr_print_uint32(ndr, "max_valbufsize", *r->out.max_valbufsize);
2372 ndr_print_ptr(ndr, "secdescsize", r->out.secdescsize);
2374 ndr_print_uint32(ndr, "secdescsize", *r->out.secdescsize);
2376 ndr_print_ptr(ndr, "last_changed_time", r->out.last_changed_time);
2378 ndr_print_NTTIME(ndr, "last_changed_time", *r->out.last_changed_time);
2380 ndr_print_WERROR(ndr, "result", r->out.result);
2386 NTSTATUS ndr_push_winreg_QueryValue(struct ndr_push *ndr, int flags, const struct winreg_QueryValue *r)
2388 if (flags & NDR_IN) {
2389 if (r->in.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2390 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
2391 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.value_name));
2392 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.type));
2394 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->in.type));
2396 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.data));
2398 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.data_size));
2399 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
2400 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.value_length));
2401 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.data, *r->in.value_length));
2403 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.data_size));
2404 if (r->in.data_size) {
2405 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.data_size));
2407 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.value_length));
2408 if (r->in.value_length) {
2409 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.value_length));
2412 if (flags & NDR_OUT) {
2413 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.type));
2415 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
2417 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.data));
2419 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.data_size));
2420 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
2421 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.value_length));
2422 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, *r->out.value_length));
2424 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.data_size));
2425 if (r->out.data_size) {
2426 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.data_size));
2428 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.value_length));
2429 if (r->out.value_length) {
2430 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.value_length));
2432 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
2434 return NT_STATUS_OK;
2437 NTSTATUS ndr_pull_winreg_QueryValue(struct ndr_pull *ndr, int flags, struct winreg_QueryValue *r)
2441 uint32_t _ptr_data_size;
2442 uint32_t _ptr_value_length;
2443 TALLOC_CTX *_mem_save_handle_0;
2444 TALLOC_CTX *_mem_save_type_0;
2445 TALLOC_CTX *_mem_save_data_0;
2446 TALLOC_CTX *_mem_save_data_size_0;
2447 TALLOC_CTX *_mem_save_value_length_0;
2448 if (flags & NDR_IN) {
2449 ZERO_STRUCT(r->out);
2451 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2452 NDR_PULL_ALLOC(ndr, r->in.handle);
2454 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
2455 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
2456 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
2457 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
2458 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.value_name));
2459 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_type));
2461 NDR_PULL_ALLOC(ndr, r->in.type);
2466 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
2467 NDR_PULL_SET_MEM_CTX(ndr, r->in.type, 0);
2468 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->in.type));
2469 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, 0);
2471 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
2473 NDR_PULL_ALLOC(ndr, r->in.data);
2478 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
2479 NDR_PULL_SET_MEM_CTX(ndr, r->in.data, 0);
2480 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.data));
2481 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.data));
2482 if (ndr_get_array_length(ndr, &r->in.data) > ndr_get_array_size(ndr, &r->in.data)) {
2483 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));
2485 NDR_PULL_ALLOC_N(ndr, r->in.data, ndr_get_array_size(ndr, &r->in.data));
2486 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.data, ndr_get_array_length(ndr, &r->in.data)));
2487 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
2489 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_size));
2490 if (_ptr_data_size) {
2491 NDR_PULL_ALLOC(ndr, r->in.data_size);
2493 r->in.data_size = NULL;
2495 if (r->in.data_size) {
2496 _mem_save_data_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
2497 NDR_PULL_SET_MEM_CTX(ndr, r->in.data_size, 0);
2498 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.data_size));
2499 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_size_0, 0);
2501 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_value_length));
2502 if (_ptr_value_length) {
2503 NDR_PULL_ALLOC(ndr, r->in.value_length);
2505 r->in.value_length = NULL;
2507 if (r->in.value_length) {
2508 _mem_save_value_length_0 = NDR_PULL_GET_MEM_CTX(ndr);
2509 NDR_PULL_SET_MEM_CTX(ndr, r->in.value_length, 0);
2510 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.value_length));
2511 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_length_0, 0);
2514 if (r->in.data_size == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2515 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.data, *r->in.data_size));
2518 if (r->in.value_length == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2519 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->in.data, *r->in.value_length));
2522 if (flags & NDR_OUT) {
2523 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_type));
2525 NDR_PULL_ALLOC(ndr, r->out.type);
2530 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
2531 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, 0);
2532 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
2533 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, 0);
2535 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
2537 NDR_PULL_ALLOC(ndr, r->out.data);
2542 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
2543 NDR_PULL_SET_MEM_CTX(ndr, r->out.data, 0);
2544 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
2545 NDR_CHECK(ndr_pull_array_length(ndr, &r->out.data));
2546 if (ndr_get_array_length(ndr, &r->out.data) > ndr_get_array_size(ndr, &r->out.data)) {
2547 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));
2549 NDR_PULL_ALLOC_N(ndr, r->out.data, ndr_get_array_size(ndr, &r->out.data));
2550 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, ndr_get_array_length(ndr, &r->out.data)));
2551 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
2553 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_size));
2554 if (_ptr_data_size) {
2555 NDR_PULL_ALLOC(ndr, r->out.data_size);
2557 r->out.data_size = NULL;
2559 if (r->out.data_size) {
2560 _mem_save_data_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
2561 NDR_PULL_SET_MEM_CTX(ndr, r->out.data_size, 0);
2562 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.data_size));
2563 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_size_0, 0);
2565 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_value_length));
2566 if (_ptr_value_length) {
2567 NDR_PULL_ALLOC(ndr, r->out.value_length);
2569 r->out.value_length = NULL;
2571 if (r->out.value_length) {
2572 _mem_save_value_length_0 = NDR_PULL_GET_MEM_CTX(ndr);
2573 NDR_PULL_SET_MEM_CTX(ndr, r->out.value_length, 0);
2574 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.value_length));
2575 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_length_0, 0);
2577 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
2579 if (r->out.data_size == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2580 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, *r->out.data_size));
2583 if (r->out.value_length == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2584 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->out.data, *r->out.value_length));
2587 return NT_STATUS_OK;
2590 _PUBLIC_ void ndr_print_winreg_QueryValue(struct ndr_print *ndr, const char *name, int flags, const struct winreg_QueryValue *r)
2592 ndr_print_struct(ndr, name, "winreg_QueryValue");
2594 if (flags & NDR_SET_VALUES) {
2595 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2597 if (flags & NDR_IN) {
2598 ndr_print_struct(ndr, "in", "winreg_QueryValue");
2600 ndr_print_ptr(ndr, "handle", r->in.handle);
2602 ndr_print_policy_handle(ndr, "handle", r->in.handle);
2604 ndr_print_winreg_String(ndr, "value_name", &r->in.value_name);
2605 ndr_print_ptr(ndr, "type", r->in.type);
2608 ndr_print_winreg_Type(ndr, "type", *r->in.type);
2611 ndr_print_ptr(ndr, "data", r->in.data);
2614 if (r->in.value_length == NULL) return;
2615 ndr_print_array_uint8(ndr, "data", r->in.data, *r->in.value_length);
2618 ndr_print_ptr(ndr, "data_size", r->in.data_size);
2620 if (r->in.data_size) {
2621 ndr_print_uint32(ndr, "data_size", *r->in.data_size);
2624 ndr_print_ptr(ndr, "value_length", r->in.value_length);
2626 if (r->in.value_length) {
2627 ndr_print_uint32(ndr, "value_length", *r->in.value_length);
2632 if (flags & NDR_OUT) {
2633 ndr_print_struct(ndr, "out", "winreg_QueryValue");
2635 ndr_print_ptr(ndr, "type", r->out.type);
2638 ndr_print_winreg_Type(ndr, "type", *r->out.type);
2641 ndr_print_ptr(ndr, "data", r->out.data);
2644 if (r->out.value_length == NULL) return;
2645 ndr_print_array_uint8(ndr, "data", r->out.data, *r->out.value_length);
2648 ndr_print_ptr(ndr, "data_size", r->out.data_size);
2650 if (r->out.data_size) {
2651 ndr_print_uint32(ndr, "data_size", *r->out.data_size);
2654 ndr_print_ptr(ndr, "value_length", r->out.value_length);
2656 if (r->out.value_length) {
2657 ndr_print_uint32(ndr, "value_length", *r->out.value_length);
2660 ndr_print_WERROR(ndr, "result", r->out.result);
2666 NTSTATUS ndr_push_winreg_ReplaceKey(struct ndr_push *ndr, int flags, const struct winreg_ReplaceKey *r)
2668 if (flags & NDR_IN) {
2670 if (flags & NDR_OUT) {
2671 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
2673 return NT_STATUS_OK;
2676 NTSTATUS ndr_pull_winreg_ReplaceKey(struct ndr_pull *ndr, int flags, struct winreg_ReplaceKey *r)
2678 if (flags & NDR_IN) {
2680 if (flags & NDR_OUT) {
2681 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
2683 return NT_STATUS_OK;
2686 _PUBLIC_ void ndr_print_winreg_ReplaceKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_ReplaceKey *r)
2688 ndr_print_struct(ndr, name, "winreg_ReplaceKey");
2690 if (flags & NDR_SET_VALUES) {
2691 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2693 if (flags & NDR_IN) {
2694 ndr_print_struct(ndr, "in", "winreg_ReplaceKey");
2698 if (flags & NDR_OUT) {
2699 ndr_print_struct(ndr, "out", "winreg_ReplaceKey");
2701 ndr_print_WERROR(ndr, "result", r->out.result);
2707 NTSTATUS ndr_push_winreg_RestoreKey(struct ndr_push *ndr, int flags, const struct winreg_RestoreKey *r)
2709 if (flags & NDR_IN) {
2710 if (r->in.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2711 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
2712 if (r->in.filename == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2713 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.filename));
2714 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.flags));
2716 if (flags & NDR_OUT) {
2717 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
2719 return NT_STATUS_OK;
2722 NTSTATUS ndr_pull_winreg_RestoreKey(struct ndr_pull *ndr, int flags, struct winreg_RestoreKey *r)
2724 TALLOC_CTX *_mem_save_handle_0;
2725 TALLOC_CTX *_mem_save_filename_0;
2726 if (flags & NDR_IN) {
2727 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2728 NDR_PULL_ALLOC(ndr, r->in.handle);
2730 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
2731 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
2732 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
2733 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
2734 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2735 NDR_PULL_ALLOC(ndr, r->in.filename);
2737 _mem_save_filename_0 = NDR_PULL_GET_MEM_CTX(ndr);
2738 NDR_PULL_SET_MEM_CTX(ndr, r->in.filename, LIBNDR_FLAG_REF_ALLOC);
2739 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.filename));
2740 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_filename_0, LIBNDR_FLAG_REF_ALLOC);
2741 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.flags));
2743 if (flags & NDR_OUT) {
2744 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
2746 return NT_STATUS_OK;
2749 _PUBLIC_ void ndr_print_winreg_RestoreKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_RestoreKey *r)
2751 ndr_print_struct(ndr, name, "winreg_RestoreKey");
2753 if (flags & NDR_SET_VALUES) {
2754 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2756 if (flags & NDR_IN) {
2757 ndr_print_struct(ndr, "in", "winreg_RestoreKey");
2759 ndr_print_ptr(ndr, "handle", r->in.handle);
2761 ndr_print_policy_handle(ndr, "handle", r->in.handle);
2763 ndr_print_ptr(ndr, "filename", r->in.filename);
2765 ndr_print_winreg_String(ndr, "filename", r->in.filename);
2767 ndr_print_uint32(ndr, "flags", r->in.flags);
2770 if (flags & NDR_OUT) {
2771 ndr_print_struct(ndr, "out", "winreg_RestoreKey");
2773 ndr_print_WERROR(ndr, "result", r->out.result);
2779 NTSTATUS ndr_push_winreg_SaveKey(struct ndr_push *ndr, int flags, const struct winreg_SaveKey *r)
2781 if (flags & NDR_IN) {
2782 if (r->in.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2783 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
2784 if (r->in.filename == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2785 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.filename));
2786 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.sec_attrib));
2787 if (r->in.sec_attrib) {
2788 NDR_CHECK(ndr_push_KeySecurityAttribute(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sec_attrib));
2791 if (flags & NDR_OUT) {
2792 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
2794 return NT_STATUS_OK;
2797 NTSTATUS ndr_pull_winreg_SaveKey(struct ndr_pull *ndr, int flags, struct winreg_SaveKey *r)
2799 uint32_t _ptr_sec_attrib;
2800 TALLOC_CTX *_mem_save_handle_0;
2801 TALLOC_CTX *_mem_save_filename_0;
2802 TALLOC_CTX *_mem_save_sec_attrib_0;
2803 if (flags & NDR_IN) {
2804 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2805 NDR_PULL_ALLOC(ndr, r->in.handle);
2807 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
2808 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
2809 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
2810 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
2811 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2812 NDR_PULL_ALLOC(ndr, r->in.filename);
2814 _mem_save_filename_0 = NDR_PULL_GET_MEM_CTX(ndr);
2815 NDR_PULL_SET_MEM_CTX(ndr, r->in.filename, LIBNDR_FLAG_REF_ALLOC);
2816 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.filename));
2817 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_filename_0, LIBNDR_FLAG_REF_ALLOC);
2818 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sec_attrib));
2819 if (_ptr_sec_attrib) {
2820 NDR_PULL_ALLOC(ndr, r->in.sec_attrib);
2822 r->in.sec_attrib = NULL;
2824 if (r->in.sec_attrib) {
2825 _mem_save_sec_attrib_0 = NDR_PULL_GET_MEM_CTX(ndr);
2826 NDR_PULL_SET_MEM_CTX(ndr, r->in.sec_attrib, 0);
2827 NDR_CHECK(ndr_pull_KeySecurityAttribute(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sec_attrib));
2828 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sec_attrib_0, 0);
2831 if (flags & NDR_OUT) {
2832 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
2834 return NT_STATUS_OK;
2837 _PUBLIC_ void ndr_print_winreg_SaveKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_SaveKey *r)
2839 ndr_print_struct(ndr, name, "winreg_SaveKey");
2841 if (flags & NDR_SET_VALUES) {
2842 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2844 if (flags & NDR_IN) {
2845 ndr_print_struct(ndr, "in", "winreg_SaveKey");
2847 ndr_print_ptr(ndr, "handle", r->in.handle);
2849 ndr_print_policy_handle(ndr, "handle", r->in.handle);
2851 ndr_print_ptr(ndr, "filename", r->in.filename);
2853 ndr_print_winreg_String(ndr, "filename", r->in.filename);
2855 ndr_print_ptr(ndr, "sec_attrib", r->in.sec_attrib);
2857 if (r->in.sec_attrib) {
2858 ndr_print_KeySecurityAttribute(ndr, "sec_attrib", r->in.sec_attrib);
2863 if (flags & NDR_OUT) {
2864 ndr_print_struct(ndr, "out", "winreg_SaveKey");
2866 ndr_print_WERROR(ndr, "result", r->out.result);
2872 NTSTATUS ndr_push_winreg_SetKeySecurity(struct ndr_push *ndr, int flags, const struct winreg_SetKeySecurity *r)
2874 if (flags & NDR_IN) {
2875 if (r->in.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2876 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
2877 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
2878 if (r->in.sd == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2879 NDR_CHECK(ndr_push_KeySecurityData(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sd));
2881 if (flags & NDR_OUT) {
2882 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
2884 return NT_STATUS_OK;
2887 NTSTATUS ndr_pull_winreg_SetKeySecurity(struct ndr_pull *ndr, int flags, struct winreg_SetKeySecurity *r)
2889 TALLOC_CTX *_mem_save_handle_0;
2890 TALLOC_CTX *_mem_save_sd_0;
2891 if (flags & NDR_IN) {
2892 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2893 NDR_PULL_ALLOC(ndr, r->in.handle);
2895 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
2896 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
2897 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
2898 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
2899 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
2900 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2901 NDR_PULL_ALLOC(ndr, r->in.sd);
2903 _mem_save_sd_0 = NDR_PULL_GET_MEM_CTX(ndr);
2904 NDR_PULL_SET_MEM_CTX(ndr, r->in.sd, LIBNDR_FLAG_REF_ALLOC);
2905 NDR_CHECK(ndr_pull_KeySecurityData(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sd));
2906 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sd_0, LIBNDR_FLAG_REF_ALLOC);
2908 if (flags & NDR_OUT) {
2909 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
2911 return NT_STATUS_OK;
2914 _PUBLIC_ void ndr_print_winreg_SetKeySecurity(struct ndr_print *ndr, const char *name, int flags, const struct winreg_SetKeySecurity *r)
2916 ndr_print_struct(ndr, name, "winreg_SetKeySecurity");
2918 if (flags & NDR_SET_VALUES) {
2919 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2921 if (flags & NDR_IN) {
2922 ndr_print_struct(ndr, "in", "winreg_SetKeySecurity");
2924 ndr_print_ptr(ndr, "handle", r->in.handle);
2926 ndr_print_policy_handle(ndr, "handle", r->in.handle);
2928 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
2929 ndr_print_ptr(ndr, "sd", r->in.sd);
2931 ndr_print_KeySecurityData(ndr, "sd", r->in.sd);
2935 if (flags & NDR_OUT) {
2936 ndr_print_struct(ndr, "out", "winreg_SetKeySecurity");
2938 ndr_print_WERROR(ndr, "result", r->out.result);
2944 NTSTATUS ndr_push_winreg_SetValue(struct ndr_push *ndr, int flags, const struct winreg_SetValue *r)
2946 if (flags & NDR_IN) {
2947 if (r->in.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2948 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
2949 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.name));
2950 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
2951 if (r->in.data == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2952 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.size));
2953 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.data, r->in.size));
2954 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.size));
2956 if (flags & NDR_OUT) {
2957 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
2959 return NT_STATUS_OK;
2962 NTSTATUS ndr_pull_winreg_SetValue(struct ndr_pull *ndr, int flags, struct winreg_SetValue *r)
2964 TALLOC_CTX *_mem_save_handle_0;
2965 if (flags & NDR_IN) {
2966 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2967 NDR_PULL_ALLOC(ndr, r->in.handle);
2969 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
2970 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
2971 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
2972 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
2973 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.name));
2974 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
2975 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.data));
2976 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2977 NDR_PULL_ALLOC_N(ndr, r->in.data, ndr_get_array_size(ndr, &r->in.data));
2979 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.data, ndr_get_array_size(ndr, &r->in.data)));
2980 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.size));
2982 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.data, r->in.size));
2985 if (flags & NDR_OUT) {
2986 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
2988 return NT_STATUS_OK;
2991 _PUBLIC_ void ndr_print_winreg_SetValue(struct ndr_print *ndr, const char *name, int flags, const struct winreg_SetValue *r)
2993 ndr_print_struct(ndr, name, "winreg_SetValue");
2995 if (flags & NDR_SET_VALUES) {
2996 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2998 if (flags & NDR_IN) {
2999 ndr_print_struct(ndr, "in", "winreg_SetValue");
3001 ndr_print_ptr(ndr, "handle", r->in.handle);
3003 ndr_print_policy_handle(ndr, "handle", r->in.handle);
3005 ndr_print_winreg_String(ndr, "name", &r->in.name);
3006 ndr_print_winreg_Type(ndr, "type", r->in.type);
3007 ndr_print_ptr(ndr, "data", r->in.data);
3009 ndr_print_array_uint8(ndr, "data", r->in.data, r->in.size);
3011 ndr_print_uint32(ndr, "size", r->in.size);
3014 if (flags & NDR_OUT) {
3015 ndr_print_struct(ndr, "out", "winreg_SetValue");
3017 ndr_print_WERROR(ndr, "result", r->out.result);
3023 NTSTATUS ndr_push_winreg_UnLoadKey(struct ndr_push *ndr, int flags, const struct winreg_UnLoadKey *r)
3025 if (flags & NDR_IN) {
3027 if (flags & NDR_OUT) {
3028 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3030 return NT_STATUS_OK;
3033 NTSTATUS ndr_pull_winreg_UnLoadKey(struct ndr_pull *ndr, int flags, struct winreg_UnLoadKey *r)
3035 if (flags & NDR_IN) {
3037 if (flags & NDR_OUT) {
3038 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3040 return NT_STATUS_OK;
3043 _PUBLIC_ void ndr_print_winreg_UnLoadKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_UnLoadKey *r)
3045 ndr_print_struct(ndr, name, "winreg_UnLoadKey");
3047 if (flags & NDR_SET_VALUES) {
3048 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3050 if (flags & NDR_IN) {
3051 ndr_print_struct(ndr, "in", "winreg_UnLoadKey");
3055 if (flags & NDR_OUT) {
3056 ndr_print_struct(ndr, "out", "winreg_UnLoadKey");
3058 ndr_print_WERROR(ndr, "result", r->out.result);
3064 NTSTATUS ndr_push_winreg_InitiateSystemShutdown(struct ndr_push *ndr, int flags, const struct winreg_InitiateSystemShutdown *r)
3066 if (flags & NDR_IN) {
3067 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.hostname));
3068 if (r->in.hostname) {
3069 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.hostname));
3071 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.message));
3072 if (r->in.message) {
3073 NDR_CHECK(ndr_push_initshutdown_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.message));
3075 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.timeout));
3076 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->in.force_apps));
3077 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->in.reboot));
3079 if (flags & NDR_OUT) {
3080 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3082 return NT_STATUS_OK;
3085 NTSTATUS ndr_pull_winreg_InitiateSystemShutdown(struct ndr_pull *ndr, int flags, struct winreg_InitiateSystemShutdown *r)
3087 uint32_t _ptr_hostname;
3088 uint32_t _ptr_message;
3089 TALLOC_CTX *_mem_save_hostname_0;
3090 TALLOC_CTX *_mem_save_message_0;
3091 if (flags & NDR_IN) {
3092 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hostname));
3093 if (_ptr_hostname) {
3094 NDR_PULL_ALLOC(ndr, r->in.hostname);
3096 r->in.hostname = NULL;
3098 if (r->in.hostname) {
3099 _mem_save_hostname_0 = NDR_PULL_GET_MEM_CTX(ndr);
3100 NDR_PULL_SET_MEM_CTX(ndr, r->in.hostname, 0);
3101 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.hostname));
3102 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hostname_0, 0);
3104 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_message));
3106 NDR_PULL_ALLOC(ndr, r->in.message);
3108 r->in.message = NULL;
3110 if (r->in.message) {
3111 _mem_save_message_0 = NDR_PULL_GET_MEM_CTX(ndr);
3112 NDR_PULL_SET_MEM_CTX(ndr, r->in.message, 0);
3113 NDR_CHECK(ndr_pull_initshutdown_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.message));
3114 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_message_0, 0);
3116 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.timeout));
3117 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->in.force_apps));
3118 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->in.reboot));
3120 if (flags & NDR_OUT) {
3121 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3123 return NT_STATUS_OK;
3126 _PUBLIC_ void ndr_print_winreg_InitiateSystemShutdown(struct ndr_print *ndr, const char *name, int flags, const struct winreg_InitiateSystemShutdown *r)
3128 ndr_print_struct(ndr, name, "winreg_InitiateSystemShutdown");
3130 if (flags & NDR_SET_VALUES) {
3131 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3133 if (flags & NDR_IN) {
3134 ndr_print_struct(ndr, "in", "winreg_InitiateSystemShutdown");
3136 ndr_print_ptr(ndr, "hostname", r->in.hostname);
3138 if (r->in.hostname) {
3139 ndr_print_uint16(ndr, "hostname", *r->in.hostname);
3142 ndr_print_ptr(ndr, "message", r->in.message);
3144 if (r->in.message) {
3145 ndr_print_initshutdown_String(ndr, "message", r->in.message);
3148 ndr_print_uint32(ndr, "timeout", r->in.timeout);
3149 ndr_print_uint8(ndr, "force_apps", r->in.force_apps);
3150 ndr_print_uint8(ndr, "reboot", r->in.reboot);
3153 if (flags & NDR_OUT) {
3154 ndr_print_struct(ndr, "out", "winreg_InitiateSystemShutdown");
3156 ndr_print_WERROR(ndr, "result", r->out.result);
3162 NTSTATUS ndr_push_winreg_AbortSystemShutdown(struct ndr_push *ndr, int flags, const struct winreg_AbortSystemShutdown *r)
3164 if (flags & NDR_IN) {
3165 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
3167 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.server));
3170 if (flags & NDR_OUT) {
3171 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3173 return NT_STATUS_OK;
3176 NTSTATUS ndr_pull_winreg_AbortSystemShutdown(struct ndr_pull *ndr, int flags, struct winreg_AbortSystemShutdown *r)
3178 uint32_t _ptr_server;
3179 TALLOC_CTX *_mem_save_server_0;
3180 if (flags & NDR_IN) {
3181 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
3183 NDR_PULL_ALLOC(ndr, r->in.server);
3185 r->in.server = NULL;
3188 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
3189 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
3190 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.server));
3191 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
3194 if (flags & NDR_OUT) {
3195 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3197 return NT_STATUS_OK;
3200 _PUBLIC_ void ndr_print_winreg_AbortSystemShutdown(struct ndr_print *ndr, const char *name, int flags, const struct winreg_AbortSystemShutdown *r)
3202 ndr_print_struct(ndr, name, "winreg_AbortSystemShutdown");
3204 if (flags & NDR_SET_VALUES) {
3205 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3207 if (flags & NDR_IN) {
3208 ndr_print_struct(ndr, "in", "winreg_AbortSystemShutdown");
3210 ndr_print_ptr(ndr, "server", r->in.server);
3213 ndr_print_uint16(ndr, "server", *r->in.server);
3218 if (flags & NDR_OUT) {
3219 ndr_print_struct(ndr, "out", "winreg_AbortSystemShutdown");
3221 ndr_print_WERROR(ndr, "result", r->out.result);
3227 NTSTATUS ndr_push_winreg_GetVersion(struct ndr_push *ndr, int flags, const struct winreg_GetVersion *r)
3229 if (flags & NDR_IN) {
3230 if (r->in.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
3231 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
3233 if (flags & NDR_OUT) {
3234 if (r->out.version == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
3235 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.version));
3236 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3238 return NT_STATUS_OK;
3241 NTSTATUS ndr_pull_winreg_GetVersion(struct ndr_pull *ndr, int flags, struct winreg_GetVersion *r)
3243 TALLOC_CTX *_mem_save_handle_0;
3244 TALLOC_CTX *_mem_save_version_0;
3245 if (flags & NDR_IN) {
3246 ZERO_STRUCT(r->out);
3248 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3249 NDR_PULL_ALLOC(ndr, r->in.handle);
3251 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
3252 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
3253 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
3254 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
3255 NDR_PULL_ALLOC(ndr, r->out.version);
3256 ZERO_STRUCTP(r->out.version);
3258 if (flags & NDR_OUT) {
3259 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3260 NDR_PULL_ALLOC(ndr, r->out.version);
3262 _mem_save_version_0 = NDR_PULL_GET_MEM_CTX(ndr);
3263 NDR_PULL_SET_MEM_CTX(ndr, r->out.version, LIBNDR_FLAG_REF_ALLOC);
3264 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.version));
3265 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_version_0, LIBNDR_FLAG_REF_ALLOC);
3266 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3268 return NT_STATUS_OK;
3271 _PUBLIC_ void ndr_print_winreg_GetVersion(struct ndr_print *ndr, const char *name, int flags, const struct winreg_GetVersion *r)
3273 ndr_print_struct(ndr, name, "winreg_GetVersion");
3275 if (flags & NDR_SET_VALUES) {
3276 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3278 if (flags & NDR_IN) {
3279 ndr_print_struct(ndr, "in", "winreg_GetVersion");
3281 ndr_print_ptr(ndr, "handle", r->in.handle);
3283 ndr_print_policy_handle(ndr, "handle", r->in.handle);
3287 if (flags & NDR_OUT) {
3288 ndr_print_struct(ndr, "out", "winreg_GetVersion");
3290 ndr_print_ptr(ndr, "version", r->out.version);
3292 ndr_print_uint32(ndr, "version", *r->out.version);
3294 ndr_print_WERROR(ndr, "result", r->out.result);
3300 NTSTATUS ndr_push_winreg_OpenHKCC(struct ndr_push *ndr, int flags, const struct winreg_OpenHKCC *r)
3302 if (flags & NDR_IN) {
3303 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.system_name));
3304 if (r->in.system_name) {
3305 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.system_name));
3307 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
3309 if (flags & NDR_OUT) {
3310 if (r->out.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
3311 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.handle));
3312 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3314 return NT_STATUS_OK;
3317 NTSTATUS ndr_pull_winreg_OpenHKCC(struct ndr_pull *ndr, int flags, struct winreg_OpenHKCC *r)
3319 uint32_t _ptr_system_name;
3320 TALLOC_CTX *_mem_save_system_name_0;
3321 TALLOC_CTX *_mem_save_handle_0;
3322 if (flags & NDR_IN) {
3323 ZERO_STRUCT(r->out);
3325 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_system_name));
3326 if (_ptr_system_name) {
3327 NDR_PULL_ALLOC(ndr, r->in.system_name);
3329 r->in.system_name = NULL;
3331 if (r->in.system_name) {
3332 _mem_save_system_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3333 NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0);
3334 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.system_name));
3335 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0);
3337 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
3338 NDR_PULL_ALLOC(ndr, r->out.handle);
3339 ZERO_STRUCTP(r->out.handle);
3341 if (flags & NDR_OUT) {
3342 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3343 NDR_PULL_ALLOC(ndr, r->out.handle);
3345 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
3346 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
3347 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.handle));
3348 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
3349 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3351 return NT_STATUS_OK;
3354 _PUBLIC_ void ndr_print_winreg_OpenHKCC(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenHKCC *r)
3356 ndr_print_struct(ndr, name, "winreg_OpenHKCC");
3358 if (flags & NDR_SET_VALUES) {
3359 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3361 if (flags & NDR_IN) {
3362 ndr_print_struct(ndr, "in", "winreg_OpenHKCC");
3364 ndr_print_ptr(ndr, "system_name", r->in.system_name);
3366 if (r->in.system_name) {
3367 ndr_print_uint16(ndr, "system_name", *r->in.system_name);
3370 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
3373 if (flags & NDR_OUT) {
3374 ndr_print_struct(ndr, "out", "winreg_OpenHKCC");
3376 ndr_print_ptr(ndr, "handle", r->out.handle);
3378 ndr_print_policy_handle(ndr, "handle", r->out.handle);
3380 ndr_print_WERROR(ndr, "result", r->out.result);
3386 NTSTATUS ndr_push_winreg_OpenHKDD(struct ndr_push *ndr, int flags, const struct winreg_OpenHKDD *r)
3388 if (flags & NDR_IN) {
3389 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.system_name));
3390 if (r->in.system_name) {
3391 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.system_name));
3393 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
3395 if (flags & NDR_OUT) {
3396 if (r->out.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
3397 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.handle));
3398 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3400 return NT_STATUS_OK;
3403 NTSTATUS ndr_pull_winreg_OpenHKDD(struct ndr_pull *ndr, int flags, struct winreg_OpenHKDD *r)
3405 uint32_t _ptr_system_name;
3406 TALLOC_CTX *_mem_save_system_name_0;
3407 TALLOC_CTX *_mem_save_handle_0;
3408 if (flags & NDR_IN) {
3409 ZERO_STRUCT(r->out);
3411 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_system_name));
3412 if (_ptr_system_name) {
3413 NDR_PULL_ALLOC(ndr, r->in.system_name);
3415 r->in.system_name = NULL;
3417 if (r->in.system_name) {
3418 _mem_save_system_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3419 NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0);
3420 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.system_name));
3421 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0);
3423 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
3424 NDR_PULL_ALLOC(ndr, r->out.handle);
3425 ZERO_STRUCTP(r->out.handle);
3427 if (flags & NDR_OUT) {
3428 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3429 NDR_PULL_ALLOC(ndr, r->out.handle);
3431 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
3432 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
3433 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.handle));
3434 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
3435 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3437 return NT_STATUS_OK;
3440 _PUBLIC_ void ndr_print_winreg_OpenHKDD(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenHKDD *r)
3442 ndr_print_struct(ndr, name, "winreg_OpenHKDD");
3444 if (flags & NDR_SET_VALUES) {
3445 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3447 if (flags & NDR_IN) {
3448 ndr_print_struct(ndr, "in", "winreg_OpenHKDD");
3450 ndr_print_ptr(ndr, "system_name", r->in.system_name);
3452 if (r->in.system_name) {
3453 ndr_print_uint16(ndr, "system_name", *r->in.system_name);
3456 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
3459 if (flags & NDR_OUT) {
3460 ndr_print_struct(ndr, "out", "winreg_OpenHKDD");
3462 ndr_print_ptr(ndr, "handle", r->out.handle);
3464 ndr_print_policy_handle(ndr, "handle", r->out.handle);
3466 ndr_print_WERROR(ndr, "result", r->out.result);
3472 NTSTATUS ndr_push_winreg_QueryMultipleValues(struct ndr_push *ndr, int flags, const struct winreg_QueryMultipleValues *r)
3474 uint32_t cntr_values_1;
3475 if (flags & NDR_IN) {
3476 if (r->in.key_handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
3477 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.key_handle));
3478 if (r->in.values == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
3479 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.num_values));
3480 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3481 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.num_values));
3482 for (cntr_values_1 = 0; cntr_values_1 < r->in.num_values; cntr_values_1++) {
3483 NDR_CHECK(ndr_push_QueryMultipleValue(ndr, NDR_SCALARS, &r->in.values[cntr_values_1]));
3485 for (cntr_values_1 = 0; cntr_values_1 < r->in.num_values; cntr_values_1++) {
3486 NDR_CHECK(ndr_push_QueryMultipleValue(ndr, NDR_BUFFERS, &r->in.values[cntr_values_1]));
3488 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.num_values));
3489 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
3491 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.buffer_size));
3492 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3493 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.buffer_size));
3494 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, *r->in.buffer_size));
3496 if (r->in.buffer_size == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
3497 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.buffer_size));
3499 if (flags & NDR_OUT) {
3500 if (r->out.values == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
3501 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.num_values));
3502 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3503 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.num_values));
3504 for (cntr_values_1 = 0; cntr_values_1 < r->in.num_values; cntr_values_1++) {
3505 NDR_CHECK(ndr_push_QueryMultipleValue(ndr, NDR_SCALARS, &r->out.values[cntr_values_1]));
3507 for (cntr_values_1 = 0; cntr_values_1 < r->in.num_values; cntr_values_1++) {
3508 NDR_CHECK(ndr_push_QueryMultipleValue(ndr, NDR_BUFFERS, &r->out.values[cntr_values_1]));
3510 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.buffer));
3511 if (r->out.buffer) {
3512 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.buffer_size));
3513 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3514 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.buffer_size));
3515 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, *r->out.buffer_size));
3517 if (r->out.buffer_size == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
3518 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.buffer_size));
3519 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3521 return NT_STATUS_OK;
3524 NTSTATUS ndr_pull_winreg_QueryMultipleValues(struct ndr_pull *ndr, int flags, struct winreg_QueryMultipleValues *r)
3526 uint32_t cntr_values_1;
3527 uint32_t _ptr_buffer;
3528 TALLOC_CTX *_mem_save_key_handle_0;
3529 TALLOC_CTX *_mem_save_values_1;
3530 TALLOC_CTX *_mem_save_buffer_0;
3531 TALLOC_CTX *_mem_save_buffer_size_0;
3532 if (flags & NDR_IN) {
3533 ZERO_STRUCT(r->out);
3535 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3536 NDR_PULL_ALLOC(ndr, r->in.key_handle);
3538 _mem_save_key_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
3539 NDR_PULL_SET_MEM_CTX(ndr, r->in.key_handle, LIBNDR_FLAG_REF_ALLOC);
3540 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.key_handle));
3541 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_key_handle_0, LIBNDR_FLAG_REF_ALLOC);
3542 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.values));
3543 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.values));
3544 if (ndr_get_array_length(ndr, &r->in.values) > ndr_get_array_size(ndr, &r->in.values)) {
3545 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));
3547 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3548 NDR_PULL_ALLOC_N(ndr, r->in.values, ndr_get_array_size(ndr, &r->in.values));
3550 memcpy(r->out.values,r->in.values,ndr_get_array_size(ndr, &r->in.values) * sizeof(*r->in.values));
3551 _mem_save_values_1 = NDR_PULL_GET_MEM_CTX(ndr);
3552 NDR_PULL_SET_MEM_CTX(ndr, r->in.values, 0);
3553 for (cntr_values_1 = 0; cntr_values_1 < r->in.num_values; cntr_values_1++) {
3554 NDR_CHECK(ndr_pull_QueryMultipleValue(ndr, NDR_SCALARS, &r->in.values[cntr_values_1]));
3556 for (cntr_values_1 = 0; cntr_values_1 < r->in.num_values; cntr_values_1++) {
3557 NDR_CHECK(ndr_pull_QueryMultipleValue(ndr, NDR_BUFFERS, &r->in.values[cntr_values_1]));
3559 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_values_1, 0);
3560 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.num_values));
3561 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
3563 NDR_PULL_ALLOC(ndr, r->in.buffer);
3565 r->in.buffer = NULL;
3568 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
3569 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
3570 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
3571 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.buffer));
3572 if (ndr_get_array_length(ndr, &r->in.buffer) > ndr_get_array_size(ndr, &r->in.buffer)) {
3573 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));
3575 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
3576 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_length(ndr, &r->in.buffer)));
3577 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
3579 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3580 NDR_PULL_ALLOC(ndr, r->in.buffer_size);
3582 _mem_save_buffer_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
3583 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer_size, LIBNDR_FLAG_REF_ALLOC);
3584 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.buffer_size));
3585 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_size_0, LIBNDR_FLAG_REF_ALLOC);
3586 NDR_PULL_ALLOC_N(ndr, r->out.values, r->in.num_values);
3587 memcpy(r->out.values, r->in.values, r->in.num_values * sizeof(*r->in.values));
3588 NDR_PULL_ALLOC(ndr, r->out.buffer_size);
3589 *r->out.buffer_size = *r->in.buffer_size;
3591 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.values, r->in.num_values));
3594 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->in.values, r->in.num_values));
3597 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, *r->in.buffer_size));
3600 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->in.buffer, *r->in.buffer_size));
3603 if (flags & NDR_OUT) {
3604 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.values));
3605 NDR_CHECK(ndr_pull_array_length(ndr, &r->out.values));
3606 if (ndr_get_array_length(ndr, &r->out.values) > ndr_get_array_size(ndr, &r->out.values)) {
3607 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));
3609 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3610 NDR_PULL_ALLOC_N(ndr, r->out.values, ndr_get_array_size(ndr, &r->out.values));
3612 memcpy(r->out.values,r->in.values,ndr_get_array_size(ndr, &r->out.values) * sizeof(*r->in.values));
3613 _mem_save_values_1 = NDR_PULL_GET_MEM_CTX(ndr);
3614 NDR_PULL_SET_MEM_CTX(ndr, r->out.values, 0);
3615 for (cntr_values_1 = 0; cntr_values_1 < r->in.num_values; cntr_values_1++) {
3616 NDR_CHECK(ndr_pull_QueryMultipleValue(ndr, NDR_SCALARS, &r->out.values[cntr_values_1]));
3618 for (cntr_values_1 = 0; cntr_values_1 < r->in.num_values; cntr_values_1++) {
3619 NDR_CHECK(ndr_pull_QueryMultipleValue(ndr, NDR_BUFFERS, &r->out.values[cntr_values_1]));
3621 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_values_1, 0);
3622 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
3624 NDR_PULL_ALLOC(ndr, r->out.buffer);
3626 r->out.buffer = NULL;
3628 if (r->out.buffer) {
3629 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
3630 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, 0);
3631 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
3632 NDR_CHECK(ndr_pull_array_length(ndr, &r->out.buffer));
3633 if (ndr_get_array_length(ndr, &r->out.buffer) > ndr_get_array_size(ndr, &r->out.buffer)) {
3634 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));
3636 NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
3637 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_length(ndr, &r->out.buffer)));
3638 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
3640 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3641 NDR_PULL_ALLOC(ndr, r->out.buffer_size);
3643 _mem_save_buffer_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
3644 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer_size, LIBNDR_FLAG_REF_ALLOC);
3645 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.buffer_size));
3646 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_size_0, LIBNDR_FLAG_REF_ALLOC);
3647 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3648 if (r->out.values) {
3649 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.values, r->in.num_values));
3651 if (r->out.values) {
3652 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->out.values, r->in.num_values));
3654 if (r->out.buffer) {
3655 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, *r->out.buffer_size));
3657 if (r->out.buffer) {
3658 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->out.buffer, *r->out.buffer_size));
3661 return NT_STATUS_OK;
3664 _PUBLIC_ void ndr_print_winreg_QueryMultipleValues(struct ndr_print *ndr, const char *name, int flags, const struct winreg_QueryMultipleValues *r)
3666 uint32_t cntr_values_1;
3667 ndr_print_struct(ndr, name, "winreg_QueryMultipleValues");
3669 if (flags & NDR_SET_VALUES) {
3670 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3672 if (flags & NDR_IN) {
3673 ndr_print_struct(ndr, "in", "winreg_QueryMultipleValues");
3675 ndr_print_ptr(ndr, "key_handle", r->in.key_handle);
3677 ndr_print_policy_handle(ndr, "key_handle", r->in.key_handle);
3679 ndr_print_ptr(ndr, "values", r->in.values);
3681 ndr->print(ndr, "%s: ARRAY(%d)", "values", r->in.num_values);
3683 for (cntr_values_1=0;cntr_values_1<r->in.num_values;cntr_values_1++) {
3685 asprintf(&idx_1, "[%d]", cntr_values_1);
3687 ndr_print_QueryMultipleValue(ndr, "values", &r->in.values[cntr_values_1]);
3693 ndr_print_uint32(ndr, "num_values", r->in.num_values);
3694 ndr_print_ptr(ndr, "buffer", r->in.buffer);
3697 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, *r->in.buffer_size);
3700 ndr_print_ptr(ndr, "buffer_size", r->in.buffer_size);
3702 ndr_print_uint32(ndr, "buffer_size", *r->in.buffer_size);
3706 if (flags & NDR_OUT) {
3707 ndr_print_struct(ndr, "out", "winreg_QueryMultipleValues");
3709 ndr_print_ptr(ndr, "values", r->out.values);
3711 ndr->print(ndr, "%s: ARRAY(%d)", "values", r->in.num_values);
3713 for (cntr_values_1=0;cntr_values_1<r->in.num_values;cntr_values_1++) {
3715 asprintf(&idx_1, "[%d]", cntr_values_1);
3717 ndr_print_QueryMultipleValue(ndr, "values", &r->out.values[cntr_values_1]);
3723 ndr_print_ptr(ndr, "buffer", r->out.buffer);
3725 if (r->out.buffer) {
3726 ndr_print_array_uint8(ndr, "buffer", r->out.buffer, *r->out.buffer_size);
3729 ndr_print_ptr(ndr, "buffer_size", r->out.buffer_size);
3731 ndr_print_uint32(ndr, "buffer_size", *r->out.buffer_size);
3733 ndr_print_WERROR(ndr, "result", r->out.result);
3739 NTSTATUS ndr_push_winreg_InitiateSystemShutdownEx(struct ndr_push *ndr, int flags, const struct winreg_InitiateSystemShutdownEx *r)
3741 if (flags & NDR_IN) {
3742 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.hostname));
3743 if (r->in.hostname) {
3744 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.hostname));
3746 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.message));
3747 if (r->in.message) {
3748 NDR_CHECK(ndr_push_initshutdown_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.message));
3750 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.timeout));
3751 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->in.force_apps));
3752 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->in.reboot));
3753 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.reason));
3755 if (flags & NDR_OUT) {
3756 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3758 return NT_STATUS_OK;
3761 NTSTATUS ndr_pull_winreg_InitiateSystemShutdownEx(struct ndr_pull *ndr, int flags, struct winreg_InitiateSystemShutdownEx *r)
3763 uint32_t _ptr_hostname;
3764 uint32_t _ptr_message;
3765 TALLOC_CTX *_mem_save_hostname_0;
3766 TALLOC_CTX *_mem_save_message_0;
3767 if (flags & NDR_IN) {
3768 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hostname));
3769 if (_ptr_hostname) {
3770 NDR_PULL_ALLOC(ndr, r->in.hostname);
3772 r->in.hostname = NULL;
3774 if (r->in.hostname) {
3775 _mem_save_hostname_0 = NDR_PULL_GET_MEM_CTX(ndr);
3776 NDR_PULL_SET_MEM_CTX(ndr, r->in.hostname, 0);
3777 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.hostname));
3778 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hostname_0, 0);
3780 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_message));
3782 NDR_PULL_ALLOC(ndr, r->in.message);
3784 r->in.message = NULL;
3786 if (r->in.message) {
3787 _mem_save_message_0 = NDR_PULL_GET_MEM_CTX(ndr);
3788 NDR_PULL_SET_MEM_CTX(ndr, r->in.message, 0);
3789 NDR_CHECK(ndr_pull_initshutdown_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.message));
3790 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_message_0, 0);
3792 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.timeout));
3793 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->in.force_apps));
3794 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->in.reboot));
3795 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.reason));
3797 if (flags & NDR_OUT) {
3798 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3800 return NT_STATUS_OK;
3803 _PUBLIC_ void ndr_print_winreg_InitiateSystemShutdownEx(struct ndr_print *ndr, const char *name, int flags, const struct winreg_InitiateSystemShutdownEx *r)
3805 ndr_print_struct(ndr, name, "winreg_InitiateSystemShutdownEx");
3807 if (flags & NDR_SET_VALUES) {
3808 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3810 if (flags & NDR_IN) {
3811 ndr_print_struct(ndr, "in", "winreg_InitiateSystemShutdownEx");
3813 ndr_print_ptr(ndr, "hostname", r->in.hostname);
3815 if (r->in.hostname) {
3816 ndr_print_uint16(ndr, "hostname", *r->in.hostname);
3819 ndr_print_ptr(ndr, "message", r->in.message);
3821 if (r->in.message) {
3822 ndr_print_initshutdown_String(ndr, "message", r->in.message);
3825 ndr_print_uint32(ndr, "timeout", r->in.timeout);
3826 ndr_print_uint8(ndr, "force_apps", r->in.force_apps);
3827 ndr_print_uint8(ndr, "reboot", r->in.reboot);
3828 ndr_print_uint32(ndr, "reason", r->in.reason);
3831 if (flags & NDR_OUT) {
3832 ndr_print_struct(ndr, "out", "winreg_InitiateSystemShutdownEx");
3834 ndr_print_WERROR(ndr, "result", r->out.result);
3840 NTSTATUS ndr_push_winreg_SaveKeyEx(struct ndr_push *ndr, int flags, const struct winreg_SaveKeyEx *r)
3842 if (flags & NDR_IN) {
3844 if (flags & NDR_OUT) {
3845 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3847 return NT_STATUS_OK;
3850 NTSTATUS ndr_pull_winreg_SaveKeyEx(struct ndr_pull *ndr, int flags, struct winreg_SaveKeyEx *r)
3852 if (flags & NDR_IN) {
3854 if (flags & NDR_OUT) {
3855 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3857 return NT_STATUS_OK;
3860 _PUBLIC_ void ndr_print_winreg_SaveKeyEx(struct ndr_print *ndr, const char *name, int flags, const struct winreg_SaveKeyEx *r)
3862 ndr_print_struct(ndr, name, "winreg_SaveKeyEx");
3864 if (flags & NDR_SET_VALUES) {
3865 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3867 if (flags & NDR_IN) {
3868 ndr_print_struct(ndr, "in", "winreg_SaveKeyEx");
3872 if (flags & NDR_OUT) {
3873 ndr_print_struct(ndr, "out", "winreg_SaveKeyEx");
3875 ndr_print_WERROR(ndr, "result", r->out.result);
3881 NTSTATUS ndr_push_winreg_OpenHKPT(struct ndr_push *ndr, int flags, const struct winreg_OpenHKPT *r)
3883 if (flags & NDR_IN) {
3884 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.system_name));
3885 if (r->in.system_name) {
3886 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.system_name));
3888 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
3890 if (flags & NDR_OUT) {
3891 if (r->out.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
3892 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.handle));
3893 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3895 return NT_STATUS_OK;
3898 NTSTATUS ndr_pull_winreg_OpenHKPT(struct ndr_pull *ndr, int flags, struct winreg_OpenHKPT *r)
3900 uint32_t _ptr_system_name;
3901 TALLOC_CTX *_mem_save_system_name_0;
3902 TALLOC_CTX *_mem_save_handle_0;
3903 if (flags & NDR_IN) {
3904 ZERO_STRUCT(r->out);
3906 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_system_name));
3907 if (_ptr_system_name) {
3908 NDR_PULL_ALLOC(ndr, r->in.system_name);
3910 r->in.system_name = NULL;
3912 if (r->in.system_name) {
3913 _mem_save_system_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3914 NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0);
3915 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.system_name));
3916 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0);
3918 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
3919 NDR_PULL_ALLOC(ndr, r->out.handle);
3920 ZERO_STRUCTP(r->out.handle);
3922 if (flags & NDR_OUT) {
3923 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3924 NDR_PULL_ALLOC(ndr, r->out.handle);
3926 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
3927 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
3928 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.handle));
3929 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
3930 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3932 return NT_STATUS_OK;
3935 _PUBLIC_ void ndr_print_winreg_OpenHKPT(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenHKPT *r)
3937 ndr_print_struct(ndr, name, "winreg_OpenHKPT");
3939 if (flags & NDR_SET_VALUES) {
3940 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3942 if (flags & NDR_IN) {
3943 ndr_print_struct(ndr, "in", "winreg_OpenHKPT");
3945 ndr_print_ptr(ndr, "system_name", r->in.system_name);
3947 if (r->in.system_name) {
3948 ndr_print_uint16(ndr, "system_name", *r->in.system_name);
3951 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
3954 if (flags & NDR_OUT) {
3955 ndr_print_struct(ndr, "out", "winreg_OpenHKPT");
3957 ndr_print_ptr(ndr, "handle", r->out.handle);
3959 ndr_print_policy_handle(ndr, "handle", r->out.handle);
3961 ndr_print_WERROR(ndr, "result", r->out.result);
3967 NTSTATUS ndr_push_winreg_OpenHKPN(struct ndr_push *ndr, int flags, const struct winreg_OpenHKPN *r)
3969 if (flags & NDR_IN) {
3970 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.system_name));
3971 if (r->in.system_name) {
3972 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.system_name));
3974 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
3976 if (flags & NDR_OUT) {
3977 if (r->out.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
3978 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.handle));
3979 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3981 return NT_STATUS_OK;
3984 NTSTATUS ndr_pull_winreg_OpenHKPN(struct ndr_pull *ndr, int flags, struct winreg_OpenHKPN *r)
3986 uint32_t _ptr_system_name;
3987 TALLOC_CTX *_mem_save_system_name_0;
3988 TALLOC_CTX *_mem_save_handle_0;
3989 if (flags & NDR_IN) {
3990 ZERO_STRUCT(r->out);
3992 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_system_name));
3993 if (_ptr_system_name) {
3994 NDR_PULL_ALLOC(ndr, r->in.system_name);
3996 r->in.system_name = NULL;
3998 if (r->in.system_name) {
3999 _mem_save_system_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4000 NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0);
4001 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.system_name));
4002 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0);
4004 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
4005 NDR_PULL_ALLOC(ndr, r->out.handle);
4006 ZERO_STRUCTP(r->out.handle);
4008 if (flags & NDR_OUT) {
4009 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
4010 NDR_PULL_ALLOC(ndr, r->out.handle);
4012 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
4013 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
4014 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.handle));
4015 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
4016 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
4018 return NT_STATUS_OK;
4021 _PUBLIC_ void ndr_print_winreg_OpenHKPN(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenHKPN *r)
4023 ndr_print_struct(ndr, name, "winreg_OpenHKPN");
4025 if (flags & NDR_SET_VALUES) {
4026 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
4028 if (flags & NDR_IN) {
4029 ndr_print_struct(ndr, "in", "winreg_OpenHKPN");
4031 ndr_print_ptr(ndr, "system_name", r->in.system_name);
4033 if (r->in.system_name) {
4034 ndr_print_uint16(ndr, "system_name", *r->in.system_name);
4037 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
4040 if (flags & NDR_OUT) {
4041 ndr_print_struct(ndr, "out", "winreg_OpenHKPN");
4043 ndr_print_ptr(ndr, "handle", r->out.handle);
4045 ndr_print_policy_handle(ndr, "handle", r->out.handle);
4047 ndr_print_WERROR(ndr, "result", r->out.result);
4053 NTSTATUS ndr_push_winreg_QueryMultipleValues2(struct ndr_push *ndr, int flags, const struct winreg_QueryMultipleValues2 *r)
4055 if (flags & NDR_IN) {
4057 if (flags & NDR_OUT) {
4058 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
4060 return NT_STATUS_OK;
4063 NTSTATUS ndr_pull_winreg_QueryMultipleValues2(struct ndr_pull *ndr, int flags, struct winreg_QueryMultipleValues2 *r)
4065 if (flags & NDR_IN) {
4067 if (flags & NDR_OUT) {
4068 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
4070 return NT_STATUS_OK;
4073 _PUBLIC_ void ndr_print_winreg_QueryMultipleValues2(struct ndr_print *ndr, const char *name, int flags, const struct winreg_QueryMultipleValues2 *r)
4075 ndr_print_struct(ndr, name, "winreg_QueryMultipleValues2");
4077 if (flags & NDR_SET_VALUES) {
4078 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
4080 if (flags & NDR_IN) {
4081 ndr_print_struct(ndr, "in", "winreg_QueryMultipleValues2");
4085 if (flags & NDR_OUT) {
4086 ndr_print_struct(ndr, "out", "winreg_QueryMultipleValues2");
4088 ndr_print_WERROR(ndr, "result", r->out.result);
4094 const struct dcerpc_interface_call winreg_calls[] = {
4097 sizeof(struct winreg_OpenHKCR),
4098 (ndr_push_flags_fn_t) ndr_push_winreg_OpenHKCR,
4099 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenHKCR,
4100 (ndr_print_function_t) ndr_print_winreg_OpenHKCR,
4105 sizeof(struct winreg_OpenHKCU),
4106 (ndr_push_flags_fn_t) ndr_push_winreg_OpenHKCU,
4107 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenHKCU,
4108 (ndr_print_function_t) ndr_print_winreg_OpenHKCU,
4113 sizeof(struct winreg_OpenHKLM),
4114 (ndr_push_flags_fn_t) ndr_push_winreg_OpenHKLM,
4115 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenHKLM,
4116 (ndr_print_function_t) ndr_print_winreg_OpenHKLM,
4121 sizeof(struct winreg_OpenHKPD),
4122 (ndr_push_flags_fn_t) ndr_push_winreg_OpenHKPD,
4123 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenHKPD,
4124 (ndr_print_function_t) ndr_print_winreg_OpenHKPD,
4129 sizeof(struct winreg_OpenHKU),
4130 (ndr_push_flags_fn_t) ndr_push_winreg_OpenHKU,
4131 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenHKU,
4132 (ndr_print_function_t) ndr_print_winreg_OpenHKU,
4137 sizeof(struct winreg_CloseKey),
4138 (ndr_push_flags_fn_t) ndr_push_winreg_CloseKey,
4139 (ndr_pull_flags_fn_t) ndr_pull_winreg_CloseKey,
4140 (ndr_print_function_t) ndr_print_winreg_CloseKey,
4145 sizeof(struct winreg_CreateKey),
4146 (ndr_push_flags_fn_t) ndr_push_winreg_CreateKey,
4147 (ndr_pull_flags_fn_t) ndr_pull_winreg_CreateKey,
4148 (ndr_print_function_t) ndr_print_winreg_CreateKey,
4153 sizeof(struct winreg_DeleteKey),
4154 (ndr_push_flags_fn_t) ndr_push_winreg_DeleteKey,
4155 (ndr_pull_flags_fn_t) ndr_pull_winreg_DeleteKey,
4156 (ndr_print_function_t) ndr_print_winreg_DeleteKey,
4160 "winreg_DeleteValue",
4161 sizeof(struct winreg_DeleteValue),
4162 (ndr_push_flags_fn_t) ndr_push_winreg_DeleteValue,
4163 (ndr_pull_flags_fn_t) ndr_pull_winreg_DeleteValue,
4164 (ndr_print_function_t) ndr_print_winreg_DeleteValue,
4169 sizeof(struct winreg_EnumKey),
4170 (ndr_push_flags_fn_t) ndr_push_winreg_EnumKey,
4171 (ndr_pull_flags_fn_t) ndr_pull_winreg_EnumKey,
4172 (ndr_print_function_t) ndr_print_winreg_EnumKey,
4177 sizeof(struct winreg_EnumValue),
4178 (ndr_push_flags_fn_t) ndr_push_winreg_EnumValue,
4179 (ndr_pull_flags_fn_t) ndr_pull_winreg_EnumValue,
4180 (ndr_print_function_t) ndr_print_winreg_EnumValue,
4185 sizeof(struct winreg_FlushKey),
4186 (ndr_push_flags_fn_t) ndr_push_winreg_FlushKey,
4187 (ndr_pull_flags_fn_t) ndr_pull_winreg_FlushKey,
4188 (ndr_print_function_t) ndr_print_winreg_FlushKey,
4192 "winreg_GetKeySecurity",
4193 sizeof(struct winreg_GetKeySecurity),
4194 (ndr_push_flags_fn_t) ndr_push_winreg_GetKeySecurity,
4195 (ndr_pull_flags_fn_t) ndr_pull_winreg_GetKeySecurity,
4196 (ndr_print_function_t) ndr_print_winreg_GetKeySecurity,
4201 sizeof(struct winreg_LoadKey),
4202 (ndr_push_flags_fn_t) ndr_push_winreg_LoadKey,
4203 (ndr_pull_flags_fn_t) ndr_pull_winreg_LoadKey,
4204 (ndr_print_function_t) ndr_print_winreg_LoadKey,
4208 "winreg_NotifyChangeKeyValue",
4209 sizeof(struct winreg_NotifyChangeKeyValue),
4210 (ndr_push_flags_fn_t) ndr_push_winreg_NotifyChangeKeyValue,
4211 (ndr_pull_flags_fn_t) ndr_pull_winreg_NotifyChangeKeyValue,
4212 (ndr_print_function_t) ndr_print_winreg_NotifyChangeKeyValue,
4217 sizeof(struct winreg_OpenKey),
4218 (ndr_push_flags_fn_t) ndr_push_winreg_OpenKey,
4219 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenKey,
4220 (ndr_print_function_t) ndr_print_winreg_OpenKey,
4224 "winreg_QueryInfoKey",
4225 sizeof(struct winreg_QueryInfoKey),
4226 (ndr_push_flags_fn_t) ndr_push_winreg_QueryInfoKey,
4227 (ndr_pull_flags_fn_t) ndr_pull_winreg_QueryInfoKey,
4228 (ndr_print_function_t) ndr_print_winreg_QueryInfoKey,
4232 "winreg_QueryValue",
4233 sizeof(struct winreg_QueryValue),
4234 (ndr_push_flags_fn_t) ndr_push_winreg_QueryValue,
4235 (ndr_pull_flags_fn_t) ndr_pull_winreg_QueryValue,
4236 (ndr_print_function_t) ndr_print_winreg_QueryValue,
4240 "winreg_ReplaceKey",
4241 sizeof(struct winreg_ReplaceKey),
4242 (ndr_push_flags_fn_t) ndr_push_winreg_ReplaceKey,
4243 (ndr_pull_flags_fn_t) ndr_pull_winreg_ReplaceKey,
4244 (ndr_print_function_t) ndr_print_winreg_ReplaceKey,
4248 "winreg_RestoreKey",
4249 sizeof(struct winreg_RestoreKey),
4250 (ndr_push_flags_fn_t) ndr_push_winreg_RestoreKey,
4251 (ndr_pull_flags_fn_t) ndr_pull_winreg_RestoreKey,
4252 (ndr_print_function_t) ndr_print_winreg_RestoreKey,
4257 sizeof(struct winreg_SaveKey),
4258 (ndr_push_flags_fn_t) ndr_push_winreg_SaveKey,
4259 (ndr_pull_flags_fn_t) ndr_pull_winreg_SaveKey,
4260 (ndr_print_function_t) ndr_print_winreg_SaveKey,
4264 "winreg_SetKeySecurity",
4265 sizeof(struct winreg_SetKeySecurity),
4266 (ndr_push_flags_fn_t) ndr_push_winreg_SetKeySecurity,
4267 (ndr_pull_flags_fn_t) ndr_pull_winreg_SetKeySecurity,
4268 (ndr_print_function_t) ndr_print_winreg_SetKeySecurity,
4273 sizeof(struct winreg_SetValue),
4274 (ndr_push_flags_fn_t) ndr_push_winreg_SetValue,
4275 (ndr_pull_flags_fn_t) ndr_pull_winreg_SetValue,
4276 (ndr_print_function_t) ndr_print_winreg_SetValue,
4281 sizeof(struct winreg_UnLoadKey),
4282 (ndr_push_flags_fn_t) ndr_push_winreg_UnLoadKey,
4283 (ndr_pull_flags_fn_t) ndr_pull_winreg_UnLoadKey,
4284 (ndr_print_function_t) ndr_print_winreg_UnLoadKey,
4288 "winreg_InitiateSystemShutdown",
4289 sizeof(struct winreg_InitiateSystemShutdown),
4290 (ndr_push_flags_fn_t) ndr_push_winreg_InitiateSystemShutdown,
4291 (ndr_pull_flags_fn_t) ndr_pull_winreg_InitiateSystemShutdown,
4292 (ndr_print_function_t) ndr_print_winreg_InitiateSystemShutdown,
4296 "winreg_AbortSystemShutdown",
4297 sizeof(struct winreg_AbortSystemShutdown),
4298 (ndr_push_flags_fn_t) ndr_push_winreg_AbortSystemShutdown,
4299 (ndr_pull_flags_fn_t) ndr_pull_winreg_AbortSystemShutdown,
4300 (ndr_print_function_t) ndr_print_winreg_AbortSystemShutdown,
4304 "winreg_GetVersion",
4305 sizeof(struct winreg_GetVersion),
4306 (ndr_push_flags_fn_t) ndr_push_winreg_GetVersion,
4307 (ndr_pull_flags_fn_t) ndr_pull_winreg_GetVersion,
4308 (ndr_print_function_t) ndr_print_winreg_GetVersion,
4313 sizeof(struct winreg_OpenHKCC),
4314 (ndr_push_flags_fn_t) ndr_push_winreg_OpenHKCC,
4315 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenHKCC,
4316 (ndr_print_function_t) ndr_print_winreg_OpenHKCC,
4321 sizeof(struct winreg_OpenHKDD),
4322 (ndr_push_flags_fn_t) ndr_push_winreg_OpenHKDD,
4323 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenHKDD,
4324 (ndr_print_function_t) ndr_print_winreg_OpenHKDD,
4328 "winreg_QueryMultipleValues",
4329 sizeof(struct winreg_QueryMultipleValues),
4330 (ndr_push_flags_fn_t) ndr_push_winreg_QueryMultipleValues,
4331 (ndr_pull_flags_fn_t) ndr_pull_winreg_QueryMultipleValues,
4332 (ndr_print_function_t) ndr_print_winreg_QueryMultipleValues,
4336 "winreg_InitiateSystemShutdownEx",
4337 sizeof(struct winreg_InitiateSystemShutdownEx),
4338 (ndr_push_flags_fn_t) ndr_push_winreg_InitiateSystemShutdownEx,
4339 (ndr_pull_flags_fn_t) ndr_pull_winreg_InitiateSystemShutdownEx,
4340 (ndr_print_function_t) ndr_print_winreg_InitiateSystemShutdownEx,
4345 sizeof(struct winreg_SaveKeyEx),
4346 (ndr_push_flags_fn_t) ndr_push_winreg_SaveKeyEx,
4347 (ndr_pull_flags_fn_t) ndr_pull_winreg_SaveKeyEx,
4348 (ndr_print_function_t) ndr_print_winreg_SaveKeyEx,
4353 sizeof(struct winreg_OpenHKPT),
4354 (ndr_push_flags_fn_t) ndr_push_winreg_OpenHKPT,
4355 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenHKPT,
4356 (ndr_print_function_t) ndr_print_winreg_OpenHKPT,
4361 sizeof(struct winreg_OpenHKPN),
4362 (ndr_push_flags_fn_t) ndr_push_winreg_OpenHKPN,
4363 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenHKPN,
4364 (ndr_print_function_t) ndr_print_winreg_OpenHKPN,
4368 "winreg_QueryMultipleValues2",
4369 sizeof(struct winreg_QueryMultipleValues2),
4370 (ndr_push_flags_fn_t) ndr_push_winreg_QueryMultipleValues2,
4371 (ndr_pull_flags_fn_t) ndr_pull_winreg_QueryMultipleValues2,
4372 (ndr_print_function_t) ndr_print_winreg_QueryMultipleValues2,
4375 { NULL, 0, NULL, NULL, NULL, False }
4378 const char * const winreg_endpoint_strings[] = {
4379 "ncacn_np:[\\pipe\\winreg]",
4384 const struct dcerpc_endpoint_list winreg_endpoints = {
4386 .names = winreg_endpoint_strings
4389 const char * const winreg_authservice_strings[] = {
4393 const struct dcerpc_authservice_list winreg_authservices = {
4395 .names = winreg_authservice_strings
4399 const struct dcerpc_interface_table dcerpc_table_winreg = {
4402 {0x338cd001,0x2244,0x31f1,{0xaa,0xaa},{0x90,0x00,0x38,0x00,0x10,0x03}},
4403 DCERPC_WINREG_VERSION
4405 .helpstring = DCERPC_WINREG_HELPSTRING,
4407 .calls = winreg_calls,
4408 .endpoints = &winreg_endpoints,
4409 .authservices = &winreg_authservices