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 uint32_t cntr_data_1;
1464 if (flags & NDR_IN) {
1465 if (r->in.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
1466 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
1467 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.enum_index));
1468 if (r->in.name == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
1469 NDR_CHECK(ndr_push_winreg_ValNameBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.name));
1470 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.type));
1472 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->in.type));
1474 if (r->in.data == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
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 for (cntr_data_1 = 0; cntr_data_1 < *r->in.value_length; cntr_data_1++) {
1479 if (r->in.data[cntr_data_1] == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
1480 NDR_CHECK(ndr_push_ref_ptr(ndr));
1482 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.data_size));
1483 if (r->in.data_size) {
1484 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.data_size));
1486 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.value_length));
1487 if (r->in.value_length) {
1488 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.value_length));
1491 if (flags & NDR_OUT) {
1492 if (r->out.name == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
1493 NDR_CHECK(ndr_push_winreg_ValNameBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.name));
1494 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.type));
1496 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
1498 if (r->out.data == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
1499 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.data_size));
1500 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
1501 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.value_length));
1502 for (cntr_data_1 = 0; cntr_data_1 < *r->out.value_length; cntr_data_1++) {
1503 if (r->out.data[cntr_data_1] == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
1504 NDR_CHECK(ndr_push_ref_ptr(ndr));
1506 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.data_size));
1507 if (r->out.data_size) {
1508 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.data_size));
1510 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.value_length));
1511 if (r->out.value_length) {
1512 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.value_length));
1514 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
1516 return NT_STATUS_OK;
1519 NTSTATUS ndr_pull_winreg_EnumValue(struct ndr_pull *ndr, int flags, struct winreg_EnumValue *r)
1523 uint32_t cntr_data_1;
1524 uint32_t _ptr_data_size;
1525 uint32_t _ptr_value_length;
1526 TALLOC_CTX *_mem_save_handle_0;
1527 TALLOC_CTX *_mem_save_name_0;
1528 TALLOC_CTX *_mem_save_type_0;
1529 TALLOC_CTX *_mem_save_data_1;
1530 TALLOC_CTX *_mem_save_data_2;
1531 TALLOC_CTX *_mem_save_data_size_0;
1532 TALLOC_CTX *_mem_save_value_length_0;
1533 if (flags & NDR_IN) {
1534 ZERO_STRUCT(r->out);
1536 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1537 NDR_PULL_ALLOC(ndr, r->in.handle);
1539 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
1540 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
1541 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
1542 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
1543 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.enum_index));
1544 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1545 NDR_PULL_ALLOC(ndr, r->in.name);
1547 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
1548 NDR_PULL_SET_MEM_CTX(ndr, r->in.name, LIBNDR_FLAG_REF_ALLOC);
1549 NDR_CHECK(ndr_pull_winreg_ValNameBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.name));
1550 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, LIBNDR_FLAG_REF_ALLOC);
1551 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_type));
1553 NDR_PULL_ALLOC(ndr, r->in.type);
1558 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
1559 NDR_PULL_SET_MEM_CTX(ndr, r->in.type, 0);
1560 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->in.type));
1561 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, 0);
1563 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.data));
1564 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.data));
1565 if (ndr_get_array_length(ndr, &r->in.data) > ndr_get_array_size(ndr, &r->in.data)) {
1566 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));
1568 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1569 NDR_PULL_ALLOC_N(ndr, r->in.data, ndr_get_array_size(ndr, &r->in.data));
1571 memcpy(r->out.data,r->in.data,ndr_get_array_size(ndr, &r->in.data) * sizeof(*r->in.data));
1572 _mem_save_data_1 = NDR_PULL_GET_MEM_CTX(ndr);
1573 NDR_PULL_SET_MEM_CTX(ndr, r->in.data, 0);
1574 for (cntr_data_1 = 0; cntr_data_1 < *r->in.value_length; cntr_data_1++) {
1575 NDR_CHECK(ndr_pull_ref_ptr(ndr, &_ptr_data));
1576 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1577 NDR_PULL_ALLOC(ndr, r->in.data[cntr_data_1]);
1580 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_1, 0);
1581 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_size));
1582 if (_ptr_data_size) {
1583 NDR_PULL_ALLOC(ndr, r->in.data_size);
1585 r->in.data_size = NULL;
1587 if (r->in.data_size) {
1588 _mem_save_data_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
1589 NDR_PULL_SET_MEM_CTX(ndr, r->in.data_size, 0);
1590 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.data_size));
1591 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_size_0, 0);
1593 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_value_length));
1594 if (_ptr_value_length) {
1595 NDR_PULL_ALLOC(ndr, r->in.value_length);
1597 r->in.value_length = NULL;
1599 if (r->in.value_length) {
1600 _mem_save_value_length_0 = NDR_PULL_GET_MEM_CTX(ndr);
1601 NDR_PULL_SET_MEM_CTX(ndr, r->in.value_length, 0);
1602 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.value_length));
1603 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_length_0, 0);
1605 NDR_PULL_ALLOC(ndr, r->out.name);
1606 *r->out.name = *r->in.name;
1607 if (r->in.data_size == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
1608 NDR_PULL_ALLOC_N(ndr, r->out.data, *r->in.data_size);
1609 memcpy(r->out.data, r->in.data, *r->in.data_size * sizeof(*r->in.data));
1611 if (r->in.data_size == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
1612 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.data, *r->in.data_size));
1615 if (r->in.value_length == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
1616 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->in.data, *r->in.value_length));
1619 if (flags & NDR_OUT) {
1620 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1621 NDR_PULL_ALLOC(ndr, r->out.name);
1623 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
1624 NDR_PULL_SET_MEM_CTX(ndr, r->out.name, LIBNDR_FLAG_REF_ALLOC);
1625 NDR_CHECK(ndr_pull_winreg_ValNameBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.name));
1626 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, LIBNDR_FLAG_REF_ALLOC);
1627 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_type));
1629 NDR_PULL_ALLOC(ndr, r->out.type);
1634 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
1635 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, 0);
1636 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
1637 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, 0);
1639 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
1640 NDR_CHECK(ndr_pull_array_length(ndr, &r->out.data));
1641 if (ndr_get_array_length(ndr, &r->out.data) > ndr_get_array_size(ndr, &r->out.data)) {
1642 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));
1644 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1645 NDR_PULL_ALLOC_N(ndr, r->out.data, ndr_get_array_size(ndr, &r->out.data));
1647 memcpy(r->out.data,r->in.data,ndr_get_array_size(ndr, &r->out.data) * sizeof(*r->in.data));
1648 _mem_save_data_1 = NDR_PULL_GET_MEM_CTX(ndr);
1649 NDR_PULL_SET_MEM_CTX(ndr, r->out.data, 0);
1650 for (cntr_data_1 = 0; cntr_data_1 < *r->out.value_length; cntr_data_1++) {
1651 NDR_CHECK(ndr_pull_ref_ptr(ndr, &_ptr_data));
1652 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1653 NDR_PULL_ALLOC(ndr, r->out.data[cntr_data_1]);
1656 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_1, 0);
1657 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_size));
1658 if (_ptr_data_size) {
1659 NDR_PULL_ALLOC(ndr, r->out.data_size);
1661 r->out.data_size = NULL;
1663 if (r->out.data_size) {
1664 _mem_save_data_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
1665 NDR_PULL_SET_MEM_CTX(ndr, r->out.data_size, 0);
1666 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.data_size));
1667 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_size_0, 0);
1669 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_value_length));
1670 if (_ptr_value_length) {
1671 NDR_PULL_ALLOC(ndr, r->out.value_length);
1673 r->out.value_length = NULL;
1675 if (r->out.value_length) {
1676 _mem_save_value_length_0 = NDR_PULL_GET_MEM_CTX(ndr);
1677 NDR_PULL_SET_MEM_CTX(ndr, r->out.value_length, 0);
1678 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.value_length));
1679 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_length_0, 0);
1681 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
1683 if (r->out.data_size == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
1684 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, *r->out.data_size));
1687 if (r->out.value_length == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
1688 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->out.data, *r->out.value_length));
1691 return NT_STATUS_OK;
1694 _PUBLIC_ void ndr_print_winreg_EnumValue(struct ndr_print *ndr, const char *name, int flags, const struct winreg_EnumValue *r)
1696 uint32_t cntr_data_1;
1697 ndr_print_struct(ndr, name, "winreg_EnumValue");
1699 if (flags & NDR_SET_VALUES) {
1700 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1702 if (flags & NDR_IN) {
1703 ndr_print_struct(ndr, "in", "winreg_EnumValue");
1705 ndr_print_ptr(ndr, "handle", r->in.handle);
1707 ndr_print_policy_handle(ndr, "handle", r->in.handle);
1709 ndr_print_uint32(ndr, "enum_index", r->in.enum_index);
1710 ndr_print_ptr(ndr, "name", r->in.name);
1712 ndr_print_winreg_ValNameBuf(ndr, "name", r->in.name);
1714 ndr_print_ptr(ndr, "type", r->in.type);
1717 ndr_print_winreg_Type(ndr, "type", *r->in.type);
1720 ndr_print_ptr(ndr, "data", r->in.data);
1722 if (r->in.value_length == NULL) return;
1723 ndr->print(ndr, "%s: ARRAY(%d)", "data", *r->in.value_length);
1725 for (cntr_data_1=0;cntr_data_1<*r->in.value_length;cntr_data_1++) {
1727 asprintf(&idx_1, "[%d]", cntr_data_1);
1729 ndr_print_ptr(ndr, "data", r->in.data[cntr_data_1]);
1731 ndr_print_uint8(ndr, "data", *r->in.data[cntr_data_1]);
1738 ndr_print_ptr(ndr, "data_size", r->in.data_size);
1740 if (r->in.data_size) {
1741 ndr_print_uint32(ndr, "data_size", *r->in.data_size);
1744 ndr_print_ptr(ndr, "value_length", r->in.value_length);
1746 if (r->in.value_length) {
1747 ndr_print_uint32(ndr, "value_length", *r->in.value_length);
1752 if (flags & NDR_OUT) {
1753 ndr_print_struct(ndr, "out", "winreg_EnumValue");
1755 ndr_print_ptr(ndr, "name", r->out.name);
1757 ndr_print_winreg_ValNameBuf(ndr, "name", r->out.name);
1759 ndr_print_ptr(ndr, "type", r->out.type);
1762 ndr_print_winreg_Type(ndr, "type", *r->out.type);
1765 ndr_print_ptr(ndr, "data", r->out.data);
1767 if (r->out.value_length == NULL) return;
1768 ndr->print(ndr, "%s: ARRAY(%d)", "data", *r->out.value_length);
1770 for (cntr_data_1=0;cntr_data_1<*r->out.value_length;cntr_data_1++) {
1772 asprintf(&idx_1, "[%d]", cntr_data_1);
1774 ndr_print_ptr(ndr, "data", r->out.data[cntr_data_1]);
1776 ndr_print_uint8(ndr, "data", *r->out.data[cntr_data_1]);
1783 ndr_print_ptr(ndr, "data_size", r->out.data_size);
1785 if (r->out.data_size) {
1786 ndr_print_uint32(ndr, "data_size", *r->out.data_size);
1789 ndr_print_ptr(ndr, "value_length", r->out.value_length);
1791 if (r->out.value_length) {
1792 ndr_print_uint32(ndr, "value_length", *r->out.value_length);
1795 ndr_print_WERROR(ndr, "result", r->out.result);
1801 NTSTATUS ndr_push_winreg_FlushKey(struct ndr_push *ndr, int flags, const struct winreg_FlushKey *r)
1803 if (flags & NDR_IN) {
1804 if (r->in.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
1805 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
1807 if (flags & NDR_OUT) {
1808 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
1810 return NT_STATUS_OK;
1813 NTSTATUS ndr_pull_winreg_FlushKey(struct ndr_pull *ndr, int flags, struct winreg_FlushKey *r)
1815 TALLOC_CTX *_mem_save_handle_0;
1816 if (flags & NDR_IN) {
1817 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1818 NDR_PULL_ALLOC(ndr, r->in.handle);
1820 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
1821 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
1822 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
1823 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
1825 if (flags & NDR_OUT) {
1826 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
1828 return NT_STATUS_OK;
1831 _PUBLIC_ void ndr_print_winreg_FlushKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_FlushKey *r)
1833 ndr_print_struct(ndr, name, "winreg_FlushKey");
1835 if (flags & NDR_SET_VALUES) {
1836 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1838 if (flags & NDR_IN) {
1839 ndr_print_struct(ndr, "in", "winreg_FlushKey");
1841 ndr_print_ptr(ndr, "handle", r->in.handle);
1843 ndr_print_policy_handle(ndr, "handle", r->in.handle);
1847 if (flags & NDR_OUT) {
1848 ndr_print_struct(ndr, "out", "winreg_FlushKey");
1850 ndr_print_WERROR(ndr, "result", r->out.result);
1856 NTSTATUS ndr_push_winreg_GetKeySecurity(struct ndr_push *ndr, int flags, const struct winreg_GetKeySecurity *r)
1858 if (flags & NDR_IN) {
1859 if (r->in.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
1860 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
1861 NDR_CHECK(ndr_push_security_secinfo(ndr, NDR_SCALARS, r->in.sec_info));
1862 if (r->in.sd == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
1863 NDR_CHECK(ndr_push_KeySecurityData(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sd));
1865 if (flags & NDR_OUT) {
1866 if (r->out.sd == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
1867 NDR_CHECK(ndr_push_KeySecurityData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.sd));
1868 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
1870 return NT_STATUS_OK;
1873 NTSTATUS ndr_pull_winreg_GetKeySecurity(struct ndr_pull *ndr, int flags, struct winreg_GetKeySecurity *r)
1875 TALLOC_CTX *_mem_save_handle_0;
1876 TALLOC_CTX *_mem_save_sd_0;
1877 if (flags & NDR_IN) {
1878 ZERO_STRUCT(r->out);
1880 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1881 NDR_PULL_ALLOC(ndr, r->in.handle);
1883 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
1884 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
1885 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
1886 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
1887 NDR_CHECK(ndr_pull_security_secinfo(ndr, NDR_SCALARS, &r->in.sec_info));
1888 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1889 NDR_PULL_ALLOC(ndr, r->in.sd);
1891 _mem_save_sd_0 = NDR_PULL_GET_MEM_CTX(ndr);
1892 NDR_PULL_SET_MEM_CTX(ndr, r->in.sd, LIBNDR_FLAG_REF_ALLOC);
1893 NDR_CHECK(ndr_pull_KeySecurityData(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sd));
1894 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sd_0, LIBNDR_FLAG_REF_ALLOC);
1895 NDR_PULL_ALLOC(ndr, r->out.sd);
1896 *r->out.sd = *r->in.sd;
1898 if (flags & NDR_OUT) {
1899 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1900 NDR_PULL_ALLOC(ndr, r->out.sd);
1902 _mem_save_sd_0 = NDR_PULL_GET_MEM_CTX(ndr);
1903 NDR_PULL_SET_MEM_CTX(ndr, r->out.sd, LIBNDR_FLAG_REF_ALLOC);
1904 NDR_CHECK(ndr_pull_KeySecurityData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.sd));
1905 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sd_0, LIBNDR_FLAG_REF_ALLOC);
1906 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
1908 return NT_STATUS_OK;
1911 _PUBLIC_ void ndr_print_winreg_GetKeySecurity(struct ndr_print *ndr, const char *name, int flags, const struct winreg_GetKeySecurity *r)
1913 ndr_print_struct(ndr, name, "winreg_GetKeySecurity");
1915 if (flags & NDR_SET_VALUES) {
1916 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1918 if (flags & NDR_IN) {
1919 ndr_print_struct(ndr, "in", "winreg_GetKeySecurity");
1921 ndr_print_ptr(ndr, "handle", r->in.handle);
1923 ndr_print_policy_handle(ndr, "handle", r->in.handle);
1925 ndr_print_security_secinfo(ndr, "sec_info", r->in.sec_info);
1926 ndr_print_ptr(ndr, "sd", r->in.sd);
1928 ndr_print_KeySecurityData(ndr, "sd", r->in.sd);
1932 if (flags & NDR_OUT) {
1933 ndr_print_struct(ndr, "out", "winreg_GetKeySecurity");
1935 ndr_print_ptr(ndr, "sd", r->out.sd);
1937 ndr_print_KeySecurityData(ndr, "sd", r->out.sd);
1939 ndr_print_WERROR(ndr, "result", r->out.result);
1945 NTSTATUS ndr_push_winreg_LoadKey(struct ndr_push *ndr, int flags, const struct winreg_LoadKey *r)
1947 if (flags & NDR_IN) {
1948 if (r->in.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
1949 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
1950 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.keyname));
1951 if (r->in.keyname) {
1952 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.keyname));
1954 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.filename));
1955 if (r->in.filename) {
1956 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.filename));
1959 if (flags & NDR_OUT) {
1960 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
1962 return NT_STATUS_OK;
1965 NTSTATUS ndr_pull_winreg_LoadKey(struct ndr_pull *ndr, int flags, struct winreg_LoadKey *r)
1967 uint32_t _ptr_keyname;
1968 uint32_t _ptr_filename;
1969 TALLOC_CTX *_mem_save_handle_0;
1970 TALLOC_CTX *_mem_save_keyname_0;
1971 TALLOC_CTX *_mem_save_filename_0;
1972 if (flags & NDR_IN) {
1973 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1974 NDR_PULL_ALLOC(ndr, r->in.handle);
1976 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
1977 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
1978 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
1979 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
1980 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_keyname));
1982 NDR_PULL_ALLOC(ndr, r->in.keyname);
1984 r->in.keyname = NULL;
1986 if (r->in.keyname) {
1987 _mem_save_keyname_0 = NDR_PULL_GET_MEM_CTX(ndr);
1988 NDR_PULL_SET_MEM_CTX(ndr, r->in.keyname, 0);
1989 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.keyname));
1990 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_keyname_0, 0);
1992 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_filename));
1993 if (_ptr_filename) {
1994 NDR_PULL_ALLOC(ndr, r->in.filename);
1996 r->in.filename = NULL;
1998 if (r->in.filename) {
1999 _mem_save_filename_0 = NDR_PULL_GET_MEM_CTX(ndr);
2000 NDR_PULL_SET_MEM_CTX(ndr, r->in.filename, 0);
2001 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.filename));
2002 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_filename_0, 0);
2005 if (flags & NDR_OUT) {
2006 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
2008 return NT_STATUS_OK;
2011 _PUBLIC_ void ndr_print_winreg_LoadKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_LoadKey *r)
2013 ndr_print_struct(ndr, name, "winreg_LoadKey");
2015 if (flags & NDR_SET_VALUES) {
2016 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2018 if (flags & NDR_IN) {
2019 ndr_print_struct(ndr, "in", "winreg_LoadKey");
2021 ndr_print_ptr(ndr, "handle", r->in.handle);
2023 ndr_print_policy_handle(ndr, "handle", r->in.handle);
2025 ndr_print_ptr(ndr, "keyname", r->in.keyname);
2027 if (r->in.keyname) {
2028 ndr_print_winreg_String(ndr, "keyname", r->in.keyname);
2031 ndr_print_ptr(ndr, "filename", r->in.filename);
2033 if (r->in.filename) {
2034 ndr_print_winreg_String(ndr, "filename", r->in.filename);
2039 if (flags & NDR_OUT) {
2040 ndr_print_struct(ndr, "out", "winreg_LoadKey");
2042 ndr_print_WERROR(ndr, "result", r->out.result);
2048 NTSTATUS ndr_push_winreg_NotifyChangeKeyValue(struct ndr_push *ndr, int flags, const struct winreg_NotifyChangeKeyValue *r)
2050 if (flags & NDR_IN) {
2051 if (r->in.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2052 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
2053 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->in.watch_subtree));
2054 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.notify_filter));
2055 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown));
2056 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.string1));
2057 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.string2));
2058 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown2));
2060 if (flags & NDR_OUT) {
2061 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
2063 return NT_STATUS_OK;
2066 NTSTATUS ndr_pull_winreg_NotifyChangeKeyValue(struct ndr_pull *ndr, int flags, struct winreg_NotifyChangeKeyValue *r)
2068 TALLOC_CTX *_mem_save_handle_0;
2069 if (flags & NDR_IN) {
2070 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2071 NDR_PULL_ALLOC(ndr, r->in.handle);
2073 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
2074 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
2075 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
2076 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
2077 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->in.watch_subtree));
2078 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.notify_filter));
2079 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown));
2080 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.string1));
2081 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.string2));
2082 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown2));
2084 if (flags & NDR_OUT) {
2085 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
2087 return NT_STATUS_OK;
2090 _PUBLIC_ void ndr_print_winreg_NotifyChangeKeyValue(struct ndr_print *ndr, const char *name, int flags, const struct winreg_NotifyChangeKeyValue *r)
2092 ndr_print_struct(ndr, name, "winreg_NotifyChangeKeyValue");
2094 if (flags & NDR_SET_VALUES) {
2095 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2097 if (flags & NDR_IN) {
2098 ndr_print_struct(ndr, "in", "winreg_NotifyChangeKeyValue");
2100 ndr_print_ptr(ndr, "handle", r->in.handle);
2102 ndr_print_policy_handle(ndr, "handle", r->in.handle);
2104 ndr_print_uint8(ndr, "watch_subtree", r->in.watch_subtree);
2105 ndr_print_uint32(ndr, "notify_filter", r->in.notify_filter);
2106 ndr_print_uint32(ndr, "unknown", r->in.unknown);
2107 ndr_print_winreg_String(ndr, "string1", &r->in.string1);
2108 ndr_print_winreg_String(ndr, "string2", &r->in.string2);
2109 ndr_print_uint32(ndr, "unknown2", r->in.unknown2);
2112 if (flags & NDR_OUT) {
2113 ndr_print_struct(ndr, "out", "winreg_NotifyChangeKeyValue");
2115 ndr_print_WERROR(ndr, "result", r->out.result);
2121 NTSTATUS ndr_push_winreg_OpenKey(struct ndr_push *ndr, int flags, const struct winreg_OpenKey *r)
2123 if (flags & NDR_IN) {
2124 if (r->in.parent_handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2125 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.parent_handle));
2126 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.keyname));
2127 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown));
2128 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
2130 if (flags & NDR_OUT) {
2131 if (r->out.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2132 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.handle));
2133 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
2135 return NT_STATUS_OK;
2138 NTSTATUS ndr_pull_winreg_OpenKey(struct ndr_pull *ndr, int flags, struct winreg_OpenKey *r)
2140 TALLOC_CTX *_mem_save_parent_handle_0;
2141 TALLOC_CTX *_mem_save_handle_0;
2142 if (flags & NDR_IN) {
2143 ZERO_STRUCT(r->out);
2145 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2146 NDR_PULL_ALLOC(ndr, r->in.parent_handle);
2148 _mem_save_parent_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
2149 NDR_PULL_SET_MEM_CTX(ndr, r->in.parent_handle, LIBNDR_FLAG_REF_ALLOC);
2150 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.parent_handle));
2151 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parent_handle_0, LIBNDR_FLAG_REF_ALLOC);
2152 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.keyname));
2153 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown));
2154 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
2155 NDR_PULL_ALLOC(ndr, r->out.handle);
2156 ZERO_STRUCTP(r->out.handle);
2158 if (flags & NDR_OUT) {
2159 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2160 NDR_PULL_ALLOC(ndr, r->out.handle);
2162 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
2163 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
2164 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.handle));
2165 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
2166 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
2168 return NT_STATUS_OK;
2171 _PUBLIC_ void ndr_print_winreg_OpenKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenKey *r)
2173 ndr_print_struct(ndr, name, "winreg_OpenKey");
2175 if (flags & NDR_SET_VALUES) {
2176 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2178 if (flags & NDR_IN) {
2179 ndr_print_struct(ndr, "in", "winreg_OpenKey");
2181 ndr_print_ptr(ndr, "parent_handle", r->in.parent_handle);
2183 ndr_print_policy_handle(ndr, "parent_handle", r->in.parent_handle);
2185 ndr_print_winreg_String(ndr, "keyname", &r->in.keyname);
2186 ndr_print_uint32(ndr, "unknown", r->in.unknown);
2187 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
2190 if (flags & NDR_OUT) {
2191 ndr_print_struct(ndr, "out", "winreg_OpenKey");
2193 ndr_print_ptr(ndr, "handle", r->out.handle);
2195 ndr_print_policy_handle(ndr, "handle", r->out.handle);
2197 ndr_print_WERROR(ndr, "result", r->out.result);
2203 NTSTATUS ndr_push_winreg_QueryInfoKey(struct ndr_push *ndr, int flags, const struct winreg_QueryInfoKey *r)
2205 if (flags & NDR_IN) {
2206 if (r->in.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2207 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
2208 if (r->in.classname == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2209 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.classname));
2211 if (flags & NDR_OUT) {
2212 if (r->out.classname == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2213 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.classname));
2214 if (r->out.num_subkeys == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2215 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.num_subkeys));
2216 if (r->out.max_subkeylen == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2217 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.max_subkeylen));
2218 if (r->out.max_classlen == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2219 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.max_classlen));
2220 if (r->out.num_values == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2221 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.num_values));
2222 if (r->out.max_valnamelen == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2223 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.max_valnamelen));
2224 if (r->out.max_valbufsize == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2225 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.max_valbufsize));
2226 if (r->out.secdescsize == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2227 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.secdescsize));
2228 if (r->out.last_changed_time == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2229 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, *r->out.last_changed_time));
2230 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
2232 return NT_STATUS_OK;
2235 NTSTATUS ndr_pull_winreg_QueryInfoKey(struct ndr_pull *ndr, int flags, struct winreg_QueryInfoKey *r)
2237 TALLOC_CTX *_mem_save_handle_0;
2238 TALLOC_CTX *_mem_save_classname_0;
2239 TALLOC_CTX *_mem_save_num_subkeys_0;
2240 TALLOC_CTX *_mem_save_max_subkeylen_0;
2241 TALLOC_CTX *_mem_save_max_classlen_0;
2242 TALLOC_CTX *_mem_save_num_values_0;
2243 TALLOC_CTX *_mem_save_max_valnamelen_0;
2244 TALLOC_CTX *_mem_save_max_valbufsize_0;
2245 TALLOC_CTX *_mem_save_secdescsize_0;
2246 TALLOC_CTX *_mem_save_last_changed_time_0;
2247 if (flags & NDR_IN) {
2248 ZERO_STRUCT(r->out);
2250 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2251 NDR_PULL_ALLOC(ndr, r->in.handle);
2253 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
2254 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
2255 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
2256 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
2257 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2258 NDR_PULL_ALLOC(ndr, r->in.classname);
2260 _mem_save_classname_0 = NDR_PULL_GET_MEM_CTX(ndr);
2261 NDR_PULL_SET_MEM_CTX(ndr, r->in.classname, LIBNDR_FLAG_REF_ALLOC);
2262 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.classname));
2263 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_classname_0, LIBNDR_FLAG_REF_ALLOC);
2264 NDR_PULL_ALLOC(ndr, r->out.classname);
2265 *r->out.classname = *r->in.classname;
2266 NDR_PULL_ALLOC(ndr, r->out.num_subkeys);
2267 ZERO_STRUCTP(r->out.num_subkeys);
2268 NDR_PULL_ALLOC(ndr, r->out.max_subkeylen);
2269 ZERO_STRUCTP(r->out.max_subkeylen);
2270 NDR_PULL_ALLOC(ndr, r->out.max_classlen);
2271 ZERO_STRUCTP(r->out.max_classlen);
2272 NDR_PULL_ALLOC(ndr, r->out.num_values);
2273 ZERO_STRUCTP(r->out.num_values);
2274 NDR_PULL_ALLOC(ndr, r->out.max_valnamelen);
2275 ZERO_STRUCTP(r->out.max_valnamelen);
2276 NDR_PULL_ALLOC(ndr, r->out.max_valbufsize);
2277 ZERO_STRUCTP(r->out.max_valbufsize);
2278 NDR_PULL_ALLOC(ndr, r->out.secdescsize);
2279 ZERO_STRUCTP(r->out.secdescsize);
2280 NDR_PULL_ALLOC(ndr, r->out.last_changed_time);
2281 ZERO_STRUCTP(r->out.last_changed_time);
2283 if (flags & NDR_OUT) {
2284 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2285 NDR_PULL_ALLOC(ndr, r->out.classname);
2287 _mem_save_classname_0 = NDR_PULL_GET_MEM_CTX(ndr);
2288 NDR_PULL_SET_MEM_CTX(ndr, r->out.classname, LIBNDR_FLAG_REF_ALLOC);
2289 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.classname));
2290 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_classname_0, LIBNDR_FLAG_REF_ALLOC);
2291 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2292 NDR_PULL_ALLOC(ndr, r->out.num_subkeys);
2294 _mem_save_num_subkeys_0 = NDR_PULL_GET_MEM_CTX(ndr);
2295 NDR_PULL_SET_MEM_CTX(ndr, r->out.num_subkeys, LIBNDR_FLAG_REF_ALLOC);
2296 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.num_subkeys));
2297 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_num_subkeys_0, LIBNDR_FLAG_REF_ALLOC);
2298 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2299 NDR_PULL_ALLOC(ndr, r->out.max_subkeylen);
2301 _mem_save_max_subkeylen_0 = NDR_PULL_GET_MEM_CTX(ndr);
2302 NDR_PULL_SET_MEM_CTX(ndr, r->out.max_subkeylen, LIBNDR_FLAG_REF_ALLOC);
2303 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.max_subkeylen));
2304 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_max_subkeylen_0, LIBNDR_FLAG_REF_ALLOC);
2305 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2306 NDR_PULL_ALLOC(ndr, r->out.max_classlen);
2308 _mem_save_max_classlen_0 = NDR_PULL_GET_MEM_CTX(ndr);
2309 NDR_PULL_SET_MEM_CTX(ndr, r->out.max_classlen, LIBNDR_FLAG_REF_ALLOC);
2310 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.max_classlen));
2311 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_max_classlen_0, LIBNDR_FLAG_REF_ALLOC);
2312 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2313 NDR_PULL_ALLOC(ndr, r->out.num_values);
2315 _mem_save_num_values_0 = NDR_PULL_GET_MEM_CTX(ndr);
2316 NDR_PULL_SET_MEM_CTX(ndr, r->out.num_values, LIBNDR_FLAG_REF_ALLOC);
2317 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.num_values));
2318 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_num_values_0, LIBNDR_FLAG_REF_ALLOC);
2319 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2320 NDR_PULL_ALLOC(ndr, r->out.max_valnamelen);
2322 _mem_save_max_valnamelen_0 = NDR_PULL_GET_MEM_CTX(ndr);
2323 NDR_PULL_SET_MEM_CTX(ndr, r->out.max_valnamelen, LIBNDR_FLAG_REF_ALLOC);
2324 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.max_valnamelen));
2325 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_max_valnamelen_0, LIBNDR_FLAG_REF_ALLOC);
2326 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2327 NDR_PULL_ALLOC(ndr, r->out.max_valbufsize);
2329 _mem_save_max_valbufsize_0 = NDR_PULL_GET_MEM_CTX(ndr);
2330 NDR_PULL_SET_MEM_CTX(ndr, r->out.max_valbufsize, LIBNDR_FLAG_REF_ALLOC);
2331 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.max_valbufsize));
2332 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_max_valbufsize_0, LIBNDR_FLAG_REF_ALLOC);
2333 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2334 NDR_PULL_ALLOC(ndr, r->out.secdescsize);
2336 _mem_save_secdescsize_0 = NDR_PULL_GET_MEM_CTX(ndr);
2337 NDR_PULL_SET_MEM_CTX(ndr, r->out.secdescsize, LIBNDR_FLAG_REF_ALLOC);
2338 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.secdescsize));
2339 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdescsize_0, LIBNDR_FLAG_REF_ALLOC);
2340 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2341 NDR_PULL_ALLOC(ndr, r->out.last_changed_time);
2343 _mem_save_last_changed_time_0 = NDR_PULL_GET_MEM_CTX(ndr);
2344 NDR_PULL_SET_MEM_CTX(ndr, r->out.last_changed_time, LIBNDR_FLAG_REF_ALLOC);
2345 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, r->out.last_changed_time));
2346 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_last_changed_time_0, LIBNDR_FLAG_REF_ALLOC);
2347 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
2349 return NT_STATUS_OK;
2352 _PUBLIC_ void ndr_print_winreg_QueryInfoKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_QueryInfoKey *r)
2354 ndr_print_struct(ndr, name, "winreg_QueryInfoKey");
2356 if (flags & NDR_SET_VALUES) {
2357 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2359 if (flags & NDR_IN) {
2360 ndr_print_struct(ndr, "in", "winreg_QueryInfoKey");
2362 ndr_print_ptr(ndr, "handle", r->in.handle);
2364 ndr_print_policy_handle(ndr, "handle", r->in.handle);
2366 ndr_print_ptr(ndr, "classname", r->in.classname);
2368 ndr_print_winreg_String(ndr, "classname", r->in.classname);
2372 if (flags & NDR_OUT) {
2373 ndr_print_struct(ndr, "out", "winreg_QueryInfoKey");
2375 ndr_print_ptr(ndr, "classname", r->out.classname);
2377 ndr_print_winreg_String(ndr, "classname", r->out.classname);
2379 ndr_print_ptr(ndr, "num_subkeys", r->out.num_subkeys);
2381 ndr_print_uint32(ndr, "num_subkeys", *r->out.num_subkeys);
2383 ndr_print_ptr(ndr, "max_subkeylen", r->out.max_subkeylen);
2385 ndr_print_uint32(ndr, "max_subkeylen", *r->out.max_subkeylen);
2387 ndr_print_ptr(ndr, "max_classlen", r->out.max_classlen);
2389 ndr_print_uint32(ndr, "max_classlen", *r->out.max_classlen);
2391 ndr_print_ptr(ndr, "num_values", r->out.num_values);
2393 ndr_print_uint32(ndr, "num_values", *r->out.num_values);
2395 ndr_print_ptr(ndr, "max_valnamelen", r->out.max_valnamelen);
2397 ndr_print_uint32(ndr, "max_valnamelen", *r->out.max_valnamelen);
2399 ndr_print_ptr(ndr, "max_valbufsize", r->out.max_valbufsize);
2401 ndr_print_uint32(ndr, "max_valbufsize", *r->out.max_valbufsize);
2403 ndr_print_ptr(ndr, "secdescsize", r->out.secdescsize);
2405 ndr_print_uint32(ndr, "secdescsize", *r->out.secdescsize);
2407 ndr_print_ptr(ndr, "last_changed_time", r->out.last_changed_time);
2409 ndr_print_NTTIME(ndr, "last_changed_time", *r->out.last_changed_time);
2411 ndr_print_WERROR(ndr, "result", r->out.result);
2417 NTSTATUS ndr_push_winreg_QueryValue(struct ndr_push *ndr, int flags, const struct winreg_QueryValue *r)
2419 if (flags & NDR_IN) {
2420 if (r->in.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2421 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
2422 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.value_name));
2423 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.type));
2425 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->in.type));
2427 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.data));
2429 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.data_size));
2430 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
2431 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.value_length));
2432 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.data, *r->in.value_length));
2434 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.data_size));
2435 if (r->in.data_size) {
2436 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.data_size));
2438 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.value_length));
2439 if (r->in.value_length) {
2440 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.value_length));
2443 if (flags & NDR_OUT) {
2444 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.type));
2446 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
2448 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.data));
2450 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.data_size));
2451 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
2452 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.value_length));
2453 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, *r->out.value_length));
2455 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.data_size));
2456 if (r->out.data_size) {
2457 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.data_size));
2459 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.value_length));
2460 if (r->out.value_length) {
2461 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.value_length));
2463 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
2465 return NT_STATUS_OK;
2468 NTSTATUS ndr_pull_winreg_QueryValue(struct ndr_pull *ndr, int flags, struct winreg_QueryValue *r)
2472 uint32_t _ptr_data_size;
2473 uint32_t _ptr_value_length;
2474 TALLOC_CTX *_mem_save_handle_0;
2475 TALLOC_CTX *_mem_save_type_0;
2476 TALLOC_CTX *_mem_save_data_0;
2477 TALLOC_CTX *_mem_save_data_size_0;
2478 TALLOC_CTX *_mem_save_value_length_0;
2479 if (flags & NDR_IN) {
2480 ZERO_STRUCT(r->out);
2482 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2483 NDR_PULL_ALLOC(ndr, r->in.handle);
2485 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
2486 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
2487 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
2488 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
2489 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.value_name));
2490 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_type));
2492 NDR_PULL_ALLOC(ndr, r->in.type);
2497 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
2498 NDR_PULL_SET_MEM_CTX(ndr, r->in.type, 0);
2499 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->in.type));
2500 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, 0);
2502 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
2504 NDR_PULL_ALLOC(ndr, r->in.data);
2509 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
2510 NDR_PULL_SET_MEM_CTX(ndr, r->in.data, 0);
2511 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.data));
2512 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.data));
2513 if (ndr_get_array_length(ndr, &r->in.data) > ndr_get_array_size(ndr, &r->in.data)) {
2514 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));
2516 NDR_PULL_ALLOC_N(ndr, r->in.data, ndr_get_array_size(ndr, &r->in.data));
2517 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.data, ndr_get_array_length(ndr, &r->in.data)));
2518 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
2520 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_size));
2521 if (_ptr_data_size) {
2522 NDR_PULL_ALLOC(ndr, r->in.data_size);
2524 r->in.data_size = NULL;
2526 if (r->in.data_size) {
2527 _mem_save_data_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
2528 NDR_PULL_SET_MEM_CTX(ndr, r->in.data_size, 0);
2529 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.data_size));
2530 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_size_0, 0);
2532 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_value_length));
2533 if (_ptr_value_length) {
2534 NDR_PULL_ALLOC(ndr, r->in.value_length);
2536 r->in.value_length = NULL;
2538 if (r->in.value_length) {
2539 _mem_save_value_length_0 = NDR_PULL_GET_MEM_CTX(ndr);
2540 NDR_PULL_SET_MEM_CTX(ndr, r->in.value_length, 0);
2541 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.value_length));
2542 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_length_0, 0);
2545 if (r->in.data_size == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2546 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.data, *r->in.data_size));
2549 if (r->in.value_length == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2550 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->in.data, *r->in.value_length));
2553 if (flags & NDR_OUT) {
2554 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_type));
2556 NDR_PULL_ALLOC(ndr, r->out.type);
2561 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
2562 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, 0);
2563 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
2564 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, 0);
2566 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
2568 NDR_PULL_ALLOC(ndr, r->out.data);
2573 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
2574 NDR_PULL_SET_MEM_CTX(ndr, r->out.data, 0);
2575 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
2576 NDR_CHECK(ndr_pull_array_length(ndr, &r->out.data));
2577 if (ndr_get_array_length(ndr, &r->out.data) > ndr_get_array_size(ndr, &r->out.data)) {
2578 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));
2580 NDR_PULL_ALLOC_N(ndr, r->out.data, ndr_get_array_size(ndr, &r->out.data));
2581 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, ndr_get_array_length(ndr, &r->out.data)));
2582 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
2584 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_size));
2585 if (_ptr_data_size) {
2586 NDR_PULL_ALLOC(ndr, r->out.data_size);
2588 r->out.data_size = NULL;
2590 if (r->out.data_size) {
2591 _mem_save_data_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
2592 NDR_PULL_SET_MEM_CTX(ndr, r->out.data_size, 0);
2593 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.data_size));
2594 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_size_0, 0);
2596 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_value_length));
2597 if (_ptr_value_length) {
2598 NDR_PULL_ALLOC(ndr, r->out.value_length);
2600 r->out.value_length = NULL;
2602 if (r->out.value_length) {
2603 _mem_save_value_length_0 = NDR_PULL_GET_MEM_CTX(ndr);
2604 NDR_PULL_SET_MEM_CTX(ndr, r->out.value_length, 0);
2605 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.value_length));
2606 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_length_0, 0);
2608 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
2610 if (r->out.data_size == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2611 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, *r->out.data_size));
2614 if (r->out.value_length == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2615 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->out.data, *r->out.value_length));
2618 return NT_STATUS_OK;
2621 _PUBLIC_ void ndr_print_winreg_QueryValue(struct ndr_print *ndr, const char *name, int flags, const struct winreg_QueryValue *r)
2623 ndr_print_struct(ndr, name, "winreg_QueryValue");
2625 if (flags & NDR_SET_VALUES) {
2626 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2628 if (flags & NDR_IN) {
2629 ndr_print_struct(ndr, "in", "winreg_QueryValue");
2631 ndr_print_ptr(ndr, "handle", r->in.handle);
2633 ndr_print_policy_handle(ndr, "handle", r->in.handle);
2635 ndr_print_winreg_String(ndr, "value_name", &r->in.value_name);
2636 ndr_print_ptr(ndr, "type", r->in.type);
2639 ndr_print_winreg_Type(ndr, "type", *r->in.type);
2642 ndr_print_ptr(ndr, "data", r->in.data);
2645 if (r->in.value_length == NULL) return;
2646 ndr_print_array_uint8(ndr, "data", r->in.data, *r->in.value_length);
2649 ndr_print_ptr(ndr, "data_size", r->in.data_size);
2651 if (r->in.data_size) {
2652 ndr_print_uint32(ndr, "data_size", *r->in.data_size);
2655 ndr_print_ptr(ndr, "value_length", r->in.value_length);
2657 if (r->in.value_length) {
2658 ndr_print_uint32(ndr, "value_length", *r->in.value_length);
2663 if (flags & NDR_OUT) {
2664 ndr_print_struct(ndr, "out", "winreg_QueryValue");
2666 ndr_print_ptr(ndr, "type", r->out.type);
2669 ndr_print_winreg_Type(ndr, "type", *r->out.type);
2672 ndr_print_ptr(ndr, "data", r->out.data);
2675 if (r->out.value_length == NULL) return;
2676 ndr_print_array_uint8(ndr, "data", r->out.data, *r->out.value_length);
2679 ndr_print_ptr(ndr, "data_size", r->out.data_size);
2681 if (r->out.data_size) {
2682 ndr_print_uint32(ndr, "data_size", *r->out.data_size);
2685 ndr_print_ptr(ndr, "value_length", r->out.value_length);
2687 if (r->out.value_length) {
2688 ndr_print_uint32(ndr, "value_length", *r->out.value_length);
2691 ndr_print_WERROR(ndr, "result", r->out.result);
2697 NTSTATUS ndr_push_winreg_ReplaceKey(struct ndr_push *ndr, int flags, const struct winreg_ReplaceKey *r)
2699 if (flags & NDR_IN) {
2701 if (flags & NDR_OUT) {
2702 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
2704 return NT_STATUS_OK;
2707 NTSTATUS ndr_pull_winreg_ReplaceKey(struct ndr_pull *ndr, int flags, struct winreg_ReplaceKey *r)
2709 if (flags & NDR_IN) {
2711 if (flags & NDR_OUT) {
2712 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
2714 return NT_STATUS_OK;
2717 _PUBLIC_ void ndr_print_winreg_ReplaceKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_ReplaceKey *r)
2719 ndr_print_struct(ndr, name, "winreg_ReplaceKey");
2721 if (flags & NDR_SET_VALUES) {
2722 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2724 if (flags & NDR_IN) {
2725 ndr_print_struct(ndr, "in", "winreg_ReplaceKey");
2729 if (flags & NDR_OUT) {
2730 ndr_print_struct(ndr, "out", "winreg_ReplaceKey");
2732 ndr_print_WERROR(ndr, "result", r->out.result);
2738 NTSTATUS ndr_push_winreg_RestoreKey(struct ndr_push *ndr, int flags, const struct winreg_RestoreKey *r)
2740 if (flags & NDR_IN) {
2741 if (r->in.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2742 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
2743 if (r->in.filename == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2744 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.filename));
2745 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.flags));
2747 if (flags & NDR_OUT) {
2748 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
2750 return NT_STATUS_OK;
2753 NTSTATUS ndr_pull_winreg_RestoreKey(struct ndr_pull *ndr, int flags, struct winreg_RestoreKey *r)
2755 TALLOC_CTX *_mem_save_handle_0;
2756 TALLOC_CTX *_mem_save_filename_0;
2757 if (flags & NDR_IN) {
2758 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2759 NDR_PULL_ALLOC(ndr, r->in.handle);
2761 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
2762 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
2763 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
2764 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
2765 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2766 NDR_PULL_ALLOC(ndr, r->in.filename);
2768 _mem_save_filename_0 = NDR_PULL_GET_MEM_CTX(ndr);
2769 NDR_PULL_SET_MEM_CTX(ndr, r->in.filename, LIBNDR_FLAG_REF_ALLOC);
2770 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.filename));
2771 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_filename_0, LIBNDR_FLAG_REF_ALLOC);
2772 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.flags));
2774 if (flags & NDR_OUT) {
2775 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
2777 return NT_STATUS_OK;
2780 _PUBLIC_ void ndr_print_winreg_RestoreKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_RestoreKey *r)
2782 ndr_print_struct(ndr, name, "winreg_RestoreKey");
2784 if (flags & NDR_SET_VALUES) {
2785 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2787 if (flags & NDR_IN) {
2788 ndr_print_struct(ndr, "in", "winreg_RestoreKey");
2790 ndr_print_ptr(ndr, "handle", r->in.handle);
2792 ndr_print_policy_handle(ndr, "handle", r->in.handle);
2794 ndr_print_ptr(ndr, "filename", r->in.filename);
2796 ndr_print_winreg_String(ndr, "filename", r->in.filename);
2798 ndr_print_uint32(ndr, "flags", r->in.flags);
2801 if (flags & NDR_OUT) {
2802 ndr_print_struct(ndr, "out", "winreg_RestoreKey");
2804 ndr_print_WERROR(ndr, "result", r->out.result);
2810 NTSTATUS ndr_push_winreg_SaveKey(struct ndr_push *ndr, int flags, const struct winreg_SaveKey *r)
2812 if (flags & NDR_IN) {
2813 if (r->in.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2814 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
2815 if (r->in.filename == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2816 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.filename));
2817 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.sec_attrib));
2818 if (r->in.sec_attrib) {
2819 NDR_CHECK(ndr_push_KeySecurityAttribute(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sec_attrib));
2822 if (flags & NDR_OUT) {
2823 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
2825 return NT_STATUS_OK;
2828 NTSTATUS ndr_pull_winreg_SaveKey(struct ndr_pull *ndr, int flags, struct winreg_SaveKey *r)
2830 uint32_t _ptr_sec_attrib;
2831 TALLOC_CTX *_mem_save_handle_0;
2832 TALLOC_CTX *_mem_save_filename_0;
2833 TALLOC_CTX *_mem_save_sec_attrib_0;
2834 if (flags & NDR_IN) {
2835 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2836 NDR_PULL_ALLOC(ndr, r->in.handle);
2838 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
2839 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
2840 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
2841 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
2842 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2843 NDR_PULL_ALLOC(ndr, r->in.filename);
2845 _mem_save_filename_0 = NDR_PULL_GET_MEM_CTX(ndr);
2846 NDR_PULL_SET_MEM_CTX(ndr, r->in.filename, LIBNDR_FLAG_REF_ALLOC);
2847 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.filename));
2848 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_filename_0, LIBNDR_FLAG_REF_ALLOC);
2849 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sec_attrib));
2850 if (_ptr_sec_attrib) {
2851 NDR_PULL_ALLOC(ndr, r->in.sec_attrib);
2853 r->in.sec_attrib = NULL;
2855 if (r->in.sec_attrib) {
2856 _mem_save_sec_attrib_0 = NDR_PULL_GET_MEM_CTX(ndr);
2857 NDR_PULL_SET_MEM_CTX(ndr, r->in.sec_attrib, 0);
2858 NDR_CHECK(ndr_pull_KeySecurityAttribute(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sec_attrib));
2859 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sec_attrib_0, 0);
2862 if (flags & NDR_OUT) {
2863 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
2865 return NT_STATUS_OK;
2868 _PUBLIC_ void ndr_print_winreg_SaveKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_SaveKey *r)
2870 ndr_print_struct(ndr, name, "winreg_SaveKey");
2872 if (flags & NDR_SET_VALUES) {
2873 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2875 if (flags & NDR_IN) {
2876 ndr_print_struct(ndr, "in", "winreg_SaveKey");
2878 ndr_print_ptr(ndr, "handle", r->in.handle);
2880 ndr_print_policy_handle(ndr, "handle", r->in.handle);
2882 ndr_print_ptr(ndr, "filename", r->in.filename);
2884 ndr_print_winreg_String(ndr, "filename", r->in.filename);
2886 ndr_print_ptr(ndr, "sec_attrib", r->in.sec_attrib);
2888 if (r->in.sec_attrib) {
2889 ndr_print_KeySecurityAttribute(ndr, "sec_attrib", r->in.sec_attrib);
2894 if (flags & NDR_OUT) {
2895 ndr_print_struct(ndr, "out", "winreg_SaveKey");
2897 ndr_print_WERROR(ndr, "result", r->out.result);
2903 NTSTATUS ndr_push_winreg_SetKeySecurity(struct ndr_push *ndr, int flags, const struct winreg_SetKeySecurity *r)
2905 if (flags & NDR_IN) {
2906 if (r->in.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2907 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
2908 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
2909 if (r->in.sd == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2910 NDR_CHECK(ndr_push_KeySecurityData(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sd));
2912 if (flags & NDR_OUT) {
2913 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
2915 return NT_STATUS_OK;
2918 NTSTATUS ndr_pull_winreg_SetKeySecurity(struct ndr_pull *ndr, int flags, struct winreg_SetKeySecurity *r)
2920 TALLOC_CTX *_mem_save_handle_0;
2921 TALLOC_CTX *_mem_save_sd_0;
2922 if (flags & NDR_IN) {
2923 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2924 NDR_PULL_ALLOC(ndr, r->in.handle);
2926 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
2927 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
2928 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
2929 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
2930 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
2931 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2932 NDR_PULL_ALLOC(ndr, r->in.sd);
2934 _mem_save_sd_0 = NDR_PULL_GET_MEM_CTX(ndr);
2935 NDR_PULL_SET_MEM_CTX(ndr, r->in.sd, LIBNDR_FLAG_REF_ALLOC);
2936 NDR_CHECK(ndr_pull_KeySecurityData(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sd));
2937 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sd_0, LIBNDR_FLAG_REF_ALLOC);
2939 if (flags & NDR_OUT) {
2940 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
2942 return NT_STATUS_OK;
2945 _PUBLIC_ void ndr_print_winreg_SetKeySecurity(struct ndr_print *ndr, const char *name, int flags, const struct winreg_SetKeySecurity *r)
2947 ndr_print_struct(ndr, name, "winreg_SetKeySecurity");
2949 if (flags & NDR_SET_VALUES) {
2950 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2952 if (flags & NDR_IN) {
2953 ndr_print_struct(ndr, "in", "winreg_SetKeySecurity");
2955 ndr_print_ptr(ndr, "handle", r->in.handle);
2957 ndr_print_policy_handle(ndr, "handle", r->in.handle);
2959 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
2960 ndr_print_ptr(ndr, "sd", r->in.sd);
2962 ndr_print_KeySecurityData(ndr, "sd", r->in.sd);
2966 if (flags & NDR_OUT) {
2967 ndr_print_struct(ndr, "out", "winreg_SetKeySecurity");
2969 ndr_print_WERROR(ndr, "result", r->out.result);
2975 NTSTATUS ndr_push_winreg_SetValue(struct ndr_push *ndr, int flags, const struct winreg_SetValue *r)
2977 if (flags & NDR_IN) {
2978 if (r->in.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2979 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
2980 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.name));
2981 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
2982 if (r->in.data == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2983 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.size));
2984 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.data, r->in.size));
2985 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.size));
2987 if (flags & NDR_OUT) {
2988 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
2990 return NT_STATUS_OK;
2993 NTSTATUS ndr_pull_winreg_SetValue(struct ndr_pull *ndr, int flags, struct winreg_SetValue *r)
2995 TALLOC_CTX *_mem_save_handle_0;
2996 if (flags & NDR_IN) {
2997 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2998 NDR_PULL_ALLOC(ndr, r->in.handle);
3000 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
3001 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
3002 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
3003 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
3004 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.name));
3005 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
3006 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.data));
3007 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3008 NDR_PULL_ALLOC_N(ndr, r->in.data, ndr_get_array_size(ndr, &r->in.data));
3010 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.data, ndr_get_array_size(ndr, &r->in.data)));
3011 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.size));
3013 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.data, r->in.size));
3016 if (flags & NDR_OUT) {
3017 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3019 return NT_STATUS_OK;
3022 _PUBLIC_ void ndr_print_winreg_SetValue(struct ndr_print *ndr, const char *name, int flags, const struct winreg_SetValue *r)
3024 ndr_print_struct(ndr, name, "winreg_SetValue");
3026 if (flags & NDR_SET_VALUES) {
3027 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3029 if (flags & NDR_IN) {
3030 ndr_print_struct(ndr, "in", "winreg_SetValue");
3032 ndr_print_ptr(ndr, "handle", r->in.handle);
3034 ndr_print_policy_handle(ndr, "handle", r->in.handle);
3036 ndr_print_winreg_String(ndr, "name", &r->in.name);
3037 ndr_print_winreg_Type(ndr, "type", r->in.type);
3038 ndr_print_ptr(ndr, "data", r->in.data);
3040 ndr_print_array_uint8(ndr, "data", r->in.data, r->in.size);
3042 ndr_print_uint32(ndr, "size", r->in.size);
3045 if (flags & NDR_OUT) {
3046 ndr_print_struct(ndr, "out", "winreg_SetValue");
3048 ndr_print_WERROR(ndr, "result", r->out.result);
3054 NTSTATUS ndr_push_winreg_UnLoadKey(struct ndr_push *ndr, int flags, const struct winreg_UnLoadKey *r)
3056 if (flags & NDR_IN) {
3058 if (flags & NDR_OUT) {
3059 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3061 return NT_STATUS_OK;
3064 NTSTATUS ndr_pull_winreg_UnLoadKey(struct ndr_pull *ndr, int flags, struct winreg_UnLoadKey *r)
3066 if (flags & NDR_IN) {
3068 if (flags & NDR_OUT) {
3069 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3071 return NT_STATUS_OK;
3074 _PUBLIC_ void ndr_print_winreg_UnLoadKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_UnLoadKey *r)
3076 ndr_print_struct(ndr, name, "winreg_UnLoadKey");
3078 if (flags & NDR_SET_VALUES) {
3079 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3081 if (flags & NDR_IN) {
3082 ndr_print_struct(ndr, "in", "winreg_UnLoadKey");
3086 if (flags & NDR_OUT) {
3087 ndr_print_struct(ndr, "out", "winreg_UnLoadKey");
3089 ndr_print_WERROR(ndr, "result", r->out.result);
3095 NTSTATUS ndr_push_winreg_InitiateSystemShutdown(struct ndr_push *ndr, int flags, const struct winreg_InitiateSystemShutdown *r)
3097 if (flags & NDR_IN) {
3098 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.hostname));
3099 if (r->in.hostname) {
3100 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.hostname));
3102 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.message));
3103 if (r->in.message) {
3104 NDR_CHECK(ndr_push_initshutdown_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.message));
3106 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.timeout));
3107 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->in.force_apps));
3108 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->in.reboot));
3110 if (flags & NDR_OUT) {
3111 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3113 return NT_STATUS_OK;
3116 NTSTATUS ndr_pull_winreg_InitiateSystemShutdown(struct ndr_pull *ndr, int flags, struct winreg_InitiateSystemShutdown *r)
3118 uint32_t _ptr_hostname;
3119 uint32_t _ptr_message;
3120 TALLOC_CTX *_mem_save_hostname_0;
3121 TALLOC_CTX *_mem_save_message_0;
3122 if (flags & NDR_IN) {
3123 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hostname));
3124 if (_ptr_hostname) {
3125 NDR_PULL_ALLOC(ndr, r->in.hostname);
3127 r->in.hostname = NULL;
3129 if (r->in.hostname) {
3130 _mem_save_hostname_0 = NDR_PULL_GET_MEM_CTX(ndr);
3131 NDR_PULL_SET_MEM_CTX(ndr, r->in.hostname, 0);
3132 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.hostname));
3133 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hostname_0, 0);
3135 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_message));
3137 NDR_PULL_ALLOC(ndr, r->in.message);
3139 r->in.message = NULL;
3141 if (r->in.message) {
3142 _mem_save_message_0 = NDR_PULL_GET_MEM_CTX(ndr);
3143 NDR_PULL_SET_MEM_CTX(ndr, r->in.message, 0);
3144 NDR_CHECK(ndr_pull_initshutdown_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.message));
3145 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_message_0, 0);
3147 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.timeout));
3148 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->in.force_apps));
3149 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->in.reboot));
3151 if (flags & NDR_OUT) {
3152 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3154 return NT_STATUS_OK;
3157 _PUBLIC_ void ndr_print_winreg_InitiateSystemShutdown(struct ndr_print *ndr, const char *name, int flags, const struct winreg_InitiateSystemShutdown *r)
3159 ndr_print_struct(ndr, name, "winreg_InitiateSystemShutdown");
3161 if (flags & NDR_SET_VALUES) {
3162 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3164 if (flags & NDR_IN) {
3165 ndr_print_struct(ndr, "in", "winreg_InitiateSystemShutdown");
3167 ndr_print_ptr(ndr, "hostname", r->in.hostname);
3169 if (r->in.hostname) {
3170 ndr_print_uint16(ndr, "hostname", *r->in.hostname);
3173 ndr_print_ptr(ndr, "message", r->in.message);
3175 if (r->in.message) {
3176 ndr_print_initshutdown_String(ndr, "message", r->in.message);
3179 ndr_print_uint32(ndr, "timeout", r->in.timeout);
3180 ndr_print_uint8(ndr, "force_apps", r->in.force_apps);
3181 ndr_print_uint8(ndr, "reboot", r->in.reboot);
3184 if (flags & NDR_OUT) {
3185 ndr_print_struct(ndr, "out", "winreg_InitiateSystemShutdown");
3187 ndr_print_WERROR(ndr, "result", r->out.result);
3193 NTSTATUS ndr_push_winreg_AbortSystemShutdown(struct ndr_push *ndr, int flags, const struct winreg_AbortSystemShutdown *r)
3195 if (flags & NDR_IN) {
3196 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
3198 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.server));
3201 if (flags & NDR_OUT) {
3202 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3204 return NT_STATUS_OK;
3207 NTSTATUS ndr_pull_winreg_AbortSystemShutdown(struct ndr_pull *ndr, int flags, struct winreg_AbortSystemShutdown *r)
3209 uint32_t _ptr_server;
3210 TALLOC_CTX *_mem_save_server_0;
3211 if (flags & NDR_IN) {
3212 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
3214 NDR_PULL_ALLOC(ndr, r->in.server);
3216 r->in.server = NULL;
3219 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
3220 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
3221 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.server));
3222 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
3225 if (flags & NDR_OUT) {
3226 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3228 return NT_STATUS_OK;
3231 _PUBLIC_ void ndr_print_winreg_AbortSystemShutdown(struct ndr_print *ndr, const char *name, int flags, const struct winreg_AbortSystemShutdown *r)
3233 ndr_print_struct(ndr, name, "winreg_AbortSystemShutdown");
3235 if (flags & NDR_SET_VALUES) {
3236 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3238 if (flags & NDR_IN) {
3239 ndr_print_struct(ndr, "in", "winreg_AbortSystemShutdown");
3241 ndr_print_ptr(ndr, "server", r->in.server);
3244 ndr_print_uint16(ndr, "server", *r->in.server);
3249 if (flags & NDR_OUT) {
3250 ndr_print_struct(ndr, "out", "winreg_AbortSystemShutdown");
3252 ndr_print_WERROR(ndr, "result", r->out.result);
3258 NTSTATUS ndr_push_winreg_GetVersion(struct ndr_push *ndr, int flags, const struct winreg_GetVersion *r)
3260 if (flags & NDR_IN) {
3261 if (r->in.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
3262 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
3264 if (flags & NDR_OUT) {
3265 if (r->out.version == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
3266 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.version));
3267 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3269 return NT_STATUS_OK;
3272 NTSTATUS ndr_pull_winreg_GetVersion(struct ndr_pull *ndr, int flags, struct winreg_GetVersion *r)
3274 TALLOC_CTX *_mem_save_handle_0;
3275 TALLOC_CTX *_mem_save_version_0;
3276 if (flags & NDR_IN) {
3277 ZERO_STRUCT(r->out);
3279 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3280 NDR_PULL_ALLOC(ndr, r->in.handle);
3282 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
3283 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
3284 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
3285 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
3286 NDR_PULL_ALLOC(ndr, r->out.version);
3287 ZERO_STRUCTP(r->out.version);
3289 if (flags & NDR_OUT) {
3290 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3291 NDR_PULL_ALLOC(ndr, r->out.version);
3293 _mem_save_version_0 = NDR_PULL_GET_MEM_CTX(ndr);
3294 NDR_PULL_SET_MEM_CTX(ndr, r->out.version, LIBNDR_FLAG_REF_ALLOC);
3295 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.version));
3296 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_version_0, LIBNDR_FLAG_REF_ALLOC);
3297 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3299 return NT_STATUS_OK;
3302 _PUBLIC_ void ndr_print_winreg_GetVersion(struct ndr_print *ndr, const char *name, int flags, const struct winreg_GetVersion *r)
3304 ndr_print_struct(ndr, name, "winreg_GetVersion");
3306 if (flags & NDR_SET_VALUES) {
3307 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3309 if (flags & NDR_IN) {
3310 ndr_print_struct(ndr, "in", "winreg_GetVersion");
3312 ndr_print_ptr(ndr, "handle", r->in.handle);
3314 ndr_print_policy_handle(ndr, "handle", r->in.handle);
3318 if (flags & NDR_OUT) {
3319 ndr_print_struct(ndr, "out", "winreg_GetVersion");
3321 ndr_print_ptr(ndr, "version", r->out.version);
3323 ndr_print_uint32(ndr, "version", *r->out.version);
3325 ndr_print_WERROR(ndr, "result", r->out.result);
3331 NTSTATUS ndr_push_winreg_OpenHKCC(struct ndr_push *ndr, int flags, const struct winreg_OpenHKCC *r)
3333 if (flags & NDR_IN) {
3334 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.system_name));
3335 if (r->in.system_name) {
3336 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.system_name));
3338 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
3340 if (flags & NDR_OUT) {
3341 if (r->out.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
3342 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.handle));
3343 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3345 return NT_STATUS_OK;
3348 NTSTATUS ndr_pull_winreg_OpenHKCC(struct ndr_pull *ndr, int flags, struct winreg_OpenHKCC *r)
3350 uint32_t _ptr_system_name;
3351 TALLOC_CTX *_mem_save_system_name_0;
3352 TALLOC_CTX *_mem_save_handle_0;
3353 if (flags & NDR_IN) {
3354 ZERO_STRUCT(r->out);
3356 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_system_name));
3357 if (_ptr_system_name) {
3358 NDR_PULL_ALLOC(ndr, r->in.system_name);
3360 r->in.system_name = NULL;
3362 if (r->in.system_name) {
3363 _mem_save_system_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3364 NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0);
3365 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.system_name));
3366 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0);
3368 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
3369 NDR_PULL_ALLOC(ndr, r->out.handle);
3370 ZERO_STRUCTP(r->out.handle);
3372 if (flags & NDR_OUT) {
3373 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3374 NDR_PULL_ALLOC(ndr, r->out.handle);
3376 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
3377 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
3378 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.handle));
3379 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
3380 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3382 return NT_STATUS_OK;
3385 _PUBLIC_ void ndr_print_winreg_OpenHKCC(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenHKCC *r)
3387 ndr_print_struct(ndr, name, "winreg_OpenHKCC");
3389 if (flags & NDR_SET_VALUES) {
3390 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3392 if (flags & NDR_IN) {
3393 ndr_print_struct(ndr, "in", "winreg_OpenHKCC");
3395 ndr_print_ptr(ndr, "system_name", r->in.system_name);
3397 if (r->in.system_name) {
3398 ndr_print_uint16(ndr, "system_name", *r->in.system_name);
3401 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
3404 if (flags & NDR_OUT) {
3405 ndr_print_struct(ndr, "out", "winreg_OpenHKCC");
3407 ndr_print_ptr(ndr, "handle", r->out.handle);
3409 ndr_print_policy_handle(ndr, "handle", r->out.handle);
3411 ndr_print_WERROR(ndr, "result", r->out.result);
3417 NTSTATUS ndr_push_winreg_OpenHKDD(struct ndr_push *ndr, int flags, const struct winreg_OpenHKDD *r)
3419 if (flags & NDR_IN) {
3420 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.system_name));
3421 if (r->in.system_name) {
3422 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.system_name));
3424 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
3426 if (flags & NDR_OUT) {
3427 if (r->out.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
3428 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.handle));
3429 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3431 return NT_STATUS_OK;
3434 NTSTATUS ndr_pull_winreg_OpenHKDD(struct ndr_pull *ndr, int flags, struct winreg_OpenHKDD *r)
3436 uint32_t _ptr_system_name;
3437 TALLOC_CTX *_mem_save_system_name_0;
3438 TALLOC_CTX *_mem_save_handle_0;
3439 if (flags & NDR_IN) {
3440 ZERO_STRUCT(r->out);
3442 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_system_name));
3443 if (_ptr_system_name) {
3444 NDR_PULL_ALLOC(ndr, r->in.system_name);
3446 r->in.system_name = NULL;
3448 if (r->in.system_name) {
3449 _mem_save_system_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3450 NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0);
3451 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.system_name));
3452 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0);
3454 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
3455 NDR_PULL_ALLOC(ndr, r->out.handle);
3456 ZERO_STRUCTP(r->out.handle);
3458 if (flags & NDR_OUT) {
3459 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3460 NDR_PULL_ALLOC(ndr, r->out.handle);
3462 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
3463 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
3464 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.handle));
3465 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
3466 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3468 return NT_STATUS_OK;
3471 _PUBLIC_ void ndr_print_winreg_OpenHKDD(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenHKDD *r)
3473 ndr_print_struct(ndr, name, "winreg_OpenHKDD");
3475 if (flags & NDR_SET_VALUES) {
3476 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3478 if (flags & NDR_IN) {
3479 ndr_print_struct(ndr, "in", "winreg_OpenHKDD");
3481 ndr_print_ptr(ndr, "system_name", r->in.system_name);
3483 if (r->in.system_name) {
3484 ndr_print_uint16(ndr, "system_name", *r->in.system_name);
3487 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
3490 if (flags & NDR_OUT) {
3491 ndr_print_struct(ndr, "out", "winreg_OpenHKDD");
3493 ndr_print_ptr(ndr, "handle", r->out.handle);
3495 ndr_print_policy_handle(ndr, "handle", r->out.handle);
3497 ndr_print_WERROR(ndr, "result", r->out.result);
3503 NTSTATUS ndr_push_winreg_QueryMultipleValues(struct ndr_push *ndr, int flags, const struct winreg_QueryMultipleValues *r)
3505 uint32_t cntr_values_1;
3506 if (flags & NDR_IN) {
3507 if (r->in.key_handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
3508 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.key_handle));
3509 if (r->in.values == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
3510 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.num_values));
3511 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3512 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.num_values));
3513 for (cntr_values_1 = 0; cntr_values_1 < r->in.num_values; cntr_values_1++) {
3514 NDR_CHECK(ndr_push_QueryMultipleValue(ndr, NDR_SCALARS, &r->in.values[cntr_values_1]));
3516 for (cntr_values_1 = 0; cntr_values_1 < r->in.num_values; cntr_values_1++) {
3517 NDR_CHECK(ndr_push_QueryMultipleValue(ndr, NDR_BUFFERS, &r->in.values[cntr_values_1]));
3519 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.num_values));
3520 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
3522 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.buffer_size));
3523 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3524 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.buffer_size));
3525 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, *r->in.buffer_size));
3527 if (r->in.buffer_size == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
3528 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.buffer_size));
3530 if (flags & NDR_OUT) {
3531 if (r->out.values == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
3532 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.num_values));
3533 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3534 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.num_values));
3535 for (cntr_values_1 = 0; cntr_values_1 < r->in.num_values; cntr_values_1++) {
3536 NDR_CHECK(ndr_push_QueryMultipleValue(ndr, NDR_SCALARS, &r->out.values[cntr_values_1]));
3538 for (cntr_values_1 = 0; cntr_values_1 < r->in.num_values; cntr_values_1++) {
3539 NDR_CHECK(ndr_push_QueryMultipleValue(ndr, NDR_BUFFERS, &r->out.values[cntr_values_1]));
3541 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.buffer));
3542 if (r->out.buffer) {
3543 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.buffer_size));
3544 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3545 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.buffer_size));
3546 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, *r->out.buffer_size));
3548 if (r->out.buffer_size == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
3549 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.buffer_size));
3550 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3552 return NT_STATUS_OK;
3555 NTSTATUS ndr_pull_winreg_QueryMultipleValues(struct ndr_pull *ndr, int flags, struct winreg_QueryMultipleValues *r)
3557 uint32_t cntr_values_1;
3558 uint32_t _ptr_buffer;
3559 TALLOC_CTX *_mem_save_key_handle_0;
3560 TALLOC_CTX *_mem_save_values_1;
3561 TALLOC_CTX *_mem_save_buffer_0;
3562 TALLOC_CTX *_mem_save_buffer_size_0;
3563 if (flags & NDR_IN) {
3564 ZERO_STRUCT(r->out);
3566 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3567 NDR_PULL_ALLOC(ndr, r->in.key_handle);
3569 _mem_save_key_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
3570 NDR_PULL_SET_MEM_CTX(ndr, r->in.key_handle, LIBNDR_FLAG_REF_ALLOC);
3571 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.key_handle));
3572 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_key_handle_0, LIBNDR_FLAG_REF_ALLOC);
3573 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.values));
3574 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.values));
3575 if (ndr_get_array_length(ndr, &r->in.values) > ndr_get_array_size(ndr, &r->in.values)) {
3576 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));
3578 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3579 NDR_PULL_ALLOC_N(ndr, r->in.values, ndr_get_array_size(ndr, &r->in.values));
3581 memcpy(r->out.values,r->in.values,ndr_get_array_size(ndr, &r->in.values) * sizeof(*r->in.values));
3582 _mem_save_values_1 = NDR_PULL_GET_MEM_CTX(ndr);
3583 NDR_PULL_SET_MEM_CTX(ndr, r->in.values, 0);
3584 for (cntr_values_1 = 0; cntr_values_1 < r->in.num_values; cntr_values_1++) {
3585 NDR_CHECK(ndr_pull_QueryMultipleValue(ndr, NDR_SCALARS, &r->in.values[cntr_values_1]));
3587 for (cntr_values_1 = 0; cntr_values_1 < r->in.num_values; cntr_values_1++) {
3588 NDR_CHECK(ndr_pull_QueryMultipleValue(ndr, NDR_BUFFERS, &r->in.values[cntr_values_1]));
3590 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_values_1, 0);
3591 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.num_values));
3592 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
3594 NDR_PULL_ALLOC(ndr, r->in.buffer);
3596 r->in.buffer = NULL;
3599 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
3600 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
3601 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
3602 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.buffer));
3603 if (ndr_get_array_length(ndr, &r->in.buffer) > ndr_get_array_size(ndr, &r->in.buffer)) {
3604 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));
3606 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
3607 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_length(ndr, &r->in.buffer)));
3608 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
3610 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3611 NDR_PULL_ALLOC(ndr, r->in.buffer_size);
3613 _mem_save_buffer_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
3614 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer_size, LIBNDR_FLAG_REF_ALLOC);
3615 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.buffer_size));
3616 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_size_0, LIBNDR_FLAG_REF_ALLOC);
3617 NDR_PULL_ALLOC_N(ndr, r->out.values, r->in.num_values);
3618 memcpy(r->out.values, r->in.values, r->in.num_values * sizeof(*r->in.values));
3619 NDR_PULL_ALLOC(ndr, r->out.buffer_size);
3620 *r->out.buffer_size = *r->in.buffer_size;
3622 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.values, r->in.num_values));
3625 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->in.values, r->in.num_values));
3628 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, *r->in.buffer_size));
3631 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->in.buffer, *r->in.buffer_size));
3634 if (flags & NDR_OUT) {
3635 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.values));
3636 NDR_CHECK(ndr_pull_array_length(ndr, &r->out.values));
3637 if (ndr_get_array_length(ndr, &r->out.values) > ndr_get_array_size(ndr, &r->out.values)) {
3638 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));
3640 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3641 NDR_PULL_ALLOC_N(ndr, r->out.values, ndr_get_array_size(ndr, &r->out.values));
3643 memcpy(r->out.values,r->in.values,ndr_get_array_size(ndr, &r->out.values) * sizeof(*r->in.values));
3644 _mem_save_values_1 = NDR_PULL_GET_MEM_CTX(ndr);
3645 NDR_PULL_SET_MEM_CTX(ndr, r->out.values, 0);
3646 for (cntr_values_1 = 0; cntr_values_1 < r->in.num_values; cntr_values_1++) {
3647 NDR_CHECK(ndr_pull_QueryMultipleValue(ndr, NDR_SCALARS, &r->out.values[cntr_values_1]));
3649 for (cntr_values_1 = 0; cntr_values_1 < r->in.num_values; cntr_values_1++) {
3650 NDR_CHECK(ndr_pull_QueryMultipleValue(ndr, NDR_BUFFERS, &r->out.values[cntr_values_1]));
3652 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_values_1, 0);
3653 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
3655 NDR_PULL_ALLOC(ndr, r->out.buffer);
3657 r->out.buffer = NULL;
3659 if (r->out.buffer) {
3660 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
3661 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, 0);
3662 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
3663 NDR_CHECK(ndr_pull_array_length(ndr, &r->out.buffer));
3664 if (ndr_get_array_length(ndr, &r->out.buffer) > ndr_get_array_size(ndr, &r->out.buffer)) {
3665 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));
3667 NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
3668 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_length(ndr, &r->out.buffer)));
3669 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
3671 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3672 NDR_PULL_ALLOC(ndr, r->out.buffer_size);
3674 _mem_save_buffer_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
3675 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer_size, LIBNDR_FLAG_REF_ALLOC);
3676 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.buffer_size));
3677 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_size_0, LIBNDR_FLAG_REF_ALLOC);
3678 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3679 if (r->out.values) {
3680 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.values, r->in.num_values));
3682 if (r->out.values) {
3683 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->out.values, r->in.num_values));
3685 if (r->out.buffer) {
3686 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, *r->out.buffer_size));
3688 if (r->out.buffer) {
3689 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->out.buffer, *r->out.buffer_size));
3692 return NT_STATUS_OK;
3695 _PUBLIC_ void ndr_print_winreg_QueryMultipleValues(struct ndr_print *ndr, const char *name, int flags, const struct winreg_QueryMultipleValues *r)
3697 uint32_t cntr_values_1;
3698 ndr_print_struct(ndr, name, "winreg_QueryMultipleValues");
3700 if (flags & NDR_SET_VALUES) {
3701 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3703 if (flags & NDR_IN) {
3704 ndr_print_struct(ndr, "in", "winreg_QueryMultipleValues");
3706 ndr_print_ptr(ndr, "key_handle", r->in.key_handle);
3708 ndr_print_policy_handle(ndr, "key_handle", r->in.key_handle);
3710 ndr_print_ptr(ndr, "values", r->in.values);
3712 ndr->print(ndr, "%s: ARRAY(%d)", "values", r->in.num_values);
3714 for (cntr_values_1=0;cntr_values_1<r->in.num_values;cntr_values_1++) {
3716 asprintf(&idx_1, "[%d]", cntr_values_1);
3718 ndr_print_QueryMultipleValue(ndr, "values", &r->in.values[cntr_values_1]);
3724 ndr_print_uint32(ndr, "num_values", r->in.num_values);
3725 ndr_print_ptr(ndr, "buffer", r->in.buffer);
3728 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, *r->in.buffer_size);
3731 ndr_print_ptr(ndr, "buffer_size", r->in.buffer_size);
3733 ndr_print_uint32(ndr, "buffer_size", *r->in.buffer_size);
3737 if (flags & NDR_OUT) {
3738 ndr_print_struct(ndr, "out", "winreg_QueryMultipleValues");
3740 ndr_print_ptr(ndr, "values", r->out.values);
3742 ndr->print(ndr, "%s: ARRAY(%d)", "values", r->in.num_values);
3744 for (cntr_values_1=0;cntr_values_1<r->in.num_values;cntr_values_1++) {
3746 asprintf(&idx_1, "[%d]", cntr_values_1);
3748 ndr_print_QueryMultipleValue(ndr, "values", &r->out.values[cntr_values_1]);
3754 ndr_print_ptr(ndr, "buffer", r->out.buffer);
3756 if (r->out.buffer) {
3757 ndr_print_array_uint8(ndr, "buffer", r->out.buffer, *r->out.buffer_size);
3760 ndr_print_ptr(ndr, "buffer_size", r->out.buffer_size);
3762 ndr_print_uint32(ndr, "buffer_size", *r->out.buffer_size);
3764 ndr_print_WERROR(ndr, "result", r->out.result);
3770 NTSTATUS ndr_push_winreg_InitiateSystemShutdownEx(struct ndr_push *ndr, int flags, const struct winreg_InitiateSystemShutdownEx *r)
3772 if (flags & NDR_IN) {
3773 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.hostname));
3774 if (r->in.hostname) {
3775 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.hostname));
3777 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.message));
3778 if (r->in.message) {
3779 NDR_CHECK(ndr_push_initshutdown_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.message));
3781 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.timeout));
3782 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->in.force_apps));
3783 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->in.reboot));
3784 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.reason));
3786 if (flags & NDR_OUT) {
3787 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3789 return NT_STATUS_OK;
3792 NTSTATUS ndr_pull_winreg_InitiateSystemShutdownEx(struct ndr_pull *ndr, int flags, struct winreg_InitiateSystemShutdownEx *r)
3794 uint32_t _ptr_hostname;
3795 uint32_t _ptr_message;
3796 TALLOC_CTX *_mem_save_hostname_0;
3797 TALLOC_CTX *_mem_save_message_0;
3798 if (flags & NDR_IN) {
3799 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hostname));
3800 if (_ptr_hostname) {
3801 NDR_PULL_ALLOC(ndr, r->in.hostname);
3803 r->in.hostname = NULL;
3805 if (r->in.hostname) {
3806 _mem_save_hostname_0 = NDR_PULL_GET_MEM_CTX(ndr);
3807 NDR_PULL_SET_MEM_CTX(ndr, r->in.hostname, 0);
3808 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.hostname));
3809 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hostname_0, 0);
3811 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_message));
3813 NDR_PULL_ALLOC(ndr, r->in.message);
3815 r->in.message = NULL;
3817 if (r->in.message) {
3818 _mem_save_message_0 = NDR_PULL_GET_MEM_CTX(ndr);
3819 NDR_PULL_SET_MEM_CTX(ndr, r->in.message, 0);
3820 NDR_CHECK(ndr_pull_initshutdown_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.message));
3821 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_message_0, 0);
3823 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.timeout));
3824 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->in.force_apps));
3825 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->in.reboot));
3826 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.reason));
3828 if (flags & NDR_OUT) {
3829 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3831 return NT_STATUS_OK;
3834 _PUBLIC_ void ndr_print_winreg_InitiateSystemShutdownEx(struct ndr_print *ndr, const char *name, int flags, const struct winreg_InitiateSystemShutdownEx *r)
3836 ndr_print_struct(ndr, name, "winreg_InitiateSystemShutdownEx");
3838 if (flags & NDR_SET_VALUES) {
3839 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3841 if (flags & NDR_IN) {
3842 ndr_print_struct(ndr, "in", "winreg_InitiateSystemShutdownEx");
3844 ndr_print_ptr(ndr, "hostname", r->in.hostname);
3846 if (r->in.hostname) {
3847 ndr_print_uint16(ndr, "hostname", *r->in.hostname);
3850 ndr_print_ptr(ndr, "message", r->in.message);
3852 if (r->in.message) {
3853 ndr_print_initshutdown_String(ndr, "message", r->in.message);
3856 ndr_print_uint32(ndr, "timeout", r->in.timeout);
3857 ndr_print_uint8(ndr, "force_apps", r->in.force_apps);
3858 ndr_print_uint8(ndr, "reboot", r->in.reboot);
3859 ndr_print_uint32(ndr, "reason", r->in.reason);
3862 if (flags & NDR_OUT) {
3863 ndr_print_struct(ndr, "out", "winreg_InitiateSystemShutdownEx");
3865 ndr_print_WERROR(ndr, "result", r->out.result);
3871 NTSTATUS ndr_push_winreg_SaveKeyEx(struct ndr_push *ndr, int flags, const struct winreg_SaveKeyEx *r)
3873 if (flags & NDR_IN) {
3875 if (flags & NDR_OUT) {
3876 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3878 return NT_STATUS_OK;
3881 NTSTATUS ndr_pull_winreg_SaveKeyEx(struct ndr_pull *ndr, int flags, struct winreg_SaveKeyEx *r)
3883 if (flags & NDR_IN) {
3885 if (flags & NDR_OUT) {
3886 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3888 return NT_STATUS_OK;
3891 _PUBLIC_ void ndr_print_winreg_SaveKeyEx(struct ndr_print *ndr, const char *name, int flags, const struct winreg_SaveKeyEx *r)
3893 ndr_print_struct(ndr, name, "winreg_SaveKeyEx");
3895 if (flags & NDR_SET_VALUES) {
3896 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3898 if (flags & NDR_IN) {
3899 ndr_print_struct(ndr, "in", "winreg_SaveKeyEx");
3903 if (flags & NDR_OUT) {
3904 ndr_print_struct(ndr, "out", "winreg_SaveKeyEx");
3906 ndr_print_WERROR(ndr, "result", r->out.result);
3912 NTSTATUS ndr_push_winreg_OpenHKPT(struct ndr_push *ndr, int flags, const struct winreg_OpenHKPT *r)
3914 if (flags & NDR_IN) {
3915 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.system_name));
3916 if (r->in.system_name) {
3917 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.system_name));
3919 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
3921 if (flags & NDR_OUT) {
3922 if (r->out.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
3923 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.handle));
3924 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3926 return NT_STATUS_OK;
3929 NTSTATUS ndr_pull_winreg_OpenHKPT(struct ndr_pull *ndr, int flags, struct winreg_OpenHKPT *r)
3931 uint32_t _ptr_system_name;
3932 TALLOC_CTX *_mem_save_system_name_0;
3933 TALLOC_CTX *_mem_save_handle_0;
3934 if (flags & NDR_IN) {
3935 ZERO_STRUCT(r->out);
3937 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_system_name));
3938 if (_ptr_system_name) {
3939 NDR_PULL_ALLOC(ndr, r->in.system_name);
3941 r->in.system_name = NULL;
3943 if (r->in.system_name) {
3944 _mem_save_system_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3945 NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0);
3946 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.system_name));
3947 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0);
3949 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
3950 NDR_PULL_ALLOC(ndr, r->out.handle);
3951 ZERO_STRUCTP(r->out.handle);
3953 if (flags & NDR_OUT) {
3954 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3955 NDR_PULL_ALLOC(ndr, r->out.handle);
3957 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
3958 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
3959 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.handle));
3960 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
3961 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3963 return NT_STATUS_OK;
3966 _PUBLIC_ void ndr_print_winreg_OpenHKPT(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenHKPT *r)
3968 ndr_print_struct(ndr, name, "winreg_OpenHKPT");
3970 if (flags & NDR_SET_VALUES) {
3971 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3973 if (flags & NDR_IN) {
3974 ndr_print_struct(ndr, "in", "winreg_OpenHKPT");
3976 ndr_print_ptr(ndr, "system_name", r->in.system_name);
3978 if (r->in.system_name) {
3979 ndr_print_uint16(ndr, "system_name", *r->in.system_name);
3982 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
3985 if (flags & NDR_OUT) {
3986 ndr_print_struct(ndr, "out", "winreg_OpenHKPT");
3988 ndr_print_ptr(ndr, "handle", r->out.handle);
3990 ndr_print_policy_handle(ndr, "handle", r->out.handle);
3992 ndr_print_WERROR(ndr, "result", r->out.result);
3998 NTSTATUS ndr_push_winreg_OpenHKPN(struct ndr_push *ndr, int flags, const struct winreg_OpenHKPN *r)
4000 if (flags & NDR_IN) {
4001 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.system_name));
4002 if (r->in.system_name) {
4003 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.system_name));
4005 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
4007 if (flags & NDR_OUT) {
4008 if (r->out.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
4009 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.handle));
4010 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
4012 return NT_STATUS_OK;
4015 NTSTATUS ndr_pull_winreg_OpenHKPN(struct ndr_pull *ndr, int flags, struct winreg_OpenHKPN *r)
4017 uint32_t _ptr_system_name;
4018 TALLOC_CTX *_mem_save_system_name_0;
4019 TALLOC_CTX *_mem_save_handle_0;
4020 if (flags & NDR_IN) {
4021 ZERO_STRUCT(r->out);
4023 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_system_name));
4024 if (_ptr_system_name) {
4025 NDR_PULL_ALLOC(ndr, r->in.system_name);
4027 r->in.system_name = NULL;
4029 if (r->in.system_name) {
4030 _mem_save_system_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4031 NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0);
4032 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.system_name));
4033 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0);
4035 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
4036 NDR_PULL_ALLOC(ndr, r->out.handle);
4037 ZERO_STRUCTP(r->out.handle);
4039 if (flags & NDR_OUT) {
4040 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
4041 NDR_PULL_ALLOC(ndr, r->out.handle);
4043 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
4044 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
4045 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.handle));
4046 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
4047 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
4049 return NT_STATUS_OK;
4052 _PUBLIC_ void ndr_print_winreg_OpenHKPN(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenHKPN *r)
4054 ndr_print_struct(ndr, name, "winreg_OpenHKPN");
4056 if (flags & NDR_SET_VALUES) {
4057 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
4059 if (flags & NDR_IN) {
4060 ndr_print_struct(ndr, "in", "winreg_OpenHKPN");
4062 ndr_print_ptr(ndr, "system_name", r->in.system_name);
4064 if (r->in.system_name) {
4065 ndr_print_uint16(ndr, "system_name", *r->in.system_name);
4068 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
4071 if (flags & NDR_OUT) {
4072 ndr_print_struct(ndr, "out", "winreg_OpenHKPN");
4074 ndr_print_ptr(ndr, "handle", r->out.handle);
4076 ndr_print_policy_handle(ndr, "handle", r->out.handle);
4078 ndr_print_WERROR(ndr, "result", r->out.result);
4084 NTSTATUS ndr_push_winreg_QueryMultipleValues2(struct ndr_push *ndr, int flags, const struct winreg_QueryMultipleValues2 *r)
4086 if (flags & NDR_IN) {
4088 if (flags & NDR_OUT) {
4089 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
4091 return NT_STATUS_OK;
4094 NTSTATUS ndr_pull_winreg_QueryMultipleValues2(struct ndr_pull *ndr, int flags, struct winreg_QueryMultipleValues2 *r)
4096 if (flags & NDR_IN) {
4098 if (flags & NDR_OUT) {
4099 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
4101 return NT_STATUS_OK;
4104 _PUBLIC_ void ndr_print_winreg_QueryMultipleValues2(struct ndr_print *ndr, const char *name, int flags, const struct winreg_QueryMultipleValues2 *r)
4106 ndr_print_struct(ndr, name, "winreg_QueryMultipleValues2");
4108 if (flags & NDR_SET_VALUES) {
4109 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
4111 if (flags & NDR_IN) {
4112 ndr_print_struct(ndr, "in", "winreg_QueryMultipleValues2");
4116 if (flags & NDR_OUT) {
4117 ndr_print_struct(ndr, "out", "winreg_QueryMultipleValues2");
4119 ndr_print_WERROR(ndr, "result", r->out.result);
4125 const struct dcerpc_interface_call winreg_calls[] = {
4128 sizeof(struct winreg_OpenHKCR),
4129 (ndr_push_flags_fn_t) ndr_push_winreg_OpenHKCR,
4130 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenHKCR,
4131 (ndr_print_function_t) ndr_print_winreg_OpenHKCR,
4136 sizeof(struct winreg_OpenHKCU),
4137 (ndr_push_flags_fn_t) ndr_push_winreg_OpenHKCU,
4138 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenHKCU,
4139 (ndr_print_function_t) ndr_print_winreg_OpenHKCU,
4144 sizeof(struct winreg_OpenHKLM),
4145 (ndr_push_flags_fn_t) ndr_push_winreg_OpenHKLM,
4146 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenHKLM,
4147 (ndr_print_function_t) ndr_print_winreg_OpenHKLM,
4152 sizeof(struct winreg_OpenHKPD),
4153 (ndr_push_flags_fn_t) ndr_push_winreg_OpenHKPD,
4154 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenHKPD,
4155 (ndr_print_function_t) ndr_print_winreg_OpenHKPD,
4160 sizeof(struct winreg_OpenHKU),
4161 (ndr_push_flags_fn_t) ndr_push_winreg_OpenHKU,
4162 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenHKU,
4163 (ndr_print_function_t) ndr_print_winreg_OpenHKU,
4168 sizeof(struct winreg_CloseKey),
4169 (ndr_push_flags_fn_t) ndr_push_winreg_CloseKey,
4170 (ndr_pull_flags_fn_t) ndr_pull_winreg_CloseKey,
4171 (ndr_print_function_t) ndr_print_winreg_CloseKey,
4176 sizeof(struct winreg_CreateKey),
4177 (ndr_push_flags_fn_t) ndr_push_winreg_CreateKey,
4178 (ndr_pull_flags_fn_t) ndr_pull_winreg_CreateKey,
4179 (ndr_print_function_t) ndr_print_winreg_CreateKey,
4184 sizeof(struct winreg_DeleteKey),
4185 (ndr_push_flags_fn_t) ndr_push_winreg_DeleteKey,
4186 (ndr_pull_flags_fn_t) ndr_pull_winreg_DeleteKey,
4187 (ndr_print_function_t) ndr_print_winreg_DeleteKey,
4191 "winreg_DeleteValue",
4192 sizeof(struct winreg_DeleteValue),
4193 (ndr_push_flags_fn_t) ndr_push_winreg_DeleteValue,
4194 (ndr_pull_flags_fn_t) ndr_pull_winreg_DeleteValue,
4195 (ndr_print_function_t) ndr_print_winreg_DeleteValue,
4200 sizeof(struct winreg_EnumKey),
4201 (ndr_push_flags_fn_t) ndr_push_winreg_EnumKey,
4202 (ndr_pull_flags_fn_t) ndr_pull_winreg_EnumKey,
4203 (ndr_print_function_t) ndr_print_winreg_EnumKey,
4208 sizeof(struct winreg_EnumValue),
4209 (ndr_push_flags_fn_t) ndr_push_winreg_EnumValue,
4210 (ndr_pull_flags_fn_t) ndr_pull_winreg_EnumValue,
4211 (ndr_print_function_t) ndr_print_winreg_EnumValue,
4216 sizeof(struct winreg_FlushKey),
4217 (ndr_push_flags_fn_t) ndr_push_winreg_FlushKey,
4218 (ndr_pull_flags_fn_t) ndr_pull_winreg_FlushKey,
4219 (ndr_print_function_t) ndr_print_winreg_FlushKey,
4223 "winreg_GetKeySecurity",
4224 sizeof(struct winreg_GetKeySecurity),
4225 (ndr_push_flags_fn_t) ndr_push_winreg_GetKeySecurity,
4226 (ndr_pull_flags_fn_t) ndr_pull_winreg_GetKeySecurity,
4227 (ndr_print_function_t) ndr_print_winreg_GetKeySecurity,
4232 sizeof(struct winreg_LoadKey),
4233 (ndr_push_flags_fn_t) ndr_push_winreg_LoadKey,
4234 (ndr_pull_flags_fn_t) ndr_pull_winreg_LoadKey,
4235 (ndr_print_function_t) ndr_print_winreg_LoadKey,
4239 "winreg_NotifyChangeKeyValue",
4240 sizeof(struct winreg_NotifyChangeKeyValue),
4241 (ndr_push_flags_fn_t) ndr_push_winreg_NotifyChangeKeyValue,
4242 (ndr_pull_flags_fn_t) ndr_pull_winreg_NotifyChangeKeyValue,
4243 (ndr_print_function_t) ndr_print_winreg_NotifyChangeKeyValue,
4248 sizeof(struct winreg_OpenKey),
4249 (ndr_push_flags_fn_t) ndr_push_winreg_OpenKey,
4250 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenKey,
4251 (ndr_print_function_t) ndr_print_winreg_OpenKey,
4255 "winreg_QueryInfoKey",
4256 sizeof(struct winreg_QueryInfoKey),
4257 (ndr_push_flags_fn_t) ndr_push_winreg_QueryInfoKey,
4258 (ndr_pull_flags_fn_t) ndr_pull_winreg_QueryInfoKey,
4259 (ndr_print_function_t) ndr_print_winreg_QueryInfoKey,
4263 "winreg_QueryValue",
4264 sizeof(struct winreg_QueryValue),
4265 (ndr_push_flags_fn_t) ndr_push_winreg_QueryValue,
4266 (ndr_pull_flags_fn_t) ndr_pull_winreg_QueryValue,
4267 (ndr_print_function_t) ndr_print_winreg_QueryValue,
4271 "winreg_ReplaceKey",
4272 sizeof(struct winreg_ReplaceKey),
4273 (ndr_push_flags_fn_t) ndr_push_winreg_ReplaceKey,
4274 (ndr_pull_flags_fn_t) ndr_pull_winreg_ReplaceKey,
4275 (ndr_print_function_t) ndr_print_winreg_ReplaceKey,
4279 "winreg_RestoreKey",
4280 sizeof(struct winreg_RestoreKey),
4281 (ndr_push_flags_fn_t) ndr_push_winreg_RestoreKey,
4282 (ndr_pull_flags_fn_t) ndr_pull_winreg_RestoreKey,
4283 (ndr_print_function_t) ndr_print_winreg_RestoreKey,
4288 sizeof(struct winreg_SaveKey),
4289 (ndr_push_flags_fn_t) ndr_push_winreg_SaveKey,
4290 (ndr_pull_flags_fn_t) ndr_pull_winreg_SaveKey,
4291 (ndr_print_function_t) ndr_print_winreg_SaveKey,
4295 "winreg_SetKeySecurity",
4296 sizeof(struct winreg_SetKeySecurity),
4297 (ndr_push_flags_fn_t) ndr_push_winreg_SetKeySecurity,
4298 (ndr_pull_flags_fn_t) ndr_pull_winreg_SetKeySecurity,
4299 (ndr_print_function_t) ndr_print_winreg_SetKeySecurity,
4304 sizeof(struct winreg_SetValue),
4305 (ndr_push_flags_fn_t) ndr_push_winreg_SetValue,
4306 (ndr_pull_flags_fn_t) ndr_pull_winreg_SetValue,
4307 (ndr_print_function_t) ndr_print_winreg_SetValue,
4312 sizeof(struct winreg_UnLoadKey),
4313 (ndr_push_flags_fn_t) ndr_push_winreg_UnLoadKey,
4314 (ndr_pull_flags_fn_t) ndr_pull_winreg_UnLoadKey,
4315 (ndr_print_function_t) ndr_print_winreg_UnLoadKey,
4319 "winreg_InitiateSystemShutdown",
4320 sizeof(struct winreg_InitiateSystemShutdown),
4321 (ndr_push_flags_fn_t) ndr_push_winreg_InitiateSystemShutdown,
4322 (ndr_pull_flags_fn_t) ndr_pull_winreg_InitiateSystemShutdown,
4323 (ndr_print_function_t) ndr_print_winreg_InitiateSystemShutdown,
4327 "winreg_AbortSystemShutdown",
4328 sizeof(struct winreg_AbortSystemShutdown),
4329 (ndr_push_flags_fn_t) ndr_push_winreg_AbortSystemShutdown,
4330 (ndr_pull_flags_fn_t) ndr_pull_winreg_AbortSystemShutdown,
4331 (ndr_print_function_t) ndr_print_winreg_AbortSystemShutdown,
4335 "winreg_GetVersion",
4336 sizeof(struct winreg_GetVersion),
4337 (ndr_push_flags_fn_t) ndr_push_winreg_GetVersion,
4338 (ndr_pull_flags_fn_t) ndr_pull_winreg_GetVersion,
4339 (ndr_print_function_t) ndr_print_winreg_GetVersion,
4344 sizeof(struct winreg_OpenHKCC),
4345 (ndr_push_flags_fn_t) ndr_push_winreg_OpenHKCC,
4346 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenHKCC,
4347 (ndr_print_function_t) ndr_print_winreg_OpenHKCC,
4352 sizeof(struct winreg_OpenHKDD),
4353 (ndr_push_flags_fn_t) ndr_push_winreg_OpenHKDD,
4354 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenHKDD,
4355 (ndr_print_function_t) ndr_print_winreg_OpenHKDD,
4359 "winreg_QueryMultipleValues",
4360 sizeof(struct winreg_QueryMultipleValues),
4361 (ndr_push_flags_fn_t) ndr_push_winreg_QueryMultipleValues,
4362 (ndr_pull_flags_fn_t) ndr_pull_winreg_QueryMultipleValues,
4363 (ndr_print_function_t) ndr_print_winreg_QueryMultipleValues,
4367 "winreg_InitiateSystemShutdownEx",
4368 sizeof(struct winreg_InitiateSystemShutdownEx),
4369 (ndr_push_flags_fn_t) ndr_push_winreg_InitiateSystemShutdownEx,
4370 (ndr_pull_flags_fn_t) ndr_pull_winreg_InitiateSystemShutdownEx,
4371 (ndr_print_function_t) ndr_print_winreg_InitiateSystemShutdownEx,
4376 sizeof(struct winreg_SaveKeyEx),
4377 (ndr_push_flags_fn_t) ndr_push_winreg_SaveKeyEx,
4378 (ndr_pull_flags_fn_t) ndr_pull_winreg_SaveKeyEx,
4379 (ndr_print_function_t) ndr_print_winreg_SaveKeyEx,
4384 sizeof(struct winreg_OpenHKPT),
4385 (ndr_push_flags_fn_t) ndr_push_winreg_OpenHKPT,
4386 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenHKPT,
4387 (ndr_print_function_t) ndr_print_winreg_OpenHKPT,
4392 sizeof(struct winreg_OpenHKPN),
4393 (ndr_push_flags_fn_t) ndr_push_winreg_OpenHKPN,
4394 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenHKPN,
4395 (ndr_print_function_t) ndr_print_winreg_OpenHKPN,
4399 "winreg_QueryMultipleValues2",
4400 sizeof(struct winreg_QueryMultipleValues2),
4401 (ndr_push_flags_fn_t) ndr_push_winreg_QueryMultipleValues2,
4402 (ndr_pull_flags_fn_t) ndr_pull_winreg_QueryMultipleValues2,
4403 (ndr_print_function_t) ndr_print_winreg_QueryMultipleValues2,
4406 { NULL, 0, NULL, NULL, NULL, False }
4409 const char * const winreg_endpoint_strings[] = {
4410 "ncacn_np:[\\pipe\\winreg]",
4415 const struct dcerpc_endpoint_list winreg_endpoints = {
4417 .names = winreg_endpoint_strings
4420 const char * const winreg_authservice_strings[] = {
4424 const struct dcerpc_authservice_list winreg_authservices = {
4426 .names = winreg_authservice_strings
4430 const struct dcerpc_interface_table dcerpc_table_winreg = {
4433 {0x338cd001,0x2244,0x31f1,{0xaa,0xaa},{0x90,0x00,0x38,0x00,0x10,0x03}},
4434 DCERPC_WINREG_VERSION
4436 .helpstring = DCERPC_WINREG_HELPSTRING,
4438 .calls = winreg_calls,
4439 .endpoints = &winreg_endpoints,
4440 .authservices = &winreg_authservices