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_security.h"
8 #include "librpc/gen_ndr/ndr_misc.h"
9 static enum ndr_err_code
ndr_push_winreg_AccessMask(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
11 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
12 return NDR_ERR_SUCCESS
;
15 static enum ndr_err_code
ndr_pull_winreg_AccessMask(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
18 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
20 return NDR_ERR_SUCCESS
;
23 _PUBLIC_
void ndr_print_winreg_AccessMask(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
25 ndr_print_uint32(ndr
, name
, r
);
27 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "KEY_QUERY_VALUE", KEY_QUERY_VALUE
, r
);
28 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "KEY_SET_VALUE", KEY_SET_VALUE
, r
);
29 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "KEY_CREATE_SUB_KEY", KEY_CREATE_SUB_KEY
, r
);
30 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "KEY_ENUMERATE_SUB_KEYS", KEY_ENUMERATE_SUB_KEYS
, r
);
31 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "KEY_NOTIFY", KEY_NOTIFY
, r
);
32 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "KEY_CREATE_LINK", KEY_CREATE_LINK
, r
);
33 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "KEY_WOW64_64KEY", KEY_WOW64_64KEY
, r
);
34 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "KEY_WOW64_32KEY", KEY_WOW64_32KEY
, r
);
38 _PUBLIC_
enum ndr_err_code
ndr_push_winreg_String(struct ndr_push
*ndr
, int ndr_flags
, const struct winreg_String
*r
)
40 if (ndr_flags
& NDR_SCALARS
) {
41 NDR_CHECK(ndr_push_align(ndr
, 5));
42 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, strlen_m_term(r
->name
) * 2));
43 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, strlen_m_term(r
->name
) * 2));
44 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->name
));
45 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
47 if (ndr_flags
& NDR_BUFFERS
) {
49 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->name
, CH_UTF16
)));
50 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
51 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->name
, CH_UTF16
)));
52 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->name
, ndr_charset_length(r
->name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
55 return NDR_ERR_SUCCESS
;
58 _PUBLIC_
enum ndr_err_code
ndr_pull_winreg_String(struct ndr_pull
*ndr
, int ndr_flags
, struct winreg_String
*r
)
61 uint32_t size_name_1
= 0;
62 uint32_t length_name_1
= 0;
63 TALLOC_CTX
*_mem_save_name_0
;
64 if (ndr_flags
& NDR_SCALARS
) {
65 NDR_CHECK(ndr_pull_align(ndr
, 5));
66 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->name_len
));
67 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->name_size
));
68 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_name
));
70 NDR_PULL_ALLOC(ndr
, r
->name
);
74 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
76 if (ndr_flags
& NDR_BUFFERS
) {
78 _mem_save_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
79 NDR_PULL_SET_MEM_CTX(ndr
, r
->name
, 0);
80 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->name
));
81 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->name
));
82 size_name_1
= ndr_get_array_size(ndr
, &r
->name
);
83 length_name_1
= ndr_get_array_length(ndr
, &r
->name
);
84 if (length_name_1
> size_name_1
) {
85 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_name_1
, length_name_1
);
87 NDR_CHECK(ndr_check_string_terminator(ndr
, length_name_1
, sizeof(uint16_t)));
88 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->name
, length_name_1
, sizeof(uint16_t), CH_UTF16
));
89 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_0
, 0);
92 return NDR_ERR_SUCCESS
;
95 _PUBLIC_
void ndr_print_winreg_String(struct ndr_print
*ndr
, const char *name
, const struct winreg_String
*r
)
97 ndr_print_struct(ndr
, name
, "winreg_String");
99 ndr_print_uint16(ndr
, "name_len", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?strlen_m_term(r
->name
) * 2:r
->name_len
);
100 ndr_print_uint16(ndr
, "name_size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?strlen_m_term(r
->name
) * 2:r
->name_size
);
101 ndr_print_ptr(ndr
, "name", r
->name
);
104 ndr_print_string(ndr
, "name", r
->name
);
110 static enum ndr_err_code
ndr_push_KeySecurityData(struct ndr_push
*ndr
, int ndr_flags
, const struct KeySecurityData
*r
)
112 if (ndr_flags
& NDR_SCALARS
) {
113 NDR_CHECK(ndr_push_align(ndr
, 5));
114 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data
));
115 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
116 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->len
));
117 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
119 if (ndr_flags
& NDR_BUFFERS
) {
121 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->size
));
122 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
123 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->len
));
124 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->data
, r
->len
));
127 return NDR_ERR_SUCCESS
;
130 static enum ndr_err_code
ndr_pull_KeySecurityData(struct ndr_pull
*ndr
, int ndr_flags
, struct KeySecurityData
*r
)
133 uint32_t size_data_1
= 0;
134 uint32_t length_data_1
= 0;
135 TALLOC_CTX
*_mem_save_data_0
;
136 if (ndr_flags
& NDR_SCALARS
) {
137 NDR_CHECK(ndr_pull_align(ndr
, 5));
138 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data
));
140 NDR_PULL_ALLOC(ndr
, r
->data
);
144 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
145 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->len
));
146 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
148 if (ndr_flags
& NDR_BUFFERS
) {
150 _mem_save_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
151 NDR_PULL_SET_MEM_CTX(ndr
, r
->data
, 0);
152 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data
));
153 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data
));
154 size_data_1
= ndr_get_array_size(ndr
, &r
->data
);
155 length_data_1
= ndr_get_array_length(ndr
, &r
->data
);
156 if (length_data_1
> size_data_1
) {
157 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_data_1
, length_data_1
);
159 NDR_PULL_ALLOC_N(ndr
, r
->data
, size_data_1
);
160 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->data
, length_data_1
));
161 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_0
, 0);
164 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->data
, r
->size
));
167 NDR_CHECK(ndr_check_array_length(ndr
, (void*)&r
->data
, r
->len
));
170 return NDR_ERR_SUCCESS
;
173 _PUBLIC_
void ndr_print_KeySecurityData(struct ndr_print
*ndr
, const char *name
, const struct KeySecurityData
*r
)
175 ndr_print_struct(ndr
, name
, "KeySecurityData");
177 ndr_print_ptr(ndr
, "data", r
->data
);
180 ndr_print_array_uint8(ndr
, "data", r
->data
, r
->len
);
183 ndr_print_uint32(ndr
, "size", r
->size
);
184 ndr_print_uint32(ndr
, "len", r
->len
);
188 static enum ndr_err_code
ndr_push_winreg_SecBuf(struct ndr_push
*ndr
, int ndr_flags
, const struct winreg_SecBuf
*r
)
190 if (ndr_flags
& NDR_SCALARS
) {
191 NDR_CHECK(ndr_push_align(ndr
, 5));
192 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->length
));
193 NDR_CHECK(ndr_push_KeySecurityData(ndr
, NDR_SCALARS
, &r
->sd
));
194 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->inherit
));
195 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
197 if (ndr_flags
& NDR_BUFFERS
) {
198 NDR_CHECK(ndr_push_KeySecurityData(ndr
, NDR_BUFFERS
, &r
->sd
));
200 return NDR_ERR_SUCCESS
;
203 static enum ndr_err_code
ndr_pull_winreg_SecBuf(struct ndr_pull
*ndr
, int ndr_flags
, struct winreg_SecBuf
*r
)
205 if (ndr_flags
& NDR_SCALARS
) {
206 NDR_CHECK(ndr_pull_align(ndr
, 5));
207 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->length
));
208 NDR_CHECK(ndr_pull_KeySecurityData(ndr
, NDR_SCALARS
, &r
->sd
));
209 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->inherit
));
210 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
212 if (ndr_flags
& NDR_BUFFERS
) {
213 NDR_CHECK(ndr_pull_KeySecurityData(ndr
, NDR_BUFFERS
, &r
->sd
));
215 return NDR_ERR_SUCCESS
;
218 _PUBLIC_
void ndr_print_winreg_SecBuf(struct ndr_print
*ndr
, const char *name
, const struct winreg_SecBuf
*r
)
220 ndr_print_struct(ndr
, name
, "winreg_SecBuf");
222 ndr_print_uint32(ndr
, "length", r
->length
);
223 ndr_print_KeySecurityData(ndr
, "sd", &r
->sd
);
224 ndr_print_uint8(ndr
, "inherit", r
->inherit
);
228 static enum ndr_err_code
ndr_push_winreg_CreateAction(struct ndr_push
*ndr
, int ndr_flags
, enum winreg_CreateAction r
)
230 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
231 return NDR_ERR_SUCCESS
;
234 static enum ndr_err_code
ndr_pull_winreg_CreateAction(struct ndr_pull
*ndr
, int ndr_flags
, enum winreg_CreateAction
*r
)
237 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
239 return NDR_ERR_SUCCESS
;
242 _PUBLIC_
void ndr_print_winreg_CreateAction(struct ndr_print
*ndr
, const char *name
, enum winreg_CreateAction r
)
244 const char *val
= NULL
;
247 case REG_ACTION_NONE
: val
= "REG_ACTION_NONE"; break;
248 case REG_CREATED_NEW_KEY
: val
= "REG_CREATED_NEW_KEY"; break;
249 case REG_OPENED_EXISTING_KEY
: val
= "REG_OPENED_EXISTING_KEY"; break;
251 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
254 static enum ndr_err_code
ndr_push_winreg_StringBuf(struct ndr_push
*ndr
, int ndr_flags
, const struct winreg_StringBuf
*r
)
256 if (ndr_flags
& NDR_SCALARS
) {
257 NDR_CHECK(ndr_push_align(ndr
, 5));
258 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, strlen_m_term_null(r
->name
) * 2));
259 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->size
));
260 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->name
));
261 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
263 if (ndr_flags
& NDR_BUFFERS
) {
265 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->size
/ 2));
266 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
267 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, strlen_m_term_null(r
->name
) * 2 / 2));
268 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->name
, strlen_m_term_null(r
->name
) * 2 / 2, sizeof(uint16_t), CH_UTF16
));
271 return NDR_ERR_SUCCESS
;
274 static enum ndr_err_code
ndr_pull_winreg_StringBuf(struct ndr_pull
*ndr
, int ndr_flags
, struct winreg_StringBuf
*r
)
277 uint32_t size_name_1
= 0;
278 uint32_t length_name_1
= 0;
279 TALLOC_CTX
*_mem_save_name_0
;
280 if (ndr_flags
& NDR_SCALARS
) {
281 NDR_CHECK(ndr_pull_align(ndr
, 5));
282 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->length
));
283 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->size
));
284 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_name
));
286 NDR_PULL_ALLOC(ndr
, r
->name
);
290 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
292 if (ndr_flags
& NDR_BUFFERS
) {
294 _mem_save_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
295 NDR_PULL_SET_MEM_CTX(ndr
, r
->name
, 0);
296 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->name
));
297 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->name
));
298 size_name_1
= ndr_get_array_size(ndr
, &r
->name
);
299 length_name_1
= ndr_get_array_length(ndr
, &r
->name
);
300 if (length_name_1
> size_name_1
) {
301 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_name_1
, length_name_1
);
303 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->name
, length_name_1
, sizeof(uint16_t), CH_UTF16
));
304 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_0
, 0);
307 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->name
, r
->size
/ 2));
310 NDR_CHECK(ndr_check_array_length(ndr
, (void*)&r
->name
, r
->length
/ 2));
313 return NDR_ERR_SUCCESS
;
316 _PUBLIC_
void ndr_print_winreg_StringBuf(struct ndr_print
*ndr
, const char *name
, const struct winreg_StringBuf
*r
)
318 ndr_print_struct(ndr
, name
, "winreg_StringBuf");
320 ndr_print_uint16(ndr
, "length", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?strlen_m_term_null(r
->name
) * 2:r
->length
);
321 ndr_print_uint16(ndr
, "size", r
->size
);
322 ndr_print_ptr(ndr
, "name", r
->name
);
325 ndr_print_string(ndr
, "name", r
->name
);
331 static enum ndr_err_code
ndr_push_winreg_ValNameBuf(struct ndr_push
*ndr
, int ndr_flags
, const struct winreg_ValNameBuf
*r
)
333 if (ndr_flags
& NDR_SCALARS
) {
334 NDR_CHECK(ndr_push_align(ndr
, 5));
335 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, strlen_m_term(r
->name
) * 2));
336 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->size
));
337 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->name
));
338 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
340 if (ndr_flags
& NDR_BUFFERS
) {
342 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->size
/ 2));
343 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
344 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, strlen_m_term(r
->name
) * 2 / 2));
345 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->name
, strlen_m_term(r
->name
) * 2 / 2, sizeof(uint16_t), CH_UTF16
));
348 return NDR_ERR_SUCCESS
;
351 static enum ndr_err_code
ndr_pull_winreg_ValNameBuf(struct ndr_pull
*ndr
, int ndr_flags
, struct winreg_ValNameBuf
*r
)
354 uint32_t size_name_1
= 0;
355 uint32_t length_name_1
= 0;
356 TALLOC_CTX
*_mem_save_name_0
;
357 if (ndr_flags
& NDR_SCALARS
) {
358 NDR_CHECK(ndr_pull_align(ndr
, 5));
359 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->length
));
360 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->size
));
361 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_name
));
363 NDR_PULL_ALLOC(ndr
, r
->name
);
367 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
369 if (ndr_flags
& NDR_BUFFERS
) {
371 _mem_save_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
372 NDR_PULL_SET_MEM_CTX(ndr
, r
->name
, 0);
373 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->name
));
374 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->name
));
375 size_name_1
= ndr_get_array_size(ndr
, &r
->name
);
376 length_name_1
= ndr_get_array_length(ndr
, &r
->name
);
377 if (length_name_1
> size_name_1
) {
378 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_name_1
, length_name_1
);
380 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->name
, length_name_1
, sizeof(uint16_t), CH_UTF16
));
381 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_0
, 0);
384 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->name
, r
->size
/ 2));
387 NDR_CHECK(ndr_check_array_length(ndr
, (void*)&r
->name
, r
->length
/ 2));
390 return NDR_ERR_SUCCESS
;
393 _PUBLIC_
void ndr_print_winreg_ValNameBuf(struct ndr_print
*ndr
, const char *name
, const struct winreg_ValNameBuf
*r
)
395 ndr_print_struct(ndr
, name
, "winreg_ValNameBuf");
397 ndr_print_uint16(ndr
, "length", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?strlen_m_term(r
->name
) * 2:r
->length
);
398 ndr_print_uint16(ndr
, "size", r
->size
);
399 ndr_print_ptr(ndr
, "name", r
->name
);
402 ndr_print_string(ndr
, "name", r
->name
);
408 _PUBLIC_
enum ndr_err_code
ndr_push_winreg_NotifyChangeType(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
410 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
411 return NDR_ERR_SUCCESS
;
414 _PUBLIC_
enum ndr_err_code
ndr_pull_winreg_NotifyChangeType(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
417 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
419 return NDR_ERR_SUCCESS
;
422 _PUBLIC_
void ndr_print_winreg_NotifyChangeType(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
424 ndr_print_uint32(ndr
, name
, r
);
426 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "REG_NOTIFY_CHANGE_NAME", REG_NOTIFY_CHANGE_NAME
, r
);
427 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "REG_NOTIFY_CHANGE_ATTRIBUTES", REG_NOTIFY_CHANGE_ATTRIBUTES
, r
);
428 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "REG_NOTIFY_CHANGE_LAST_SET", REG_NOTIFY_CHANGE_LAST_SET
, r
);
429 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "REG_NOTIFY_CHANGE_SECURITY", REG_NOTIFY_CHANGE_SECURITY
, r
);
433 static enum ndr_err_code
ndr_push_KeySecurityAttribute(struct ndr_push
*ndr
, int ndr_flags
, const struct KeySecurityAttribute
*r
)
435 if (ndr_flags
& NDR_SCALARS
) {
436 NDR_CHECK(ndr_push_align(ndr
, 5));
437 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->data_size
));
438 NDR_CHECK(ndr_push_KeySecurityData(ndr
, NDR_SCALARS
, &r
->sec_data
));
439 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->inherit
));
440 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
442 if (ndr_flags
& NDR_BUFFERS
) {
443 NDR_CHECK(ndr_push_KeySecurityData(ndr
, NDR_BUFFERS
, &r
->sec_data
));
445 return NDR_ERR_SUCCESS
;
448 static enum ndr_err_code
ndr_pull_KeySecurityAttribute(struct ndr_pull
*ndr
, int ndr_flags
, struct KeySecurityAttribute
*r
)
450 if (ndr_flags
& NDR_SCALARS
) {
451 NDR_CHECK(ndr_pull_align(ndr
, 5));
452 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->data_size
));
453 NDR_CHECK(ndr_pull_KeySecurityData(ndr
, NDR_SCALARS
, &r
->sec_data
));
454 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->inherit
));
455 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
457 if (ndr_flags
& NDR_BUFFERS
) {
458 NDR_CHECK(ndr_pull_KeySecurityData(ndr
, NDR_BUFFERS
, &r
->sec_data
));
460 return NDR_ERR_SUCCESS
;
463 _PUBLIC_
void ndr_print_KeySecurityAttribute(struct ndr_print
*ndr
, const char *name
, const struct KeySecurityAttribute
*r
)
465 ndr_print_struct(ndr
, name
, "KeySecurityAttribute");
467 ndr_print_uint32(ndr
, "data_size", r
->data_size
);
468 ndr_print_KeySecurityData(ndr
, "sec_data", &r
->sec_data
);
469 ndr_print_uint8(ndr
, "inherit", r
->inherit
);
473 static enum ndr_err_code
ndr_push_QueryMultipleValue(struct ndr_push
*ndr
, int ndr_flags
, const struct QueryMultipleValue
*r
)
475 if (ndr_flags
& NDR_SCALARS
) {
476 NDR_CHECK(ndr_push_align(ndr
, 5));
477 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->name
));
478 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, r
->type
));
479 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->offset
));
480 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->length
));
481 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
483 if (ndr_flags
& NDR_BUFFERS
) {
485 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->name
));
488 return NDR_ERR_SUCCESS
;
491 static enum ndr_err_code
ndr_pull_QueryMultipleValue(struct ndr_pull
*ndr
, int ndr_flags
, struct QueryMultipleValue
*r
)
494 TALLOC_CTX
*_mem_save_name_0
;
495 if (ndr_flags
& NDR_SCALARS
) {
496 NDR_CHECK(ndr_pull_align(ndr
, 5));
497 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_name
));
499 NDR_PULL_ALLOC(ndr
, r
->name
);
503 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, &r
->type
));
504 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->offset
));
505 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->length
));
506 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
508 if (ndr_flags
& NDR_BUFFERS
) {
510 _mem_save_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
511 NDR_PULL_SET_MEM_CTX(ndr
, r
->name
, 0);
512 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->name
));
513 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_0
, 0);
516 return NDR_ERR_SUCCESS
;
519 _PUBLIC_
void ndr_print_QueryMultipleValue(struct ndr_print
*ndr
, const char *name
, const struct QueryMultipleValue
*r
)
521 ndr_print_struct(ndr
, name
, "QueryMultipleValue");
523 ndr_print_ptr(ndr
, "name", r
->name
);
526 ndr_print_winreg_String(ndr
, "name", r
->name
);
529 ndr_print_winreg_Type(ndr
, "type", r
->type
);
530 ndr_print_uint32(ndr
, "offset", r
->offset
);
531 ndr_print_uint32(ndr
, "length", r
->length
);
535 static enum ndr_err_code
ndr_push_winreg_OpenHKCR(struct ndr_push
*ndr
, int flags
, const struct winreg_OpenHKCR
*r
)
537 if (flags
& NDR_IN
) {
538 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.system_name
));
539 if (r
->in
.system_name
) {
540 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, *r
->in
.system_name
));
542 NDR_CHECK(ndr_push_winreg_AccessMask(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
544 if (flags
& NDR_OUT
) {
545 if (r
->out
.handle
== NULL
) {
546 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
548 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
549 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
551 return NDR_ERR_SUCCESS
;
554 static enum ndr_err_code
ndr_pull_winreg_OpenHKCR(struct ndr_pull
*ndr
, int flags
, struct winreg_OpenHKCR
*r
)
556 uint32_t _ptr_system_name
;
557 TALLOC_CTX
*_mem_save_system_name_0
;
558 TALLOC_CTX
*_mem_save_handle_0
;
559 if (flags
& NDR_IN
) {
562 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_system_name
));
563 if (_ptr_system_name
) {
564 NDR_PULL_ALLOC(ndr
, r
->in
.system_name
);
566 r
->in
.system_name
= NULL
;
568 if (r
->in
.system_name
) {
569 _mem_save_system_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
570 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.system_name
, 0);
571 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, r
->in
.system_name
));
572 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_system_name_0
, 0);
574 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
575 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
576 ZERO_STRUCTP(r
->out
.handle
);
578 if (flags
& NDR_OUT
) {
579 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
580 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
582 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
583 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
584 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
585 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
586 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
588 return NDR_ERR_SUCCESS
;
591 _PUBLIC_
void ndr_print_winreg_OpenHKCR(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_OpenHKCR
*r
)
593 ndr_print_struct(ndr
, name
, "winreg_OpenHKCR");
595 if (flags
& NDR_SET_VALUES
) {
596 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
598 if (flags
& NDR_IN
) {
599 ndr_print_struct(ndr
, "in", "winreg_OpenHKCR");
601 ndr_print_ptr(ndr
, "system_name", r
->in
.system_name
);
603 if (r
->in
.system_name
) {
604 ndr_print_uint16(ndr
, "system_name", *r
->in
.system_name
);
607 ndr_print_winreg_AccessMask(ndr
, "access_mask", r
->in
.access_mask
);
610 if (flags
& NDR_OUT
) {
611 ndr_print_struct(ndr
, "out", "winreg_OpenHKCR");
613 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
615 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
617 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
623 static enum ndr_err_code
ndr_push_winreg_OpenHKCU(struct ndr_push
*ndr
, int flags
, const struct winreg_OpenHKCU
*r
)
625 if (flags
& NDR_IN
) {
626 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.system_name
));
627 if (r
->in
.system_name
) {
628 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, *r
->in
.system_name
));
630 NDR_CHECK(ndr_push_winreg_AccessMask(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
632 if (flags
& NDR_OUT
) {
633 if (r
->out
.handle
== NULL
) {
634 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
636 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
637 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
639 return NDR_ERR_SUCCESS
;
642 static enum ndr_err_code
ndr_pull_winreg_OpenHKCU(struct ndr_pull
*ndr
, int flags
, struct winreg_OpenHKCU
*r
)
644 uint32_t _ptr_system_name
;
645 TALLOC_CTX
*_mem_save_system_name_0
;
646 TALLOC_CTX
*_mem_save_handle_0
;
647 if (flags
& NDR_IN
) {
650 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_system_name
));
651 if (_ptr_system_name
) {
652 NDR_PULL_ALLOC(ndr
, r
->in
.system_name
);
654 r
->in
.system_name
= NULL
;
656 if (r
->in
.system_name
) {
657 _mem_save_system_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
658 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.system_name
, 0);
659 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, r
->in
.system_name
));
660 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_system_name_0
, 0);
662 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
663 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
664 ZERO_STRUCTP(r
->out
.handle
);
666 if (flags
& NDR_OUT
) {
667 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
668 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
670 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
671 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
672 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
673 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
674 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
676 return NDR_ERR_SUCCESS
;
679 _PUBLIC_
void ndr_print_winreg_OpenHKCU(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_OpenHKCU
*r
)
681 ndr_print_struct(ndr
, name
, "winreg_OpenHKCU");
683 if (flags
& NDR_SET_VALUES
) {
684 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
686 if (flags
& NDR_IN
) {
687 ndr_print_struct(ndr
, "in", "winreg_OpenHKCU");
689 ndr_print_ptr(ndr
, "system_name", r
->in
.system_name
);
691 if (r
->in
.system_name
) {
692 ndr_print_uint16(ndr
, "system_name", *r
->in
.system_name
);
695 ndr_print_winreg_AccessMask(ndr
, "access_mask", r
->in
.access_mask
);
698 if (flags
& NDR_OUT
) {
699 ndr_print_struct(ndr
, "out", "winreg_OpenHKCU");
701 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
703 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
705 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
711 _PUBLIC_
enum ndr_err_code
ndr_push_winreg_OpenHKLM(struct ndr_push
*ndr
, int flags
, const struct winreg_OpenHKLM
*r
)
713 if (flags
& NDR_IN
) {
714 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.system_name
));
715 if (r
->in
.system_name
) {
716 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, *r
->in
.system_name
));
718 NDR_CHECK(ndr_push_winreg_AccessMask(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
720 if (flags
& NDR_OUT
) {
721 if (r
->out
.handle
== NULL
) {
722 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
724 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
725 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
727 return NDR_ERR_SUCCESS
;
730 _PUBLIC_
enum ndr_err_code
ndr_pull_winreg_OpenHKLM(struct ndr_pull
*ndr
, int flags
, struct winreg_OpenHKLM
*r
)
732 uint32_t _ptr_system_name
;
733 TALLOC_CTX
*_mem_save_system_name_0
;
734 TALLOC_CTX
*_mem_save_handle_0
;
735 if (flags
& NDR_IN
) {
738 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_system_name
));
739 if (_ptr_system_name
) {
740 NDR_PULL_ALLOC(ndr
, r
->in
.system_name
);
742 r
->in
.system_name
= NULL
;
744 if (r
->in
.system_name
) {
745 _mem_save_system_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
746 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.system_name
, 0);
747 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, r
->in
.system_name
));
748 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_system_name_0
, 0);
750 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
751 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
752 ZERO_STRUCTP(r
->out
.handle
);
754 if (flags
& NDR_OUT
) {
755 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
756 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
758 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
759 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
760 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
761 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
762 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
764 return NDR_ERR_SUCCESS
;
767 _PUBLIC_
void ndr_print_winreg_OpenHKLM(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_OpenHKLM
*r
)
769 ndr_print_struct(ndr
, name
, "winreg_OpenHKLM");
771 if (flags
& NDR_SET_VALUES
) {
772 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
774 if (flags
& NDR_IN
) {
775 ndr_print_struct(ndr
, "in", "winreg_OpenHKLM");
777 ndr_print_ptr(ndr
, "system_name", r
->in
.system_name
);
779 if (r
->in
.system_name
) {
780 ndr_print_uint16(ndr
, "system_name", *r
->in
.system_name
);
783 ndr_print_winreg_AccessMask(ndr
, "access_mask", r
->in
.access_mask
);
786 if (flags
& NDR_OUT
) {
787 ndr_print_struct(ndr
, "out", "winreg_OpenHKLM");
789 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
791 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
793 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
799 static enum ndr_err_code
ndr_push_winreg_OpenHKPD(struct ndr_push
*ndr
, int flags
, const struct winreg_OpenHKPD
*r
)
801 if (flags
& NDR_IN
) {
802 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.system_name
));
803 if (r
->in
.system_name
) {
804 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, *r
->in
.system_name
));
806 NDR_CHECK(ndr_push_winreg_AccessMask(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
808 if (flags
& NDR_OUT
) {
809 if (r
->out
.handle
== NULL
) {
810 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
812 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
813 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
815 return NDR_ERR_SUCCESS
;
818 static enum ndr_err_code
ndr_pull_winreg_OpenHKPD(struct ndr_pull
*ndr
, int flags
, struct winreg_OpenHKPD
*r
)
820 uint32_t _ptr_system_name
;
821 TALLOC_CTX
*_mem_save_system_name_0
;
822 TALLOC_CTX
*_mem_save_handle_0
;
823 if (flags
& NDR_IN
) {
826 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_system_name
));
827 if (_ptr_system_name
) {
828 NDR_PULL_ALLOC(ndr
, r
->in
.system_name
);
830 r
->in
.system_name
= NULL
;
832 if (r
->in
.system_name
) {
833 _mem_save_system_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
834 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.system_name
, 0);
835 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, r
->in
.system_name
));
836 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_system_name_0
, 0);
838 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
839 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
840 ZERO_STRUCTP(r
->out
.handle
);
842 if (flags
& NDR_OUT
) {
843 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
844 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
846 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
847 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
848 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
849 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
850 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
852 return NDR_ERR_SUCCESS
;
855 _PUBLIC_
void ndr_print_winreg_OpenHKPD(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_OpenHKPD
*r
)
857 ndr_print_struct(ndr
, name
, "winreg_OpenHKPD");
859 if (flags
& NDR_SET_VALUES
) {
860 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
862 if (flags
& NDR_IN
) {
863 ndr_print_struct(ndr
, "in", "winreg_OpenHKPD");
865 ndr_print_ptr(ndr
, "system_name", r
->in
.system_name
);
867 if (r
->in
.system_name
) {
868 ndr_print_uint16(ndr
, "system_name", *r
->in
.system_name
);
871 ndr_print_winreg_AccessMask(ndr
, "access_mask", r
->in
.access_mask
);
874 if (flags
& NDR_OUT
) {
875 ndr_print_struct(ndr
, "out", "winreg_OpenHKPD");
877 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
879 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
881 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
887 static enum ndr_err_code
ndr_push_winreg_OpenHKU(struct ndr_push
*ndr
, int flags
, const struct winreg_OpenHKU
*r
)
889 if (flags
& NDR_IN
) {
890 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.system_name
));
891 if (r
->in
.system_name
) {
892 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, *r
->in
.system_name
));
894 NDR_CHECK(ndr_push_winreg_AccessMask(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
896 if (flags
& NDR_OUT
) {
897 if (r
->out
.handle
== NULL
) {
898 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
900 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
901 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
903 return NDR_ERR_SUCCESS
;
906 static enum ndr_err_code
ndr_pull_winreg_OpenHKU(struct ndr_pull
*ndr
, int flags
, struct winreg_OpenHKU
*r
)
908 uint32_t _ptr_system_name
;
909 TALLOC_CTX
*_mem_save_system_name_0
;
910 TALLOC_CTX
*_mem_save_handle_0
;
911 if (flags
& NDR_IN
) {
914 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_system_name
));
915 if (_ptr_system_name
) {
916 NDR_PULL_ALLOC(ndr
, r
->in
.system_name
);
918 r
->in
.system_name
= NULL
;
920 if (r
->in
.system_name
) {
921 _mem_save_system_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
922 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.system_name
, 0);
923 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, r
->in
.system_name
));
924 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_system_name_0
, 0);
926 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
927 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
928 ZERO_STRUCTP(r
->out
.handle
);
930 if (flags
& NDR_OUT
) {
931 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
932 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
934 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
935 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
936 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
937 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
938 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
940 return NDR_ERR_SUCCESS
;
943 _PUBLIC_
void ndr_print_winreg_OpenHKU(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_OpenHKU
*r
)
945 ndr_print_struct(ndr
, name
, "winreg_OpenHKU");
947 if (flags
& NDR_SET_VALUES
) {
948 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
950 if (flags
& NDR_IN
) {
951 ndr_print_struct(ndr
, "in", "winreg_OpenHKU");
953 ndr_print_ptr(ndr
, "system_name", r
->in
.system_name
);
955 if (r
->in
.system_name
) {
956 ndr_print_uint16(ndr
, "system_name", *r
->in
.system_name
);
959 ndr_print_winreg_AccessMask(ndr
, "access_mask", r
->in
.access_mask
);
962 if (flags
& NDR_OUT
) {
963 ndr_print_struct(ndr
, "out", "winreg_OpenHKU");
965 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
967 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
969 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
975 _PUBLIC_
enum ndr_err_code
ndr_push_winreg_CloseKey(struct ndr_push
*ndr
, int flags
, const struct winreg_CloseKey
*r
)
977 if (flags
& NDR_IN
) {
978 if (r
->in
.handle
== NULL
) {
979 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
981 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
983 if (flags
& NDR_OUT
) {
984 if (r
->out
.handle
== NULL
) {
985 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
987 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
988 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
990 return NDR_ERR_SUCCESS
;
993 _PUBLIC_
enum ndr_err_code
ndr_pull_winreg_CloseKey(struct ndr_pull
*ndr
, int flags
, struct winreg_CloseKey
*r
)
995 TALLOC_CTX
*_mem_save_handle_0
;
996 if (flags
& NDR_IN
) {
999 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
1000 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
1002 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1003 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
1004 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
1005 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
1006 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
1007 *r
->out
.handle
= *r
->in
.handle
;
1009 if (flags
& NDR_OUT
) {
1010 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
1011 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
1013 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1014 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
1015 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
1016 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
1017 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
1019 return NDR_ERR_SUCCESS
;
1022 _PUBLIC_
void ndr_print_winreg_CloseKey(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_CloseKey
*r
)
1024 ndr_print_struct(ndr
, name
, "winreg_CloseKey");
1026 if (flags
& NDR_SET_VALUES
) {
1027 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
1029 if (flags
& NDR_IN
) {
1030 ndr_print_struct(ndr
, "in", "winreg_CloseKey");
1032 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
1034 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
1038 if (flags
& NDR_OUT
) {
1039 ndr_print_struct(ndr
, "out", "winreg_CloseKey");
1041 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
1043 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
1045 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
1051 _PUBLIC_
enum ndr_err_code
ndr_push_winreg_CreateKey(struct ndr_push
*ndr
, int flags
, const struct winreg_CreateKey
*r
)
1053 if (flags
& NDR_IN
) {
1054 if (r
->in
.handle
== NULL
) {
1055 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
1057 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
1058 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.name
));
1059 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.keyclass
));
1060 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.options
));
1061 NDR_CHECK(ndr_push_winreg_AccessMask(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
1062 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.secdesc
));
1063 if (r
->in
.secdesc
) {
1064 NDR_CHECK(ndr_push_winreg_SecBuf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.secdesc
));
1066 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.action_taken
));
1067 if (r
->in
.action_taken
) {
1068 NDR_CHECK(ndr_push_winreg_CreateAction(ndr
, NDR_SCALARS
, *r
->in
.action_taken
));
1071 if (flags
& NDR_OUT
) {
1072 if (r
->out
.new_handle
== NULL
) {
1073 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
1075 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.new_handle
));
1076 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.action_taken
));
1077 if (r
->out
.action_taken
) {
1078 NDR_CHECK(ndr_push_winreg_CreateAction(ndr
, NDR_SCALARS
, *r
->out
.action_taken
));
1080 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
1082 return NDR_ERR_SUCCESS
;
1085 _PUBLIC_
enum ndr_err_code
ndr_pull_winreg_CreateKey(struct ndr_pull
*ndr
, int flags
, struct winreg_CreateKey
*r
)
1087 uint32_t _ptr_secdesc
;
1088 uint32_t _ptr_action_taken
;
1089 TALLOC_CTX
*_mem_save_handle_0
;
1090 TALLOC_CTX
*_mem_save_secdesc_0
;
1091 TALLOC_CTX
*_mem_save_new_handle_0
;
1092 TALLOC_CTX
*_mem_save_action_taken_0
;
1093 if (flags
& NDR_IN
) {
1094 ZERO_STRUCT(r
->out
);
1096 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
1097 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
1099 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1100 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
1101 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
1102 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
1103 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.name
));
1104 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.keyclass
));
1105 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.options
));
1106 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
1107 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_secdesc
));
1109 NDR_PULL_ALLOC(ndr
, r
->in
.secdesc
);
1111 r
->in
.secdesc
= NULL
;
1113 if (r
->in
.secdesc
) {
1114 _mem_save_secdesc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1115 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.secdesc
, 0);
1116 NDR_CHECK(ndr_pull_winreg_SecBuf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.secdesc
));
1117 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_0
, 0);
1119 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_action_taken
));
1120 if (_ptr_action_taken
) {
1121 NDR_PULL_ALLOC(ndr
, r
->in
.action_taken
);
1123 r
->in
.action_taken
= NULL
;
1125 if (r
->in
.action_taken
) {
1126 _mem_save_action_taken_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1127 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.action_taken
, 0);
1128 NDR_CHECK(ndr_pull_winreg_CreateAction(ndr
, NDR_SCALARS
, r
->in
.action_taken
));
1129 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_action_taken_0
, 0);
1131 NDR_PULL_ALLOC(ndr
, r
->out
.new_handle
);
1132 ZERO_STRUCTP(r
->out
.new_handle
);
1134 if (flags
& NDR_OUT
) {
1135 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
1136 NDR_PULL_ALLOC(ndr
, r
->out
.new_handle
);
1138 _mem_save_new_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1139 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.new_handle
, LIBNDR_FLAG_REF_ALLOC
);
1140 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.new_handle
));
1141 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_new_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
1142 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_action_taken
));
1143 if (_ptr_action_taken
) {
1144 NDR_PULL_ALLOC(ndr
, r
->out
.action_taken
);
1146 r
->out
.action_taken
= NULL
;
1148 if (r
->out
.action_taken
) {
1149 _mem_save_action_taken_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1150 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.action_taken
, 0);
1151 NDR_CHECK(ndr_pull_winreg_CreateAction(ndr
, NDR_SCALARS
, r
->out
.action_taken
));
1152 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_action_taken_0
, 0);
1154 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
1156 return NDR_ERR_SUCCESS
;
1159 _PUBLIC_
void ndr_print_winreg_CreateKey(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_CreateKey
*r
)
1161 ndr_print_struct(ndr
, name
, "winreg_CreateKey");
1163 if (flags
& NDR_SET_VALUES
) {
1164 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
1166 if (flags
& NDR_IN
) {
1167 ndr_print_struct(ndr
, "in", "winreg_CreateKey");
1169 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
1171 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
1173 ndr_print_winreg_String(ndr
, "name", &r
->in
.name
);
1174 ndr_print_winreg_String(ndr
, "keyclass", &r
->in
.keyclass
);
1175 ndr_print_uint32(ndr
, "options", r
->in
.options
);
1176 ndr_print_winreg_AccessMask(ndr
, "access_mask", r
->in
.access_mask
);
1177 ndr_print_ptr(ndr
, "secdesc", r
->in
.secdesc
);
1179 if (r
->in
.secdesc
) {
1180 ndr_print_winreg_SecBuf(ndr
, "secdesc", r
->in
.secdesc
);
1183 ndr_print_ptr(ndr
, "action_taken", r
->in
.action_taken
);
1185 if (r
->in
.action_taken
) {
1186 ndr_print_winreg_CreateAction(ndr
, "action_taken", *r
->in
.action_taken
);
1191 if (flags
& NDR_OUT
) {
1192 ndr_print_struct(ndr
, "out", "winreg_CreateKey");
1194 ndr_print_ptr(ndr
, "new_handle", r
->out
.new_handle
);
1196 ndr_print_policy_handle(ndr
, "new_handle", r
->out
.new_handle
);
1198 ndr_print_ptr(ndr
, "action_taken", r
->out
.action_taken
);
1200 if (r
->out
.action_taken
) {
1201 ndr_print_winreg_CreateAction(ndr
, "action_taken", *r
->out
.action_taken
);
1204 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
1210 _PUBLIC_
enum ndr_err_code
ndr_push_winreg_DeleteKey(struct ndr_push
*ndr
, int flags
, const struct winreg_DeleteKey
*r
)
1212 if (flags
& NDR_IN
) {
1213 if (r
->in
.handle
== NULL
) {
1214 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
1216 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
1217 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.key
));
1219 if (flags
& NDR_OUT
) {
1220 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
1222 return NDR_ERR_SUCCESS
;
1225 _PUBLIC_
enum ndr_err_code
ndr_pull_winreg_DeleteKey(struct ndr_pull
*ndr
, int flags
, struct winreg_DeleteKey
*r
)
1227 TALLOC_CTX
*_mem_save_handle_0
;
1228 if (flags
& NDR_IN
) {
1229 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
1230 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
1232 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1233 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
1234 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
1235 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
1236 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.key
));
1238 if (flags
& NDR_OUT
) {
1239 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
1241 return NDR_ERR_SUCCESS
;
1244 _PUBLIC_
void ndr_print_winreg_DeleteKey(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_DeleteKey
*r
)
1246 ndr_print_struct(ndr
, name
, "winreg_DeleteKey");
1248 if (flags
& NDR_SET_VALUES
) {
1249 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
1251 if (flags
& NDR_IN
) {
1252 ndr_print_struct(ndr
, "in", "winreg_DeleteKey");
1254 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
1256 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
1258 ndr_print_winreg_String(ndr
, "key", &r
->in
.key
);
1261 if (flags
& NDR_OUT
) {
1262 ndr_print_struct(ndr
, "out", "winreg_DeleteKey");
1264 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
1270 static enum ndr_err_code
ndr_push_winreg_DeleteValue(struct ndr_push
*ndr
, int flags
, const struct winreg_DeleteValue
*r
)
1272 if (flags
& NDR_IN
) {
1273 if (r
->in
.handle
== NULL
) {
1274 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
1276 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
1277 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.value
));
1279 if (flags
& NDR_OUT
) {
1280 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
1282 return NDR_ERR_SUCCESS
;
1285 static enum ndr_err_code
ndr_pull_winreg_DeleteValue(struct ndr_pull
*ndr
, int flags
, struct winreg_DeleteValue
*r
)
1287 TALLOC_CTX
*_mem_save_handle_0
;
1288 if (flags
& NDR_IN
) {
1289 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
1290 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
1292 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1293 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
1294 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
1295 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
1296 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.value
));
1298 if (flags
& NDR_OUT
) {
1299 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
1301 return NDR_ERR_SUCCESS
;
1304 _PUBLIC_
void ndr_print_winreg_DeleteValue(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_DeleteValue
*r
)
1306 ndr_print_struct(ndr
, name
, "winreg_DeleteValue");
1308 if (flags
& NDR_SET_VALUES
) {
1309 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
1311 if (flags
& NDR_IN
) {
1312 ndr_print_struct(ndr
, "in", "winreg_DeleteValue");
1314 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
1316 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
1318 ndr_print_winreg_String(ndr
, "value", &r
->in
.value
);
1321 if (flags
& NDR_OUT
) {
1322 ndr_print_struct(ndr
, "out", "winreg_DeleteValue");
1324 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
1330 _PUBLIC_
enum ndr_err_code
ndr_push_winreg_EnumKey(struct ndr_push
*ndr
, int flags
, const struct winreg_EnumKey
*r
)
1332 if (flags
& NDR_IN
) {
1333 if (r
->in
.handle
== NULL
) {
1334 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
1336 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
1337 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.enum_index
));
1338 if (r
->in
.name
== NULL
) {
1339 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
1341 NDR_CHECK(ndr_push_winreg_StringBuf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.name
));
1342 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.keyclass
));
1343 if (r
->in
.keyclass
) {
1344 NDR_CHECK(ndr_push_winreg_StringBuf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.keyclass
));
1346 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.last_changed_time
));
1347 if (r
->in
.last_changed_time
) {
1348 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, *r
->in
.last_changed_time
));
1351 if (flags
& NDR_OUT
) {
1352 if (r
->out
.name
== NULL
) {
1353 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
1355 NDR_CHECK(ndr_push_winreg_StringBuf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.name
));
1356 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.keyclass
));
1357 if (r
->out
.keyclass
) {
1358 NDR_CHECK(ndr_push_winreg_StringBuf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.keyclass
));
1360 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.last_changed_time
));
1361 if (r
->out
.last_changed_time
) {
1362 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, *r
->out
.last_changed_time
));
1364 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
1366 return NDR_ERR_SUCCESS
;
1369 _PUBLIC_
enum ndr_err_code
ndr_pull_winreg_EnumKey(struct ndr_pull
*ndr
, int flags
, struct winreg_EnumKey
*r
)
1371 uint32_t _ptr_keyclass
;
1372 uint32_t _ptr_last_changed_time
;
1373 TALLOC_CTX
*_mem_save_handle_0
;
1374 TALLOC_CTX
*_mem_save_name_0
;
1375 TALLOC_CTX
*_mem_save_keyclass_0
;
1376 TALLOC_CTX
*_mem_save_last_changed_time_0
;
1377 if (flags
& NDR_IN
) {
1378 ZERO_STRUCT(r
->out
);
1380 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
1381 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
1383 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1384 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
1385 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
1386 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
1387 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.enum_index
));
1388 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
1389 NDR_PULL_ALLOC(ndr
, r
->in
.name
);
1391 _mem_save_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1392 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.name
, LIBNDR_FLAG_REF_ALLOC
);
1393 NDR_CHECK(ndr_pull_winreg_StringBuf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.name
));
1394 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_0
, LIBNDR_FLAG_REF_ALLOC
);
1395 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_keyclass
));
1396 if (_ptr_keyclass
) {
1397 NDR_PULL_ALLOC(ndr
, r
->in
.keyclass
);
1399 r
->in
.keyclass
= NULL
;
1401 if (r
->in
.keyclass
) {
1402 _mem_save_keyclass_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1403 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.keyclass
, 0);
1404 NDR_CHECK(ndr_pull_winreg_StringBuf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.keyclass
));
1405 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_keyclass_0
, 0);
1407 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_last_changed_time
));
1408 if (_ptr_last_changed_time
) {
1409 NDR_PULL_ALLOC(ndr
, r
->in
.last_changed_time
);
1411 r
->in
.last_changed_time
= NULL
;
1413 if (r
->in
.last_changed_time
) {
1414 _mem_save_last_changed_time_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1415 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.last_changed_time
, 0);
1416 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, r
->in
.last_changed_time
));
1417 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_last_changed_time_0
, 0);
1419 NDR_PULL_ALLOC(ndr
, r
->out
.name
);
1420 *r
->out
.name
= *r
->in
.name
;
1422 if (flags
& NDR_OUT
) {
1423 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
1424 NDR_PULL_ALLOC(ndr
, r
->out
.name
);
1426 _mem_save_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1427 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.name
, LIBNDR_FLAG_REF_ALLOC
);
1428 NDR_CHECK(ndr_pull_winreg_StringBuf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.name
));
1429 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_0
, LIBNDR_FLAG_REF_ALLOC
);
1430 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_keyclass
));
1431 if (_ptr_keyclass
) {
1432 NDR_PULL_ALLOC(ndr
, r
->out
.keyclass
);
1434 r
->out
.keyclass
= NULL
;
1436 if (r
->out
.keyclass
) {
1437 _mem_save_keyclass_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1438 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.keyclass
, 0);
1439 NDR_CHECK(ndr_pull_winreg_StringBuf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.keyclass
));
1440 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_keyclass_0
, 0);
1442 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_last_changed_time
));
1443 if (_ptr_last_changed_time
) {
1444 NDR_PULL_ALLOC(ndr
, r
->out
.last_changed_time
);
1446 r
->out
.last_changed_time
= NULL
;
1448 if (r
->out
.last_changed_time
) {
1449 _mem_save_last_changed_time_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1450 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.last_changed_time
, 0);
1451 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, r
->out
.last_changed_time
));
1452 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_last_changed_time_0
, 0);
1454 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
1456 return NDR_ERR_SUCCESS
;
1459 _PUBLIC_
void ndr_print_winreg_EnumKey(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_EnumKey
*r
)
1461 ndr_print_struct(ndr
, name
, "winreg_EnumKey");
1463 if (flags
& NDR_SET_VALUES
) {
1464 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
1466 if (flags
& NDR_IN
) {
1467 ndr_print_struct(ndr
, "in", "winreg_EnumKey");
1469 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
1471 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
1473 ndr_print_uint32(ndr
, "enum_index", r
->in
.enum_index
);
1474 ndr_print_ptr(ndr
, "name", r
->in
.name
);
1476 ndr_print_winreg_StringBuf(ndr
, "name", r
->in
.name
);
1478 ndr_print_ptr(ndr
, "keyclass", r
->in
.keyclass
);
1480 if (r
->in
.keyclass
) {
1481 ndr_print_winreg_StringBuf(ndr
, "keyclass", r
->in
.keyclass
);
1484 ndr_print_ptr(ndr
, "last_changed_time", r
->in
.last_changed_time
);
1486 if (r
->in
.last_changed_time
) {
1487 ndr_print_NTTIME(ndr
, "last_changed_time", *r
->in
.last_changed_time
);
1492 if (flags
& NDR_OUT
) {
1493 ndr_print_struct(ndr
, "out", "winreg_EnumKey");
1495 ndr_print_ptr(ndr
, "name", r
->out
.name
);
1497 ndr_print_winreg_StringBuf(ndr
, "name", r
->out
.name
);
1499 ndr_print_ptr(ndr
, "keyclass", r
->out
.keyclass
);
1501 if (r
->out
.keyclass
) {
1502 ndr_print_winreg_StringBuf(ndr
, "keyclass", r
->out
.keyclass
);
1505 ndr_print_ptr(ndr
, "last_changed_time", r
->out
.last_changed_time
);
1507 if (r
->out
.last_changed_time
) {
1508 ndr_print_NTTIME(ndr
, "last_changed_time", *r
->out
.last_changed_time
);
1511 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
1517 _PUBLIC_
enum ndr_err_code
ndr_push_winreg_EnumValue(struct ndr_push
*ndr
, int flags
, const struct winreg_EnumValue
*r
)
1519 if (flags
& NDR_IN
) {
1520 if (r
->in
.handle
== NULL
) {
1521 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
1523 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
1524 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.enum_index
));
1525 if (r
->in
.name
== NULL
) {
1526 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
1528 NDR_CHECK(ndr_push_winreg_ValNameBuf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.name
));
1529 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.type
));
1531 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, *r
->in
.type
));
1533 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.value
));
1535 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, *r
->in
.size
));
1536 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
1537 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, *r
->in
.length
));
1538 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->in
.value
, *r
->in
.length
));
1540 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.size
));
1542 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->in
.size
));
1544 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.length
));
1546 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->in
.length
));
1549 if (flags
& NDR_OUT
) {
1550 if (r
->out
.name
== NULL
) {
1551 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
1553 NDR_CHECK(ndr_push_winreg_ValNameBuf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.name
));
1554 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.type
));
1556 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, *r
->out
.type
));
1558 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.value
));
1560 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, *r
->out
.size
));
1561 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
1562 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, *r
->out
.length
));
1563 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->out
.value
, *r
->out
.length
));
1565 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.size
));
1567 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.size
));
1569 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.length
));
1570 if (r
->out
.length
) {
1571 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.length
));
1573 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
1575 return NDR_ERR_SUCCESS
;
1578 _PUBLIC_
enum ndr_err_code
ndr_pull_winreg_EnumValue(struct ndr_pull
*ndr
, int flags
, struct winreg_EnumValue
*r
)
1581 uint32_t _ptr_value
;
1582 uint32_t size_value_1
= 0;
1583 uint32_t length_value_1
= 0;
1585 uint32_t _ptr_length
;
1586 TALLOC_CTX
*_mem_save_handle_0
;
1587 TALLOC_CTX
*_mem_save_name_0
;
1588 TALLOC_CTX
*_mem_save_type_0
;
1589 TALLOC_CTX
*_mem_save_value_0
;
1590 TALLOC_CTX
*_mem_save_size_0
;
1591 TALLOC_CTX
*_mem_save_length_0
;
1592 if (flags
& NDR_IN
) {
1593 ZERO_STRUCT(r
->out
);
1595 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
1596 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
1598 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1599 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
1600 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
1601 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
1602 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.enum_index
));
1603 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
1604 NDR_PULL_ALLOC(ndr
, r
->in
.name
);
1606 _mem_save_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1607 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.name
, LIBNDR_FLAG_REF_ALLOC
);
1608 NDR_CHECK(ndr_pull_winreg_ValNameBuf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.name
));
1609 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_0
, LIBNDR_FLAG_REF_ALLOC
);
1610 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_type
));
1612 NDR_PULL_ALLOC(ndr
, r
->in
.type
);
1617 _mem_save_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1618 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.type
, 0);
1619 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, r
->in
.type
));
1620 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_type_0
, 0);
1622 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_value
));
1624 NDR_PULL_ALLOC(ndr
, r
->in
.value
);
1629 _mem_save_value_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1630 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.value
, 0);
1631 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.value
));
1632 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.value
));
1633 size_value_1
= ndr_get_array_size(ndr
, &r
->in
.value
);
1634 length_value_1
= ndr_get_array_length(ndr
, &r
->in
.value
);
1635 if (length_value_1
> size_value_1
) {
1636 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_value_1
, length_value_1
);
1638 NDR_PULL_ALLOC_N(ndr
, r
->in
.value
, size_value_1
);
1639 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->in
.value
, length_value_1
));
1640 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_value_0
, 0);
1642 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_size
));
1644 NDR_PULL_ALLOC(ndr
, r
->in
.size
);
1649 _mem_save_size_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1650 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.size
, 0);
1651 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->in
.size
));
1652 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_size_0
, 0);
1654 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_length
));
1656 NDR_PULL_ALLOC(ndr
, r
->in
.length
);
1658 r
->in
.length
= NULL
;
1661 _mem_save_length_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1662 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.length
, 0);
1663 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->in
.length
));
1664 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_length_0
, 0);
1666 NDR_PULL_ALLOC(ndr
, r
->out
.name
);
1667 *r
->out
.name
= *r
->in
.name
;
1669 if (r
->in
.size
== NULL
) return ndr_pull_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL Pointer for size_is()");
1670 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.value
, *r
->in
.size
));
1673 if (r
->in
.length
== NULL
) return ndr_pull_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL Pointer for length_is()");
1674 NDR_CHECK(ndr_check_array_length(ndr
, (void*)&r
->in
.value
, *r
->in
.length
));
1677 if (flags
& NDR_OUT
) {
1678 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
1679 NDR_PULL_ALLOC(ndr
, r
->out
.name
);
1681 _mem_save_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1682 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.name
, LIBNDR_FLAG_REF_ALLOC
);
1683 NDR_CHECK(ndr_pull_winreg_ValNameBuf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.name
));
1684 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_0
, LIBNDR_FLAG_REF_ALLOC
);
1685 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_type
));
1687 NDR_PULL_ALLOC(ndr
, r
->out
.type
);
1692 _mem_save_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1693 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.type
, 0);
1694 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, r
->out
.type
));
1695 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_type_0
, 0);
1697 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_value
));
1699 NDR_PULL_ALLOC(ndr
, r
->out
.value
);
1701 r
->out
.value
= NULL
;
1704 _mem_save_value_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1705 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.value
, 0);
1706 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.value
));
1707 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->out
.value
));
1708 size_value_1
= ndr_get_array_size(ndr
, &r
->out
.value
);
1709 length_value_1
= ndr_get_array_length(ndr
, &r
->out
.value
);
1710 if (length_value_1
> size_value_1
) {
1711 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_value_1
, length_value_1
);
1713 NDR_PULL_ALLOC_N(ndr
, r
->out
.value
, size_value_1
);
1714 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->out
.value
, length_value_1
));
1715 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_value_0
, 0);
1717 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_size
));
1719 NDR_PULL_ALLOC(ndr
, r
->out
.size
);
1724 _mem_save_size_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1725 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.size
, 0);
1726 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.size
));
1727 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_size_0
, 0);
1729 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_length
));
1731 NDR_PULL_ALLOC(ndr
, r
->out
.length
);
1733 r
->out
.length
= NULL
;
1735 if (r
->out
.length
) {
1736 _mem_save_length_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1737 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.length
, 0);
1738 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.length
));
1739 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_length_0
, 0);
1741 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
1743 if (r
->out
.size
== NULL
) return ndr_pull_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL Pointer for size_is()");
1744 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.value
, *r
->out
.size
));
1747 if (r
->out
.length
== NULL
) return ndr_pull_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL Pointer for length_is()");
1748 NDR_CHECK(ndr_check_array_length(ndr
, (void*)&r
->out
.value
, *r
->out
.length
));
1751 return NDR_ERR_SUCCESS
;
1754 _PUBLIC_
void ndr_print_winreg_EnumValue(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_EnumValue
*r
)
1756 ndr_print_struct(ndr
, name
, "winreg_EnumValue");
1758 if (flags
& NDR_SET_VALUES
) {
1759 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
1761 if (flags
& NDR_IN
) {
1762 ndr_print_struct(ndr
, "in", "winreg_EnumValue");
1764 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
1766 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
1768 ndr_print_uint32(ndr
, "enum_index", r
->in
.enum_index
);
1769 ndr_print_ptr(ndr
, "name", r
->in
.name
);
1771 ndr_print_winreg_ValNameBuf(ndr
, "name", r
->in
.name
);
1773 ndr_print_ptr(ndr
, "type", r
->in
.type
);
1776 ndr_print_winreg_Type(ndr
, "type", *r
->in
.type
);
1779 ndr_print_ptr(ndr
, "value", r
->in
.value
);
1782 if (r
->in
.length
== NULL
) return;
1783 ndr_print_array_uint8(ndr
, "value", r
->in
.value
, *r
->in
.length
);
1786 ndr_print_ptr(ndr
, "size", r
->in
.size
);
1789 ndr_print_uint32(ndr
, "size", *r
->in
.size
);
1792 ndr_print_ptr(ndr
, "length", r
->in
.length
);
1795 ndr_print_uint32(ndr
, "length", *r
->in
.length
);
1800 if (flags
& NDR_OUT
) {
1801 ndr_print_struct(ndr
, "out", "winreg_EnumValue");
1803 ndr_print_ptr(ndr
, "name", r
->out
.name
);
1805 ndr_print_winreg_ValNameBuf(ndr
, "name", r
->out
.name
);
1807 ndr_print_ptr(ndr
, "type", r
->out
.type
);
1810 ndr_print_winreg_Type(ndr
, "type", *r
->out
.type
);
1813 ndr_print_ptr(ndr
, "value", r
->out
.value
);
1816 if (r
->out
.length
== NULL
) return;
1817 ndr_print_array_uint8(ndr
, "value", r
->out
.value
, *r
->out
.length
);
1820 ndr_print_ptr(ndr
, "size", r
->out
.size
);
1823 ndr_print_uint32(ndr
, "size", *r
->out
.size
);
1826 ndr_print_ptr(ndr
, "length", r
->out
.length
);
1828 if (r
->out
.length
) {
1829 ndr_print_uint32(ndr
, "length", *r
->out
.length
);
1832 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
1838 _PUBLIC_
enum ndr_err_code
ndr_push_winreg_FlushKey(struct ndr_push
*ndr
, int flags
, const struct winreg_FlushKey
*r
)
1840 if (flags
& NDR_IN
) {
1841 if (r
->in
.handle
== NULL
) {
1842 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
1844 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
1846 if (flags
& NDR_OUT
) {
1847 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
1849 return NDR_ERR_SUCCESS
;
1852 _PUBLIC_
enum ndr_err_code
ndr_pull_winreg_FlushKey(struct ndr_pull
*ndr
, int flags
, struct winreg_FlushKey
*r
)
1854 TALLOC_CTX
*_mem_save_handle_0
;
1855 if (flags
& NDR_IN
) {
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
, r
->in
.handle
));
1862 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
1864 if (flags
& NDR_OUT
) {
1865 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
1867 return NDR_ERR_SUCCESS
;
1870 _PUBLIC_
void ndr_print_winreg_FlushKey(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_FlushKey
*r
)
1872 ndr_print_struct(ndr
, name
, "winreg_FlushKey");
1874 if (flags
& NDR_SET_VALUES
) {
1875 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
1877 if (flags
& NDR_IN
) {
1878 ndr_print_struct(ndr
, "in", "winreg_FlushKey");
1880 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
1882 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
1886 if (flags
& NDR_OUT
) {
1887 ndr_print_struct(ndr
, "out", "winreg_FlushKey");
1889 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
1895 _PUBLIC_
enum ndr_err_code
ndr_push_winreg_GetKeySecurity(struct ndr_push
*ndr
, int flags
, const struct winreg_GetKeySecurity
*r
)
1897 if (flags
& NDR_IN
) {
1898 if (r
->in
.handle
== NULL
) {
1899 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
1901 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
1902 NDR_CHECK(ndr_push_security_secinfo(ndr
, NDR_SCALARS
, r
->in
.sec_info
));
1903 if (r
->in
.sd
== NULL
) {
1904 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
1906 NDR_CHECK(ndr_push_KeySecurityData(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.sd
));
1908 if (flags
& NDR_OUT
) {
1909 if (r
->out
.sd
== NULL
) {
1910 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
1912 NDR_CHECK(ndr_push_KeySecurityData(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.sd
));
1913 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
1915 return NDR_ERR_SUCCESS
;
1918 _PUBLIC_
enum ndr_err_code
ndr_pull_winreg_GetKeySecurity(struct ndr_pull
*ndr
, int flags
, struct winreg_GetKeySecurity
*r
)
1920 TALLOC_CTX
*_mem_save_handle_0
;
1921 TALLOC_CTX
*_mem_save_sd_0
;
1922 if (flags
& NDR_IN
) {
1923 ZERO_STRUCT(r
->out
);
1925 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
1926 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
1928 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1929 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
1930 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
1931 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
1932 NDR_CHECK(ndr_pull_security_secinfo(ndr
, NDR_SCALARS
, &r
->in
.sec_info
));
1933 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
1934 NDR_PULL_ALLOC(ndr
, r
->in
.sd
);
1936 _mem_save_sd_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1937 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.sd
, LIBNDR_FLAG_REF_ALLOC
);
1938 NDR_CHECK(ndr_pull_KeySecurityData(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.sd
));
1939 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sd_0
, LIBNDR_FLAG_REF_ALLOC
);
1940 NDR_PULL_ALLOC(ndr
, r
->out
.sd
);
1941 *r
->out
.sd
= *r
->in
.sd
;
1943 if (flags
& NDR_OUT
) {
1944 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
1945 NDR_PULL_ALLOC(ndr
, r
->out
.sd
);
1947 _mem_save_sd_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1948 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.sd
, LIBNDR_FLAG_REF_ALLOC
);
1949 NDR_CHECK(ndr_pull_KeySecurityData(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.sd
));
1950 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sd_0
, LIBNDR_FLAG_REF_ALLOC
);
1951 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
1953 return NDR_ERR_SUCCESS
;
1956 _PUBLIC_
void ndr_print_winreg_GetKeySecurity(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_GetKeySecurity
*r
)
1958 ndr_print_struct(ndr
, name
, "winreg_GetKeySecurity");
1960 if (flags
& NDR_SET_VALUES
) {
1961 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
1963 if (flags
& NDR_IN
) {
1964 ndr_print_struct(ndr
, "in", "winreg_GetKeySecurity");
1966 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
1968 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
1970 ndr_print_security_secinfo(ndr
, "sec_info", r
->in
.sec_info
);
1971 ndr_print_ptr(ndr
, "sd", r
->in
.sd
);
1973 ndr_print_KeySecurityData(ndr
, "sd", r
->in
.sd
);
1977 if (flags
& NDR_OUT
) {
1978 ndr_print_struct(ndr
, "out", "winreg_GetKeySecurity");
1980 ndr_print_ptr(ndr
, "sd", r
->out
.sd
);
1982 ndr_print_KeySecurityData(ndr
, "sd", r
->out
.sd
);
1984 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
1990 static enum ndr_err_code
ndr_push_winreg_LoadKey(struct ndr_push
*ndr
, int flags
, const struct winreg_LoadKey
*r
)
1992 if (flags
& NDR_IN
) {
1993 if (r
->in
.handle
== NULL
) {
1994 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
1996 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
1997 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.keyname
));
1998 if (r
->in
.keyname
) {
1999 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.keyname
));
2001 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.filename
));
2002 if (r
->in
.filename
) {
2003 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.filename
));
2006 if (flags
& NDR_OUT
) {
2007 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
2009 return NDR_ERR_SUCCESS
;
2012 static enum ndr_err_code
ndr_pull_winreg_LoadKey(struct ndr_pull
*ndr
, int flags
, struct winreg_LoadKey
*r
)
2014 uint32_t _ptr_keyname
;
2015 uint32_t _ptr_filename
;
2016 TALLOC_CTX
*_mem_save_handle_0
;
2017 TALLOC_CTX
*_mem_save_keyname_0
;
2018 TALLOC_CTX
*_mem_save_filename_0
;
2019 if (flags
& NDR_IN
) {
2020 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2021 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
2023 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2024 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
2025 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
2026 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
2027 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_keyname
));
2029 NDR_PULL_ALLOC(ndr
, r
->in
.keyname
);
2031 r
->in
.keyname
= NULL
;
2033 if (r
->in
.keyname
) {
2034 _mem_save_keyname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2035 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.keyname
, 0);
2036 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.keyname
));
2037 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_keyname_0
, 0);
2039 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_filename
));
2040 if (_ptr_filename
) {
2041 NDR_PULL_ALLOC(ndr
, r
->in
.filename
);
2043 r
->in
.filename
= NULL
;
2045 if (r
->in
.filename
) {
2046 _mem_save_filename_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2047 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.filename
, 0);
2048 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.filename
));
2049 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_filename_0
, 0);
2052 if (flags
& NDR_OUT
) {
2053 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
2055 return NDR_ERR_SUCCESS
;
2058 _PUBLIC_
void ndr_print_winreg_LoadKey(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_LoadKey
*r
)
2060 ndr_print_struct(ndr
, name
, "winreg_LoadKey");
2062 if (flags
& NDR_SET_VALUES
) {
2063 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
2065 if (flags
& NDR_IN
) {
2066 ndr_print_struct(ndr
, "in", "winreg_LoadKey");
2068 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
2070 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
2072 ndr_print_ptr(ndr
, "keyname", r
->in
.keyname
);
2074 if (r
->in
.keyname
) {
2075 ndr_print_winreg_String(ndr
, "keyname", r
->in
.keyname
);
2078 ndr_print_ptr(ndr
, "filename", r
->in
.filename
);
2080 if (r
->in
.filename
) {
2081 ndr_print_winreg_String(ndr
, "filename", r
->in
.filename
);
2086 if (flags
& NDR_OUT
) {
2087 ndr_print_struct(ndr
, "out", "winreg_LoadKey");
2089 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
2095 _PUBLIC_
enum ndr_err_code
ndr_push_winreg_NotifyChangeKeyValue(struct ndr_push
*ndr
, int flags
, const struct winreg_NotifyChangeKeyValue
*r
)
2097 if (flags
& NDR_IN
) {
2098 if (r
->in
.handle
== NULL
) {
2099 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2101 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
2102 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->in
.watch_subtree
));
2103 NDR_CHECK(ndr_push_winreg_NotifyChangeType(ndr
, NDR_SCALARS
, r
->in
.notify_filter
));
2104 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.unknown
));
2105 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.string1
));
2106 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.string2
));
2107 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.unknown2
));
2109 if (flags
& NDR_OUT
) {
2110 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
2112 return NDR_ERR_SUCCESS
;
2115 _PUBLIC_
enum ndr_err_code
ndr_pull_winreg_NotifyChangeKeyValue(struct ndr_pull
*ndr
, int flags
, struct winreg_NotifyChangeKeyValue
*r
)
2117 TALLOC_CTX
*_mem_save_handle_0
;
2118 if (flags
& NDR_IN
) {
2119 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2120 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
2122 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2123 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
2124 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
2125 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
2126 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->in
.watch_subtree
));
2127 NDR_CHECK(ndr_pull_winreg_NotifyChangeType(ndr
, NDR_SCALARS
, &r
->in
.notify_filter
));
2128 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.unknown
));
2129 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.string1
));
2130 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.string2
));
2131 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.unknown2
));
2133 if (flags
& NDR_OUT
) {
2134 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
2136 return NDR_ERR_SUCCESS
;
2139 _PUBLIC_
void ndr_print_winreg_NotifyChangeKeyValue(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_NotifyChangeKeyValue
*r
)
2141 ndr_print_struct(ndr
, name
, "winreg_NotifyChangeKeyValue");
2143 if (flags
& NDR_SET_VALUES
) {
2144 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
2146 if (flags
& NDR_IN
) {
2147 ndr_print_struct(ndr
, "in", "winreg_NotifyChangeKeyValue");
2149 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
2151 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
2153 ndr_print_uint8(ndr
, "watch_subtree", r
->in
.watch_subtree
);
2154 ndr_print_winreg_NotifyChangeType(ndr
, "notify_filter", r
->in
.notify_filter
);
2155 ndr_print_uint32(ndr
, "unknown", r
->in
.unknown
);
2156 ndr_print_winreg_String(ndr
, "string1", &r
->in
.string1
);
2157 ndr_print_winreg_String(ndr
, "string2", &r
->in
.string2
);
2158 ndr_print_uint32(ndr
, "unknown2", r
->in
.unknown2
);
2161 if (flags
& NDR_OUT
) {
2162 ndr_print_struct(ndr
, "out", "winreg_NotifyChangeKeyValue");
2164 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
2170 _PUBLIC_
enum ndr_err_code
ndr_push_winreg_OpenKey(struct ndr_push
*ndr
, int flags
, const struct winreg_OpenKey
*r
)
2172 if (flags
& NDR_IN
) {
2173 if (r
->in
.parent_handle
== NULL
) {
2174 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2176 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.parent_handle
));
2177 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.keyname
));
2178 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.unknown
));
2179 NDR_CHECK(ndr_push_winreg_AccessMask(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
2181 if (flags
& NDR_OUT
) {
2182 if (r
->out
.handle
== NULL
) {
2183 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2185 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
2186 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
2188 return NDR_ERR_SUCCESS
;
2191 _PUBLIC_
enum ndr_err_code
ndr_pull_winreg_OpenKey(struct ndr_pull
*ndr
, int flags
, struct winreg_OpenKey
*r
)
2193 TALLOC_CTX
*_mem_save_parent_handle_0
;
2194 TALLOC_CTX
*_mem_save_handle_0
;
2195 if (flags
& NDR_IN
) {
2196 ZERO_STRUCT(r
->out
);
2198 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2199 NDR_PULL_ALLOC(ndr
, r
->in
.parent_handle
);
2201 _mem_save_parent_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2202 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.parent_handle
, LIBNDR_FLAG_REF_ALLOC
);
2203 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.parent_handle
));
2204 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_parent_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
2205 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.keyname
));
2206 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.unknown
));
2207 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
2208 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
2209 ZERO_STRUCTP(r
->out
.handle
);
2211 if (flags
& NDR_OUT
) {
2212 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2213 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
2215 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2216 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
2217 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
2218 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
2219 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
2221 return NDR_ERR_SUCCESS
;
2224 _PUBLIC_
void ndr_print_winreg_OpenKey(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_OpenKey
*r
)
2226 ndr_print_struct(ndr
, name
, "winreg_OpenKey");
2228 if (flags
& NDR_SET_VALUES
) {
2229 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
2231 if (flags
& NDR_IN
) {
2232 ndr_print_struct(ndr
, "in", "winreg_OpenKey");
2234 ndr_print_ptr(ndr
, "parent_handle", r
->in
.parent_handle
);
2236 ndr_print_policy_handle(ndr
, "parent_handle", r
->in
.parent_handle
);
2238 ndr_print_winreg_String(ndr
, "keyname", &r
->in
.keyname
);
2239 ndr_print_uint32(ndr
, "unknown", r
->in
.unknown
);
2240 ndr_print_winreg_AccessMask(ndr
, "access_mask", r
->in
.access_mask
);
2243 if (flags
& NDR_OUT
) {
2244 ndr_print_struct(ndr
, "out", "winreg_OpenKey");
2246 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
2248 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
2250 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
2256 _PUBLIC_
enum ndr_err_code
ndr_push_winreg_QueryInfoKey(struct ndr_push
*ndr
, int flags
, const struct winreg_QueryInfoKey
*r
)
2258 if (flags
& NDR_IN
) {
2259 if (r
->in
.handle
== NULL
) {
2260 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2262 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
2263 if (r
->in
.classname
== NULL
) {
2264 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2266 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.classname
));
2268 if (flags
& NDR_OUT
) {
2269 if (r
->out
.classname
== NULL
) {
2270 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2272 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.classname
));
2273 if (r
->out
.num_subkeys
== NULL
) {
2274 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2276 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.num_subkeys
));
2277 if (r
->out
.max_subkeylen
== NULL
) {
2278 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2280 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.max_subkeylen
));
2281 if (r
->out
.max_classlen
== NULL
) {
2282 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2284 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.max_classlen
));
2285 if (r
->out
.num_values
== NULL
) {
2286 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2288 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.num_values
));
2289 if (r
->out
.max_valnamelen
== NULL
) {
2290 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2292 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.max_valnamelen
));
2293 if (r
->out
.max_valbufsize
== NULL
) {
2294 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2296 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.max_valbufsize
));
2297 if (r
->out
.secdescsize
== NULL
) {
2298 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2300 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.secdescsize
));
2301 if (r
->out
.last_changed_time
== NULL
) {
2302 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2304 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, *r
->out
.last_changed_time
));
2305 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
2307 return NDR_ERR_SUCCESS
;
2310 _PUBLIC_
enum ndr_err_code
ndr_pull_winreg_QueryInfoKey(struct ndr_pull
*ndr
, int flags
, struct winreg_QueryInfoKey
*r
)
2312 TALLOC_CTX
*_mem_save_handle_0
;
2313 TALLOC_CTX
*_mem_save_classname_0
;
2314 TALLOC_CTX
*_mem_save_num_subkeys_0
;
2315 TALLOC_CTX
*_mem_save_max_subkeylen_0
;
2316 TALLOC_CTX
*_mem_save_max_classlen_0
;
2317 TALLOC_CTX
*_mem_save_num_values_0
;
2318 TALLOC_CTX
*_mem_save_max_valnamelen_0
;
2319 TALLOC_CTX
*_mem_save_max_valbufsize_0
;
2320 TALLOC_CTX
*_mem_save_secdescsize_0
;
2321 TALLOC_CTX
*_mem_save_last_changed_time_0
;
2322 if (flags
& NDR_IN
) {
2323 ZERO_STRUCT(r
->out
);
2325 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2326 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
2328 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2329 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
2330 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
2331 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
2332 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2333 NDR_PULL_ALLOC(ndr
, r
->in
.classname
);
2335 _mem_save_classname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2336 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.classname
, LIBNDR_FLAG_REF_ALLOC
);
2337 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.classname
));
2338 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_classname_0
, LIBNDR_FLAG_REF_ALLOC
);
2339 NDR_PULL_ALLOC(ndr
, r
->out
.classname
);
2340 *r
->out
.classname
= *r
->in
.classname
;
2341 NDR_PULL_ALLOC(ndr
, r
->out
.num_subkeys
);
2342 ZERO_STRUCTP(r
->out
.num_subkeys
);
2343 NDR_PULL_ALLOC(ndr
, r
->out
.max_subkeylen
);
2344 ZERO_STRUCTP(r
->out
.max_subkeylen
);
2345 NDR_PULL_ALLOC(ndr
, r
->out
.max_classlen
);
2346 ZERO_STRUCTP(r
->out
.max_classlen
);
2347 NDR_PULL_ALLOC(ndr
, r
->out
.num_values
);
2348 ZERO_STRUCTP(r
->out
.num_values
);
2349 NDR_PULL_ALLOC(ndr
, r
->out
.max_valnamelen
);
2350 ZERO_STRUCTP(r
->out
.max_valnamelen
);
2351 NDR_PULL_ALLOC(ndr
, r
->out
.max_valbufsize
);
2352 ZERO_STRUCTP(r
->out
.max_valbufsize
);
2353 NDR_PULL_ALLOC(ndr
, r
->out
.secdescsize
);
2354 ZERO_STRUCTP(r
->out
.secdescsize
);
2355 NDR_PULL_ALLOC(ndr
, r
->out
.last_changed_time
);
2356 ZERO_STRUCTP(r
->out
.last_changed_time
);
2358 if (flags
& NDR_OUT
) {
2359 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2360 NDR_PULL_ALLOC(ndr
, r
->out
.classname
);
2362 _mem_save_classname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2363 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.classname
, LIBNDR_FLAG_REF_ALLOC
);
2364 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.classname
));
2365 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_classname_0
, LIBNDR_FLAG_REF_ALLOC
);
2366 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2367 NDR_PULL_ALLOC(ndr
, r
->out
.num_subkeys
);
2369 _mem_save_num_subkeys_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2370 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.num_subkeys
, LIBNDR_FLAG_REF_ALLOC
);
2371 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.num_subkeys
));
2372 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_num_subkeys_0
, LIBNDR_FLAG_REF_ALLOC
);
2373 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2374 NDR_PULL_ALLOC(ndr
, r
->out
.max_subkeylen
);
2376 _mem_save_max_subkeylen_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2377 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.max_subkeylen
, LIBNDR_FLAG_REF_ALLOC
);
2378 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.max_subkeylen
));
2379 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_max_subkeylen_0
, LIBNDR_FLAG_REF_ALLOC
);
2380 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2381 NDR_PULL_ALLOC(ndr
, r
->out
.max_classlen
);
2383 _mem_save_max_classlen_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2384 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.max_classlen
, LIBNDR_FLAG_REF_ALLOC
);
2385 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.max_classlen
));
2386 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_max_classlen_0
, LIBNDR_FLAG_REF_ALLOC
);
2387 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2388 NDR_PULL_ALLOC(ndr
, r
->out
.num_values
);
2390 _mem_save_num_values_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2391 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.num_values
, LIBNDR_FLAG_REF_ALLOC
);
2392 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.num_values
));
2393 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_num_values_0
, LIBNDR_FLAG_REF_ALLOC
);
2394 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2395 NDR_PULL_ALLOC(ndr
, r
->out
.max_valnamelen
);
2397 _mem_save_max_valnamelen_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2398 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.max_valnamelen
, LIBNDR_FLAG_REF_ALLOC
);
2399 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.max_valnamelen
));
2400 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_max_valnamelen_0
, LIBNDR_FLAG_REF_ALLOC
);
2401 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2402 NDR_PULL_ALLOC(ndr
, r
->out
.max_valbufsize
);
2404 _mem_save_max_valbufsize_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2405 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.max_valbufsize
, LIBNDR_FLAG_REF_ALLOC
);
2406 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.max_valbufsize
));
2407 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_max_valbufsize_0
, LIBNDR_FLAG_REF_ALLOC
);
2408 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2409 NDR_PULL_ALLOC(ndr
, r
->out
.secdescsize
);
2411 _mem_save_secdescsize_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2412 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.secdescsize
, LIBNDR_FLAG_REF_ALLOC
);
2413 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.secdescsize
));
2414 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdescsize_0
, LIBNDR_FLAG_REF_ALLOC
);
2415 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2416 NDR_PULL_ALLOC(ndr
, r
->out
.last_changed_time
);
2418 _mem_save_last_changed_time_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2419 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.last_changed_time
, LIBNDR_FLAG_REF_ALLOC
);
2420 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, r
->out
.last_changed_time
));
2421 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_last_changed_time_0
, LIBNDR_FLAG_REF_ALLOC
);
2422 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
2424 return NDR_ERR_SUCCESS
;
2427 _PUBLIC_
void ndr_print_winreg_QueryInfoKey(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_QueryInfoKey
*r
)
2429 ndr_print_struct(ndr
, name
, "winreg_QueryInfoKey");
2431 if (flags
& NDR_SET_VALUES
) {
2432 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
2434 if (flags
& NDR_IN
) {
2435 ndr_print_struct(ndr
, "in", "winreg_QueryInfoKey");
2437 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
2439 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
2441 ndr_print_ptr(ndr
, "classname", r
->in
.classname
);
2443 ndr_print_winreg_String(ndr
, "classname", r
->in
.classname
);
2447 if (flags
& NDR_OUT
) {
2448 ndr_print_struct(ndr
, "out", "winreg_QueryInfoKey");
2450 ndr_print_ptr(ndr
, "classname", r
->out
.classname
);
2452 ndr_print_winreg_String(ndr
, "classname", r
->out
.classname
);
2454 ndr_print_ptr(ndr
, "num_subkeys", r
->out
.num_subkeys
);
2456 ndr_print_uint32(ndr
, "num_subkeys", *r
->out
.num_subkeys
);
2458 ndr_print_ptr(ndr
, "max_subkeylen", r
->out
.max_subkeylen
);
2460 ndr_print_uint32(ndr
, "max_subkeylen", *r
->out
.max_subkeylen
);
2462 ndr_print_ptr(ndr
, "max_classlen", r
->out
.max_classlen
);
2464 ndr_print_uint32(ndr
, "max_classlen", *r
->out
.max_classlen
);
2466 ndr_print_ptr(ndr
, "num_values", r
->out
.num_values
);
2468 ndr_print_uint32(ndr
, "num_values", *r
->out
.num_values
);
2470 ndr_print_ptr(ndr
, "max_valnamelen", r
->out
.max_valnamelen
);
2472 ndr_print_uint32(ndr
, "max_valnamelen", *r
->out
.max_valnamelen
);
2474 ndr_print_ptr(ndr
, "max_valbufsize", r
->out
.max_valbufsize
);
2476 ndr_print_uint32(ndr
, "max_valbufsize", *r
->out
.max_valbufsize
);
2478 ndr_print_ptr(ndr
, "secdescsize", r
->out
.secdescsize
);
2480 ndr_print_uint32(ndr
, "secdescsize", *r
->out
.secdescsize
);
2482 ndr_print_ptr(ndr
, "last_changed_time", r
->out
.last_changed_time
);
2484 ndr_print_NTTIME(ndr
, "last_changed_time", *r
->out
.last_changed_time
);
2486 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
2492 _PUBLIC_
enum ndr_err_code
ndr_push_winreg_QueryValue(struct ndr_push
*ndr
, int flags
, const struct winreg_QueryValue
*r
)
2494 if (flags
& NDR_IN
) {
2495 if (r
->in
.handle
== NULL
) {
2496 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2498 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
2499 if (r
->in
.value_name
== NULL
) {
2500 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2502 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.value_name
));
2503 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.type
));
2505 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, *r
->in
.type
));
2507 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.data
));
2509 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.data_size
?*r
->in
.data_size
:0));
2510 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
2511 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.data_length
?*r
->in
.data_length
:0));
2512 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->in
.data
, r
->in
.data_length
?*r
->in
.data_length
:0));
2514 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.data_size
));
2515 if (r
->in
.data_size
) {
2516 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->in
.data_size
));
2518 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.data_length
));
2519 if (r
->in
.data_length
) {
2520 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->in
.data_length
));
2523 if (flags
& NDR_OUT
) {
2524 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.type
));
2526 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, *r
->out
.type
));
2528 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.data
));
2530 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->out
.data_size
?*r
->out
.data_size
:0));
2531 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
2532 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->out
.data_length
?*r
->out
.data_length
:0));
2533 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->out
.data
, r
->out
.data_length
?*r
->out
.data_length
:0));
2535 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.data_size
));
2536 if (r
->out
.data_size
) {
2537 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.data_size
));
2539 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.data_length
));
2540 if (r
->out
.data_length
) {
2541 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.data_length
));
2543 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
2545 return NDR_ERR_SUCCESS
;
2548 _PUBLIC_
enum ndr_err_code
ndr_pull_winreg_QueryValue(struct ndr_pull
*ndr
, int flags
, struct winreg_QueryValue
*r
)
2552 uint32_t size_data_1
= 0;
2553 uint32_t length_data_1
= 0;
2554 uint32_t _ptr_data_size
;
2555 uint32_t _ptr_data_length
;
2556 TALLOC_CTX
*_mem_save_handle_0
;
2557 TALLOC_CTX
*_mem_save_value_name_0
;
2558 TALLOC_CTX
*_mem_save_type_0
;
2559 TALLOC_CTX
*_mem_save_data_0
;
2560 TALLOC_CTX
*_mem_save_data_size_0
;
2561 TALLOC_CTX
*_mem_save_data_length_0
;
2562 if (flags
& NDR_IN
) {
2563 ZERO_STRUCT(r
->out
);
2565 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2566 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
2568 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2569 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
2570 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
2571 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
2572 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2573 NDR_PULL_ALLOC(ndr
, r
->in
.value_name
);
2575 _mem_save_value_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2576 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.value_name
, LIBNDR_FLAG_REF_ALLOC
);
2577 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.value_name
));
2578 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_value_name_0
, LIBNDR_FLAG_REF_ALLOC
);
2579 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_type
));
2581 NDR_PULL_ALLOC(ndr
, r
->in
.type
);
2586 _mem_save_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2587 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.type
, 0);
2588 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, r
->in
.type
));
2589 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_type_0
, 0);
2591 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data
));
2593 NDR_PULL_ALLOC(ndr
, r
->in
.data
);
2598 _mem_save_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2599 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.data
, 0);
2600 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.data
));
2601 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.data
));
2602 size_data_1
= ndr_get_array_size(ndr
, &r
->in
.data
);
2603 if (size_data_1
> 0x4000000) {
2604 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
2606 length_data_1
= ndr_get_array_length(ndr
, &r
->in
.data
);
2607 if (length_data_1
> 0x4000000) {
2608 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
2610 if (length_data_1
> size_data_1
) {
2611 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_data_1
, length_data_1
);
2613 NDR_PULL_ALLOC_N(ndr
, r
->in
.data
, size_data_1
);
2614 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->in
.data
, length_data_1
));
2615 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_0
, 0);
2617 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_size
));
2618 if (_ptr_data_size
) {
2619 NDR_PULL_ALLOC(ndr
, r
->in
.data_size
);
2621 r
->in
.data_size
= NULL
;
2623 if (r
->in
.data_size
) {
2624 _mem_save_data_size_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2625 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.data_size
, 0);
2626 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->in
.data_size
));
2627 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_size_0
, 0);
2629 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_length
));
2630 if (_ptr_data_length
) {
2631 NDR_PULL_ALLOC(ndr
, r
->in
.data_length
);
2633 r
->in
.data_length
= NULL
;
2635 if (r
->in
.data_length
) {
2636 _mem_save_data_length_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2637 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.data_length
, 0);
2638 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->in
.data_length
));
2639 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_length_0
, 0);
2642 if (r
->in
.data_size
== NULL
) return ndr_pull_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL Pointer for size_is()");
2643 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.data
, r
->in
.data_size
?*r
->in
.data_size
:0));
2646 if (r
->in
.data_length
== NULL
) return ndr_pull_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL Pointer for length_is()");
2647 NDR_CHECK(ndr_check_array_length(ndr
, (void*)&r
->in
.data
, r
->in
.data_length
?*r
->in
.data_length
:0));
2650 if (flags
& NDR_OUT
) {
2651 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_type
));
2653 NDR_PULL_ALLOC(ndr
, r
->out
.type
);
2658 _mem_save_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2659 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.type
, 0);
2660 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, r
->out
.type
));
2661 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_type_0
, 0);
2663 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data
));
2665 NDR_PULL_ALLOC(ndr
, r
->out
.data
);
2670 _mem_save_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2671 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.data
, 0);
2672 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.data
));
2673 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->out
.data
));
2674 size_data_1
= ndr_get_array_size(ndr
, &r
->out
.data
);
2675 if (size_data_1
> 0x4000000) {
2676 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
2678 length_data_1
= ndr_get_array_length(ndr
, &r
->out
.data
);
2679 if (length_data_1
> 0x4000000) {
2680 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
2682 if (length_data_1
> size_data_1
) {
2683 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_data_1
, length_data_1
);
2685 NDR_PULL_ALLOC_N(ndr
, r
->out
.data
, size_data_1
);
2686 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->out
.data
, length_data_1
));
2687 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_0
, 0);
2689 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_size
));
2690 if (_ptr_data_size
) {
2691 NDR_PULL_ALLOC(ndr
, r
->out
.data_size
);
2693 r
->out
.data_size
= NULL
;
2695 if (r
->out
.data_size
) {
2696 _mem_save_data_size_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2697 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.data_size
, 0);
2698 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.data_size
));
2699 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_size_0
, 0);
2701 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_length
));
2702 if (_ptr_data_length
) {
2703 NDR_PULL_ALLOC(ndr
, r
->out
.data_length
);
2705 r
->out
.data_length
= NULL
;
2707 if (r
->out
.data_length
) {
2708 _mem_save_data_length_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2709 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.data_length
, 0);
2710 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.data_length
));
2711 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_length_0
, 0);
2713 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
2715 if (r
->out
.data_size
== NULL
) return ndr_pull_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL Pointer for size_is()");
2716 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.data
, r
->out
.data_size
?*r
->out
.data_size
:0));
2719 if (r
->out
.data_length
== NULL
) return ndr_pull_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL Pointer for length_is()");
2720 NDR_CHECK(ndr_check_array_length(ndr
, (void*)&r
->out
.data
, r
->out
.data_length
?*r
->out
.data_length
:0));
2723 return NDR_ERR_SUCCESS
;
2726 _PUBLIC_
void ndr_print_winreg_QueryValue(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_QueryValue
*r
)
2728 ndr_print_struct(ndr
, name
, "winreg_QueryValue");
2730 if (flags
& NDR_SET_VALUES
) {
2731 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
2733 if (flags
& NDR_IN
) {
2734 ndr_print_struct(ndr
, "in", "winreg_QueryValue");
2736 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
2738 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
2740 ndr_print_ptr(ndr
, "value_name", r
->in
.value_name
);
2742 ndr_print_winreg_String(ndr
, "value_name", r
->in
.value_name
);
2744 ndr_print_ptr(ndr
, "type", r
->in
.type
);
2747 ndr_print_winreg_Type(ndr
, "type", *r
->in
.type
);
2750 ndr_print_ptr(ndr
, "data", r
->in
.data
);
2753 if (r
->in
.data_length
== NULL
) return;
2754 ndr_print_array_uint8(ndr
, "data", r
->in
.data
, r
->in
.data_length
?*r
->in
.data_length
:0);
2757 ndr_print_ptr(ndr
, "data_size", r
->in
.data_size
);
2759 if (r
->in
.data_size
) {
2760 ndr_print_uint32(ndr
, "data_size", *r
->in
.data_size
);
2763 ndr_print_ptr(ndr
, "data_length", r
->in
.data_length
);
2765 if (r
->in
.data_length
) {
2766 ndr_print_uint32(ndr
, "data_length", *r
->in
.data_length
);
2771 if (flags
& NDR_OUT
) {
2772 ndr_print_struct(ndr
, "out", "winreg_QueryValue");
2774 ndr_print_ptr(ndr
, "type", r
->out
.type
);
2777 ndr_print_winreg_Type(ndr
, "type", *r
->out
.type
);
2780 ndr_print_ptr(ndr
, "data", r
->out
.data
);
2783 if (r
->out
.data_length
== NULL
) return;
2784 ndr_print_array_uint8(ndr
, "data", r
->out
.data
, r
->out
.data_length
?*r
->out
.data_length
:0);
2787 ndr_print_ptr(ndr
, "data_size", r
->out
.data_size
);
2789 if (r
->out
.data_size
) {
2790 ndr_print_uint32(ndr
, "data_size", *r
->out
.data_size
);
2793 ndr_print_ptr(ndr
, "data_length", r
->out
.data_length
);
2795 if (r
->out
.data_length
) {
2796 ndr_print_uint32(ndr
, "data_length", *r
->out
.data_length
);
2799 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
2805 static enum ndr_err_code
ndr_push_winreg_ReplaceKey(struct ndr_push
*ndr
, int flags
, const struct winreg_ReplaceKey
*r
)
2807 if (flags
& NDR_IN
) {
2809 if (flags
& NDR_OUT
) {
2810 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
2812 return NDR_ERR_SUCCESS
;
2815 static enum ndr_err_code
ndr_pull_winreg_ReplaceKey(struct ndr_pull
*ndr
, int flags
, struct winreg_ReplaceKey
*r
)
2817 if (flags
& NDR_IN
) {
2819 if (flags
& NDR_OUT
) {
2820 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
2822 return NDR_ERR_SUCCESS
;
2825 _PUBLIC_
void ndr_print_winreg_ReplaceKey(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_ReplaceKey
*r
)
2827 ndr_print_struct(ndr
, name
, "winreg_ReplaceKey");
2829 if (flags
& NDR_SET_VALUES
) {
2830 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
2832 if (flags
& NDR_IN
) {
2833 ndr_print_struct(ndr
, "in", "winreg_ReplaceKey");
2837 if (flags
& NDR_OUT
) {
2838 ndr_print_struct(ndr
, "out", "winreg_ReplaceKey");
2840 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
2846 static enum ndr_err_code
ndr_push_winreg_RestoreKey(struct ndr_push
*ndr
, int flags
, const struct winreg_RestoreKey
*r
)
2848 if (flags
& NDR_IN
) {
2849 if (r
->in
.handle
== NULL
) {
2850 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2852 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
2853 if (r
->in
.filename
== NULL
) {
2854 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2856 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.filename
));
2857 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.flags
));
2859 if (flags
& NDR_OUT
) {
2860 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
2862 return NDR_ERR_SUCCESS
;
2865 static enum ndr_err_code
ndr_pull_winreg_RestoreKey(struct ndr_pull
*ndr
, int flags
, struct winreg_RestoreKey
*r
)
2867 TALLOC_CTX
*_mem_save_handle_0
;
2868 TALLOC_CTX
*_mem_save_filename_0
;
2869 if (flags
& NDR_IN
) {
2870 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2871 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
2873 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2874 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
2875 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
2876 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
2877 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2878 NDR_PULL_ALLOC(ndr
, r
->in
.filename
);
2880 _mem_save_filename_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2881 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.filename
, LIBNDR_FLAG_REF_ALLOC
);
2882 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.filename
));
2883 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_filename_0
, LIBNDR_FLAG_REF_ALLOC
);
2884 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.flags
));
2886 if (flags
& NDR_OUT
) {
2887 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
2889 return NDR_ERR_SUCCESS
;
2892 _PUBLIC_
void ndr_print_winreg_RestoreKey(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_RestoreKey
*r
)
2894 ndr_print_struct(ndr
, name
, "winreg_RestoreKey");
2896 if (flags
& NDR_SET_VALUES
) {
2897 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
2899 if (flags
& NDR_IN
) {
2900 ndr_print_struct(ndr
, "in", "winreg_RestoreKey");
2902 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
2904 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
2906 ndr_print_ptr(ndr
, "filename", r
->in
.filename
);
2908 ndr_print_winreg_String(ndr
, "filename", r
->in
.filename
);
2910 ndr_print_uint32(ndr
, "flags", r
->in
.flags
);
2913 if (flags
& NDR_OUT
) {
2914 ndr_print_struct(ndr
, "out", "winreg_RestoreKey");
2916 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
2922 static enum ndr_err_code
ndr_push_winreg_SaveKey(struct ndr_push
*ndr
, int flags
, const struct winreg_SaveKey
*r
)
2924 if (flags
& NDR_IN
) {
2925 if (r
->in
.handle
== NULL
) {
2926 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2928 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
2929 if (r
->in
.filename
== NULL
) {
2930 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2932 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.filename
));
2933 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.sec_attrib
));
2934 if (r
->in
.sec_attrib
) {
2935 NDR_CHECK(ndr_push_KeySecurityAttribute(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.sec_attrib
));
2938 if (flags
& NDR_OUT
) {
2939 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
2941 return NDR_ERR_SUCCESS
;
2944 static enum ndr_err_code
ndr_pull_winreg_SaveKey(struct ndr_pull
*ndr
, int flags
, struct winreg_SaveKey
*r
)
2946 uint32_t _ptr_sec_attrib
;
2947 TALLOC_CTX
*_mem_save_handle_0
;
2948 TALLOC_CTX
*_mem_save_filename_0
;
2949 TALLOC_CTX
*_mem_save_sec_attrib_0
;
2950 if (flags
& NDR_IN
) {
2951 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2952 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
2954 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2955 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
2956 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
2957 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
2958 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2959 NDR_PULL_ALLOC(ndr
, r
->in
.filename
);
2961 _mem_save_filename_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2962 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.filename
, LIBNDR_FLAG_REF_ALLOC
);
2963 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.filename
));
2964 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_filename_0
, LIBNDR_FLAG_REF_ALLOC
);
2965 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sec_attrib
));
2966 if (_ptr_sec_attrib
) {
2967 NDR_PULL_ALLOC(ndr
, r
->in
.sec_attrib
);
2969 r
->in
.sec_attrib
= NULL
;
2971 if (r
->in
.sec_attrib
) {
2972 _mem_save_sec_attrib_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2973 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.sec_attrib
, 0);
2974 NDR_CHECK(ndr_pull_KeySecurityAttribute(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.sec_attrib
));
2975 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sec_attrib_0
, 0);
2978 if (flags
& NDR_OUT
) {
2979 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
2981 return NDR_ERR_SUCCESS
;
2984 _PUBLIC_
void ndr_print_winreg_SaveKey(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_SaveKey
*r
)
2986 ndr_print_struct(ndr
, name
, "winreg_SaveKey");
2988 if (flags
& NDR_SET_VALUES
) {
2989 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
2991 if (flags
& NDR_IN
) {
2992 ndr_print_struct(ndr
, "in", "winreg_SaveKey");
2994 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
2996 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
2998 ndr_print_ptr(ndr
, "filename", r
->in
.filename
);
3000 ndr_print_winreg_String(ndr
, "filename", r
->in
.filename
);
3002 ndr_print_ptr(ndr
, "sec_attrib", r
->in
.sec_attrib
);
3004 if (r
->in
.sec_attrib
) {
3005 ndr_print_KeySecurityAttribute(ndr
, "sec_attrib", r
->in
.sec_attrib
);
3010 if (flags
& NDR_OUT
) {
3011 ndr_print_struct(ndr
, "out", "winreg_SaveKey");
3013 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
3019 static enum ndr_err_code
ndr_push_winreg_SetKeySecurity(struct ndr_push
*ndr
, int flags
, const struct winreg_SetKeySecurity
*r
)
3021 if (flags
& NDR_IN
) {
3022 if (r
->in
.handle
== NULL
) {
3023 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
3025 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
3026 NDR_CHECK(ndr_push_security_secinfo(ndr
, NDR_SCALARS
, r
->in
.sec_info
));
3027 if (r
->in
.sd
== NULL
) {
3028 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
3030 NDR_CHECK(ndr_push_KeySecurityData(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.sd
));
3032 if (flags
& NDR_OUT
) {
3033 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
3035 return NDR_ERR_SUCCESS
;
3038 static enum ndr_err_code
ndr_pull_winreg_SetKeySecurity(struct ndr_pull
*ndr
, int flags
, struct winreg_SetKeySecurity
*r
)
3040 TALLOC_CTX
*_mem_save_handle_0
;
3041 TALLOC_CTX
*_mem_save_sd_0
;
3042 if (flags
& NDR_IN
) {
3043 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
3044 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
3046 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3047 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
3048 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
3049 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
3050 NDR_CHECK(ndr_pull_security_secinfo(ndr
, NDR_SCALARS
, &r
->in
.sec_info
));
3051 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
3052 NDR_PULL_ALLOC(ndr
, r
->in
.sd
);
3054 _mem_save_sd_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3055 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.sd
, LIBNDR_FLAG_REF_ALLOC
);
3056 NDR_CHECK(ndr_pull_KeySecurityData(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.sd
));
3057 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sd_0
, LIBNDR_FLAG_REF_ALLOC
);
3059 if (flags
& NDR_OUT
) {
3060 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
3062 return NDR_ERR_SUCCESS
;
3065 _PUBLIC_
void ndr_print_winreg_SetKeySecurity(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_SetKeySecurity
*r
)
3067 ndr_print_struct(ndr
, name
, "winreg_SetKeySecurity");
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_SetKeySecurity");
3075 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
3077 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
3079 ndr_print_security_secinfo(ndr
, "sec_info", r
->in
.sec_info
);
3080 ndr_print_ptr(ndr
, "sd", r
->in
.sd
);
3082 ndr_print_KeySecurityData(ndr
, "sd", r
->in
.sd
);
3086 if (flags
& NDR_OUT
) {
3087 ndr_print_struct(ndr
, "out", "winreg_SetKeySecurity");
3089 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
3095 static enum ndr_err_code
ndr_push_winreg_SetValue(struct ndr_push
*ndr
, int flags
, const struct winreg_SetValue
*r
)
3097 if (flags
& NDR_IN
) {
3098 if (r
->in
.handle
== NULL
) {
3099 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
3101 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
3102 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.name
));
3103 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, r
->in
.type
));
3104 if (r
->in
.data
== NULL
) {
3105 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
3107 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.size
));
3108 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->in
.data
, r
->in
.size
));
3109 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.size
));
3111 if (flags
& NDR_OUT
) {
3112 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
3114 return NDR_ERR_SUCCESS
;
3117 static enum ndr_err_code
ndr_pull_winreg_SetValue(struct ndr_pull
*ndr
, int flags
, struct winreg_SetValue
*r
)
3119 uint32_t size_data_1
= 0;
3120 TALLOC_CTX
*_mem_save_handle_0
;
3121 if (flags
& NDR_IN
) {
3122 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
3123 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
3125 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3126 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
3127 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
3128 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
3129 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.name
));
3130 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, &r
->in
.type
));
3131 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.data
));
3132 size_data_1
= ndr_get_array_size(ndr
, &r
->in
.data
);
3133 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
3134 NDR_PULL_ALLOC_N(ndr
, r
->in
.data
, size_data_1
);
3136 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->in
.data
, size_data_1
));
3137 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.size
));
3139 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.data
, r
->in
.size
));
3142 if (flags
& NDR_OUT
) {
3143 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
3145 return NDR_ERR_SUCCESS
;
3148 _PUBLIC_
void ndr_print_winreg_SetValue(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_SetValue
*r
)
3150 ndr_print_struct(ndr
, name
, "winreg_SetValue");
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_SetValue");
3158 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
3160 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
3162 ndr_print_winreg_String(ndr
, "name", &r
->in
.name
);
3163 ndr_print_winreg_Type(ndr
, "type", r
->in
.type
);
3164 ndr_print_ptr(ndr
, "data", r
->in
.data
);
3166 ndr_print_array_uint8(ndr
, "data", r
->in
.data
, r
->in
.size
);
3168 ndr_print_uint32(ndr
, "size", r
->in
.size
);
3171 if (flags
& NDR_OUT
) {
3172 ndr_print_struct(ndr
, "out", "winreg_SetValue");
3174 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
3180 static enum ndr_err_code
ndr_push_winreg_UnLoadKey(struct ndr_push
*ndr
, int flags
, const struct winreg_UnLoadKey
*r
)
3182 if (flags
& NDR_IN
) {
3184 if (flags
& NDR_OUT
) {
3185 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
3187 return NDR_ERR_SUCCESS
;
3190 static enum ndr_err_code
ndr_pull_winreg_UnLoadKey(struct ndr_pull
*ndr
, int flags
, struct winreg_UnLoadKey
*r
)
3192 if (flags
& NDR_IN
) {
3194 if (flags
& NDR_OUT
) {
3195 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
3197 return NDR_ERR_SUCCESS
;
3200 _PUBLIC_
void ndr_print_winreg_UnLoadKey(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_UnLoadKey
*r
)
3202 ndr_print_struct(ndr
, name
, "winreg_UnLoadKey");
3204 if (flags
& NDR_SET_VALUES
) {
3205 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
3207 if (flags
& NDR_IN
) {
3208 ndr_print_struct(ndr
, "in", "winreg_UnLoadKey");
3212 if (flags
& NDR_OUT
) {
3213 ndr_print_struct(ndr
, "out", "winreg_UnLoadKey");
3215 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
3221 static enum ndr_err_code
ndr_push_winreg_InitiateSystemShutdown(struct ndr_push
*ndr
, int flags
, const struct winreg_InitiateSystemShutdown
*r
)
3223 if (flags
& NDR_IN
) {
3224 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.hostname
));
3225 if (r
->in
.hostname
) {
3226 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, *r
->in
.hostname
));
3228 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.message
));
3229 if (r
->in
.message
) {
3230 NDR_CHECK(ndr_push_lsa_StringLarge(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.message
));
3232 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.timeout
));
3233 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->in
.force_apps
));
3234 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->in
.do_reboot
));
3236 if (flags
& NDR_OUT
) {
3237 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
3239 return NDR_ERR_SUCCESS
;
3242 static enum ndr_err_code
ndr_pull_winreg_InitiateSystemShutdown(struct ndr_pull
*ndr
, int flags
, struct winreg_InitiateSystemShutdown
*r
)
3244 uint32_t _ptr_hostname
;
3245 uint32_t _ptr_message
;
3246 TALLOC_CTX
*_mem_save_hostname_0
;
3247 TALLOC_CTX
*_mem_save_message_0
;
3248 if (flags
& NDR_IN
) {
3249 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_hostname
));
3250 if (_ptr_hostname
) {
3251 NDR_PULL_ALLOC(ndr
, r
->in
.hostname
);
3253 r
->in
.hostname
= NULL
;
3255 if (r
->in
.hostname
) {
3256 _mem_save_hostname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3257 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.hostname
, 0);
3258 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, r
->in
.hostname
));
3259 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_hostname_0
, 0);
3261 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_message
));
3263 NDR_PULL_ALLOC(ndr
, r
->in
.message
);
3265 r
->in
.message
= NULL
;
3267 if (r
->in
.message
) {
3268 _mem_save_message_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3269 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.message
, 0);
3270 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.message
));
3271 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_message_0
, 0);
3273 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.timeout
));
3274 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->in
.force_apps
));
3275 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->in
.do_reboot
));
3277 if (flags
& NDR_OUT
) {
3278 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
3280 return NDR_ERR_SUCCESS
;
3283 _PUBLIC_
void ndr_print_winreg_InitiateSystemShutdown(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_InitiateSystemShutdown
*r
)
3285 ndr_print_struct(ndr
, name
, "winreg_InitiateSystemShutdown");
3287 if (flags
& NDR_SET_VALUES
) {
3288 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
3290 if (flags
& NDR_IN
) {
3291 ndr_print_struct(ndr
, "in", "winreg_InitiateSystemShutdown");
3293 ndr_print_ptr(ndr
, "hostname", r
->in
.hostname
);
3295 if (r
->in
.hostname
) {
3296 ndr_print_uint16(ndr
, "hostname", *r
->in
.hostname
);
3299 ndr_print_ptr(ndr
, "message", r
->in
.message
);
3301 if (r
->in
.message
) {
3302 ndr_print_lsa_StringLarge(ndr
, "message", r
->in
.message
);
3305 ndr_print_uint32(ndr
, "timeout", r
->in
.timeout
);
3306 ndr_print_uint8(ndr
, "force_apps", r
->in
.force_apps
);
3307 ndr_print_uint8(ndr
, "do_reboot", r
->in
.do_reboot
);
3310 if (flags
& NDR_OUT
) {
3311 ndr_print_struct(ndr
, "out", "winreg_InitiateSystemShutdown");
3313 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
3319 static enum ndr_err_code
ndr_push_winreg_AbortSystemShutdown(struct ndr_push
*ndr
, int flags
, const struct winreg_AbortSystemShutdown
*r
)
3321 if (flags
& NDR_IN
) {
3322 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
3324 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, *r
->in
.server
));
3327 if (flags
& NDR_OUT
) {
3328 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
3330 return NDR_ERR_SUCCESS
;
3333 static enum ndr_err_code
ndr_pull_winreg_AbortSystemShutdown(struct ndr_pull
*ndr
, int flags
, struct winreg_AbortSystemShutdown
*r
)
3335 uint32_t _ptr_server
;
3336 TALLOC_CTX
*_mem_save_server_0
;
3337 if (flags
& NDR_IN
) {
3338 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
3340 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
3342 r
->in
.server
= NULL
;
3345 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3346 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
3347 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, r
->in
.server
));
3348 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
3351 if (flags
& NDR_OUT
) {
3352 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
3354 return NDR_ERR_SUCCESS
;
3357 _PUBLIC_
void ndr_print_winreg_AbortSystemShutdown(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_AbortSystemShutdown
*r
)
3359 ndr_print_struct(ndr
, name
, "winreg_AbortSystemShutdown");
3361 if (flags
& NDR_SET_VALUES
) {
3362 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
3364 if (flags
& NDR_IN
) {
3365 ndr_print_struct(ndr
, "in", "winreg_AbortSystemShutdown");
3367 ndr_print_ptr(ndr
, "server", r
->in
.server
);
3370 ndr_print_uint16(ndr
, "server", *r
->in
.server
);
3375 if (flags
& NDR_OUT
) {
3376 ndr_print_struct(ndr
, "out", "winreg_AbortSystemShutdown");
3378 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
3384 _PUBLIC_
enum ndr_err_code
ndr_push_winreg_GetVersion(struct ndr_push
*ndr
, int flags
, const struct winreg_GetVersion
*r
)
3386 if (flags
& NDR_IN
) {
3387 if (r
->in
.handle
== NULL
) {
3388 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
3390 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
3392 if (flags
& NDR_OUT
) {
3393 if (r
->out
.version
== NULL
) {
3394 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
3396 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.version
));
3397 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
3399 return NDR_ERR_SUCCESS
;
3402 _PUBLIC_
enum ndr_err_code
ndr_pull_winreg_GetVersion(struct ndr_pull
*ndr
, int flags
, struct winreg_GetVersion
*r
)
3404 TALLOC_CTX
*_mem_save_handle_0
;
3405 TALLOC_CTX
*_mem_save_version_0
;
3406 if (flags
& NDR_IN
) {
3407 ZERO_STRUCT(r
->out
);
3409 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
3410 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
3412 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3413 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
3414 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
3415 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
3416 NDR_PULL_ALLOC(ndr
, r
->out
.version
);
3417 ZERO_STRUCTP(r
->out
.version
);
3419 if (flags
& NDR_OUT
) {
3420 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
3421 NDR_PULL_ALLOC(ndr
, r
->out
.version
);
3423 _mem_save_version_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3424 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.version
, LIBNDR_FLAG_REF_ALLOC
);
3425 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.version
));
3426 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_version_0
, LIBNDR_FLAG_REF_ALLOC
);
3427 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
3429 return NDR_ERR_SUCCESS
;
3432 _PUBLIC_
void ndr_print_winreg_GetVersion(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_GetVersion
*r
)
3434 ndr_print_struct(ndr
, name
, "winreg_GetVersion");
3436 if (flags
& NDR_SET_VALUES
) {
3437 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
3439 if (flags
& NDR_IN
) {
3440 ndr_print_struct(ndr
, "in", "winreg_GetVersion");
3442 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
3444 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
3448 if (flags
& NDR_OUT
) {
3449 ndr_print_struct(ndr
, "out", "winreg_GetVersion");
3451 ndr_print_ptr(ndr
, "version", r
->out
.version
);
3453 ndr_print_uint32(ndr
, "version", *r
->out
.version
);
3455 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
3461 static enum ndr_err_code
ndr_push_winreg_OpenHKCC(struct ndr_push
*ndr
, int flags
, const struct winreg_OpenHKCC
*r
)
3463 if (flags
& NDR_IN
) {
3464 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.system_name
));
3465 if (r
->in
.system_name
) {
3466 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, *r
->in
.system_name
));
3468 NDR_CHECK(ndr_push_winreg_AccessMask(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
3470 if (flags
& NDR_OUT
) {
3471 if (r
->out
.handle
== NULL
) {
3472 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
3474 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
3475 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
3477 return NDR_ERR_SUCCESS
;
3480 static enum ndr_err_code
ndr_pull_winreg_OpenHKCC(struct ndr_pull
*ndr
, int flags
, struct winreg_OpenHKCC
*r
)
3482 uint32_t _ptr_system_name
;
3483 TALLOC_CTX
*_mem_save_system_name_0
;
3484 TALLOC_CTX
*_mem_save_handle_0
;
3485 if (flags
& NDR_IN
) {
3486 ZERO_STRUCT(r
->out
);
3488 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_system_name
));
3489 if (_ptr_system_name
) {
3490 NDR_PULL_ALLOC(ndr
, r
->in
.system_name
);
3492 r
->in
.system_name
= NULL
;
3494 if (r
->in
.system_name
) {
3495 _mem_save_system_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3496 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.system_name
, 0);
3497 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, r
->in
.system_name
));
3498 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_system_name_0
, 0);
3500 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
3501 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
3502 ZERO_STRUCTP(r
->out
.handle
);
3504 if (flags
& NDR_OUT
) {
3505 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
3506 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
3508 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3509 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
3510 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
3511 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
3512 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
3514 return NDR_ERR_SUCCESS
;
3517 _PUBLIC_
void ndr_print_winreg_OpenHKCC(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_OpenHKCC
*r
)
3519 ndr_print_struct(ndr
, name
, "winreg_OpenHKCC");
3521 if (flags
& NDR_SET_VALUES
) {
3522 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
3524 if (flags
& NDR_IN
) {
3525 ndr_print_struct(ndr
, "in", "winreg_OpenHKCC");
3527 ndr_print_ptr(ndr
, "system_name", r
->in
.system_name
);
3529 if (r
->in
.system_name
) {
3530 ndr_print_uint16(ndr
, "system_name", *r
->in
.system_name
);
3533 ndr_print_winreg_AccessMask(ndr
, "access_mask", r
->in
.access_mask
);
3536 if (flags
& NDR_OUT
) {
3537 ndr_print_struct(ndr
, "out", "winreg_OpenHKCC");
3539 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
3541 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
3543 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
3549 static enum ndr_err_code
ndr_push_winreg_OpenHKDD(struct ndr_push
*ndr
, int flags
, const struct winreg_OpenHKDD
*r
)
3551 if (flags
& NDR_IN
) {
3552 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.system_name
));
3553 if (r
->in
.system_name
) {
3554 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, *r
->in
.system_name
));
3556 NDR_CHECK(ndr_push_winreg_AccessMask(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
3558 if (flags
& NDR_OUT
) {
3559 if (r
->out
.handle
== NULL
) {
3560 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
3562 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
3563 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
3565 return NDR_ERR_SUCCESS
;
3568 static enum ndr_err_code
ndr_pull_winreg_OpenHKDD(struct ndr_pull
*ndr
, int flags
, struct winreg_OpenHKDD
*r
)
3570 uint32_t _ptr_system_name
;
3571 TALLOC_CTX
*_mem_save_system_name_0
;
3572 TALLOC_CTX
*_mem_save_handle_0
;
3573 if (flags
& NDR_IN
) {
3574 ZERO_STRUCT(r
->out
);
3576 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_system_name
));
3577 if (_ptr_system_name
) {
3578 NDR_PULL_ALLOC(ndr
, r
->in
.system_name
);
3580 r
->in
.system_name
= NULL
;
3582 if (r
->in
.system_name
) {
3583 _mem_save_system_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3584 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.system_name
, 0);
3585 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, r
->in
.system_name
));
3586 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_system_name_0
, 0);
3588 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
3589 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
3590 ZERO_STRUCTP(r
->out
.handle
);
3592 if (flags
& NDR_OUT
) {
3593 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
3594 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
3596 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3597 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
3598 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
3599 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
3600 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
3602 return NDR_ERR_SUCCESS
;
3605 _PUBLIC_
void ndr_print_winreg_OpenHKDD(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_OpenHKDD
*r
)
3607 ndr_print_struct(ndr
, name
, "winreg_OpenHKDD");
3609 if (flags
& NDR_SET_VALUES
) {
3610 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
3612 if (flags
& NDR_IN
) {
3613 ndr_print_struct(ndr
, "in", "winreg_OpenHKDD");
3615 ndr_print_ptr(ndr
, "system_name", r
->in
.system_name
);
3617 if (r
->in
.system_name
) {
3618 ndr_print_uint16(ndr
, "system_name", *r
->in
.system_name
);
3621 ndr_print_winreg_AccessMask(ndr
, "access_mask", r
->in
.access_mask
);
3624 if (flags
& NDR_OUT
) {
3625 ndr_print_struct(ndr
, "out", "winreg_OpenHKDD");
3627 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
3629 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
3631 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
3637 _PUBLIC_
enum ndr_err_code
ndr_push_winreg_QueryMultipleValues(struct ndr_push
*ndr
, int flags
, const struct winreg_QueryMultipleValues
*r
)
3639 uint32_t cntr_values_1
;
3640 if (flags
& NDR_IN
) {
3641 if (r
->in
.key_handle
== NULL
) {
3642 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
3644 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.key_handle
));
3645 if (r
->in
.values
== NULL
) {
3646 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
3648 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.num_values
));
3649 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
3650 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.num_values
));
3651 for (cntr_values_1
= 0; cntr_values_1
< r
->in
.num_values
; cntr_values_1
++) {
3652 NDR_CHECK(ndr_push_QueryMultipleValue(ndr
, NDR_SCALARS
, &r
->in
.values
[cntr_values_1
]));
3654 for (cntr_values_1
= 0; cntr_values_1
< r
->in
.num_values
; cntr_values_1
++) {
3655 NDR_CHECK(ndr_push_QueryMultipleValue(ndr
, NDR_BUFFERS
, &r
->in
.values
[cntr_values_1
]));
3657 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.num_values
));
3658 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
3660 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, *r
->in
.buffer_size
));
3661 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
3662 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, *r
->in
.buffer_size
));
3663 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, *r
->in
.buffer_size
));
3665 if (r
->in
.buffer_size
== NULL
) {
3666 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
3668 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->in
.buffer_size
));
3670 if (flags
& NDR_OUT
) {
3671 if (r
->out
.values
== NULL
) {
3672 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
3674 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.num_values
));
3675 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
3676 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.num_values
));
3677 for (cntr_values_1
= 0; cntr_values_1
< r
->in
.num_values
; cntr_values_1
++) {
3678 NDR_CHECK(ndr_push_QueryMultipleValue(ndr
, NDR_SCALARS
, &r
->out
.values
[cntr_values_1
]));
3680 for (cntr_values_1
= 0; cntr_values_1
< r
->in
.num_values
; cntr_values_1
++) {
3681 NDR_CHECK(ndr_push_QueryMultipleValue(ndr
, NDR_BUFFERS
, &r
->out
.values
[cntr_values_1
]));
3683 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.buffer
));
3684 if (r
->out
.buffer
) {
3685 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, *r
->out
.buffer_size
));
3686 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
3687 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, *r
->out
.buffer_size
));
3688 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->out
.buffer
, *r
->out
.buffer_size
));
3690 if (r
->out
.buffer_size
== NULL
) {
3691 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
3693 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.buffer_size
));
3694 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
3696 return NDR_ERR_SUCCESS
;
3699 _PUBLIC_
enum ndr_err_code
ndr_pull_winreg_QueryMultipleValues(struct ndr_pull
*ndr
, int flags
, struct winreg_QueryMultipleValues
*r
)
3701 uint32_t size_values_1
= 0;
3702 uint32_t length_values_1
= 0;
3703 uint32_t cntr_values_1
;
3704 uint32_t _ptr_buffer
;
3705 uint32_t size_buffer_1
= 0;
3706 uint32_t length_buffer_1
= 0;
3707 TALLOC_CTX
*_mem_save_key_handle_0
;
3708 TALLOC_CTX
*_mem_save_values_1
;
3709 TALLOC_CTX
*_mem_save_buffer_0
;
3710 TALLOC_CTX
*_mem_save_buffer_size_0
;
3711 if (flags
& NDR_IN
) {
3712 ZERO_STRUCT(r
->out
);
3714 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
3715 NDR_PULL_ALLOC(ndr
, r
->in
.key_handle
);
3717 _mem_save_key_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3718 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.key_handle
, LIBNDR_FLAG_REF_ALLOC
);
3719 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.key_handle
));
3720 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_key_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
3721 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.values
));
3722 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.values
));
3723 size_values_1
= ndr_get_array_size(ndr
, &r
->in
.values
);
3724 length_values_1
= ndr_get_array_length(ndr
, &r
->in
.values
);
3725 if (length_values_1
> size_values_1
) {
3726 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_values_1
, length_values_1
);
3728 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
3729 NDR_PULL_ALLOC_N(ndr
, r
->in
.values
, size_values_1
);
3731 memcpy(r
->out
.values
, r
->in
.values
, (size_values_1
) * sizeof(*r
->in
.values
));
3732 _mem_save_values_1
= NDR_PULL_GET_MEM_CTX(ndr
);
3733 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.values
, 0);
3734 for (cntr_values_1
= 0; cntr_values_1
< length_values_1
; cntr_values_1
++) {
3735 NDR_CHECK(ndr_pull_QueryMultipleValue(ndr
, NDR_SCALARS
, &r
->in
.values
[cntr_values_1
]));
3737 for (cntr_values_1
= 0; cntr_values_1
< length_values_1
; cntr_values_1
++) {
3738 NDR_CHECK(ndr_pull_QueryMultipleValue(ndr
, NDR_BUFFERS
, &r
->in
.values
[cntr_values_1
]));
3740 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_values_1
, 0);
3741 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.num_values
));
3742 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
3744 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
3746 r
->in
.buffer
= NULL
;
3749 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3750 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
3751 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.buffer
));
3752 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.buffer
));
3753 size_buffer_1
= ndr_get_array_size(ndr
, &r
->in
.buffer
);
3754 length_buffer_1
= ndr_get_array_length(ndr
, &r
->in
.buffer
);
3755 if (length_buffer_1
> size_buffer_1
) {
3756 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_buffer_1
, length_buffer_1
);
3758 NDR_PULL_ALLOC_N(ndr
, r
->in
.buffer
, size_buffer_1
);
3759 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, length_buffer_1
));
3760 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
3762 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
3763 NDR_PULL_ALLOC(ndr
, r
->in
.buffer_size
);
3765 _mem_save_buffer_size_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3766 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer_size
, LIBNDR_FLAG_REF_ALLOC
);
3767 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->in
.buffer_size
));
3768 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_size_0
, LIBNDR_FLAG_REF_ALLOC
);
3769 NDR_PULL_ALLOC_N(ndr
, r
->out
.values
, r
->in
.num_values
);
3770 memcpy(r
->out
.values
, r
->in
.values
, (r
->in
.num_values
) * sizeof(*r
->in
.values
));
3771 NDR_PULL_ALLOC(ndr
, r
->out
.buffer_size
);
3772 *r
->out
.buffer_size
= *r
->in
.buffer_size
;
3774 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.values
, r
->in
.num_values
));
3777 NDR_CHECK(ndr_check_array_length(ndr
, (void*)&r
->in
.values
, r
->in
.num_values
));
3780 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.buffer
, *r
->in
.buffer_size
));
3783 NDR_CHECK(ndr_check_array_length(ndr
, (void*)&r
->in
.buffer
, *r
->in
.buffer_size
));
3786 if (flags
& NDR_OUT
) {
3787 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.values
));
3788 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->out
.values
));
3789 size_values_1
= ndr_get_array_size(ndr
, &r
->out
.values
);
3790 length_values_1
= ndr_get_array_length(ndr
, &r
->out
.values
);
3791 if (length_values_1
> size_values_1
) {
3792 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_values_1
, length_values_1
);
3794 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
3795 NDR_PULL_ALLOC_N(ndr
, r
->out
.values
, size_values_1
);
3797 memcpy(r
->out
.values
, r
->in
.values
, (size_values_1
) * sizeof(*r
->in
.values
));
3798 _mem_save_values_1
= NDR_PULL_GET_MEM_CTX(ndr
);
3799 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.values
, 0);
3800 for (cntr_values_1
= 0; cntr_values_1
< length_values_1
; cntr_values_1
++) {
3801 NDR_CHECK(ndr_pull_QueryMultipleValue(ndr
, NDR_SCALARS
, &r
->out
.values
[cntr_values_1
]));
3803 for (cntr_values_1
= 0; cntr_values_1
< length_values_1
; cntr_values_1
++) {
3804 NDR_CHECK(ndr_pull_QueryMultipleValue(ndr
, NDR_BUFFERS
, &r
->out
.values
[cntr_values_1
]));
3806 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_values_1
, 0);
3807 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
3809 NDR_PULL_ALLOC(ndr
, r
->out
.buffer
);
3811 r
->out
.buffer
= NULL
;
3813 if (r
->out
.buffer
) {
3814 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3815 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.buffer
, 0);
3816 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.buffer
));
3817 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->out
.buffer
));
3818 size_buffer_1
= ndr_get_array_size(ndr
, &r
->out
.buffer
);
3819 length_buffer_1
= ndr_get_array_length(ndr
, &r
->out
.buffer
);
3820 if (length_buffer_1
> size_buffer_1
) {
3821 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_buffer_1
, length_buffer_1
);
3823 NDR_PULL_ALLOC_N(ndr
, r
->out
.buffer
, size_buffer_1
);
3824 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->out
.buffer
, length_buffer_1
));
3825 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
3827 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
3828 NDR_PULL_ALLOC(ndr
, r
->out
.buffer_size
);
3830 _mem_save_buffer_size_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3831 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.buffer_size
, LIBNDR_FLAG_REF_ALLOC
);
3832 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.buffer_size
));
3833 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_size_0
, LIBNDR_FLAG_REF_ALLOC
);
3834 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
3835 if (r
->out
.values
) {
3836 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.values
, r
->in
.num_values
));
3838 if (r
->out
.values
) {
3839 NDR_CHECK(ndr_check_array_length(ndr
, (void*)&r
->out
.values
, r
->in
.num_values
));
3841 if (r
->out
.buffer
) {
3842 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.buffer
, *r
->out
.buffer_size
));
3844 if (r
->out
.buffer
) {
3845 NDR_CHECK(ndr_check_array_length(ndr
, (void*)&r
->out
.buffer
, *r
->out
.buffer_size
));
3848 return NDR_ERR_SUCCESS
;
3851 _PUBLIC_
void ndr_print_winreg_QueryMultipleValues(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_QueryMultipleValues
*r
)
3853 uint32_t cntr_values_1
;
3854 ndr_print_struct(ndr
, name
, "winreg_QueryMultipleValues");
3856 if (flags
& NDR_SET_VALUES
) {
3857 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
3859 if (flags
& NDR_IN
) {
3860 ndr_print_struct(ndr
, "in", "winreg_QueryMultipleValues");
3862 ndr_print_ptr(ndr
, "key_handle", r
->in
.key_handle
);
3864 ndr_print_policy_handle(ndr
, "key_handle", r
->in
.key_handle
);
3866 ndr_print_ptr(ndr
, "values", r
->in
.values
);
3868 ndr
->print(ndr
, "%s: ARRAY(%d)", "values", (int)r
->in
.num_values
);
3870 for (cntr_values_1
=0;cntr_values_1
<r
->in
.num_values
;cntr_values_1
++) {
3872 if (asprintf(&idx_1
, "[%d]", cntr_values_1
) != -1) {
3873 ndr_print_QueryMultipleValue(ndr
, "values", &r
->in
.values
[cntr_values_1
]);
3879 ndr_print_uint32(ndr
, "num_values", r
->in
.num_values
);
3880 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
3883 ndr_print_array_uint8(ndr
, "buffer", r
->in
.buffer
, *r
->in
.buffer_size
);
3886 ndr_print_ptr(ndr
, "buffer_size", r
->in
.buffer_size
);
3888 ndr_print_uint32(ndr
, "buffer_size", *r
->in
.buffer_size
);
3892 if (flags
& NDR_OUT
) {
3893 ndr_print_struct(ndr
, "out", "winreg_QueryMultipleValues");
3895 ndr_print_ptr(ndr
, "values", r
->out
.values
);
3897 ndr
->print(ndr
, "%s: ARRAY(%d)", "values", (int)r
->in
.num_values
);
3899 for (cntr_values_1
=0;cntr_values_1
<r
->in
.num_values
;cntr_values_1
++) {
3901 if (asprintf(&idx_1
, "[%d]", cntr_values_1
) != -1) {
3902 ndr_print_QueryMultipleValue(ndr
, "values", &r
->out
.values
[cntr_values_1
]);
3908 ndr_print_ptr(ndr
, "buffer", r
->out
.buffer
);
3910 if (r
->out
.buffer
) {
3911 ndr_print_array_uint8(ndr
, "buffer", r
->out
.buffer
, *r
->out
.buffer_size
);
3914 ndr_print_ptr(ndr
, "buffer_size", r
->out
.buffer_size
);
3916 ndr_print_uint32(ndr
, "buffer_size", *r
->out
.buffer_size
);
3918 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
3924 static enum ndr_err_code
ndr_push_winreg_InitiateSystemShutdownEx(struct ndr_push
*ndr
, int flags
, const struct winreg_InitiateSystemShutdownEx
*r
)
3926 if (flags
& NDR_IN
) {
3927 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.hostname
));
3928 if (r
->in
.hostname
) {
3929 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, *r
->in
.hostname
));
3931 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.message
));
3932 if (r
->in
.message
) {
3933 NDR_CHECK(ndr_push_lsa_StringLarge(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.message
));
3935 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.timeout
));
3936 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->in
.force_apps
));
3937 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->in
.do_reboot
));
3938 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.reason
));
3940 if (flags
& NDR_OUT
) {
3941 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
3943 return NDR_ERR_SUCCESS
;
3946 static enum ndr_err_code
ndr_pull_winreg_InitiateSystemShutdownEx(struct ndr_pull
*ndr
, int flags
, struct winreg_InitiateSystemShutdownEx
*r
)
3948 uint32_t _ptr_hostname
;
3949 uint32_t _ptr_message
;
3950 TALLOC_CTX
*_mem_save_hostname_0
;
3951 TALLOC_CTX
*_mem_save_message_0
;
3952 if (flags
& NDR_IN
) {
3953 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_hostname
));
3954 if (_ptr_hostname
) {
3955 NDR_PULL_ALLOC(ndr
, r
->in
.hostname
);
3957 r
->in
.hostname
= NULL
;
3959 if (r
->in
.hostname
) {
3960 _mem_save_hostname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3961 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.hostname
, 0);
3962 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, r
->in
.hostname
));
3963 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_hostname_0
, 0);
3965 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_message
));
3967 NDR_PULL_ALLOC(ndr
, r
->in
.message
);
3969 r
->in
.message
= NULL
;
3971 if (r
->in
.message
) {
3972 _mem_save_message_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3973 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.message
, 0);
3974 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.message
));
3975 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_message_0
, 0);
3977 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.timeout
));
3978 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->in
.force_apps
));
3979 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->in
.do_reboot
));
3980 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.reason
));
3982 if (flags
& NDR_OUT
) {
3983 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
3985 return NDR_ERR_SUCCESS
;
3988 _PUBLIC_
void ndr_print_winreg_InitiateSystemShutdownEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_InitiateSystemShutdownEx
*r
)
3990 ndr_print_struct(ndr
, name
, "winreg_InitiateSystemShutdownEx");
3992 if (flags
& NDR_SET_VALUES
) {
3993 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
3995 if (flags
& NDR_IN
) {
3996 ndr_print_struct(ndr
, "in", "winreg_InitiateSystemShutdownEx");
3998 ndr_print_ptr(ndr
, "hostname", r
->in
.hostname
);
4000 if (r
->in
.hostname
) {
4001 ndr_print_uint16(ndr
, "hostname", *r
->in
.hostname
);
4004 ndr_print_ptr(ndr
, "message", r
->in
.message
);
4006 if (r
->in
.message
) {
4007 ndr_print_lsa_StringLarge(ndr
, "message", r
->in
.message
);
4010 ndr_print_uint32(ndr
, "timeout", r
->in
.timeout
);
4011 ndr_print_uint8(ndr
, "force_apps", r
->in
.force_apps
);
4012 ndr_print_uint8(ndr
, "do_reboot", r
->in
.do_reboot
);
4013 ndr_print_uint32(ndr
, "reason", r
->in
.reason
);
4016 if (flags
& NDR_OUT
) {
4017 ndr_print_struct(ndr
, "out", "winreg_InitiateSystemShutdownEx");
4019 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
4025 static enum ndr_err_code
ndr_push_winreg_SaveKeyEx(struct ndr_push
*ndr
, int flags
, const struct winreg_SaveKeyEx
*r
)
4027 if (flags
& NDR_IN
) {
4029 if (flags
& NDR_OUT
) {
4030 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
4032 return NDR_ERR_SUCCESS
;
4035 static enum ndr_err_code
ndr_pull_winreg_SaveKeyEx(struct ndr_pull
*ndr
, int flags
, struct winreg_SaveKeyEx
*r
)
4037 if (flags
& NDR_IN
) {
4039 if (flags
& NDR_OUT
) {
4040 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
4042 return NDR_ERR_SUCCESS
;
4045 _PUBLIC_
void ndr_print_winreg_SaveKeyEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_SaveKeyEx
*r
)
4047 ndr_print_struct(ndr
, name
, "winreg_SaveKeyEx");
4049 if (flags
& NDR_SET_VALUES
) {
4050 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
4052 if (flags
& NDR_IN
) {
4053 ndr_print_struct(ndr
, "in", "winreg_SaveKeyEx");
4057 if (flags
& NDR_OUT
) {
4058 ndr_print_struct(ndr
, "out", "winreg_SaveKeyEx");
4060 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
4066 static enum ndr_err_code
ndr_push_winreg_OpenHKPT(struct ndr_push
*ndr
, int flags
, const struct winreg_OpenHKPT
*r
)
4068 if (flags
& NDR_IN
) {
4069 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.system_name
));
4070 if (r
->in
.system_name
) {
4071 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, *r
->in
.system_name
));
4073 NDR_CHECK(ndr_push_winreg_AccessMask(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
4075 if (flags
& NDR_OUT
) {
4076 if (r
->out
.handle
== NULL
) {
4077 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
4079 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
4080 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
4082 return NDR_ERR_SUCCESS
;
4085 static enum ndr_err_code
ndr_pull_winreg_OpenHKPT(struct ndr_pull
*ndr
, int flags
, struct winreg_OpenHKPT
*r
)
4087 uint32_t _ptr_system_name
;
4088 TALLOC_CTX
*_mem_save_system_name_0
;
4089 TALLOC_CTX
*_mem_save_handle_0
;
4090 if (flags
& NDR_IN
) {
4091 ZERO_STRUCT(r
->out
);
4093 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_system_name
));
4094 if (_ptr_system_name
) {
4095 NDR_PULL_ALLOC(ndr
, r
->in
.system_name
);
4097 r
->in
.system_name
= NULL
;
4099 if (r
->in
.system_name
) {
4100 _mem_save_system_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4101 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.system_name
, 0);
4102 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, r
->in
.system_name
));
4103 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_system_name_0
, 0);
4105 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
4106 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
4107 ZERO_STRUCTP(r
->out
.handle
);
4109 if (flags
& NDR_OUT
) {
4110 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
4111 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
4113 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4114 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
4115 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
4116 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
4117 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
4119 return NDR_ERR_SUCCESS
;
4122 _PUBLIC_
void ndr_print_winreg_OpenHKPT(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_OpenHKPT
*r
)
4124 ndr_print_struct(ndr
, name
, "winreg_OpenHKPT");
4126 if (flags
& NDR_SET_VALUES
) {
4127 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
4129 if (flags
& NDR_IN
) {
4130 ndr_print_struct(ndr
, "in", "winreg_OpenHKPT");
4132 ndr_print_ptr(ndr
, "system_name", r
->in
.system_name
);
4134 if (r
->in
.system_name
) {
4135 ndr_print_uint16(ndr
, "system_name", *r
->in
.system_name
);
4138 ndr_print_winreg_AccessMask(ndr
, "access_mask", r
->in
.access_mask
);
4141 if (flags
& NDR_OUT
) {
4142 ndr_print_struct(ndr
, "out", "winreg_OpenHKPT");
4144 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
4146 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
4148 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
4154 static enum ndr_err_code
ndr_push_winreg_OpenHKPN(struct ndr_push
*ndr
, int flags
, const struct winreg_OpenHKPN
*r
)
4156 if (flags
& NDR_IN
) {
4157 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.system_name
));
4158 if (r
->in
.system_name
) {
4159 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, *r
->in
.system_name
));
4161 NDR_CHECK(ndr_push_winreg_AccessMask(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
4163 if (flags
& NDR_OUT
) {
4164 if (r
->out
.handle
== NULL
) {
4165 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
4167 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
4168 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
4170 return NDR_ERR_SUCCESS
;
4173 static enum ndr_err_code
ndr_pull_winreg_OpenHKPN(struct ndr_pull
*ndr
, int flags
, struct winreg_OpenHKPN
*r
)
4175 uint32_t _ptr_system_name
;
4176 TALLOC_CTX
*_mem_save_system_name_0
;
4177 TALLOC_CTX
*_mem_save_handle_0
;
4178 if (flags
& NDR_IN
) {
4179 ZERO_STRUCT(r
->out
);
4181 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_system_name
));
4182 if (_ptr_system_name
) {
4183 NDR_PULL_ALLOC(ndr
, r
->in
.system_name
);
4185 r
->in
.system_name
= NULL
;
4187 if (r
->in
.system_name
) {
4188 _mem_save_system_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4189 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.system_name
, 0);
4190 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, r
->in
.system_name
));
4191 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_system_name_0
, 0);
4193 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
4194 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
4195 ZERO_STRUCTP(r
->out
.handle
);
4197 if (flags
& NDR_OUT
) {
4198 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
4199 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
4201 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4202 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
4203 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
4204 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
4205 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
4207 return NDR_ERR_SUCCESS
;
4210 _PUBLIC_
void ndr_print_winreg_OpenHKPN(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_OpenHKPN
*r
)
4212 ndr_print_struct(ndr
, name
, "winreg_OpenHKPN");
4214 if (flags
& NDR_SET_VALUES
) {
4215 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
4217 if (flags
& NDR_IN
) {
4218 ndr_print_struct(ndr
, "in", "winreg_OpenHKPN");
4220 ndr_print_ptr(ndr
, "system_name", r
->in
.system_name
);
4222 if (r
->in
.system_name
) {
4223 ndr_print_uint16(ndr
, "system_name", *r
->in
.system_name
);
4226 ndr_print_winreg_AccessMask(ndr
, "access_mask", r
->in
.access_mask
);
4229 if (flags
& NDR_OUT
) {
4230 ndr_print_struct(ndr
, "out", "winreg_OpenHKPN");
4232 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
4234 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
4236 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
4242 static enum ndr_err_code
ndr_push_winreg_QueryMultipleValues2(struct ndr_push
*ndr
, int flags
, const struct winreg_QueryMultipleValues2
*r
)
4244 if (flags
& NDR_IN
) {
4246 if (flags
& NDR_OUT
) {
4247 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
4249 return NDR_ERR_SUCCESS
;
4252 static enum ndr_err_code
ndr_pull_winreg_QueryMultipleValues2(struct ndr_pull
*ndr
, int flags
, struct winreg_QueryMultipleValues2
*r
)
4254 if (flags
& NDR_IN
) {
4256 if (flags
& NDR_OUT
) {
4257 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
4259 return NDR_ERR_SUCCESS
;
4262 _PUBLIC_
void ndr_print_winreg_QueryMultipleValues2(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_QueryMultipleValues2
*r
)
4264 ndr_print_struct(ndr
, name
, "winreg_QueryMultipleValues2");
4266 if (flags
& NDR_SET_VALUES
) {
4267 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
4269 if (flags
& NDR_IN
) {
4270 ndr_print_struct(ndr
, "in", "winreg_QueryMultipleValues2");
4274 if (flags
& NDR_OUT
) {
4275 ndr_print_struct(ndr
, "out", "winreg_QueryMultipleValues2");
4277 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
4283 static const struct ndr_interface_call winreg_calls
[] = {
4286 sizeof(struct winreg_OpenHKCR
),
4287 (ndr_push_flags_fn_t
) ndr_push_winreg_OpenHKCR
,
4288 (ndr_pull_flags_fn_t
) ndr_pull_winreg_OpenHKCR
,
4289 (ndr_print_function_t
) ndr_print_winreg_OpenHKCR
,
4294 sizeof(struct winreg_OpenHKCU
),
4295 (ndr_push_flags_fn_t
) ndr_push_winreg_OpenHKCU
,
4296 (ndr_pull_flags_fn_t
) ndr_pull_winreg_OpenHKCU
,
4297 (ndr_print_function_t
) ndr_print_winreg_OpenHKCU
,
4302 sizeof(struct winreg_OpenHKLM
),
4303 (ndr_push_flags_fn_t
) ndr_push_winreg_OpenHKLM
,
4304 (ndr_pull_flags_fn_t
) ndr_pull_winreg_OpenHKLM
,
4305 (ndr_print_function_t
) ndr_print_winreg_OpenHKLM
,
4310 sizeof(struct winreg_OpenHKPD
),
4311 (ndr_push_flags_fn_t
) ndr_push_winreg_OpenHKPD
,
4312 (ndr_pull_flags_fn_t
) ndr_pull_winreg_OpenHKPD
,
4313 (ndr_print_function_t
) ndr_print_winreg_OpenHKPD
,
4318 sizeof(struct winreg_OpenHKU
),
4319 (ndr_push_flags_fn_t
) ndr_push_winreg_OpenHKU
,
4320 (ndr_pull_flags_fn_t
) ndr_pull_winreg_OpenHKU
,
4321 (ndr_print_function_t
) ndr_print_winreg_OpenHKU
,
4326 sizeof(struct winreg_CloseKey
),
4327 (ndr_push_flags_fn_t
) ndr_push_winreg_CloseKey
,
4328 (ndr_pull_flags_fn_t
) ndr_pull_winreg_CloseKey
,
4329 (ndr_print_function_t
) ndr_print_winreg_CloseKey
,
4334 sizeof(struct winreg_CreateKey
),
4335 (ndr_push_flags_fn_t
) ndr_push_winreg_CreateKey
,
4336 (ndr_pull_flags_fn_t
) ndr_pull_winreg_CreateKey
,
4337 (ndr_print_function_t
) ndr_print_winreg_CreateKey
,
4342 sizeof(struct winreg_DeleteKey
),
4343 (ndr_push_flags_fn_t
) ndr_push_winreg_DeleteKey
,
4344 (ndr_pull_flags_fn_t
) ndr_pull_winreg_DeleteKey
,
4345 (ndr_print_function_t
) ndr_print_winreg_DeleteKey
,
4349 "winreg_DeleteValue",
4350 sizeof(struct winreg_DeleteValue
),
4351 (ndr_push_flags_fn_t
) ndr_push_winreg_DeleteValue
,
4352 (ndr_pull_flags_fn_t
) ndr_pull_winreg_DeleteValue
,
4353 (ndr_print_function_t
) ndr_print_winreg_DeleteValue
,
4358 sizeof(struct winreg_EnumKey
),
4359 (ndr_push_flags_fn_t
) ndr_push_winreg_EnumKey
,
4360 (ndr_pull_flags_fn_t
) ndr_pull_winreg_EnumKey
,
4361 (ndr_print_function_t
) ndr_print_winreg_EnumKey
,
4366 sizeof(struct winreg_EnumValue
),
4367 (ndr_push_flags_fn_t
) ndr_push_winreg_EnumValue
,
4368 (ndr_pull_flags_fn_t
) ndr_pull_winreg_EnumValue
,
4369 (ndr_print_function_t
) ndr_print_winreg_EnumValue
,
4374 sizeof(struct winreg_FlushKey
),
4375 (ndr_push_flags_fn_t
) ndr_push_winreg_FlushKey
,
4376 (ndr_pull_flags_fn_t
) ndr_pull_winreg_FlushKey
,
4377 (ndr_print_function_t
) ndr_print_winreg_FlushKey
,
4381 "winreg_GetKeySecurity",
4382 sizeof(struct winreg_GetKeySecurity
),
4383 (ndr_push_flags_fn_t
) ndr_push_winreg_GetKeySecurity
,
4384 (ndr_pull_flags_fn_t
) ndr_pull_winreg_GetKeySecurity
,
4385 (ndr_print_function_t
) ndr_print_winreg_GetKeySecurity
,
4390 sizeof(struct winreg_LoadKey
),
4391 (ndr_push_flags_fn_t
) ndr_push_winreg_LoadKey
,
4392 (ndr_pull_flags_fn_t
) ndr_pull_winreg_LoadKey
,
4393 (ndr_print_function_t
) ndr_print_winreg_LoadKey
,
4397 "winreg_NotifyChangeKeyValue",
4398 sizeof(struct winreg_NotifyChangeKeyValue
),
4399 (ndr_push_flags_fn_t
) ndr_push_winreg_NotifyChangeKeyValue
,
4400 (ndr_pull_flags_fn_t
) ndr_pull_winreg_NotifyChangeKeyValue
,
4401 (ndr_print_function_t
) ndr_print_winreg_NotifyChangeKeyValue
,
4406 sizeof(struct winreg_OpenKey
),
4407 (ndr_push_flags_fn_t
) ndr_push_winreg_OpenKey
,
4408 (ndr_pull_flags_fn_t
) ndr_pull_winreg_OpenKey
,
4409 (ndr_print_function_t
) ndr_print_winreg_OpenKey
,
4413 "winreg_QueryInfoKey",
4414 sizeof(struct winreg_QueryInfoKey
),
4415 (ndr_push_flags_fn_t
) ndr_push_winreg_QueryInfoKey
,
4416 (ndr_pull_flags_fn_t
) ndr_pull_winreg_QueryInfoKey
,
4417 (ndr_print_function_t
) ndr_print_winreg_QueryInfoKey
,
4421 "winreg_QueryValue",
4422 sizeof(struct winreg_QueryValue
),
4423 (ndr_push_flags_fn_t
) ndr_push_winreg_QueryValue
,
4424 (ndr_pull_flags_fn_t
) ndr_pull_winreg_QueryValue
,
4425 (ndr_print_function_t
) ndr_print_winreg_QueryValue
,
4429 "winreg_ReplaceKey",
4430 sizeof(struct winreg_ReplaceKey
),
4431 (ndr_push_flags_fn_t
) ndr_push_winreg_ReplaceKey
,
4432 (ndr_pull_flags_fn_t
) ndr_pull_winreg_ReplaceKey
,
4433 (ndr_print_function_t
) ndr_print_winreg_ReplaceKey
,
4437 "winreg_RestoreKey",
4438 sizeof(struct winreg_RestoreKey
),
4439 (ndr_push_flags_fn_t
) ndr_push_winreg_RestoreKey
,
4440 (ndr_pull_flags_fn_t
) ndr_pull_winreg_RestoreKey
,
4441 (ndr_print_function_t
) ndr_print_winreg_RestoreKey
,
4446 sizeof(struct winreg_SaveKey
),
4447 (ndr_push_flags_fn_t
) ndr_push_winreg_SaveKey
,
4448 (ndr_pull_flags_fn_t
) ndr_pull_winreg_SaveKey
,
4449 (ndr_print_function_t
) ndr_print_winreg_SaveKey
,
4453 "winreg_SetKeySecurity",
4454 sizeof(struct winreg_SetKeySecurity
),
4455 (ndr_push_flags_fn_t
) ndr_push_winreg_SetKeySecurity
,
4456 (ndr_pull_flags_fn_t
) ndr_pull_winreg_SetKeySecurity
,
4457 (ndr_print_function_t
) ndr_print_winreg_SetKeySecurity
,
4462 sizeof(struct winreg_SetValue
),
4463 (ndr_push_flags_fn_t
) ndr_push_winreg_SetValue
,
4464 (ndr_pull_flags_fn_t
) ndr_pull_winreg_SetValue
,
4465 (ndr_print_function_t
) ndr_print_winreg_SetValue
,
4470 sizeof(struct winreg_UnLoadKey
),
4471 (ndr_push_flags_fn_t
) ndr_push_winreg_UnLoadKey
,
4472 (ndr_pull_flags_fn_t
) ndr_pull_winreg_UnLoadKey
,
4473 (ndr_print_function_t
) ndr_print_winreg_UnLoadKey
,
4477 "winreg_InitiateSystemShutdown",
4478 sizeof(struct winreg_InitiateSystemShutdown
),
4479 (ndr_push_flags_fn_t
) ndr_push_winreg_InitiateSystemShutdown
,
4480 (ndr_pull_flags_fn_t
) ndr_pull_winreg_InitiateSystemShutdown
,
4481 (ndr_print_function_t
) ndr_print_winreg_InitiateSystemShutdown
,
4485 "winreg_AbortSystemShutdown",
4486 sizeof(struct winreg_AbortSystemShutdown
),
4487 (ndr_push_flags_fn_t
) ndr_push_winreg_AbortSystemShutdown
,
4488 (ndr_pull_flags_fn_t
) ndr_pull_winreg_AbortSystemShutdown
,
4489 (ndr_print_function_t
) ndr_print_winreg_AbortSystemShutdown
,
4493 "winreg_GetVersion",
4494 sizeof(struct winreg_GetVersion
),
4495 (ndr_push_flags_fn_t
) ndr_push_winreg_GetVersion
,
4496 (ndr_pull_flags_fn_t
) ndr_pull_winreg_GetVersion
,
4497 (ndr_print_function_t
) ndr_print_winreg_GetVersion
,
4502 sizeof(struct winreg_OpenHKCC
),
4503 (ndr_push_flags_fn_t
) ndr_push_winreg_OpenHKCC
,
4504 (ndr_pull_flags_fn_t
) ndr_pull_winreg_OpenHKCC
,
4505 (ndr_print_function_t
) ndr_print_winreg_OpenHKCC
,
4510 sizeof(struct winreg_OpenHKDD
),
4511 (ndr_push_flags_fn_t
) ndr_push_winreg_OpenHKDD
,
4512 (ndr_pull_flags_fn_t
) ndr_pull_winreg_OpenHKDD
,
4513 (ndr_print_function_t
) ndr_print_winreg_OpenHKDD
,
4517 "winreg_QueryMultipleValues",
4518 sizeof(struct winreg_QueryMultipleValues
),
4519 (ndr_push_flags_fn_t
) ndr_push_winreg_QueryMultipleValues
,
4520 (ndr_pull_flags_fn_t
) ndr_pull_winreg_QueryMultipleValues
,
4521 (ndr_print_function_t
) ndr_print_winreg_QueryMultipleValues
,
4525 "winreg_InitiateSystemShutdownEx",
4526 sizeof(struct winreg_InitiateSystemShutdownEx
),
4527 (ndr_push_flags_fn_t
) ndr_push_winreg_InitiateSystemShutdownEx
,
4528 (ndr_pull_flags_fn_t
) ndr_pull_winreg_InitiateSystemShutdownEx
,
4529 (ndr_print_function_t
) ndr_print_winreg_InitiateSystemShutdownEx
,
4534 sizeof(struct winreg_SaveKeyEx
),
4535 (ndr_push_flags_fn_t
) ndr_push_winreg_SaveKeyEx
,
4536 (ndr_pull_flags_fn_t
) ndr_pull_winreg_SaveKeyEx
,
4537 (ndr_print_function_t
) ndr_print_winreg_SaveKeyEx
,
4542 sizeof(struct winreg_OpenHKPT
),
4543 (ndr_push_flags_fn_t
) ndr_push_winreg_OpenHKPT
,
4544 (ndr_pull_flags_fn_t
) ndr_pull_winreg_OpenHKPT
,
4545 (ndr_print_function_t
) ndr_print_winreg_OpenHKPT
,
4550 sizeof(struct winreg_OpenHKPN
),
4551 (ndr_push_flags_fn_t
) ndr_push_winreg_OpenHKPN
,
4552 (ndr_pull_flags_fn_t
) ndr_pull_winreg_OpenHKPN
,
4553 (ndr_print_function_t
) ndr_print_winreg_OpenHKPN
,
4557 "winreg_QueryMultipleValues2",
4558 sizeof(struct winreg_QueryMultipleValues2
),
4559 (ndr_push_flags_fn_t
) ndr_push_winreg_QueryMultipleValues2
,
4560 (ndr_pull_flags_fn_t
) ndr_pull_winreg_QueryMultipleValues2
,
4561 (ndr_print_function_t
) ndr_print_winreg_QueryMultipleValues2
,
4564 { NULL
, 0, NULL
, NULL
, NULL
, false }
4567 static const char * const winreg_endpoint_strings
[] = {
4568 "ncacn_np:[\\pipe\\winreg]",
4573 static const struct ndr_interface_string_array winreg_endpoints
= {
4575 .names
= winreg_endpoint_strings
4578 static const char * const winreg_authservice_strings
[] = {
4582 static const struct ndr_interface_string_array winreg_authservices
= {
4584 .names
= winreg_authservice_strings
4588 const struct ndr_interface_table ndr_table_winreg
= {
4591 {0x338cd001,0x2244,0x31f1,{0xaa,0xaa},{0x90,0x00,0x38,0x00,0x10,0x03}},
4594 .helpstring
= NDR_WINREG_HELPSTRING
,
4596 .calls
= winreg_calls
,
4597 .endpoints
= &winreg_endpoints
,
4598 .authservices
= &winreg_authservices