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 if (r->in.action_taken == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
1023 if (*r->in.action_taken == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
1024 NDR_CHECK(ndr_push_ref_ptr(ndr));
1025 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 if (r->out.action_taken == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
1031 if (*r->out.action_taken == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
1032 NDR_CHECK(ndr_push_ref_ptr(ndr));
1033 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 TALLOC_CTX *_mem_save_action_taken_1;
1048 if (flags & NDR_IN) {
1049 ZERO_STRUCT(r->out);
1051 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1052 NDR_PULL_ALLOC(ndr, r->in.handle);
1054 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
1055 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
1056 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
1057 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
1058 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.name));
1059 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.keyclass));
1060 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.options));
1061 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
1062 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
1064 NDR_PULL_ALLOC(ndr, r->in.secdesc);
1066 r->in.secdesc = NULL;
1068 if (r->in.secdesc) {
1069 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
1070 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc, 0);
1071 NDR_CHECK(ndr_pull_winreg_SecBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc));
1072 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
1074 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1075 NDR_PULL_ALLOC(ndr, r->in.action_taken);
1077 _mem_save_action_taken_0 = NDR_PULL_GET_MEM_CTX(ndr);
1078 NDR_PULL_SET_MEM_CTX(ndr, r->in.action_taken, LIBNDR_FLAG_REF_ALLOC);
1079 NDR_CHECK(ndr_pull_ref_ptr(ndr, &_ptr_action_taken));
1080 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1081 NDR_PULL_ALLOC(ndr, *r->in.action_taken);
1083 _mem_save_action_taken_1 = NDR_PULL_GET_MEM_CTX(ndr);
1084 NDR_PULL_SET_MEM_CTX(ndr, *r->in.action_taken, LIBNDR_FLAG_REF_ALLOC);
1085 NDR_CHECK(ndr_pull_winreg_CreateAction(ndr, NDR_SCALARS, *r->in.action_taken));
1086 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_action_taken_1, LIBNDR_FLAG_REF_ALLOC);
1087 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_action_taken_0, LIBNDR_FLAG_REF_ALLOC);
1088 NDR_PULL_ALLOC(ndr, r->out.new_handle);
1089 ZERO_STRUCTP(r->out.new_handle);
1090 NDR_PULL_ALLOC(ndr, r->out.action_taken);
1091 *r->out.action_taken = *r->in.action_taken;
1093 if (flags & NDR_OUT) {
1094 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1095 NDR_PULL_ALLOC(ndr, r->out.new_handle);
1097 _mem_save_new_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
1098 NDR_PULL_SET_MEM_CTX(ndr, r->out.new_handle, LIBNDR_FLAG_REF_ALLOC);
1099 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.new_handle));
1100 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_new_handle_0, LIBNDR_FLAG_REF_ALLOC);
1101 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1102 NDR_PULL_ALLOC(ndr, r->out.action_taken);
1104 _mem_save_action_taken_0 = NDR_PULL_GET_MEM_CTX(ndr);
1105 NDR_PULL_SET_MEM_CTX(ndr, r->out.action_taken, LIBNDR_FLAG_REF_ALLOC);
1106 NDR_CHECK(ndr_pull_ref_ptr(ndr, &_ptr_action_taken));
1107 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1108 NDR_PULL_ALLOC(ndr, *r->out.action_taken);
1110 _mem_save_action_taken_1 = NDR_PULL_GET_MEM_CTX(ndr);
1111 NDR_PULL_SET_MEM_CTX(ndr, *r->out.action_taken, LIBNDR_FLAG_REF_ALLOC);
1112 NDR_CHECK(ndr_pull_winreg_CreateAction(ndr, NDR_SCALARS, *r->out.action_taken));
1113 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_action_taken_1, LIBNDR_FLAG_REF_ALLOC);
1114 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_action_taken_0, LIBNDR_FLAG_REF_ALLOC);
1115 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
1117 return NT_STATUS_OK;
1120 _PUBLIC_ void ndr_print_winreg_CreateKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_CreateKey *r)
1122 ndr_print_struct(ndr, name, "winreg_CreateKey");
1124 if (flags & NDR_SET_VALUES) {
1125 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1127 if (flags & NDR_IN) {
1128 ndr_print_struct(ndr, "in", "winreg_CreateKey");
1130 ndr_print_ptr(ndr, "handle", r->in.handle);
1132 ndr_print_policy_handle(ndr, "handle", r->in.handle);
1134 ndr_print_winreg_String(ndr, "name", &r->in.name);
1135 ndr_print_winreg_String(ndr, "keyclass", &r->in.keyclass);
1136 ndr_print_uint32(ndr, "options", r->in.options);
1137 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
1138 ndr_print_ptr(ndr, "secdesc", r->in.secdesc);
1140 if (r->in.secdesc) {
1141 ndr_print_winreg_SecBuf(ndr, "secdesc", r->in.secdesc);
1144 ndr_print_ptr(ndr, "action_taken", r->in.action_taken);
1146 ndr_print_ptr(ndr, "action_taken", *r->in.action_taken);
1148 ndr_print_winreg_CreateAction(ndr, "action_taken", **r->in.action_taken);
1153 if (flags & NDR_OUT) {
1154 ndr_print_struct(ndr, "out", "winreg_CreateKey");
1156 ndr_print_ptr(ndr, "new_handle", r->out.new_handle);
1158 ndr_print_policy_handle(ndr, "new_handle", r->out.new_handle);
1160 ndr_print_ptr(ndr, "action_taken", r->out.action_taken);
1162 ndr_print_ptr(ndr, "action_taken", *r->out.action_taken);
1164 ndr_print_winreg_CreateAction(ndr, "action_taken", **r->out.action_taken);
1167 ndr_print_WERROR(ndr, "result", r->out.result);
1173 NTSTATUS ndr_push_winreg_DeleteKey(struct ndr_push *ndr, int flags, const struct winreg_DeleteKey *r)
1175 if (flags & NDR_IN) {
1176 if (r->in.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
1177 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
1178 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.key));
1180 if (flags & NDR_OUT) {
1181 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
1183 return NT_STATUS_OK;
1186 NTSTATUS ndr_pull_winreg_DeleteKey(struct ndr_pull *ndr, int flags, struct winreg_DeleteKey *r)
1188 TALLOC_CTX *_mem_save_handle_0;
1189 if (flags & NDR_IN) {
1190 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1191 NDR_PULL_ALLOC(ndr, r->in.handle);
1193 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
1194 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
1195 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
1196 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
1197 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.key));
1199 if (flags & NDR_OUT) {
1200 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
1202 return NT_STATUS_OK;
1205 _PUBLIC_ void ndr_print_winreg_DeleteKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_DeleteKey *r)
1207 ndr_print_struct(ndr, name, "winreg_DeleteKey");
1209 if (flags & NDR_SET_VALUES) {
1210 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1212 if (flags & NDR_IN) {
1213 ndr_print_struct(ndr, "in", "winreg_DeleteKey");
1215 ndr_print_ptr(ndr, "handle", r->in.handle);
1217 ndr_print_policy_handle(ndr, "handle", r->in.handle);
1219 ndr_print_winreg_String(ndr, "key", &r->in.key);
1222 if (flags & NDR_OUT) {
1223 ndr_print_struct(ndr, "out", "winreg_DeleteKey");
1225 ndr_print_WERROR(ndr, "result", r->out.result);
1231 NTSTATUS ndr_push_winreg_DeleteValue(struct ndr_push *ndr, int flags, const struct winreg_DeleteValue *r)
1233 if (flags & NDR_IN) {
1234 if (r->in.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
1235 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
1236 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.value));
1238 if (flags & NDR_OUT) {
1239 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
1241 return NT_STATUS_OK;
1244 NTSTATUS ndr_pull_winreg_DeleteValue(struct ndr_pull *ndr, int flags, struct winreg_DeleteValue *r)
1246 TALLOC_CTX *_mem_save_handle_0;
1247 if (flags & NDR_IN) {
1248 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1249 NDR_PULL_ALLOC(ndr, r->in.handle);
1251 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
1252 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
1253 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
1254 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
1255 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.value));
1257 if (flags & NDR_OUT) {
1258 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
1260 return NT_STATUS_OK;
1263 _PUBLIC_ void ndr_print_winreg_DeleteValue(struct ndr_print *ndr, const char *name, int flags, const struct winreg_DeleteValue *r)
1265 ndr_print_struct(ndr, name, "winreg_DeleteValue");
1267 if (flags & NDR_SET_VALUES) {
1268 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1270 if (flags & NDR_IN) {
1271 ndr_print_struct(ndr, "in", "winreg_DeleteValue");
1273 ndr_print_ptr(ndr, "handle", r->in.handle);
1275 ndr_print_policy_handle(ndr, "handle", r->in.handle);
1277 ndr_print_winreg_String(ndr, "value", &r->in.value);
1280 if (flags & NDR_OUT) {
1281 ndr_print_struct(ndr, "out", "winreg_DeleteValue");
1283 ndr_print_WERROR(ndr, "result", r->out.result);
1289 NTSTATUS ndr_push_winreg_EnumKey(struct ndr_push *ndr, int flags, const struct winreg_EnumKey *r)
1291 if (flags & NDR_IN) {
1292 if (r->in.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
1293 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
1294 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.enum_index));
1295 if (r->in.name == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
1296 NDR_CHECK(ndr_push_winreg_StringBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.name));
1297 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.keyclass));
1298 if (r->in.keyclass) {
1299 NDR_CHECK(ndr_push_winreg_StringBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.keyclass));
1301 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.last_changed_time));
1302 if (r->in.last_changed_time) {
1303 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, *r->in.last_changed_time));
1306 if (flags & NDR_OUT) {
1307 if (r->out.name == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
1308 NDR_CHECK(ndr_push_winreg_StringBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.name));
1309 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.keyclass));
1310 if (r->out.keyclass) {
1311 NDR_CHECK(ndr_push_winreg_StringBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.keyclass));
1313 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.last_changed_time));
1314 if (r->out.last_changed_time) {
1315 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, *r->out.last_changed_time));
1317 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
1319 return NT_STATUS_OK;
1322 NTSTATUS ndr_pull_winreg_EnumKey(struct ndr_pull *ndr, int flags, struct winreg_EnumKey *r)
1324 uint32_t _ptr_keyclass;
1325 uint32_t _ptr_last_changed_time;
1326 TALLOC_CTX *_mem_save_handle_0;
1327 TALLOC_CTX *_mem_save_name_0;
1328 TALLOC_CTX *_mem_save_keyclass_0;
1329 TALLOC_CTX *_mem_save_last_changed_time_0;
1330 if (flags & NDR_IN) {
1331 ZERO_STRUCT(r->out);
1333 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1334 NDR_PULL_ALLOC(ndr, r->in.handle);
1336 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
1337 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
1338 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
1339 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
1340 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.enum_index));
1341 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1342 NDR_PULL_ALLOC(ndr, r->in.name);
1344 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
1345 NDR_PULL_SET_MEM_CTX(ndr, r->in.name, LIBNDR_FLAG_REF_ALLOC);
1346 NDR_CHECK(ndr_pull_winreg_StringBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.name));
1347 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, LIBNDR_FLAG_REF_ALLOC);
1348 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_keyclass));
1349 if (_ptr_keyclass) {
1350 NDR_PULL_ALLOC(ndr, r->in.keyclass);
1352 r->in.keyclass = NULL;
1354 if (r->in.keyclass) {
1355 _mem_save_keyclass_0 = NDR_PULL_GET_MEM_CTX(ndr);
1356 NDR_PULL_SET_MEM_CTX(ndr, r->in.keyclass, 0);
1357 NDR_CHECK(ndr_pull_winreg_StringBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.keyclass));
1358 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_keyclass_0, 0);
1360 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_last_changed_time));
1361 if (_ptr_last_changed_time) {
1362 NDR_PULL_ALLOC(ndr, r->in.last_changed_time);
1364 r->in.last_changed_time = NULL;
1366 if (r->in.last_changed_time) {
1367 _mem_save_last_changed_time_0 = NDR_PULL_GET_MEM_CTX(ndr);
1368 NDR_PULL_SET_MEM_CTX(ndr, r->in.last_changed_time, 0);
1369 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, r->in.last_changed_time));
1370 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_last_changed_time_0, 0);
1372 NDR_PULL_ALLOC(ndr, r->out.name);
1373 *r->out.name = *r->in.name;
1375 if (flags & NDR_OUT) {
1376 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1377 NDR_PULL_ALLOC(ndr, r->out.name);
1379 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
1380 NDR_PULL_SET_MEM_CTX(ndr, r->out.name, LIBNDR_FLAG_REF_ALLOC);
1381 NDR_CHECK(ndr_pull_winreg_StringBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.name));
1382 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, LIBNDR_FLAG_REF_ALLOC);
1383 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_keyclass));
1384 if (_ptr_keyclass) {
1385 NDR_PULL_ALLOC(ndr, r->out.keyclass);
1387 r->out.keyclass = NULL;
1389 if (r->out.keyclass) {
1390 _mem_save_keyclass_0 = NDR_PULL_GET_MEM_CTX(ndr);
1391 NDR_PULL_SET_MEM_CTX(ndr, r->out.keyclass, 0);
1392 NDR_CHECK(ndr_pull_winreg_StringBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.keyclass));
1393 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_keyclass_0, 0);
1395 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_last_changed_time));
1396 if (_ptr_last_changed_time) {
1397 NDR_PULL_ALLOC(ndr, r->out.last_changed_time);
1399 r->out.last_changed_time = NULL;
1401 if (r->out.last_changed_time) {
1402 _mem_save_last_changed_time_0 = NDR_PULL_GET_MEM_CTX(ndr);
1403 NDR_PULL_SET_MEM_CTX(ndr, r->out.last_changed_time, 0);
1404 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, r->out.last_changed_time));
1405 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_last_changed_time_0, 0);
1407 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
1409 return NT_STATUS_OK;
1412 _PUBLIC_ void ndr_print_winreg_EnumKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_EnumKey *r)
1414 ndr_print_struct(ndr, name, "winreg_EnumKey");
1416 if (flags & NDR_SET_VALUES) {
1417 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1419 if (flags & NDR_IN) {
1420 ndr_print_struct(ndr, "in", "winreg_EnumKey");
1422 ndr_print_ptr(ndr, "handle", r->in.handle);
1424 ndr_print_policy_handle(ndr, "handle", r->in.handle);
1426 ndr_print_uint32(ndr, "enum_index", r->in.enum_index);
1427 ndr_print_ptr(ndr, "name", r->in.name);
1429 ndr_print_winreg_StringBuf(ndr, "name", r->in.name);
1431 ndr_print_ptr(ndr, "keyclass", r->in.keyclass);
1433 if (r->in.keyclass) {
1434 ndr_print_winreg_StringBuf(ndr, "keyclass", r->in.keyclass);
1437 ndr_print_ptr(ndr, "last_changed_time", r->in.last_changed_time);
1439 if (r->in.last_changed_time) {
1440 ndr_print_NTTIME(ndr, "last_changed_time", *r->in.last_changed_time);
1445 if (flags & NDR_OUT) {
1446 ndr_print_struct(ndr, "out", "winreg_EnumKey");
1448 ndr_print_ptr(ndr, "name", r->out.name);
1450 ndr_print_winreg_StringBuf(ndr, "name", r->out.name);
1452 ndr_print_ptr(ndr, "keyclass", r->out.keyclass);
1454 if (r->out.keyclass) {
1455 ndr_print_winreg_StringBuf(ndr, "keyclass", r->out.keyclass);
1458 ndr_print_ptr(ndr, "last_changed_time", r->out.last_changed_time);
1460 if (r->out.last_changed_time) {
1461 ndr_print_NTTIME(ndr, "last_changed_time", *r->out.last_changed_time);
1464 ndr_print_WERROR(ndr, "result", r->out.result);
1470 NTSTATUS ndr_push_winreg_EnumValue(struct ndr_push *ndr, int flags, const struct winreg_EnumValue *r)
1472 if (flags & NDR_IN) {
1473 if (r->in.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
1474 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
1475 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.enum_index));
1476 if (r->in.name == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
1477 NDR_CHECK(ndr_push_winreg_ValNameBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.name));
1478 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.type));
1480 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->in.type));
1482 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.data));
1484 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.data_size));
1485 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
1486 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.value_length));
1487 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.data, *r->in.value_length));
1489 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.data_size));
1490 if (r->in.data_size) {
1491 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.data_size));
1493 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.value_length));
1494 if (r->in.value_length) {
1495 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.value_length));
1498 if (flags & NDR_OUT) {
1499 if (r->out.name == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
1500 NDR_CHECK(ndr_push_winreg_ValNameBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.name));
1501 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.type));
1503 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
1505 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.data));
1507 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.data_size));
1508 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
1509 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.value_length));
1510 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, *r->out.value_length));
1512 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.data_size));
1513 if (r->out.data_size) {
1514 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.data_size));
1516 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.value_length));
1517 if (r->out.value_length) {
1518 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.value_length));
1520 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
1522 return NT_STATUS_OK;
1525 NTSTATUS ndr_pull_winreg_EnumValue(struct ndr_pull *ndr, int flags, struct winreg_EnumValue *r)
1529 uint32_t _ptr_data_size;
1530 uint32_t _ptr_value_length;
1531 TALLOC_CTX *_mem_save_handle_0;
1532 TALLOC_CTX *_mem_save_name_0;
1533 TALLOC_CTX *_mem_save_type_0;
1534 TALLOC_CTX *_mem_save_data_0;
1535 TALLOC_CTX *_mem_save_data_size_0;
1536 TALLOC_CTX *_mem_save_value_length_0;
1537 if (flags & NDR_IN) {
1538 ZERO_STRUCT(r->out);
1540 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1541 NDR_PULL_ALLOC(ndr, r->in.handle);
1543 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
1544 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
1545 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
1546 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
1547 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.enum_index));
1548 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1549 NDR_PULL_ALLOC(ndr, r->in.name);
1551 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
1552 NDR_PULL_SET_MEM_CTX(ndr, r->in.name, LIBNDR_FLAG_REF_ALLOC);
1553 NDR_CHECK(ndr_pull_winreg_ValNameBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.name));
1554 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, LIBNDR_FLAG_REF_ALLOC);
1555 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_type));
1557 NDR_PULL_ALLOC(ndr, r->in.type);
1562 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
1563 NDR_PULL_SET_MEM_CTX(ndr, r->in.type, 0);
1564 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->in.type));
1565 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, 0);
1567 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
1569 NDR_PULL_ALLOC(ndr, r->in.data);
1574 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
1575 NDR_PULL_SET_MEM_CTX(ndr, r->in.data, 0);
1576 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.data));
1577 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.data));
1578 if (ndr_get_array_length(ndr, &r->in.data) > ndr_get_array_size(ndr, &r->in.data)) {
1579 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));
1581 NDR_PULL_ALLOC_N(ndr, r->in.data, ndr_get_array_size(ndr, &r->in.data));
1582 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.data, ndr_get_array_length(ndr, &r->in.data)));
1583 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
1585 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_size));
1586 if (_ptr_data_size) {
1587 NDR_PULL_ALLOC(ndr, r->in.data_size);
1589 r->in.data_size = NULL;
1591 if (r->in.data_size) {
1592 _mem_save_data_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
1593 NDR_PULL_SET_MEM_CTX(ndr, r->in.data_size, 0);
1594 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.data_size));
1595 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_size_0, 0);
1597 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_value_length));
1598 if (_ptr_value_length) {
1599 NDR_PULL_ALLOC(ndr, r->in.value_length);
1601 r->in.value_length = NULL;
1603 if (r->in.value_length) {
1604 _mem_save_value_length_0 = NDR_PULL_GET_MEM_CTX(ndr);
1605 NDR_PULL_SET_MEM_CTX(ndr, r->in.value_length, 0);
1606 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.value_length));
1607 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_length_0, 0);
1609 NDR_PULL_ALLOC(ndr, r->out.name);
1610 *r->out.name = *r->in.name;
1612 if (r->in.data_size == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
1613 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.data, *r->in.data_size));
1616 if (r->in.value_length == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
1617 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->in.data, *r->in.value_length));
1620 if (flags & NDR_OUT) {
1621 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1622 NDR_PULL_ALLOC(ndr, r->out.name);
1624 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
1625 NDR_PULL_SET_MEM_CTX(ndr, r->out.name, LIBNDR_FLAG_REF_ALLOC);
1626 NDR_CHECK(ndr_pull_winreg_ValNameBuf(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.name));
1627 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, LIBNDR_FLAG_REF_ALLOC);
1628 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_type));
1630 NDR_PULL_ALLOC(ndr, r->out.type);
1635 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
1636 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, 0);
1637 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
1638 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, 0);
1640 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
1642 NDR_PULL_ALLOC(ndr, r->out.data);
1647 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
1648 NDR_PULL_SET_MEM_CTX(ndr, r->out.data, 0);
1649 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
1650 NDR_CHECK(ndr_pull_array_length(ndr, &r->out.data));
1651 if (ndr_get_array_length(ndr, &r->out.data) > ndr_get_array_size(ndr, &r->out.data)) {
1652 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));
1654 NDR_PULL_ALLOC_N(ndr, r->out.data, ndr_get_array_size(ndr, &r->out.data));
1655 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, ndr_get_array_length(ndr, &r->out.data)));
1656 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
1658 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_size));
1659 if (_ptr_data_size) {
1660 NDR_PULL_ALLOC(ndr, r->out.data_size);
1662 r->out.data_size = NULL;
1664 if (r->out.data_size) {
1665 _mem_save_data_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
1666 NDR_PULL_SET_MEM_CTX(ndr, r->out.data_size, 0);
1667 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.data_size));
1668 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_size_0, 0);
1670 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_value_length));
1671 if (_ptr_value_length) {
1672 NDR_PULL_ALLOC(ndr, r->out.value_length);
1674 r->out.value_length = NULL;
1676 if (r->out.value_length) {
1677 _mem_save_value_length_0 = NDR_PULL_GET_MEM_CTX(ndr);
1678 NDR_PULL_SET_MEM_CTX(ndr, r->out.value_length, 0);
1679 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.value_length));
1680 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_length_0, 0);
1682 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
1684 if (r->out.data_size == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
1685 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, *r->out.data_size));
1688 if (r->out.value_length == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
1689 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->out.data, *r->out.value_length));
1692 return NT_STATUS_OK;
1695 _PUBLIC_ void ndr_print_winreg_EnumValue(struct ndr_print *ndr, const char *name, int flags, const struct winreg_EnumValue *r)
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);
1723 ndr_print_array_uint8(ndr, "data", r->in.data, *r->in.value_length);
1726 ndr_print_ptr(ndr, "data_size", r->in.data_size);
1728 if (r->in.data_size) {
1729 ndr_print_uint32(ndr, "data_size", *r->in.data_size);
1732 ndr_print_ptr(ndr, "value_length", r->in.value_length);
1734 if (r->in.value_length) {
1735 ndr_print_uint32(ndr, "value_length", *r->in.value_length);
1740 if (flags & NDR_OUT) {
1741 ndr_print_struct(ndr, "out", "winreg_EnumValue");
1743 ndr_print_ptr(ndr, "name", r->out.name);
1745 ndr_print_winreg_ValNameBuf(ndr, "name", r->out.name);
1747 ndr_print_ptr(ndr, "type", r->out.type);
1750 ndr_print_winreg_Type(ndr, "type", *r->out.type);
1753 ndr_print_ptr(ndr, "data", r->out.data);
1756 ndr_print_array_uint8(ndr, "data", r->out.data, *r->out.value_length);
1759 ndr_print_ptr(ndr, "data_size", r->out.data_size);
1761 if (r->out.data_size) {
1762 ndr_print_uint32(ndr, "data_size", *r->out.data_size);
1765 ndr_print_ptr(ndr, "value_length", r->out.value_length);
1767 if (r->out.value_length) {
1768 ndr_print_uint32(ndr, "value_length", *r->out.value_length);
1771 ndr_print_WERROR(ndr, "result", r->out.result);
1777 NTSTATUS ndr_push_winreg_FlushKey(struct ndr_push *ndr, int flags, const struct winreg_FlushKey *r)
1779 if (flags & NDR_IN) {
1780 if (r->in.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
1781 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
1783 if (flags & NDR_OUT) {
1784 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
1786 return NT_STATUS_OK;
1789 NTSTATUS ndr_pull_winreg_FlushKey(struct ndr_pull *ndr, int flags, struct winreg_FlushKey *r)
1791 TALLOC_CTX *_mem_save_handle_0;
1792 if (flags & NDR_IN) {
1793 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1794 NDR_PULL_ALLOC(ndr, r->in.handle);
1796 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
1797 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
1798 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
1799 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
1801 if (flags & NDR_OUT) {
1802 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
1804 return NT_STATUS_OK;
1807 _PUBLIC_ void ndr_print_winreg_FlushKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_FlushKey *r)
1809 ndr_print_struct(ndr, name, "winreg_FlushKey");
1811 if (flags & NDR_SET_VALUES) {
1812 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1814 if (flags & NDR_IN) {
1815 ndr_print_struct(ndr, "in", "winreg_FlushKey");
1817 ndr_print_ptr(ndr, "handle", r->in.handle);
1819 ndr_print_policy_handle(ndr, "handle", r->in.handle);
1823 if (flags & NDR_OUT) {
1824 ndr_print_struct(ndr, "out", "winreg_FlushKey");
1826 ndr_print_WERROR(ndr, "result", r->out.result);
1832 NTSTATUS ndr_push_winreg_GetKeySecurity(struct ndr_push *ndr, int flags, const struct winreg_GetKeySecurity *r)
1834 if (flags & NDR_IN) {
1835 if (r->in.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
1836 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
1837 NDR_CHECK(ndr_push_security_secinfo(ndr, NDR_SCALARS, r->in.sec_info));
1838 if (r->in.sd == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
1839 NDR_CHECK(ndr_push_KeySecurityData(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sd));
1841 if (flags & NDR_OUT) {
1842 if (r->out.sd == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
1843 NDR_CHECK(ndr_push_KeySecurityData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.sd));
1844 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
1846 return NT_STATUS_OK;
1849 NTSTATUS ndr_pull_winreg_GetKeySecurity(struct ndr_pull *ndr, int flags, struct winreg_GetKeySecurity *r)
1851 TALLOC_CTX *_mem_save_handle_0;
1852 TALLOC_CTX *_mem_save_sd_0;
1853 if (flags & NDR_IN) {
1854 ZERO_STRUCT(r->out);
1856 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1857 NDR_PULL_ALLOC(ndr, r->in.handle);
1859 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
1860 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
1861 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
1862 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
1863 NDR_CHECK(ndr_pull_security_secinfo(ndr, NDR_SCALARS, &r->in.sec_info));
1864 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1865 NDR_PULL_ALLOC(ndr, r->in.sd);
1867 _mem_save_sd_0 = NDR_PULL_GET_MEM_CTX(ndr);
1868 NDR_PULL_SET_MEM_CTX(ndr, r->in.sd, LIBNDR_FLAG_REF_ALLOC);
1869 NDR_CHECK(ndr_pull_KeySecurityData(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sd));
1870 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sd_0, LIBNDR_FLAG_REF_ALLOC);
1871 NDR_PULL_ALLOC(ndr, r->out.sd);
1872 *r->out.sd = *r->in.sd;
1874 if (flags & NDR_OUT) {
1875 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1876 NDR_PULL_ALLOC(ndr, r->out.sd);
1878 _mem_save_sd_0 = NDR_PULL_GET_MEM_CTX(ndr);
1879 NDR_PULL_SET_MEM_CTX(ndr, r->out.sd, LIBNDR_FLAG_REF_ALLOC);
1880 NDR_CHECK(ndr_pull_KeySecurityData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.sd));
1881 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sd_0, LIBNDR_FLAG_REF_ALLOC);
1882 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
1884 return NT_STATUS_OK;
1887 _PUBLIC_ void ndr_print_winreg_GetKeySecurity(struct ndr_print *ndr, const char *name, int flags, const struct winreg_GetKeySecurity *r)
1889 ndr_print_struct(ndr, name, "winreg_GetKeySecurity");
1891 if (flags & NDR_SET_VALUES) {
1892 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1894 if (flags & NDR_IN) {
1895 ndr_print_struct(ndr, "in", "winreg_GetKeySecurity");
1897 ndr_print_ptr(ndr, "handle", r->in.handle);
1899 ndr_print_policy_handle(ndr, "handle", r->in.handle);
1901 ndr_print_security_secinfo(ndr, "sec_info", r->in.sec_info);
1902 ndr_print_ptr(ndr, "sd", r->in.sd);
1904 ndr_print_KeySecurityData(ndr, "sd", r->in.sd);
1908 if (flags & NDR_OUT) {
1909 ndr_print_struct(ndr, "out", "winreg_GetKeySecurity");
1911 ndr_print_ptr(ndr, "sd", r->out.sd);
1913 ndr_print_KeySecurityData(ndr, "sd", r->out.sd);
1915 ndr_print_WERROR(ndr, "result", r->out.result);
1921 NTSTATUS ndr_push_winreg_LoadKey(struct ndr_push *ndr, int flags, const struct winreg_LoadKey *r)
1923 if (flags & NDR_IN) {
1924 if (r->in.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
1925 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
1926 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.keyname));
1927 if (r->in.keyname) {
1928 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.keyname));
1930 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.filename));
1931 if (r->in.filename) {
1932 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.filename));
1935 if (flags & NDR_OUT) {
1936 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
1938 return NT_STATUS_OK;
1941 NTSTATUS ndr_pull_winreg_LoadKey(struct ndr_pull *ndr, int flags, struct winreg_LoadKey *r)
1943 uint32_t _ptr_keyname;
1944 uint32_t _ptr_filename;
1945 TALLOC_CTX *_mem_save_handle_0;
1946 TALLOC_CTX *_mem_save_keyname_0;
1947 TALLOC_CTX *_mem_save_filename_0;
1948 if (flags & NDR_IN) {
1949 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1950 NDR_PULL_ALLOC(ndr, r->in.handle);
1952 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
1953 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
1954 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
1955 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
1956 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_keyname));
1958 NDR_PULL_ALLOC(ndr, r->in.keyname);
1960 r->in.keyname = NULL;
1962 if (r->in.keyname) {
1963 _mem_save_keyname_0 = NDR_PULL_GET_MEM_CTX(ndr);
1964 NDR_PULL_SET_MEM_CTX(ndr, r->in.keyname, 0);
1965 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.keyname));
1966 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_keyname_0, 0);
1968 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_filename));
1969 if (_ptr_filename) {
1970 NDR_PULL_ALLOC(ndr, r->in.filename);
1972 r->in.filename = NULL;
1974 if (r->in.filename) {
1975 _mem_save_filename_0 = NDR_PULL_GET_MEM_CTX(ndr);
1976 NDR_PULL_SET_MEM_CTX(ndr, r->in.filename, 0);
1977 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.filename));
1978 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_filename_0, 0);
1981 if (flags & NDR_OUT) {
1982 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
1984 return NT_STATUS_OK;
1987 _PUBLIC_ void ndr_print_winreg_LoadKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_LoadKey *r)
1989 ndr_print_struct(ndr, name, "winreg_LoadKey");
1991 if (flags & NDR_SET_VALUES) {
1992 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1994 if (flags & NDR_IN) {
1995 ndr_print_struct(ndr, "in", "winreg_LoadKey");
1997 ndr_print_ptr(ndr, "handle", r->in.handle);
1999 ndr_print_policy_handle(ndr, "handle", r->in.handle);
2001 ndr_print_ptr(ndr, "keyname", r->in.keyname);
2003 if (r->in.keyname) {
2004 ndr_print_winreg_String(ndr, "keyname", r->in.keyname);
2007 ndr_print_ptr(ndr, "filename", r->in.filename);
2009 if (r->in.filename) {
2010 ndr_print_winreg_String(ndr, "filename", r->in.filename);
2015 if (flags & NDR_OUT) {
2016 ndr_print_struct(ndr, "out", "winreg_LoadKey");
2018 ndr_print_WERROR(ndr, "result", r->out.result);
2024 NTSTATUS ndr_push_winreg_NotifyChangeKeyValue(struct ndr_push *ndr, int flags, const struct winreg_NotifyChangeKeyValue *r)
2026 if (flags & NDR_IN) {
2027 if (r->in.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2028 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
2029 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->in.watch_subtree));
2030 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.notify_filter));
2031 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown));
2032 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.string1));
2033 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.string2));
2034 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown2));
2036 if (flags & NDR_OUT) {
2037 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
2039 return NT_STATUS_OK;
2042 NTSTATUS ndr_pull_winreg_NotifyChangeKeyValue(struct ndr_pull *ndr, int flags, struct winreg_NotifyChangeKeyValue *r)
2044 TALLOC_CTX *_mem_save_handle_0;
2045 if (flags & NDR_IN) {
2046 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2047 NDR_PULL_ALLOC(ndr, r->in.handle);
2049 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
2050 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
2051 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
2052 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
2053 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->in.watch_subtree));
2054 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.notify_filter));
2055 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown));
2056 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.string1));
2057 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.string2));
2058 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown2));
2060 if (flags & NDR_OUT) {
2061 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
2063 return NT_STATUS_OK;
2066 _PUBLIC_ void ndr_print_winreg_NotifyChangeKeyValue(struct ndr_print *ndr, const char *name, int flags, const struct winreg_NotifyChangeKeyValue *r)
2068 ndr_print_struct(ndr, name, "winreg_NotifyChangeKeyValue");
2070 if (flags & NDR_SET_VALUES) {
2071 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2073 if (flags & NDR_IN) {
2074 ndr_print_struct(ndr, "in", "winreg_NotifyChangeKeyValue");
2076 ndr_print_ptr(ndr, "handle", r->in.handle);
2078 ndr_print_policy_handle(ndr, "handle", r->in.handle);
2080 ndr_print_uint8(ndr, "watch_subtree", r->in.watch_subtree);
2081 ndr_print_uint32(ndr, "notify_filter", r->in.notify_filter);
2082 ndr_print_uint32(ndr, "unknown", r->in.unknown);
2083 ndr_print_winreg_String(ndr, "string1", &r->in.string1);
2084 ndr_print_winreg_String(ndr, "string2", &r->in.string2);
2085 ndr_print_uint32(ndr, "unknown2", r->in.unknown2);
2088 if (flags & NDR_OUT) {
2089 ndr_print_struct(ndr, "out", "winreg_NotifyChangeKeyValue");
2091 ndr_print_WERROR(ndr, "result", r->out.result);
2097 NTSTATUS ndr_push_winreg_OpenKey(struct ndr_push *ndr, int flags, const struct winreg_OpenKey *r)
2099 if (flags & NDR_IN) {
2100 if (r->in.parent_handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2101 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.parent_handle));
2102 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.keyname));
2103 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown));
2104 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
2106 if (flags & NDR_OUT) {
2107 if (r->out.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2108 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.handle));
2109 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
2111 return NT_STATUS_OK;
2114 NTSTATUS ndr_pull_winreg_OpenKey(struct ndr_pull *ndr, int flags, struct winreg_OpenKey *r)
2116 TALLOC_CTX *_mem_save_parent_handle_0;
2117 TALLOC_CTX *_mem_save_handle_0;
2118 if (flags & NDR_IN) {
2119 ZERO_STRUCT(r->out);
2121 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2122 NDR_PULL_ALLOC(ndr, r->in.parent_handle);
2124 _mem_save_parent_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
2125 NDR_PULL_SET_MEM_CTX(ndr, r->in.parent_handle, LIBNDR_FLAG_REF_ALLOC);
2126 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.parent_handle));
2127 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parent_handle_0, LIBNDR_FLAG_REF_ALLOC);
2128 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.keyname));
2129 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown));
2130 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
2131 NDR_PULL_ALLOC(ndr, r->out.handle);
2132 ZERO_STRUCTP(r->out.handle);
2134 if (flags & NDR_OUT) {
2135 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2136 NDR_PULL_ALLOC(ndr, r->out.handle);
2138 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
2139 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
2140 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.handle));
2141 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
2142 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
2144 return NT_STATUS_OK;
2147 _PUBLIC_ void ndr_print_winreg_OpenKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenKey *r)
2149 ndr_print_struct(ndr, name, "winreg_OpenKey");
2151 if (flags & NDR_SET_VALUES) {
2152 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2154 if (flags & NDR_IN) {
2155 ndr_print_struct(ndr, "in", "winreg_OpenKey");
2157 ndr_print_ptr(ndr, "parent_handle", r->in.parent_handle);
2159 ndr_print_policy_handle(ndr, "parent_handle", r->in.parent_handle);
2161 ndr_print_winreg_String(ndr, "keyname", &r->in.keyname);
2162 ndr_print_uint32(ndr, "unknown", r->in.unknown);
2163 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
2166 if (flags & NDR_OUT) {
2167 ndr_print_struct(ndr, "out", "winreg_OpenKey");
2169 ndr_print_ptr(ndr, "handle", r->out.handle);
2171 ndr_print_policy_handle(ndr, "handle", r->out.handle);
2173 ndr_print_WERROR(ndr, "result", r->out.result);
2179 NTSTATUS ndr_push_winreg_QueryInfoKey(struct ndr_push *ndr, int flags, const struct winreg_QueryInfoKey *r)
2181 if (flags & NDR_IN) {
2182 if (r->in.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2183 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
2184 if (r->in.classname == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2185 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.classname));
2187 if (flags & NDR_OUT) {
2188 if (r->out.classname == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2189 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.classname));
2190 if (r->out.num_subkeys == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2191 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.num_subkeys));
2192 if (r->out.max_subkeylen == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2193 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.max_subkeylen));
2194 if (r->out.max_classlen == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2195 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.max_classlen));
2196 if (r->out.num_values == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2197 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.num_values));
2198 if (r->out.max_valnamelen == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2199 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.max_valnamelen));
2200 if (r->out.max_valbufsize == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2201 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.max_valbufsize));
2202 if (r->out.secdescsize == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2203 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.secdescsize));
2204 if (r->out.last_changed_time == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2205 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, *r->out.last_changed_time));
2206 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
2208 return NT_STATUS_OK;
2211 NTSTATUS ndr_pull_winreg_QueryInfoKey(struct ndr_pull *ndr, int flags, struct winreg_QueryInfoKey *r)
2213 TALLOC_CTX *_mem_save_handle_0;
2214 TALLOC_CTX *_mem_save_classname_0;
2215 TALLOC_CTX *_mem_save_num_subkeys_0;
2216 TALLOC_CTX *_mem_save_max_subkeylen_0;
2217 TALLOC_CTX *_mem_save_max_classlen_0;
2218 TALLOC_CTX *_mem_save_num_values_0;
2219 TALLOC_CTX *_mem_save_max_valnamelen_0;
2220 TALLOC_CTX *_mem_save_max_valbufsize_0;
2221 TALLOC_CTX *_mem_save_secdescsize_0;
2222 TALLOC_CTX *_mem_save_last_changed_time_0;
2223 if (flags & NDR_IN) {
2224 ZERO_STRUCT(r->out);
2226 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2227 NDR_PULL_ALLOC(ndr, r->in.handle);
2229 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
2230 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
2231 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
2232 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
2233 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2234 NDR_PULL_ALLOC(ndr, r->in.classname);
2236 _mem_save_classname_0 = NDR_PULL_GET_MEM_CTX(ndr);
2237 NDR_PULL_SET_MEM_CTX(ndr, r->in.classname, LIBNDR_FLAG_REF_ALLOC);
2238 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.classname));
2239 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_classname_0, LIBNDR_FLAG_REF_ALLOC);
2240 NDR_PULL_ALLOC(ndr, r->out.classname);
2241 *r->out.classname = *r->in.classname;
2242 NDR_PULL_ALLOC(ndr, r->out.num_subkeys);
2243 ZERO_STRUCTP(r->out.num_subkeys);
2244 NDR_PULL_ALLOC(ndr, r->out.max_subkeylen);
2245 ZERO_STRUCTP(r->out.max_subkeylen);
2246 NDR_PULL_ALLOC(ndr, r->out.max_classlen);
2247 ZERO_STRUCTP(r->out.max_classlen);
2248 NDR_PULL_ALLOC(ndr, r->out.num_values);
2249 ZERO_STRUCTP(r->out.num_values);
2250 NDR_PULL_ALLOC(ndr, r->out.max_valnamelen);
2251 ZERO_STRUCTP(r->out.max_valnamelen);
2252 NDR_PULL_ALLOC(ndr, r->out.max_valbufsize);
2253 ZERO_STRUCTP(r->out.max_valbufsize);
2254 NDR_PULL_ALLOC(ndr, r->out.secdescsize);
2255 ZERO_STRUCTP(r->out.secdescsize);
2256 NDR_PULL_ALLOC(ndr, r->out.last_changed_time);
2257 ZERO_STRUCTP(r->out.last_changed_time);
2259 if (flags & NDR_OUT) {
2260 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2261 NDR_PULL_ALLOC(ndr, r->out.classname);
2263 _mem_save_classname_0 = NDR_PULL_GET_MEM_CTX(ndr);
2264 NDR_PULL_SET_MEM_CTX(ndr, r->out.classname, LIBNDR_FLAG_REF_ALLOC);
2265 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.classname));
2266 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_classname_0, LIBNDR_FLAG_REF_ALLOC);
2267 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2268 NDR_PULL_ALLOC(ndr, r->out.num_subkeys);
2270 _mem_save_num_subkeys_0 = NDR_PULL_GET_MEM_CTX(ndr);
2271 NDR_PULL_SET_MEM_CTX(ndr, r->out.num_subkeys, LIBNDR_FLAG_REF_ALLOC);
2272 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.num_subkeys));
2273 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_num_subkeys_0, LIBNDR_FLAG_REF_ALLOC);
2274 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2275 NDR_PULL_ALLOC(ndr, r->out.max_subkeylen);
2277 _mem_save_max_subkeylen_0 = NDR_PULL_GET_MEM_CTX(ndr);
2278 NDR_PULL_SET_MEM_CTX(ndr, r->out.max_subkeylen, LIBNDR_FLAG_REF_ALLOC);
2279 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.max_subkeylen));
2280 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_max_subkeylen_0, LIBNDR_FLAG_REF_ALLOC);
2281 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2282 NDR_PULL_ALLOC(ndr, r->out.max_classlen);
2284 _mem_save_max_classlen_0 = NDR_PULL_GET_MEM_CTX(ndr);
2285 NDR_PULL_SET_MEM_CTX(ndr, r->out.max_classlen, LIBNDR_FLAG_REF_ALLOC);
2286 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.max_classlen));
2287 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_max_classlen_0, LIBNDR_FLAG_REF_ALLOC);
2288 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2289 NDR_PULL_ALLOC(ndr, r->out.num_values);
2291 _mem_save_num_values_0 = NDR_PULL_GET_MEM_CTX(ndr);
2292 NDR_PULL_SET_MEM_CTX(ndr, r->out.num_values, LIBNDR_FLAG_REF_ALLOC);
2293 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.num_values));
2294 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_num_values_0, LIBNDR_FLAG_REF_ALLOC);
2295 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2296 NDR_PULL_ALLOC(ndr, r->out.max_valnamelen);
2298 _mem_save_max_valnamelen_0 = NDR_PULL_GET_MEM_CTX(ndr);
2299 NDR_PULL_SET_MEM_CTX(ndr, r->out.max_valnamelen, LIBNDR_FLAG_REF_ALLOC);
2300 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.max_valnamelen));
2301 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_max_valnamelen_0, LIBNDR_FLAG_REF_ALLOC);
2302 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2303 NDR_PULL_ALLOC(ndr, r->out.max_valbufsize);
2305 _mem_save_max_valbufsize_0 = NDR_PULL_GET_MEM_CTX(ndr);
2306 NDR_PULL_SET_MEM_CTX(ndr, r->out.max_valbufsize, LIBNDR_FLAG_REF_ALLOC);
2307 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.max_valbufsize));
2308 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_max_valbufsize_0, LIBNDR_FLAG_REF_ALLOC);
2309 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2310 NDR_PULL_ALLOC(ndr, r->out.secdescsize);
2312 _mem_save_secdescsize_0 = NDR_PULL_GET_MEM_CTX(ndr);
2313 NDR_PULL_SET_MEM_CTX(ndr, r->out.secdescsize, LIBNDR_FLAG_REF_ALLOC);
2314 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.secdescsize));
2315 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdescsize_0, LIBNDR_FLAG_REF_ALLOC);
2316 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2317 NDR_PULL_ALLOC(ndr, r->out.last_changed_time);
2319 _mem_save_last_changed_time_0 = NDR_PULL_GET_MEM_CTX(ndr);
2320 NDR_PULL_SET_MEM_CTX(ndr, r->out.last_changed_time, LIBNDR_FLAG_REF_ALLOC);
2321 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, r->out.last_changed_time));
2322 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_last_changed_time_0, LIBNDR_FLAG_REF_ALLOC);
2323 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
2325 return NT_STATUS_OK;
2328 _PUBLIC_ void ndr_print_winreg_QueryInfoKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_QueryInfoKey *r)
2330 ndr_print_struct(ndr, name, "winreg_QueryInfoKey");
2332 if (flags & NDR_SET_VALUES) {
2333 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2335 if (flags & NDR_IN) {
2336 ndr_print_struct(ndr, "in", "winreg_QueryInfoKey");
2338 ndr_print_ptr(ndr, "handle", r->in.handle);
2340 ndr_print_policy_handle(ndr, "handle", r->in.handle);
2342 ndr_print_ptr(ndr, "classname", r->in.classname);
2344 ndr_print_winreg_String(ndr, "classname", r->in.classname);
2348 if (flags & NDR_OUT) {
2349 ndr_print_struct(ndr, "out", "winreg_QueryInfoKey");
2351 ndr_print_ptr(ndr, "classname", r->out.classname);
2353 ndr_print_winreg_String(ndr, "classname", r->out.classname);
2355 ndr_print_ptr(ndr, "num_subkeys", r->out.num_subkeys);
2357 ndr_print_uint32(ndr, "num_subkeys", *r->out.num_subkeys);
2359 ndr_print_ptr(ndr, "max_subkeylen", r->out.max_subkeylen);
2361 ndr_print_uint32(ndr, "max_subkeylen", *r->out.max_subkeylen);
2363 ndr_print_ptr(ndr, "max_classlen", r->out.max_classlen);
2365 ndr_print_uint32(ndr, "max_classlen", *r->out.max_classlen);
2367 ndr_print_ptr(ndr, "num_values", r->out.num_values);
2369 ndr_print_uint32(ndr, "num_values", *r->out.num_values);
2371 ndr_print_ptr(ndr, "max_valnamelen", r->out.max_valnamelen);
2373 ndr_print_uint32(ndr, "max_valnamelen", *r->out.max_valnamelen);
2375 ndr_print_ptr(ndr, "max_valbufsize", r->out.max_valbufsize);
2377 ndr_print_uint32(ndr, "max_valbufsize", *r->out.max_valbufsize);
2379 ndr_print_ptr(ndr, "secdescsize", r->out.secdescsize);
2381 ndr_print_uint32(ndr, "secdescsize", *r->out.secdescsize);
2383 ndr_print_ptr(ndr, "last_changed_time", r->out.last_changed_time);
2385 ndr_print_NTTIME(ndr, "last_changed_time", *r->out.last_changed_time);
2387 ndr_print_WERROR(ndr, "result", r->out.result);
2393 NTSTATUS ndr_push_winreg_QueryValue(struct ndr_push *ndr, int flags, const struct winreg_QueryValue *r)
2395 if (flags & NDR_IN) {
2396 if (r->in.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2397 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
2398 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.value_name));
2399 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.type));
2401 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->in.type));
2403 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.data));
2405 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.data_size));
2406 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
2407 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.value_length));
2408 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.data, *r->in.value_length));
2410 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.data_size));
2411 if (r->in.data_size) {
2412 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.data_size));
2414 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.value_length));
2415 if (r->in.value_length) {
2416 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.value_length));
2419 if (flags & NDR_OUT) {
2420 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.type));
2422 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
2424 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.data));
2426 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.data_size));
2427 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
2428 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.value_length));
2429 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, *r->out.value_length));
2431 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.data_size));
2432 if (r->out.data_size) {
2433 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.data_size));
2435 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.value_length));
2436 if (r->out.value_length) {
2437 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.value_length));
2439 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
2441 return NT_STATUS_OK;
2444 NTSTATUS ndr_pull_winreg_QueryValue(struct ndr_pull *ndr, int flags, struct winreg_QueryValue *r)
2448 uint32_t _ptr_data_size;
2449 uint32_t _ptr_value_length;
2450 TALLOC_CTX *_mem_save_handle_0;
2451 TALLOC_CTX *_mem_save_type_0;
2452 TALLOC_CTX *_mem_save_data_0;
2453 TALLOC_CTX *_mem_save_data_size_0;
2454 TALLOC_CTX *_mem_save_value_length_0;
2455 if (flags & NDR_IN) {
2456 ZERO_STRUCT(r->out);
2458 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2459 NDR_PULL_ALLOC(ndr, r->in.handle);
2461 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
2462 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
2463 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
2464 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
2465 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.value_name));
2466 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_type));
2468 NDR_PULL_ALLOC(ndr, r->in.type);
2473 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
2474 NDR_PULL_SET_MEM_CTX(ndr, r->in.type, 0);
2475 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->in.type));
2476 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, 0);
2478 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
2480 NDR_PULL_ALLOC(ndr, r->in.data);
2485 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
2486 NDR_PULL_SET_MEM_CTX(ndr, r->in.data, 0);
2487 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.data));
2488 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.data));
2489 if (ndr_get_array_length(ndr, &r->in.data) > ndr_get_array_size(ndr, &r->in.data)) {
2490 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));
2492 NDR_PULL_ALLOC_N(ndr, r->in.data, ndr_get_array_size(ndr, &r->in.data));
2493 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.data, ndr_get_array_length(ndr, &r->in.data)));
2494 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
2496 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_size));
2497 if (_ptr_data_size) {
2498 NDR_PULL_ALLOC(ndr, r->in.data_size);
2500 r->in.data_size = NULL;
2502 if (r->in.data_size) {
2503 _mem_save_data_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
2504 NDR_PULL_SET_MEM_CTX(ndr, r->in.data_size, 0);
2505 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.data_size));
2506 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_size_0, 0);
2508 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_value_length));
2509 if (_ptr_value_length) {
2510 NDR_PULL_ALLOC(ndr, r->in.value_length);
2512 r->in.value_length = NULL;
2514 if (r->in.value_length) {
2515 _mem_save_value_length_0 = NDR_PULL_GET_MEM_CTX(ndr);
2516 NDR_PULL_SET_MEM_CTX(ndr, r->in.value_length, 0);
2517 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.value_length));
2518 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_length_0, 0);
2521 if (r->in.data_size == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2522 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.data, *r->in.data_size));
2525 if (r->in.value_length == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2526 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->in.data, *r->in.value_length));
2529 if (flags & NDR_OUT) {
2530 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_type));
2532 NDR_PULL_ALLOC(ndr, r->out.type);
2537 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
2538 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, 0);
2539 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
2540 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, 0);
2542 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
2544 NDR_PULL_ALLOC(ndr, r->out.data);
2549 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
2550 NDR_PULL_SET_MEM_CTX(ndr, r->out.data, 0);
2551 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
2552 NDR_CHECK(ndr_pull_array_length(ndr, &r->out.data));
2553 if (ndr_get_array_length(ndr, &r->out.data) > ndr_get_array_size(ndr, &r->out.data)) {
2554 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));
2556 NDR_PULL_ALLOC_N(ndr, r->out.data, ndr_get_array_size(ndr, &r->out.data));
2557 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, ndr_get_array_length(ndr, &r->out.data)));
2558 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
2560 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_size));
2561 if (_ptr_data_size) {
2562 NDR_PULL_ALLOC(ndr, r->out.data_size);
2564 r->out.data_size = NULL;
2566 if (r->out.data_size) {
2567 _mem_save_data_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
2568 NDR_PULL_SET_MEM_CTX(ndr, r->out.data_size, 0);
2569 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.data_size));
2570 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_size_0, 0);
2572 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_value_length));
2573 if (_ptr_value_length) {
2574 NDR_PULL_ALLOC(ndr, r->out.value_length);
2576 r->out.value_length = NULL;
2578 if (r->out.value_length) {
2579 _mem_save_value_length_0 = NDR_PULL_GET_MEM_CTX(ndr);
2580 NDR_PULL_SET_MEM_CTX(ndr, r->out.value_length, 0);
2581 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.value_length));
2582 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_length_0, 0);
2584 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
2586 if (r->out.data_size == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2587 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, *r->out.data_size));
2590 if (r->out.value_length == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2591 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->out.data, *r->out.value_length));
2594 return NT_STATUS_OK;
2597 _PUBLIC_ void ndr_print_winreg_QueryValue(struct ndr_print *ndr, const char *name, int flags, const struct winreg_QueryValue *r)
2599 ndr_print_struct(ndr, name, "winreg_QueryValue");
2601 if (flags & NDR_SET_VALUES) {
2602 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2604 if (flags & NDR_IN) {
2605 ndr_print_struct(ndr, "in", "winreg_QueryValue");
2607 ndr_print_ptr(ndr, "handle", r->in.handle);
2609 ndr_print_policy_handle(ndr, "handle", r->in.handle);
2611 ndr_print_winreg_String(ndr, "value_name", &r->in.value_name);
2612 ndr_print_ptr(ndr, "type", r->in.type);
2615 ndr_print_winreg_Type(ndr, "type", *r->in.type);
2618 ndr_print_ptr(ndr, "data", r->in.data);
2621 ndr_print_array_uint8(ndr, "data", r->in.data, *r->in.value_length);
2624 ndr_print_ptr(ndr, "data_size", r->in.data_size);
2626 if (r->in.data_size) {
2627 ndr_print_uint32(ndr, "data_size", *r->in.data_size);
2630 ndr_print_ptr(ndr, "value_length", r->in.value_length);
2632 if (r->in.value_length) {
2633 ndr_print_uint32(ndr, "value_length", *r->in.value_length);
2638 if (flags & NDR_OUT) {
2639 ndr_print_struct(ndr, "out", "winreg_QueryValue");
2641 ndr_print_ptr(ndr, "type", r->out.type);
2644 ndr_print_winreg_Type(ndr, "type", *r->out.type);
2647 ndr_print_ptr(ndr, "data", r->out.data);
2650 ndr_print_array_uint8(ndr, "data", r->out.data, *r->out.value_length);
2653 ndr_print_ptr(ndr, "data_size", r->out.data_size);
2655 if (r->out.data_size) {
2656 ndr_print_uint32(ndr, "data_size", *r->out.data_size);
2659 ndr_print_ptr(ndr, "value_length", r->out.value_length);
2661 if (r->out.value_length) {
2662 ndr_print_uint32(ndr, "value_length", *r->out.value_length);
2665 ndr_print_WERROR(ndr, "result", r->out.result);
2671 NTSTATUS ndr_push_winreg_ReplaceKey(struct ndr_push *ndr, int flags, const struct winreg_ReplaceKey *r)
2673 if (flags & NDR_IN) {
2675 if (flags & NDR_OUT) {
2676 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
2678 return NT_STATUS_OK;
2681 NTSTATUS ndr_pull_winreg_ReplaceKey(struct ndr_pull *ndr, int flags, struct winreg_ReplaceKey *r)
2683 if (flags & NDR_IN) {
2685 if (flags & NDR_OUT) {
2686 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
2688 return NT_STATUS_OK;
2691 _PUBLIC_ void ndr_print_winreg_ReplaceKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_ReplaceKey *r)
2693 ndr_print_struct(ndr, name, "winreg_ReplaceKey");
2695 if (flags & NDR_SET_VALUES) {
2696 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2698 if (flags & NDR_IN) {
2699 ndr_print_struct(ndr, "in", "winreg_ReplaceKey");
2703 if (flags & NDR_OUT) {
2704 ndr_print_struct(ndr, "out", "winreg_ReplaceKey");
2706 ndr_print_WERROR(ndr, "result", r->out.result);
2712 NTSTATUS ndr_push_winreg_RestoreKey(struct ndr_push *ndr, int flags, const struct winreg_RestoreKey *r)
2714 if (flags & NDR_IN) {
2715 if (r->in.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2716 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
2717 if (r->in.filename == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2718 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.filename));
2719 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.flags));
2721 if (flags & NDR_OUT) {
2722 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
2724 return NT_STATUS_OK;
2727 NTSTATUS ndr_pull_winreg_RestoreKey(struct ndr_pull *ndr, int flags, struct winreg_RestoreKey *r)
2729 TALLOC_CTX *_mem_save_handle_0;
2730 TALLOC_CTX *_mem_save_filename_0;
2731 if (flags & NDR_IN) {
2732 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2733 NDR_PULL_ALLOC(ndr, r->in.handle);
2735 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
2736 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
2737 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
2738 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
2739 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2740 NDR_PULL_ALLOC(ndr, r->in.filename);
2742 _mem_save_filename_0 = NDR_PULL_GET_MEM_CTX(ndr);
2743 NDR_PULL_SET_MEM_CTX(ndr, r->in.filename, LIBNDR_FLAG_REF_ALLOC);
2744 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.filename));
2745 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_filename_0, LIBNDR_FLAG_REF_ALLOC);
2746 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.flags));
2748 if (flags & NDR_OUT) {
2749 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
2751 return NT_STATUS_OK;
2754 _PUBLIC_ void ndr_print_winreg_RestoreKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_RestoreKey *r)
2756 ndr_print_struct(ndr, name, "winreg_RestoreKey");
2758 if (flags & NDR_SET_VALUES) {
2759 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2761 if (flags & NDR_IN) {
2762 ndr_print_struct(ndr, "in", "winreg_RestoreKey");
2764 ndr_print_ptr(ndr, "handle", r->in.handle);
2766 ndr_print_policy_handle(ndr, "handle", r->in.handle);
2768 ndr_print_ptr(ndr, "filename", r->in.filename);
2770 ndr_print_winreg_String(ndr, "filename", r->in.filename);
2772 ndr_print_uint32(ndr, "flags", r->in.flags);
2775 if (flags & NDR_OUT) {
2776 ndr_print_struct(ndr, "out", "winreg_RestoreKey");
2778 ndr_print_WERROR(ndr, "result", r->out.result);
2784 NTSTATUS ndr_push_winreg_SaveKey(struct ndr_push *ndr, int flags, const struct winreg_SaveKey *r)
2786 if (flags & NDR_IN) {
2787 if (r->in.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2788 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
2789 if (r->in.filename == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2790 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.filename));
2791 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.sec_attrib));
2792 if (r->in.sec_attrib) {
2793 NDR_CHECK(ndr_push_KeySecurityAttribute(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sec_attrib));
2796 if (flags & NDR_OUT) {
2797 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
2799 return NT_STATUS_OK;
2802 NTSTATUS ndr_pull_winreg_SaveKey(struct ndr_pull *ndr, int flags, struct winreg_SaveKey *r)
2804 uint32_t _ptr_sec_attrib;
2805 TALLOC_CTX *_mem_save_handle_0;
2806 TALLOC_CTX *_mem_save_filename_0;
2807 TALLOC_CTX *_mem_save_sec_attrib_0;
2808 if (flags & NDR_IN) {
2809 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2810 NDR_PULL_ALLOC(ndr, r->in.handle);
2812 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
2813 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
2814 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
2815 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
2816 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2817 NDR_PULL_ALLOC(ndr, r->in.filename);
2819 _mem_save_filename_0 = NDR_PULL_GET_MEM_CTX(ndr);
2820 NDR_PULL_SET_MEM_CTX(ndr, r->in.filename, LIBNDR_FLAG_REF_ALLOC);
2821 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.filename));
2822 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_filename_0, LIBNDR_FLAG_REF_ALLOC);
2823 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sec_attrib));
2824 if (_ptr_sec_attrib) {
2825 NDR_PULL_ALLOC(ndr, r->in.sec_attrib);
2827 r->in.sec_attrib = NULL;
2829 if (r->in.sec_attrib) {
2830 _mem_save_sec_attrib_0 = NDR_PULL_GET_MEM_CTX(ndr);
2831 NDR_PULL_SET_MEM_CTX(ndr, r->in.sec_attrib, 0);
2832 NDR_CHECK(ndr_pull_KeySecurityAttribute(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sec_attrib));
2833 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sec_attrib_0, 0);
2836 if (flags & NDR_OUT) {
2837 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
2839 return NT_STATUS_OK;
2842 _PUBLIC_ void ndr_print_winreg_SaveKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_SaveKey *r)
2844 ndr_print_struct(ndr, name, "winreg_SaveKey");
2846 if (flags & NDR_SET_VALUES) {
2847 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2849 if (flags & NDR_IN) {
2850 ndr_print_struct(ndr, "in", "winreg_SaveKey");
2852 ndr_print_ptr(ndr, "handle", r->in.handle);
2854 ndr_print_policy_handle(ndr, "handle", r->in.handle);
2856 ndr_print_ptr(ndr, "filename", r->in.filename);
2858 ndr_print_winreg_String(ndr, "filename", r->in.filename);
2860 ndr_print_ptr(ndr, "sec_attrib", r->in.sec_attrib);
2862 if (r->in.sec_attrib) {
2863 ndr_print_KeySecurityAttribute(ndr, "sec_attrib", r->in.sec_attrib);
2868 if (flags & NDR_OUT) {
2869 ndr_print_struct(ndr, "out", "winreg_SaveKey");
2871 ndr_print_WERROR(ndr, "result", r->out.result);
2877 NTSTATUS ndr_push_winreg_SetKeySecurity(struct ndr_push *ndr, int flags, const struct winreg_SetKeySecurity *r)
2879 if (flags & NDR_IN) {
2880 if (r->in.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2881 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
2882 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
2883 if (r->in.sd == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2884 NDR_CHECK(ndr_push_KeySecurityData(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sd));
2886 if (flags & NDR_OUT) {
2887 if (r->out.sd == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2888 NDR_CHECK(ndr_push_KeySecurityData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.sd));
2889 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
2891 return NT_STATUS_OK;
2894 NTSTATUS ndr_pull_winreg_SetKeySecurity(struct ndr_pull *ndr, int flags, struct winreg_SetKeySecurity *r)
2896 TALLOC_CTX *_mem_save_handle_0;
2897 TALLOC_CTX *_mem_save_sd_0;
2898 if (flags & NDR_IN) {
2899 ZERO_STRUCT(r->out);
2901 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2902 NDR_PULL_ALLOC(ndr, r->in.handle);
2904 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
2905 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
2906 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
2907 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
2908 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
2909 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2910 NDR_PULL_ALLOC(ndr, r->in.sd);
2912 _mem_save_sd_0 = NDR_PULL_GET_MEM_CTX(ndr);
2913 NDR_PULL_SET_MEM_CTX(ndr, r->in.sd, LIBNDR_FLAG_REF_ALLOC);
2914 NDR_CHECK(ndr_pull_KeySecurityData(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sd));
2915 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sd_0, LIBNDR_FLAG_REF_ALLOC);
2916 NDR_PULL_ALLOC(ndr, r->out.sd);
2917 *r->out.sd = *r->in.sd;
2919 if (flags & NDR_OUT) {
2920 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2921 NDR_PULL_ALLOC(ndr, r->out.sd);
2923 _mem_save_sd_0 = NDR_PULL_GET_MEM_CTX(ndr);
2924 NDR_PULL_SET_MEM_CTX(ndr, r->out.sd, LIBNDR_FLAG_REF_ALLOC);
2925 NDR_CHECK(ndr_pull_KeySecurityData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.sd));
2926 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sd_0, LIBNDR_FLAG_REF_ALLOC);
2927 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
2929 return NT_STATUS_OK;
2932 _PUBLIC_ void ndr_print_winreg_SetKeySecurity(struct ndr_print *ndr, const char *name, int flags, const struct winreg_SetKeySecurity *r)
2934 ndr_print_struct(ndr, name, "winreg_SetKeySecurity");
2936 if (flags & NDR_SET_VALUES) {
2937 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2939 if (flags & NDR_IN) {
2940 ndr_print_struct(ndr, "in", "winreg_SetKeySecurity");
2942 ndr_print_ptr(ndr, "handle", r->in.handle);
2944 ndr_print_policy_handle(ndr, "handle", r->in.handle);
2946 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
2947 ndr_print_ptr(ndr, "sd", r->in.sd);
2949 ndr_print_KeySecurityData(ndr, "sd", r->in.sd);
2953 if (flags & NDR_OUT) {
2954 ndr_print_struct(ndr, "out", "winreg_SetKeySecurity");
2956 ndr_print_ptr(ndr, "sd", r->out.sd);
2958 ndr_print_KeySecurityData(ndr, "sd", r->out.sd);
2960 ndr_print_WERROR(ndr, "result", r->out.result);
2966 NTSTATUS ndr_push_winreg_SetValue(struct ndr_push *ndr, int flags, const struct winreg_SetValue *r)
2968 if (flags & NDR_IN) {
2969 if (r->in.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2970 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
2971 NDR_CHECK(ndr_push_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.name));
2972 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
2973 if (r->in.data == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
2974 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.size));
2975 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.data, r->in.size));
2976 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.size));
2978 if (flags & NDR_OUT) {
2979 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
2981 return NT_STATUS_OK;
2984 NTSTATUS ndr_pull_winreg_SetValue(struct ndr_pull *ndr, int flags, struct winreg_SetValue *r)
2986 TALLOC_CTX *_mem_save_handle_0;
2987 if (flags & NDR_IN) {
2988 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2989 NDR_PULL_ALLOC(ndr, r->in.handle);
2991 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
2992 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
2993 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
2994 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
2995 NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.name));
2996 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
2997 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.data));
2998 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2999 NDR_PULL_ALLOC_N(ndr, r->in.data, ndr_get_array_size(ndr, &r->in.data));
3001 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.data, ndr_get_array_size(ndr, &r->in.data)));
3002 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.size));
3004 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.data, r->in.size));
3007 if (flags & NDR_OUT) {
3008 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3010 return NT_STATUS_OK;
3013 _PUBLIC_ void ndr_print_winreg_SetValue(struct ndr_print *ndr, const char *name, int flags, const struct winreg_SetValue *r)
3015 ndr_print_struct(ndr, name, "winreg_SetValue");
3017 if (flags & NDR_SET_VALUES) {
3018 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3020 if (flags & NDR_IN) {
3021 ndr_print_struct(ndr, "in", "winreg_SetValue");
3023 ndr_print_ptr(ndr, "handle", r->in.handle);
3025 ndr_print_policy_handle(ndr, "handle", r->in.handle);
3027 ndr_print_winreg_String(ndr, "name", &r->in.name);
3028 ndr_print_winreg_Type(ndr, "type", r->in.type);
3029 ndr_print_ptr(ndr, "data", r->in.data);
3031 ndr_print_array_uint8(ndr, "data", r->in.data, r->in.size);
3033 ndr_print_uint32(ndr, "size", r->in.size);
3036 if (flags & NDR_OUT) {
3037 ndr_print_struct(ndr, "out", "winreg_SetValue");
3039 ndr_print_WERROR(ndr, "result", r->out.result);
3045 NTSTATUS ndr_push_winreg_UnLoadKey(struct ndr_push *ndr, int flags, const struct winreg_UnLoadKey *r)
3047 if (flags & NDR_IN) {
3049 if (flags & NDR_OUT) {
3050 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3052 return NT_STATUS_OK;
3055 NTSTATUS ndr_pull_winreg_UnLoadKey(struct ndr_pull *ndr, int flags, struct winreg_UnLoadKey *r)
3057 if (flags & NDR_IN) {
3059 if (flags & NDR_OUT) {
3060 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3062 return NT_STATUS_OK;
3065 _PUBLIC_ void ndr_print_winreg_UnLoadKey(struct ndr_print *ndr, const char *name, int flags, const struct winreg_UnLoadKey *r)
3067 ndr_print_struct(ndr, name, "winreg_UnLoadKey");
3069 if (flags & NDR_SET_VALUES) {
3070 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3072 if (flags & NDR_IN) {
3073 ndr_print_struct(ndr, "in", "winreg_UnLoadKey");
3077 if (flags & NDR_OUT) {
3078 ndr_print_struct(ndr, "out", "winreg_UnLoadKey");
3080 ndr_print_WERROR(ndr, "result", r->out.result);
3086 NTSTATUS ndr_push_winreg_InitiateSystemShutdown(struct ndr_push *ndr, int flags, const struct winreg_InitiateSystemShutdown *r)
3088 if (flags & NDR_IN) {
3089 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.hostname));
3090 if (r->in.hostname) {
3091 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.hostname));
3093 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.message));
3094 if (r->in.message) {
3095 NDR_CHECK(ndr_push_initshutdown_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.message));
3097 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.timeout));
3098 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->in.force_apps));
3099 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->in.reboot));
3101 if (flags & NDR_OUT) {
3102 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3104 return NT_STATUS_OK;
3107 NTSTATUS ndr_pull_winreg_InitiateSystemShutdown(struct ndr_pull *ndr, int flags, struct winreg_InitiateSystemShutdown *r)
3109 uint32_t _ptr_hostname;
3110 uint32_t _ptr_message;
3111 TALLOC_CTX *_mem_save_hostname_0;
3112 TALLOC_CTX *_mem_save_message_0;
3113 if (flags & NDR_IN) {
3114 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hostname));
3115 if (_ptr_hostname) {
3116 NDR_PULL_ALLOC(ndr, r->in.hostname);
3118 r->in.hostname = NULL;
3120 if (r->in.hostname) {
3121 _mem_save_hostname_0 = NDR_PULL_GET_MEM_CTX(ndr);
3122 NDR_PULL_SET_MEM_CTX(ndr, r->in.hostname, 0);
3123 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.hostname));
3124 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hostname_0, 0);
3126 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_message));
3128 NDR_PULL_ALLOC(ndr, r->in.message);
3130 r->in.message = NULL;
3132 if (r->in.message) {
3133 _mem_save_message_0 = NDR_PULL_GET_MEM_CTX(ndr);
3134 NDR_PULL_SET_MEM_CTX(ndr, r->in.message, 0);
3135 NDR_CHECK(ndr_pull_initshutdown_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.message));
3136 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_message_0, 0);
3138 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.timeout));
3139 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->in.force_apps));
3140 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->in.reboot));
3142 if (flags & NDR_OUT) {
3143 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3145 return NT_STATUS_OK;
3148 _PUBLIC_ void ndr_print_winreg_InitiateSystemShutdown(struct ndr_print *ndr, const char *name, int flags, const struct winreg_InitiateSystemShutdown *r)
3150 ndr_print_struct(ndr, name, "winreg_InitiateSystemShutdown");
3152 if (flags & NDR_SET_VALUES) {
3153 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3155 if (flags & NDR_IN) {
3156 ndr_print_struct(ndr, "in", "winreg_InitiateSystemShutdown");
3158 ndr_print_ptr(ndr, "hostname", r->in.hostname);
3160 if (r->in.hostname) {
3161 ndr_print_uint16(ndr, "hostname", *r->in.hostname);
3164 ndr_print_ptr(ndr, "message", r->in.message);
3166 if (r->in.message) {
3167 ndr_print_initshutdown_String(ndr, "message", r->in.message);
3170 ndr_print_uint32(ndr, "timeout", r->in.timeout);
3171 ndr_print_uint8(ndr, "force_apps", r->in.force_apps);
3172 ndr_print_uint8(ndr, "reboot", r->in.reboot);
3175 if (flags & NDR_OUT) {
3176 ndr_print_struct(ndr, "out", "winreg_InitiateSystemShutdown");
3178 ndr_print_WERROR(ndr, "result", r->out.result);
3184 NTSTATUS ndr_push_winreg_AbortSystemShutdown(struct ndr_push *ndr, int flags, const struct winreg_AbortSystemShutdown *r)
3186 if (flags & NDR_IN) {
3187 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
3189 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.server));
3192 if (flags & NDR_OUT) {
3193 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3195 return NT_STATUS_OK;
3198 NTSTATUS ndr_pull_winreg_AbortSystemShutdown(struct ndr_pull *ndr, int flags, struct winreg_AbortSystemShutdown *r)
3200 uint32_t _ptr_server;
3201 TALLOC_CTX *_mem_save_server_0;
3202 if (flags & NDR_IN) {
3203 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
3205 NDR_PULL_ALLOC(ndr, r->in.server);
3207 r->in.server = NULL;
3210 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
3211 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
3212 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.server));
3213 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
3216 if (flags & NDR_OUT) {
3217 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3219 return NT_STATUS_OK;
3222 _PUBLIC_ void ndr_print_winreg_AbortSystemShutdown(struct ndr_print *ndr, const char *name, int flags, const struct winreg_AbortSystemShutdown *r)
3224 ndr_print_struct(ndr, name, "winreg_AbortSystemShutdown");
3226 if (flags & NDR_SET_VALUES) {
3227 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3229 if (flags & NDR_IN) {
3230 ndr_print_struct(ndr, "in", "winreg_AbortSystemShutdown");
3232 ndr_print_ptr(ndr, "server", r->in.server);
3235 ndr_print_uint16(ndr, "server", *r->in.server);
3240 if (flags & NDR_OUT) {
3241 ndr_print_struct(ndr, "out", "winreg_AbortSystemShutdown");
3243 ndr_print_WERROR(ndr, "result", r->out.result);
3249 NTSTATUS ndr_push_winreg_GetVersion(struct ndr_push *ndr, int flags, const struct winreg_GetVersion *r)
3251 if (flags & NDR_IN) {
3252 if (r->in.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
3253 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
3255 if (flags & NDR_OUT) {
3256 if (r->out.version == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
3257 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.version));
3258 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3260 return NT_STATUS_OK;
3263 NTSTATUS ndr_pull_winreg_GetVersion(struct ndr_pull *ndr, int flags, struct winreg_GetVersion *r)
3265 TALLOC_CTX *_mem_save_handle_0;
3266 TALLOC_CTX *_mem_save_version_0;
3267 if (flags & NDR_IN) {
3268 ZERO_STRUCT(r->out);
3270 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3271 NDR_PULL_ALLOC(ndr, r->in.handle);
3273 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
3274 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
3275 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
3276 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
3277 NDR_PULL_ALLOC(ndr, r->out.version);
3278 ZERO_STRUCTP(r->out.version);
3280 if (flags & NDR_OUT) {
3281 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3282 NDR_PULL_ALLOC(ndr, r->out.version);
3284 _mem_save_version_0 = NDR_PULL_GET_MEM_CTX(ndr);
3285 NDR_PULL_SET_MEM_CTX(ndr, r->out.version, LIBNDR_FLAG_REF_ALLOC);
3286 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.version));
3287 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_version_0, LIBNDR_FLAG_REF_ALLOC);
3288 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3290 return NT_STATUS_OK;
3293 _PUBLIC_ void ndr_print_winreg_GetVersion(struct ndr_print *ndr, const char *name, int flags, const struct winreg_GetVersion *r)
3295 ndr_print_struct(ndr, name, "winreg_GetVersion");
3297 if (flags & NDR_SET_VALUES) {
3298 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3300 if (flags & NDR_IN) {
3301 ndr_print_struct(ndr, "in", "winreg_GetVersion");
3303 ndr_print_ptr(ndr, "handle", r->in.handle);
3305 ndr_print_policy_handle(ndr, "handle", r->in.handle);
3309 if (flags & NDR_OUT) {
3310 ndr_print_struct(ndr, "out", "winreg_GetVersion");
3312 ndr_print_ptr(ndr, "version", r->out.version);
3314 ndr_print_uint32(ndr, "version", *r->out.version);
3316 ndr_print_WERROR(ndr, "result", r->out.result);
3322 NTSTATUS ndr_push_winreg_OpenHKCC(struct ndr_push *ndr, int flags, const struct winreg_OpenHKCC *r)
3324 if (flags & NDR_IN) {
3325 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.system_name));
3326 if (r->in.system_name) {
3327 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.system_name));
3329 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
3331 if (flags & NDR_OUT) {
3332 if (r->out.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
3333 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.handle));
3334 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3336 return NT_STATUS_OK;
3339 NTSTATUS ndr_pull_winreg_OpenHKCC(struct ndr_pull *ndr, int flags, struct winreg_OpenHKCC *r)
3341 uint32_t _ptr_system_name;
3342 TALLOC_CTX *_mem_save_system_name_0;
3343 TALLOC_CTX *_mem_save_handle_0;
3344 if (flags & NDR_IN) {
3345 ZERO_STRUCT(r->out);
3347 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_system_name));
3348 if (_ptr_system_name) {
3349 NDR_PULL_ALLOC(ndr, r->in.system_name);
3351 r->in.system_name = NULL;
3353 if (r->in.system_name) {
3354 _mem_save_system_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3355 NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0);
3356 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.system_name));
3357 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0);
3359 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
3360 NDR_PULL_ALLOC(ndr, r->out.handle);
3361 ZERO_STRUCTP(r->out.handle);
3363 if (flags & NDR_OUT) {
3364 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3365 NDR_PULL_ALLOC(ndr, r->out.handle);
3367 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
3368 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
3369 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.handle));
3370 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
3371 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3373 return NT_STATUS_OK;
3376 _PUBLIC_ void ndr_print_winreg_OpenHKCC(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenHKCC *r)
3378 ndr_print_struct(ndr, name, "winreg_OpenHKCC");
3380 if (flags & NDR_SET_VALUES) {
3381 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3383 if (flags & NDR_IN) {
3384 ndr_print_struct(ndr, "in", "winreg_OpenHKCC");
3386 ndr_print_ptr(ndr, "system_name", r->in.system_name);
3388 if (r->in.system_name) {
3389 ndr_print_uint16(ndr, "system_name", *r->in.system_name);
3392 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
3395 if (flags & NDR_OUT) {
3396 ndr_print_struct(ndr, "out", "winreg_OpenHKCC");
3398 ndr_print_ptr(ndr, "handle", r->out.handle);
3400 ndr_print_policy_handle(ndr, "handle", r->out.handle);
3402 ndr_print_WERROR(ndr, "result", r->out.result);
3408 NTSTATUS ndr_push_winreg_OpenHKDD(struct ndr_push *ndr, int flags, const struct winreg_OpenHKDD *r)
3410 if (flags & NDR_IN) {
3411 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.system_name));
3412 if (r->in.system_name) {
3413 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.system_name));
3415 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
3417 if (flags & NDR_OUT) {
3418 if (r->out.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
3419 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.handle));
3420 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3422 return NT_STATUS_OK;
3425 NTSTATUS ndr_pull_winreg_OpenHKDD(struct ndr_pull *ndr, int flags, struct winreg_OpenHKDD *r)
3427 uint32_t _ptr_system_name;
3428 TALLOC_CTX *_mem_save_system_name_0;
3429 TALLOC_CTX *_mem_save_handle_0;
3430 if (flags & NDR_IN) {
3431 ZERO_STRUCT(r->out);
3433 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_system_name));
3434 if (_ptr_system_name) {
3435 NDR_PULL_ALLOC(ndr, r->in.system_name);
3437 r->in.system_name = NULL;
3439 if (r->in.system_name) {
3440 _mem_save_system_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3441 NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0);
3442 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.system_name));
3443 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0);
3445 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
3446 NDR_PULL_ALLOC(ndr, r->out.handle);
3447 ZERO_STRUCTP(r->out.handle);
3449 if (flags & NDR_OUT) {
3450 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3451 NDR_PULL_ALLOC(ndr, r->out.handle);
3453 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
3454 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
3455 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.handle));
3456 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
3457 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3459 return NT_STATUS_OK;
3462 _PUBLIC_ void ndr_print_winreg_OpenHKDD(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenHKDD *r)
3464 ndr_print_struct(ndr, name, "winreg_OpenHKDD");
3466 if (flags & NDR_SET_VALUES) {
3467 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3469 if (flags & NDR_IN) {
3470 ndr_print_struct(ndr, "in", "winreg_OpenHKDD");
3472 ndr_print_ptr(ndr, "system_name", r->in.system_name);
3474 if (r->in.system_name) {
3475 ndr_print_uint16(ndr, "system_name", *r->in.system_name);
3478 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
3481 if (flags & NDR_OUT) {
3482 ndr_print_struct(ndr, "out", "winreg_OpenHKDD");
3484 ndr_print_ptr(ndr, "handle", r->out.handle);
3486 ndr_print_policy_handle(ndr, "handle", r->out.handle);
3488 ndr_print_WERROR(ndr, "result", r->out.result);
3494 NTSTATUS ndr_push_winreg_QueryMultipleValues(struct ndr_push *ndr, int flags, const struct winreg_QueryMultipleValues *r)
3496 uint32_t cntr_values_1;
3497 if (flags & NDR_IN) {
3498 if (r->in.key_handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
3499 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.key_handle));
3500 if (r->in.values == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
3501 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.num_values));
3502 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3503 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.num_values));
3504 for (cntr_values_1 = 0; cntr_values_1 < r->in.num_values; cntr_values_1++) {
3505 NDR_CHECK(ndr_push_QueryMultipleValue(ndr, NDR_SCALARS, &r->in.values[cntr_values_1]));
3507 for (cntr_values_1 = 0; cntr_values_1 < r->in.num_values; cntr_values_1++) {
3508 NDR_CHECK(ndr_push_QueryMultipleValue(ndr, NDR_BUFFERS, &r->in.values[cntr_values_1]));
3510 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.num_values));
3511 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
3513 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.buffer_size));
3514 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3515 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.buffer_size));
3516 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, *r->in.buffer_size));
3518 if (r->in.buffer_size == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
3519 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.buffer_size));
3521 if (flags & NDR_OUT) {
3522 if (r->out.values == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
3523 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.num_values));
3524 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3525 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.num_values));
3526 for (cntr_values_1 = 0; cntr_values_1 < r->in.num_values; cntr_values_1++) {
3527 NDR_CHECK(ndr_push_QueryMultipleValue(ndr, NDR_SCALARS, &r->out.values[cntr_values_1]));
3529 for (cntr_values_1 = 0; cntr_values_1 < r->in.num_values; cntr_values_1++) {
3530 NDR_CHECK(ndr_push_QueryMultipleValue(ndr, NDR_BUFFERS, &r->out.values[cntr_values_1]));
3532 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.buffer));
3533 if (r->out.buffer) {
3534 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.buffer_size));
3535 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3536 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.buffer_size));
3537 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, *r->out.buffer_size));
3539 if (r->out.buffer_size == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
3540 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.buffer_size));
3541 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3543 return NT_STATUS_OK;
3546 NTSTATUS ndr_pull_winreg_QueryMultipleValues(struct ndr_pull *ndr, int flags, struct winreg_QueryMultipleValues *r)
3548 uint32_t cntr_values_1;
3549 uint32_t _ptr_buffer;
3550 TALLOC_CTX *_mem_save_key_handle_0;
3551 TALLOC_CTX *_mem_save_values_1;
3552 TALLOC_CTX *_mem_save_buffer_0;
3553 TALLOC_CTX *_mem_save_buffer_size_0;
3554 if (flags & NDR_IN) {
3555 ZERO_STRUCT(r->out);
3557 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3558 NDR_PULL_ALLOC(ndr, r->in.key_handle);
3560 _mem_save_key_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
3561 NDR_PULL_SET_MEM_CTX(ndr, r->in.key_handle, LIBNDR_FLAG_REF_ALLOC);
3562 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.key_handle));
3563 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_key_handle_0, LIBNDR_FLAG_REF_ALLOC);
3564 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.values));
3565 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.values));
3566 if (ndr_get_array_length(ndr, &r->in.values) > ndr_get_array_size(ndr, &r->in.values)) {
3567 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));
3569 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3570 NDR_PULL_ALLOC_N(ndr, r->in.values, ndr_get_array_size(ndr, &r->in.values));
3572 memcpy(r->out.values,r->in.values,ndr_get_array_size(ndr, &r->in.values) * sizeof(*r->in.values));
3573 _mem_save_values_1 = NDR_PULL_GET_MEM_CTX(ndr);
3574 NDR_PULL_SET_MEM_CTX(ndr, r->in.values, 0);
3575 for (cntr_values_1 = 0; cntr_values_1 < r->in.num_values; cntr_values_1++) {
3576 NDR_CHECK(ndr_pull_QueryMultipleValue(ndr, NDR_SCALARS, &r->in.values[cntr_values_1]));
3578 for (cntr_values_1 = 0; cntr_values_1 < r->in.num_values; cntr_values_1++) {
3579 NDR_CHECK(ndr_pull_QueryMultipleValue(ndr, NDR_BUFFERS, &r->in.values[cntr_values_1]));
3581 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_values_1, 0);
3582 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.num_values));
3583 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
3585 NDR_PULL_ALLOC(ndr, r->in.buffer);
3587 r->in.buffer = NULL;
3590 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
3591 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
3592 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
3593 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.buffer));
3594 if (ndr_get_array_length(ndr, &r->in.buffer) > ndr_get_array_size(ndr, &r->in.buffer)) {
3595 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));
3597 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
3598 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_length(ndr, &r->in.buffer)));
3599 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
3601 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3602 NDR_PULL_ALLOC(ndr, r->in.buffer_size);
3604 _mem_save_buffer_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
3605 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer_size, LIBNDR_FLAG_REF_ALLOC);
3606 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.buffer_size));
3607 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_size_0, LIBNDR_FLAG_REF_ALLOC);
3608 NDR_PULL_ALLOC_N(ndr, r->out.values, r->in.num_values);
3609 memcpy(r->out.values, r->in.values, r->in.num_values * sizeof(*r->in.values));
3610 NDR_PULL_ALLOC(ndr, r->out.buffer_size);
3611 *r->out.buffer_size = *r->in.buffer_size;
3613 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.values, r->in.num_values));
3616 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->in.values, r->in.num_values));
3619 if (r->in.buffer_size == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
3620 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, *r->in.buffer_size));
3623 if (r->in.buffer_size == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
3624 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->in.buffer, *r->in.buffer_size));
3627 if (flags & NDR_OUT) {
3628 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.values));
3629 NDR_CHECK(ndr_pull_array_length(ndr, &r->out.values));
3630 if (ndr_get_array_length(ndr, &r->out.values) > ndr_get_array_size(ndr, &r->out.values)) {
3631 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));
3633 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3634 NDR_PULL_ALLOC_N(ndr, r->out.values, ndr_get_array_size(ndr, &r->out.values));
3636 memcpy(r->out.values,r->in.values,ndr_get_array_size(ndr, &r->out.values) * sizeof(*r->in.values));
3637 _mem_save_values_1 = NDR_PULL_GET_MEM_CTX(ndr);
3638 NDR_PULL_SET_MEM_CTX(ndr, r->out.values, 0);
3639 for (cntr_values_1 = 0; cntr_values_1 < r->in.num_values; cntr_values_1++) {
3640 NDR_CHECK(ndr_pull_QueryMultipleValue(ndr, NDR_SCALARS, &r->out.values[cntr_values_1]));
3642 for (cntr_values_1 = 0; cntr_values_1 < r->in.num_values; cntr_values_1++) {
3643 NDR_CHECK(ndr_pull_QueryMultipleValue(ndr, NDR_BUFFERS, &r->out.values[cntr_values_1]));
3645 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_values_1, 0);
3646 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
3648 NDR_PULL_ALLOC(ndr, r->out.buffer);
3650 r->out.buffer = NULL;
3652 if (r->out.buffer) {
3653 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
3654 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, 0);
3655 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
3656 NDR_CHECK(ndr_pull_array_length(ndr, &r->out.buffer));
3657 if (ndr_get_array_length(ndr, &r->out.buffer) > ndr_get_array_size(ndr, &r->out.buffer)) {
3658 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));
3660 NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
3661 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_length(ndr, &r->out.buffer)));
3662 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
3664 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3665 NDR_PULL_ALLOC(ndr, r->out.buffer_size);
3667 _mem_save_buffer_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
3668 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer_size, LIBNDR_FLAG_REF_ALLOC);
3669 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.buffer_size));
3670 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_size_0, LIBNDR_FLAG_REF_ALLOC);
3671 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3672 if (r->out.values) {
3673 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.values, r->in.num_values));
3675 if (r->out.values) {
3676 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->out.values, r->in.num_values));
3678 if (r->out.buffer) {
3679 if (r->out.buffer_size == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
3680 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, *r->out.buffer_size));
3682 if (r->out.buffer) {
3683 if (r->out.buffer_size == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
3684 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->out.buffer, *r->out.buffer_size));
3687 return NT_STATUS_OK;
3690 _PUBLIC_ void ndr_print_winreg_QueryMultipleValues(struct ndr_print *ndr, const char *name, int flags, const struct winreg_QueryMultipleValues *r)
3692 uint32_t cntr_values_1;
3693 ndr_print_struct(ndr, name, "winreg_QueryMultipleValues");
3695 if (flags & NDR_SET_VALUES) {
3696 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3698 if (flags & NDR_IN) {
3699 ndr_print_struct(ndr, "in", "winreg_QueryMultipleValues");
3701 ndr_print_ptr(ndr, "key_handle", r->in.key_handle);
3703 ndr_print_policy_handle(ndr, "key_handle", r->in.key_handle);
3705 ndr_print_ptr(ndr, "values", r->in.values);
3707 ndr->print(ndr, "%s: ARRAY(%d)", "values", r->in.num_values);
3709 for (cntr_values_1=0;cntr_values_1<r->in.num_values;cntr_values_1++) {
3711 asprintf(&idx_1, "[%d]", cntr_values_1);
3713 ndr_print_QueryMultipleValue(ndr, "values", &r->in.values[cntr_values_1]);
3719 ndr_print_uint32(ndr, "num_values", r->in.num_values);
3720 ndr_print_ptr(ndr, "buffer", r->in.buffer);
3723 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, *r->in.buffer_size);
3726 ndr_print_ptr(ndr, "buffer_size", r->in.buffer_size);
3728 ndr_print_uint32(ndr, "buffer_size", *r->in.buffer_size);
3732 if (flags & NDR_OUT) {
3733 ndr_print_struct(ndr, "out", "winreg_QueryMultipleValues");
3735 ndr_print_ptr(ndr, "values", r->out.values);
3737 ndr->print(ndr, "%s: ARRAY(%d)", "values", r->in.num_values);
3739 for (cntr_values_1=0;cntr_values_1<r->in.num_values;cntr_values_1++) {
3741 asprintf(&idx_1, "[%d]", cntr_values_1);
3743 ndr_print_QueryMultipleValue(ndr, "values", &r->out.values[cntr_values_1]);
3749 ndr_print_ptr(ndr, "buffer", r->out.buffer);
3751 if (r->out.buffer) {
3752 ndr_print_array_uint8(ndr, "buffer", r->out.buffer, *r->out.buffer_size);
3755 ndr_print_ptr(ndr, "buffer_size", r->out.buffer_size);
3757 ndr_print_uint32(ndr, "buffer_size", *r->out.buffer_size);
3759 ndr_print_WERROR(ndr, "result", r->out.result);
3765 NTSTATUS ndr_push_winreg_InitiateSystemShutdownEx(struct ndr_push *ndr, int flags, const struct winreg_InitiateSystemShutdownEx *r)
3767 if (flags & NDR_IN) {
3768 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.hostname));
3769 if (r->in.hostname) {
3770 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.hostname));
3772 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.message));
3773 if (r->in.message) {
3774 NDR_CHECK(ndr_push_initshutdown_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.message));
3776 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.timeout));
3777 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->in.force_apps));
3778 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->in.reboot));
3779 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.reason));
3781 if (flags & NDR_OUT) {
3782 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3784 return NT_STATUS_OK;
3787 NTSTATUS ndr_pull_winreg_InitiateSystemShutdownEx(struct ndr_pull *ndr, int flags, struct winreg_InitiateSystemShutdownEx *r)
3789 uint32_t _ptr_hostname;
3790 uint32_t _ptr_message;
3791 TALLOC_CTX *_mem_save_hostname_0;
3792 TALLOC_CTX *_mem_save_message_0;
3793 if (flags & NDR_IN) {
3794 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hostname));
3795 if (_ptr_hostname) {
3796 NDR_PULL_ALLOC(ndr, r->in.hostname);
3798 r->in.hostname = NULL;
3800 if (r->in.hostname) {
3801 _mem_save_hostname_0 = NDR_PULL_GET_MEM_CTX(ndr);
3802 NDR_PULL_SET_MEM_CTX(ndr, r->in.hostname, 0);
3803 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.hostname));
3804 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hostname_0, 0);
3806 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_message));
3808 NDR_PULL_ALLOC(ndr, r->in.message);
3810 r->in.message = NULL;
3812 if (r->in.message) {
3813 _mem_save_message_0 = NDR_PULL_GET_MEM_CTX(ndr);
3814 NDR_PULL_SET_MEM_CTX(ndr, r->in.message, 0);
3815 NDR_CHECK(ndr_pull_initshutdown_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.message));
3816 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_message_0, 0);
3818 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.timeout));
3819 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->in.force_apps));
3820 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->in.reboot));
3821 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.reason));
3823 if (flags & NDR_OUT) {
3824 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3826 return NT_STATUS_OK;
3829 _PUBLIC_ void ndr_print_winreg_InitiateSystemShutdownEx(struct ndr_print *ndr, const char *name, int flags, const struct winreg_InitiateSystemShutdownEx *r)
3831 ndr_print_struct(ndr, name, "winreg_InitiateSystemShutdownEx");
3833 if (flags & NDR_SET_VALUES) {
3834 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3836 if (flags & NDR_IN) {
3837 ndr_print_struct(ndr, "in", "winreg_InitiateSystemShutdownEx");
3839 ndr_print_ptr(ndr, "hostname", r->in.hostname);
3841 if (r->in.hostname) {
3842 ndr_print_uint16(ndr, "hostname", *r->in.hostname);
3845 ndr_print_ptr(ndr, "message", r->in.message);
3847 if (r->in.message) {
3848 ndr_print_initshutdown_String(ndr, "message", r->in.message);
3851 ndr_print_uint32(ndr, "timeout", r->in.timeout);
3852 ndr_print_uint8(ndr, "force_apps", r->in.force_apps);
3853 ndr_print_uint8(ndr, "reboot", r->in.reboot);
3854 ndr_print_uint32(ndr, "reason", r->in.reason);
3857 if (flags & NDR_OUT) {
3858 ndr_print_struct(ndr, "out", "winreg_InitiateSystemShutdownEx");
3860 ndr_print_WERROR(ndr, "result", r->out.result);
3866 NTSTATUS ndr_push_winreg_SaveKeyEx(struct ndr_push *ndr, int flags, const struct winreg_SaveKeyEx *r)
3868 if (flags & NDR_IN) {
3870 if (flags & NDR_OUT) {
3871 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3873 return NT_STATUS_OK;
3876 NTSTATUS ndr_pull_winreg_SaveKeyEx(struct ndr_pull *ndr, int flags, struct winreg_SaveKeyEx *r)
3878 if (flags & NDR_IN) {
3880 if (flags & NDR_OUT) {
3881 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3883 return NT_STATUS_OK;
3886 _PUBLIC_ void ndr_print_winreg_SaveKeyEx(struct ndr_print *ndr, const char *name, int flags, const struct winreg_SaveKeyEx *r)
3888 ndr_print_struct(ndr, name, "winreg_SaveKeyEx");
3890 if (flags & NDR_SET_VALUES) {
3891 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3893 if (flags & NDR_IN) {
3894 ndr_print_struct(ndr, "in", "winreg_SaveKeyEx");
3898 if (flags & NDR_OUT) {
3899 ndr_print_struct(ndr, "out", "winreg_SaveKeyEx");
3901 ndr_print_WERROR(ndr, "result", r->out.result);
3907 NTSTATUS ndr_push_winreg_OpenHKPT(struct ndr_push *ndr, int flags, const struct winreg_OpenHKPT *r)
3909 if (flags & NDR_IN) {
3910 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.system_name));
3911 if (r->in.system_name) {
3912 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.system_name));
3914 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
3916 if (flags & NDR_OUT) {
3917 if (r->out.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
3918 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.handle));
3919 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
3921 return NT_STATUS_OK;
3924 NTSTATUS ndr_pull_winreg_OpenHKPT(struct ndr_pull *ndr, int flags, struct winreg_OpenHKPT *r)
3926 uint32_t _ptr_system_name;
3927 TALLOC_CTX *_mem_save_system_name_0;
3928 TALLOC_CTX *_mem_save_handle_0;
3929 if (flags & NDR_IN) {
3930 ZERO_STRUCT(r->out);
3932 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_system_name));
3933 if (_ptr_system_name) {
3934 NDR_PULL_ALLOC(ndr, r->in.system_name);
3936 r->in.system_name = NULL;
3938 if (r->in.system_name) {
3939 _mem_save_system_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3940 NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0);
3941 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.system_name));
3942 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0);
3944 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
3945 NDR_PULL_ALLOC(ndr, r->out.handle);
3946 ZERO_STRUCTP(r->out.handle);
3948 if (flags & NDR_OUT) {
3949 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
3950 NDR_PULL_ALLOC(ndr, r->out.handle);
3952 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
3953 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
3954 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.handle));
3955 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
3956 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
3958 return NT_STATUS_OK;
3961 _PUBLIC_ void ndr_print_winreg_OpenHKPT(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenHKPT *r)
3963 ndr_print_struct(ndr, name, "winreg_OpenHKPT");
3965 if (flags & NDR_SET_VALUES) {
3966 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3968 if (flags & NDR_IN) {
3969 ndr_print_struct(ndr, "in", "winreg_OpenHKPT");
3971 ndr_print_ptr(ndr, "system_name", r->in.system_name);
3973 if (r->in.system_name) {
3974 ndr_print_uint16(ndr, "system_name", *r->in.system_name);
3977 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
3980 if (flags & NDR_OUT) {
3981 ndr_print_struct(ndr, "out", "winreg_OpenHKPT");
3983 ndr_print_ptr(ndr, "handle", r->out.handle);
3985 ndr_print_policy_handle(ndr, "handle", r->out.handle);
3987 ndr_print_WERROR(ndr, "result", r->out.result);
3993 NTSTATUS ndr_push_winreg_OpenHKPN(struct ndr_push *ndr, int flags, const struct winreg_OpenHKPN *r)
3995 if (flags & NDR_IN) {
3996 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.system_name));
3997 if (r->in.system_name) {
3998 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.system_name));
4000 NDR_CHECK(ndr_push_winreg_AccessMask(ndr, NDR_SCALARS, r->in.access_mask));
4002 if (flags & NDR_OUT) {
4003 if (r->out.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
4004 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.handle));
4005 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
4007 return NT_STATUS_OK;
4010 NTSTATUS ndr_pull_winreg_OpenHKPN(struct ndr_pull *ndr, int flags, struct winreg_OpenHKPN *r)
4012 uint32_t _ptr_system_name;
4013 TALLOC_CTX *_mem_save_system_name_0;
4014 TALLOC_CTX *_mem_save_handle_0;
4015 if (flags & NDR_IN) {
4016 ZERO_STRUCT(r->out);
4018 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_system_name));
4019 if (_ptr_system_name) {
4020 NDR_PULL_ALLOC(ndr, r->in.system_name);
4022 r->in.system_name = NULL;
4024 if (r->in.system_name) {
4025 _mem_save_system_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4026 NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0);
4027 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.system_name));
4028 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0);
4030 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
4031 NDR_PULL_ALLOC(ndr, r->out.handle);
4032 ZERO_STRUCTP(r->out.handle);
4034 if (flags & NDR_OUT) {
4035 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
4036 NDR_PULL_ALLOC(ndr, r->out.handle);
4038 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
4039 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
4040 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.handle));
4041 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
4042 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
4044 return NT_STATUS_OK;
4047 _PUBLIC_ void ndr_print_winreg_OpenHKPN(struct ndr_print *ndr, const char *name, int flags, const struct winreg_OpenHKPN *r)
4049 ndr_print_struct(ndr, name, "winreg_OpenHKPN");
4051 if (flags & NDR_SET_VALUES) {
4052 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
4054 if (flags & NDR_IN) {
4055 ndr_print_struct(ndr, "in", "winreg_OpenHKPN");
4057 ndr_print_ptr(ndr, "system_name", r->in.system_name);
4059 if (r->in.system_name) {
4060 ndr_print_uint16(ndr, "system_name", *r->in.system_name);
4063 ndr_print_winreg_AccessMask(ndr, "access_mask", r->in.access_mask);
4066 if (flags & NDR_OUT) {
4067 ndr_print_struct(ndr, "out", "winreg_OpenHKPN");
4069 ndr_print_ptr(ndr, "handle", r->out.handle);
4071 ndr_print_policy_handle(ndr, "handle", r->out.handle);
4073 ndr_print_WERROR(ndr, "result", r->out.result);
4079 NTSTATUS ndr_push_winreg_QueryMultipleValues2(struct ndr_push *ndr, int flags, const struct winreg_QueryMultipleValues2 *r)
4081 if (flags & NDR_IN) {
4083 if (flags & NDR_OUT) {
4084 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
4086 return NT_STATUS_OK;
4089 NTSTATUS ndr_pull_winreg_QueryMultipleValues2(struct ndr_pull *ndr, int flags, struct winreg_QueryMultipleValues2 *r)
4091 if (flags & NDR_IN) {
4093 if (flags & NDR_OUT) {
4094 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
4096 return NT_STATUS_OK;
4099 _PUBLIC_ void ndr_print_winreg_QueryMultipleValues2(struct ndr_print *ndr, const char *name, int flags, const struct winreg_QueryMultipleValues2 *r)
4101 ndr_print_struct(ndr, name, "winreg_QueryMultipleValues2");
4103 if (flags & NDR_SET_VALUES) {
4104 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
4106 if (flags & NDR_IN) {
4107 ndr_print_struct(ndr, "in", "winreg_QueryMultipleValues2");
4111 if (flags & NDR_OUT) {
4112 ndr_print_struct(ndr, "out", "winreg_QueryMultipleValues2");
4114 ndr_print_WERROR(ndr, "result", r->out.result);
4120 const struct dcerpc_interface_call winreg_calls[] = {
4123 sizeof(struct winreg_OpenHKCR),
4124 (ndr_push_flags_fn_t) ndr_push_winreg_OpenHKCR,
4125 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenHKCR,
4126 (ndr_print_function_t) ndr_print_winreg_OpenHKCR,
4131 sizeof(struct winreg_OpenHKCU),
4132 (ndr_push_flags_fn_t) ndr_push_winreg_OpenHKCU,
4133 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenHKCU,
4134 (ndr_print_function_t) ndr_print_winreg_OpenHKCU,
4139 sizeof(struct winreg_OpenHKLM),
4140 (ndr_push_flags_fn_t) ndr_push_winreg_OpenHKLM,
4141 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenHKLM,
4142 (ndr_print_function_t) ndr_print_winreg_OpenHKLM,
4147 sizeof(struct winreg_OpenHKPD),
4148 (ndr_push_flags_fn_t) ndr_push_winreg_OpenHKPD,
4149 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenHKPD,
4150 (ndr_print_function_t) ndr_print_winreg_OpenHKPD,
4155 sizeof(struct winreg_OpenHKU),
4156 (ndr_push_flags_fn_t) ndr_push_winreg_OpenHKU,
4157 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenHKU,
4158 (ndr_print_function_t) ndr_print_winreg_OpenHKU,
4163 sizeof(struct winreg_CloseKey),
4164 (ndr_push_flags_fn_t) ndr_push_winreg_CloseKey,
4165 (ndr_pull_flags_fn_t) ndr_pull_winreg_CloseKey,
4166 (ndr_print_function_t) ndr_print_winreg_CloseKey,
4171 sizeof(struct winreg_CreateKey),
4172 (ndr_push_flags_fn_t) ndr_push_winreg_CreateKey,
4173 (ndr_pull_flags_fn_t) ndr_pull_winreg_CreateKey,
4174 (ndr_print_function_t) ndr_print_winreg_CreateKey,
4179 sizeof(struct winreg_DeleteKey),
4180 (ndr_push_flags_fn_t) ndr_push_winreg_DeleteKey,
4181 (ndr_pull_flags_fn_t) ndr_pull_winreg_DeleteKey,
4182 (ndr_print_function_t) ndr_print_winreg_DeleteKey,
4186 "winreg_DeleteValue",
4187 sizeof(struct winreg_DeleteValue),
4188 (ndr_push_flags_fn_t) ndr_push_winreg_DeleteValue,
4189 (ndr_pull_flags_fn_t) ndr_pull_winreg_DeleteValue,
4190 (ndr_print_function_t) ndr_print_winreg_DeleteValue,
4195 sizeof(struct winreg_EnumKey),
4196 (ndr_push_flags_fn_t) ndr_push_winreg_EnumKey,
4197 (ndr_pull_flags_fn_t) ndr_pull_winreg_EnumKey,
4198 (ndr_print_function_t) ndr_print_winreg_EnumKey,
4203 sizeof(struct winreg_EnumValue),
4204 (ndr_push_flags_fn_t) ndr_push_winreg_EnumValue,
4205 (ndr_pull_flags_fn_t) ndr_pull_winreg_EnumValue,
4206 (ndr_print_function_t) ndr_print_winreg_EnumValue,
4211 sizeof(struct winreg_FlushKey),
4212 (ndr_push_flags_fn_t) ndr_push_winreg_FlushKey,
4213 (ndr_pull_flags_fn_t) ndr_pull_winreg_FlushKey,
4214 (ndr_print_function_t) ndr_print_winreg_FlushKey,
4218 "winreg_GetKeySecurity",
4219 sizeof(struct winreg_GetKeySecurity),
4220 (ndr_push_flags_fn_t) ndr_push_winreg_GetKeySecurity,
4221 (ndr_pull_flags_fn_t) ndr_pull_winreg_GetKeySecurity,
4222 (ndr_print_function_t) ndr_print_winreg_GetKeySecurity,
4227 sizeof(struct winreg_LoadKey),
4228 (ndr_push_flags_fn_t) ndr_push_winreg_LoadKey,
4229 (ndr_pull_flags_fn_t) ndr_pull_winreg_LoadKey,
4230 (ndr_print_function_t) ndr_print_winreg_LoadKey,
4234 "winreg_NotifyChangeKeyValue",
4235 sizeof(struct winreg_NotifyChangeKeyValue),
4236 (ndr_push_flags_fn_t) ndr_push_winreg_NotifyChangeKeyValue,
4237 (ndr_pull_flags_fn_t) ndr_pull_winreg_NotifyChangeKeyValue,
4238 (ndr_print_function_t) ndr_print_winreg_NotifyChangeKeyValue,
4243 sizeof(struct winreg_OpenKey),
4244 (ndr_push_flags_fn_t) ndr_push_winreg_OpenKey,
4245 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenKey,
4246 (ndr_print_function_t) ndr_print_winreg_OpenKey,
4250 "winreg_QueryInfoKey",
4251 sizeof(struct winreg_QueryInfoKey),
4252 (ndr_push_flags_fn_t) ndr_push_winreg_QueryInfoKey,
4253 (ndr_pull_flags_fn_t) ndr_pull_winreg_QueryInfoKey,
4254 (ndr_print_function_t) ndr_print_winreg_QueryInfoKey,
4258 "winreg_QueryValue",
4259 sizeof(struct winreg_QueryValue),
4260 (ndr_push_flags_fn_t) ndr_push_winreg_QueryValue,
4261 (ndr_pull_flags_fn_t) ndr_pull_winreg_QueryValue,
4262 (ndr_print_function_t) ndr_print_winreg_QueryValue,
4266 "winreg_ReplaceKey",
4267 sizeof(struct winreg_ReplaceKey),
4268 (ndr_push_flags_fn_t) ndr_push_winreg_ReplaceKey,
4269 (ndr_pull_flags_fn_t) ndr_pull_winreg_ReplaceKey,
4270 (ndr_print_function_t) ndr_print_winreg_ReplaceKey,
4274 "winreg_RestoreKey",
4275 sizeof(struct winreg_RestoreKey),
4276 (ndr_push_flags_fn_t) ndr_push_winreg_RestoreKey,
4277 (ndr_pull_flags_fn_t) ndr_pull_winreg_RestoreKey,
4278 (ndr_print_function_t) ndr_print_winreg_RestoreKey,
4283 sizeof(struct winreg_SaveKey),
4284 (ndr_push_flags_fn_t) ndr_push_winreg_SaveKey,
4285 (ndr_pull_flags_fn_t) ndr_pull_winreg_SaveKey,
4286 (ndr_print_function_t) ndr_print_winreg_SaveKey,
4290 "winreg_SetKeySecurity",
4291 sizeof(struct winreg_SetKeySecurity),
4292 (ndr_push_flags_fn_t) ndr_push_winreg_SetKeySecurity,
4293 (ndr_pull_flags_fn_t) ndr_pull_winreg_SetKeySecurity,
4294 (ndr_print_function_t) ndr_print_winreg_SetKeySecurity,
4299 sizeof(struct winreg_SetValue),
4300 (ndr_push_flags_fn_t) ndr_push_winreg_SetValue,
4301 (ndr_pull_flags_fn_t) ndr_pull_winreg_SetValue,
4302 (ndr_print_function_t) ndr_print_winreg_SetValue,
4307 sizeof(struct winreg_UnLoadKey),
4308 (ndr_push_flags_fn_t) ndr_push_winreg_UnLoadKey,
4309 (ndr_pull_flags_fn_t) ndr_pull_winreg_UnLoadKey,
4310 (ndr_print_function_t) ndr_print_winreg_UnLoadKey,
4314 "winreg_InitiateSystemShutdown",
4315 sizeof(struct winreg_InitiateSystemShutdown),
4316 (ndr_push_flags_fn_t) ndr_push_winreg_InitiateSystemShutdown,
4317 (ndr_pull_flags_fn_t) ndr_pull_winreg_InitiateSystemShutdown,
4318 (ndr_print_function_t) ndr_print_winreg_InitiateSystemShutdown,
4322 "winreg_AbortSystemShutdown",
4323 sizeof(struct winreg_AbortSystemShutdown),
4324 (ndr_push_flags_fn_t) ndr_push_winreg_AbortSystemShutdown,
4325 (ndr_pull_flags_fn_t) ndr_pull_winreg_AbortSystemShutdown,
4326 (ndr_print_function_t) ndr_print_winreg_AbortSystemShutdown,
4330 "winreg_GetVersion",
4331 sizeof(struct winreg_GetVersion),
4332 (ndr_push_flags_fn_t) ndr_push_winreg_GetVersion,
4333 (ndr_pull_flags_fn_t) ndr_pull_winreg_GetVersion,
4334 (ndr_print_function_t) ndr_print_winreg_GetVersion,
4339 sizeof(struct winreg_OpenHKCC),
4340 (ndr_push_flags_fn_t) ndr_push_winreg_OpenHKCC,
4341 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenHKCC,
4342 (ndr_print_function_t) ndr_print_winreg_OpenHKCC,
4347 sizeof(struct winreg_OpenHKDD),
4348 (ndr_push_flags_fn_t) ndr_push_winreg_OpenHKDD,
4349 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenHKDD,
4350 (ndr_print_function_t) ndr_print_winreg_OpenHKDD,
4354 "winreg_QueryMultipleValues",
4355 sizeof(struct winreg_QueryMultipleValues),
4356 (ndr_push_flags_fn_t) ndr_push_winreg_QueryMultipleValues,
4357 (ndr_pull_flags_fn_t) ndr_pull_winreg_QueryMultipleValues,
4358 (ndr_print_function_t) ndr_print_winreg_QueryMultipleValues,
4362 "winreg_InitiateSystemShutdownEx",
4363 sizeof(struct winreg_InitiateSystemShutdownEx),
4364 (ndr_push_flags_fn_t) ndr_push_winreg_InitiateSystemShutdownEx,
4365 (ndr_pull_flags_fn_t) ndr_pull_winreg_InitiateSystemShutdownEx,
4366 (ndr_print_function_t) ndr_print_winreg_InitiateSystemShutdownEx,
4371 sizeof(struct winreg_SaveKeyEx),
4372 (ndr_push_flags_fn_t) ndr_push_winreg_SaveKeyEx,
4373 (ndr_pull_flags_fn_t) ndr_pull_winreg_SaveKeyEx,
4374 (ndr_print_function_t) ndr_print_winreg_SaveKeyEx,
4379 sizeof(struct winreg_OpenHKPT),
4380 (ndr_push_flags_fn_t) ndr_push_winreg_OpenHKPT,
4381 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenHKPT,
4382 (ndr_print_function_t) ndr_print_winreg_OpenHKPT,
4387 sizeof(struct winreg_OpenHKPN),
4388 (ndr_push_flags_fn_t) ndr_push_winreg_OpenHKPN,
4389 (ndr_pull_flags_fn_t) ndr_pull_winreg_OpenHKPN,
4390 (ndr_print_function_t) ndr_print_winreg_OpenHKPN,
4394 "winreg_QueryMultipleValues2",
4395 sizeof(struct winreg_QueryMultipleValues2),
4396 (ndr_push_flags_fn_t) ndr_push_winreg_QueryMultipleValues2,
4397 (ndr_pull_flags_fn_t) ndr_pull_winreg_QueryMultipleValues2,
4398 (ndr_print_function_t) ndr_print_winreg_QueryMultipleValues2,
4401 { NULL, 0, NULL, NULL, NULL, False }
4404 const char * const winreg_endpoint_strings[] = {
4405 "ncacn_np:[\\pipe\\winreg]",
4410 const struct dcerpc_endpoint_list winreg_endpoints = {
4412 .names = winreg_endpoint_strings
4415 const char * const winreg_authservice_strings[] = {
4419 const struct dcerpc_authservice_list winreg_authservices = {
4421 .names = winreg_authservice_strings
4425 const struct dcerpc_interface_table dcerpc_table_winreg = {
4428 {0x338cd001,0x2244,0x31f1,{0xaa,0xaa},{0x90,0x00,0x38,0x00,0x10,0x03}},
4429 DCERPC_WINREG_VERSION
4431 .helpstring = DCERPC_WINREG_HELPSTRING,
4433 .calls = winreg_calls,
4434 .endpoints = &winreg_endpoints,
4435 .authservices = &winreg_authservices