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 TALLOC_CTX
*_mem_save_name_0
;
62 if (ndr_flags
& NDR_SCALARS
) {
63 NDR_CHECK(ndr_pull_align(ndr
, 5));
64 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->name_len
));
65 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->name_size
));
66 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_name
));
68 NDR_PULL_ALLOC(ndr
, r
->name
);
72 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
74 if (ndr_flags
& NDR_BUFFERS
) {
76 _mem_save_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
77 NDR_PULL_SET_MEM_CTX(ndr
, r
->name
, 0);
78 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->name
));
79 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->name
));
80 if (ndr_get_array_length(ndr
, &r
->name
) > ndr_get_array_size(ndr
, &r
->name
)) {
81 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->name
), ndr_get_array_length(ndr
, &r
->name
));
83 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->name
), sizeof(uint16_t)));
84 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->name
, ndr_get_array_length(ndr
, &r
->name
), sizeof(uint16_t), CH_UTF16
));
85 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_0
, 0);
88 return NDR_ERR_SUCCESS
;
91 _PUBLIC_
void ndr_print_winreg_String(struct ndr_print
*ndr
, const char *name
, const struct winreg_String
*r
)
93 ndr_print_struct(ndr
, name
, "winreg_String");
95 ndr_print_uint16(ndr
, "name_len", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?strlen_m_term(r
->name
) * 2:r
->name_len
);
96 ndr_print_uint16(ndr
, "name_size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?strlen_m_term(r
->name
) * 2:r
->name_size
);
97 ndr_print_ptr(ndr
, "name", r
->name
);
100 ndr_print_string(ndr
, "name", r
->name
);
106 static enum ndr_err_code
ndr_push_KeySecurityData(struct ndr_push
*ndr
, int ndr_flags
, const struct KeySecurityData
*r
)
108 if (ndr_flags
& NDR_SCALARS
) {
109 NDR_CHECK(ndr_push_align(ndr
, 5));
110 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data
));
111 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
112 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->len
));
113 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
115 if (ndr_flags
& NDR_BUFFERS
) {
117 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->size
));
118 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
119 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->len
));
120 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->data
, r
->len
));
123 return NDR_ERR_SUCCESS
;
126 static enum ndr_err_code
ndr_pull_KeySecurityData(struct ndr_pull
*ndr
, int ndr_flags
, struct KeySecurityData
*r
)
129 TALLOC_CTX
*_mem_save_data_0
;
130 if (ndr_flags
& NDR_SCALARS
) {
131 NDR_CHECK(ndr_pull_align(ndr
, 5));
132 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data
));
134 NDR_PULL_ALLOC(ndr
, r
->data
);
138 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
139 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->len
));
140 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
142 if (ndr_flags
& NDR_BUFFERS
) {
144 _mem_save_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
145 NDR_PULL_SET_MEM_CTX(ndr
, r
->data
, 0);
146 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data
));
147 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data
));
148 if (ndr_get_array_length(ndr
, &r
->data
) > ndr_get_array_size(ndr
, &r
->data
)) {
149 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->data
), ndr_get_array_length(ndr
, &r
->data
));
151 NDR_PULL_ALLOC_N(ndr
, r
->data
, ndr_get_array_size(ndr
, &r
->data
));
152 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->data
, ndr_get_array_length(ndr
, &r
->data
)));
153 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_0
, 0);
156 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->data
, r
->size
));
159 NDR_CHECK(ndr_check_array_length(ndr
, (void*)&r
->data
, r
->len
));
162 return NDR_ERR_SUCCESS
;
165 _PUBLIC_
void ndr_print_KeySecurityData(struct ndr_print
*ndr
, const char *name
, const struct KeySecurityData
*r
)
167 ndr_print_struct(ndr
, name
, "KeySecurityData");
169 ndr_print_ptr(ndr
, "data", r
->data
);
172 ndr_print_array_uint8(ndr
, "data", r
->data
, r
->len
);
175 ndr_print_uint32(ndr
, "size", r
->size
);
176 ndr_print_uint32(ndr
, "len", r
->len
);
180 static enum ndr_err_code
ndr_push_winreg_SecBuf(struct ndr_push
*ndr
, int ndr_flags
, const struct winreg_SecBuf
*r
)
182 if (ndr_flags
& NDR_SCALARS
) {
183 NDR_CHECK(ndr_push_align(ndr
, 5));
184 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->length
));
185 NDR_CHECK(ndr_push_KeySecurityData(ndr
, NDR_SCALARS
, &r
->sd
));
186 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->inherit
));
187 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
189 if (ndr_flags
& NDR_BUFFERS
) {
190 NDR_CHECK(ndr_push_KeySecurityData(ndr
, NDR_BUFFERS
, &r
->sd
));
192 return NDR_ERR_SUCCESS
;
195 static enum ndr_err_code
ndr_pull_winreg_SecBuf(struct ndr_pull
*ndr
, int ndr_flags
, struct winreg_SecBuf
*r
)
197 if (ndr_flags
& NDR_SCALARS
) {
198 NDR_CHECK(ndr_pull_align(ndr
, 5));
199 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->length
));
200 NDR_CHECK(ndr_pull_KeySecurityData(ndr
, NDR_SCALARS
, &r
->sd
));
201 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->inherit
));
202 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
204 if (ndr_flags
& NDR_BUFFERS
) {
205 NDR_CHECK(ndr_pull_KeySecurityData(ndr
, NDR_BUFFERS
, &r
->sd
));
207 return NDR_ERR_SUCCESS
;
210 _PUBLIC_
void ndr_print_winreg_SecBuf(struct ndr_print
*ndr
, const char *name
, const struct winreg_SecBuf
*r
)
212 ndr_print_struct(ndr
, name
, "winreg_SecBuf");
214 ndr_print_uint32(ndr
, "length", r
->length
);
215 ndr_print_KeySecurityData(ndr
, "sd", &r
->sd
);
216 ndr_print_uint8(ndr
, "inherit", r
->inherit
);
220 static enum ndr_err_code
ndr_push_winreg_KeyOptions(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
222 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
223 return NDR_ERR_SUCCESS
;
226 static enum ndr_err_code
ndr_pull_winreg_KeyOptions(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
229 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
231 return NDR_ERR_SUCCESS
;
234 _PUBLIC_
void ndr_print_winreg_KeyOptions(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
236 ndr_print_uint32(ndr
, name
, r
);
238 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "REG_OPTION_VOLATILE", REG_OPTION_VOLATILE
, r
);
239 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "REG_OPTION_CREATE_LINK", REG_OPTION_CREATE_LINK
, r
);
240 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "REG_OPTION_BACKUP_RESTORE", REG_OPTION_BACKUP_RESTORE
, r
);
241 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "REG_OPTION_OPEN_LINK", REG_OPTION_OPEN_LINK
, r
);
245 static enum ndr_err_code
ndr_push_winreg_CreateAction(struct ndr_push
*ndr
, int ndr_flags
, enum winreg_CreateAction r
)
247 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
248 return NDR_ERR_SUCCESS
;
251 static enum ndr_err_code
ndr_pull_winreg_CreateAction(struct ndr_pull
*ndr
, int ndr_flags
, enum winreg_CreateAction
*r
)
254 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
256 return NDR_ERR_SUCCESS
;
259 _PUBLIC_
void ndr_print_winreg_CreateAction(struct ndr_print
*ndr
, const char *name
, enum winreg_CreateAction r
)
261 const char *val
= NULL
;
264 case REG_ACTION_NONE
: val
= "REG_ACTION_NONE"; break;
265 case REG_CREATED_NEW_KEY
: val
= "REG_CREATED_NEW_KEY"; break;
266 case REG_OPENED_EXISTING_KEY
: val
= "REG_OPENED_EXISTING_KEY"; break;
268 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
271 static enum ndr_err_code
ndr_push_winreg_StringBuf(struct ndr_push
*ndr
, int ndr_flags
, const struct winreg_StringBuf
*r
)
273 if (ndr_flags
& NDR_SCALARS
) {
274 NDR_CHECK(ndr_push_align(ndr
, 5));
275 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, strlen_m_term_null(r
->name
) * 2));
276 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->size
));
277 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->name
));
278 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
280 if (ndr_flags
& NDR_BUFFERS
) {
282 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->size
/ 2));
283 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
284 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, strlen_m_term_null(r
->name
) * 2 / 2));
285 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->name
, strlen_m_term_null(r
->name
) * 2 / 2, sizeof(uint16_t), CH_UTF16
));
288 return NDR_ERR_SUCCESS
;
291 static enum ndr_err_code
ndr_pull_winreg_StringBuf(struct ndr_pull
*ndr
, int ndr_flags
, struct winreg_StringBuf
*r
)
294 TALLOC_CTX
*_mem_save_name_0
;
295 if (ndr_flags
& NDR_SCALARS
) {
296 NDR_CHECK(ndr_pull_align(ndr
, 5));
297 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->length
));
298 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->size
));
299 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_name
));
301 NDR_PULL_ALLOC(ndr
, r
->name
);
305 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
307 if (ndr_flags
& NDR_BUFFERS
) {
309 _mem_save_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
310 NDR_PULL_SET_MEM_CTX(ndr
, r
->name
, 0);
311 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->name
));
312 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->name
));
313 if (ndr_get_array_length(ndr
, &r
->name
) > ndr_get_array_size(ndr
, &r
->name
)) {
314 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->name
), ndr_get_array_length(ndr
, &r
->name
));
316 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->name
, ndr_get_array_length(ndr
, &r
->name
), sizeof(uint16_t), CH_UTF16
));
317 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_0
, 0);
320 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->name
, r
->size
/ 2));
323 NDR_CHECK(ndr_check_array_length(ndr
, (void*)&r
->name
, r
->length
/ 2));
326 return NDR_ERR_SUCCESS
;
329 _PUBLIC_
void ndr_print_winreg_StringBuf(struct ndr_print
*ndr
, const char *name
, const struct winreg_StringBuf
*r
)
331 ndr_print_struct(ndr
, name
, "winreg_StringBuf");
333 ndr_print_uint16(ndr
, "length", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?strlen_m_term_null(r
->name
) * 2:r
->length
);
334 ndr_print_uint16(ndr
, "size", r
->size
);
335 ndr_print_ptr(ndr
, "name", r
->name
);
338 ndr_print_string(ndr
, "name", r
->name
);
344 static enum ndr_err_code
ndr_push_winreg_ValNameBuf(struct ndr_push
*ndr
, int ndr_flags
, const struct winreg_ValNameBuf
*r
)
346 if (ndr_flags
& NDR_SCALARS
) {
347 NDR_CHECK(ndr_push_align(ndr
, 5));
348 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, strlen_m_term(r
->name
) * 2));
349 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->size
));
350 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->name
));
351 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
353 if (ndr_flags
& NDR_BUFFERS
) {
355 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->size
/ 2));
356 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
357 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, strlen_m_term(r
->name
) * 2 / 2));
358 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->name
, strlen_m_term(r
->name
) * 2 / 2, sizeof(uint16_t), CH_UTF16
));
361 return NDR_ERR_SUCCESS
;
364 static enum ndr_err_code
ndr_pull_winreg_ValNameBuf(struct ndr_pull
*ndr
, int ndr_flags
, struct winreg_ValNameBuf
*r
)
367 TALLOC_CTX
*_mem_save_name_0
;
368 if (ndr_flags
& NDR_SCALARS
) {
369 NDR_CHECK(ndr_pull_align(ndr
, 5));
370 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->length
));
371 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->size
));
372 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_name
));
374 NDR_PULL_ALLOC(ndr
, r
->name
);
378 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
380 if (ndr_flags
& NDR_BUFFERS
) {
382 _mem_save_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
383 NDR_PULL_SET_MEM_CTX(ndr
, r
->name
, 0);
384 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->name
));
385 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->name
));
386 if (ndr_get_array_length(ndr
, &r
->name
) > ndr_get_array_size(ndr
, &r
->name
)) {
387 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->name
), ndr_get_array_length(ndr
, &r
->name
));
389 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->name
, ndr_get_array_length(ndr
, &r
->name
), sizeof(uint16_t), CH_UTF16
));
390 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_0
, 0);
393 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->name
, r
->size
/ 2));
396 NDR_CHECK(ndr_check_array_length(ndr
, (void*)&r
->name
, r
->length
/ 2));
399 return NDR_ERR_SUCCESS
;
402 _PUBLIC_
void ndr_print_winreg_ValNameBuf(struct ndr_print
*ndr
, const char *name
, const struct winreg_ValNameBuf
*r
)
404 ndr_print_struct(ndr
, name
, "winreg_ValNameBuf");
406 ndr_print_uint16(ndr
, "length", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?strlen_m_term(r
->name
) * 2:r
->length
);
407 ndr_print_uint16(ndr
, "size", r
->size
);
408 ndr_print_ptr(ndr
, "name", r
->name
);
411 ndr_print_string(ndr
, "name", r
->name
);
417 _PUBLIC_
enum ndr_err_code
ndr_push_winreg_NotifyChangeType(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
419 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
420 return NDR_ERR_SUCCESS
;
423 _PUBLIC_
enum ndr_err_code
ndr_pull_winreg_NotifyChangeType(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
426 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
428 return NDR_ERR_SUCCESS
;
431 _PUBLIC_
void ndr_print_winreg_NotifyChangeType(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
433 ndr_print_uint32(ndr
, name
, r
);
435 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "REG_NOTIFY_CHANGE_NAME", REG_NOTIFY_CHANGE_NAME
, r
);
436 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "REG_NOTIFY_CHANGE_ATTRIBUTES", REG_NOTIFY_CHANGE_ATTRIBUTES
, r
);
437 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "REG_NOTIFY_CHANGE_LAST_SET", REG_NOTIFY_CHANGE_LAST_SET
, r
);
438 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "REG_NOTIFY_CHANGE_SECURITY", REG_NOTIFY_CHANGE_SECURITY
, r
);
442 static enum ndr_err_code
ndr_push_KeySecurityAttribute(struct ndr_push
*ndr
, int ndr_flags
, const struct KeySecurityAttribute
*r
)
444 if (ndr_flags
& NDR_SCALARS
) {
445 NDR_CHECK(ndr_push_align(ndr
, 5));
446 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->data_size
));
447 NDR_CHECK(ndr_push_KeySecurityData(ndr
, NDR_SCALARS
, &r
->sec_data
));
448 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->inherit
));
449 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
451 if (ndr_flags
& NDR_BUFFERS
) {
452 NDR_CHECK(ndr_push_KeySecurityData(ndr
, NDR_BUFFERS
, &r
->sec_data
));
454 return NDR_ERR_SUCCESS
;
457 static enum ndr_err_code
ndr_pull_KeySecurityAttribute(struct ndr_pull
*ndr
, int ndr_flags
, struct KeySecurityAttribute
*r
)
459 if (ndr_flags
& NDR_SCALARS
) {
460 NDR_CHECK(ndr_pull_align(ndr
, 5));
461 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->data_size
));
462 NDR_CHECK(ndr_pull_KeySecurityData(ndr
, NDR_SCALARS
, &r
->sec_data
));
463 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->inherit
));
464 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
466 if (ndr_flags
& NDR_BUFFERS
) {
467 NDR_CHECK(ndr_pull_KeySecurityData(ndr
, NDR_BUFFERS
, &r
->sec_data
));
469 return NDR_ERR_SUCCESS
;
472 _PUBLIC_
void ndr_print_KeySecurityAttribute(struct ndr_print
*ndr
, const char *name
, const struct KeySecurityAttribute
*r
)
474 ndr_print_struct(ndr
, name
, "KeySecurityAttribute");
476 ndr_print_uint32(ndr
, "data_size", r
->data_size
);
477 ndr_print_KeySecurityData(ndr
, "sec_data", &r
->sec_data
);
478 ndr_print_uint8(ndr
, "inherit", r
->inherit
);
482 static enum ndr_err_code
ndr_push_QueryMultipleValue(struct ndr_push
*ndr
, int ndr_flags
, const struct QueryMultipleValue
*r
)
484 if (ndr_flags
& NDR_SCALARS
) {
485 NDR_CHECK(ndr_push_align(ndr
, 5));
486 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->name
));
487 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, r
->type
));
488 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->offset
));
489 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->length
));
490 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
492 if (ndr_flags
& NDR_BUFFERS
) {
494 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->name
));
497 return NDR_ERR_SUCCESS
;
500 static enum ndr_err_code
ndr_pull_QueryMultipleValue(struct ndr_pull
*ndr
, int ndr_flags
, struct QueryMultipleValue
*r
)
503 TALLOC_CTX
*_mem_save_name_0
;
504 if (ndr_flags
& NDR_SCALARS
) {
505 NDR_CHECK(ndr_pull_align(ndr
, 5));
506 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_name
));
508 NDR_PULL_ALLOC(ndr
, r
->name
);
512 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, &r
->type
));
513 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->offset
));
514 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->length
));
515 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
517 if (ndr_flags
& NDR_BUFFERS
) {
519 _mem_save_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
520 NDR_PULL_SET_MEM_CTX(ndr
, r
->name
, 0);
521 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->name
));
522 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_0
, 0);
525 return NDR_ERR_SUCCESS
;
528 _PUBLIC_
void ndr_print_QueryMultipleValue(struct ndr_print
*ndr
, const char *name
, const struct QueryMultipleValue
*r
)
530 ndr_print_struct(ndr
, name
, "QueryMultipleValue");
532 ndr_print_ptr(ndr
, "name", r
->name
);
535 ndr_print_winreg_String(ndr
, "name", r
->name
);
538 ndr_print_winreg_Type(ndr
, "type", r
->type
);
539 ndr_print_uint32(ndr
, "offset", r
->offset
);
540 ndr_print_uint32(ndr
, "length", r
->length
);
544 static enum ndr_err_code
ndr_push_winreg_OpenHKCR(struct ndr_push
*ndr
, int flags
, const struct winreg_OpenHKCR
*r
)
546 if (flags
& NDR_IN
) {
547 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.system_name
));
548 if (r
->in
.system_name
) {
549 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, *r
->in
.system_name
));
551 NDR_CHECK(ndr_push_winreg_AccessMask(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
553 if (flags
& NDR_OUT
) {
554 if (r
->out
.handle
== NULL
) {
555 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
557 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
558 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
560 return NDR_ERR_SUCCESS
;
563 static enum ndr_err_code
ndr_pull_winreg_OpenHKCR(struct ndr_pull
*ndr
, int flags
, struct winreg_OpenHKCR
*r
)
565 uint32_t _ptr_system_name
;
566 TALLOC_CTX
*_mem_save_system_name_0
;
567 TALLOC_CTX
*_mem_save_handle_0
;
568 if (flags
& NDR_IN
) {
571 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_system_name
));
572 if (_ptr_system_name
) {
573 NDR_PULL_ALLOC(ndr
, r
->in
.system_name
);
575 r
->in
.system_name
= NULL
;
577 if (r
->in
.system_name
) {
578 _mem_save_system_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
579 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.system_name
, 0);
580 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, r
->in
.system_name
));
581 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_system_name_0
, 0);
583 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
584 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
585 ZERO_STRUCTP(r
->out
.handle
);
587 if (flags
& NDR_OUT
) {
588 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
589 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
591 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
592 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
593 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
594 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
595 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
597 return NDR_ERR_SUCCESS
;
600 _PUBLIC_
void ndr_print_winreg_OpenHKCR(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_OpenHKCR
*r
)
602 ndr_print_struct(ndr
, name
, "winreg_OpenHKCR");
604 if (flags
& NDR_SET_VALUES
) {
605 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
607 if (flags
& NDR_IN
) {
608 ndr_print_struct(ndr
, "in", "winreg_OpenHKCR");
610 ndr_print_ptr(ndr
, "system_name", r
->in
.system_name
);
612 if (r
->in
.system_name
) {
613 ndr_print_uint16(ndr
, "system_name", *r
->in
.system_name
);
616 ndr_print_winreg_AccessMask(ndr
, "access_mask", r
->in
.access_mask
);
619 if (flags
& NDR_OUT
) {
620 ndr_print_struct(ndr
, "out", "winreg_OpenHKCR");
622 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
624 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
626 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
632 static enum ndr_err_code
ndr_push_winreg_OpenHKCU(struct ndr_push
*ndr
, int flags
, const struct winreg_OpenHKCU
*r
)
634 if (flags
& NDR_IN
) {
635 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.system_name
));
636 if (r
->in
.system_name
) {
637 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, *r
->in
.system_name
));
639 NDR_CHECK(ndr_push_winreg_AccessMask(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
641 if (flags
& NDR_OUT
) {
642 if (r
->out
.handle
== NULL
) {
643 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
645 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
646 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
648 return NDR_ERR_SUCCESS
;
651 static enum ndr_err_code
ndr_pull_winreg_OpenHKCU(struct ndr_pull
*ndr
, int flags
, struct winreg_OpenHKCU
*r
)
653 uint32_t _ptr_system_name
;
654 TALLOC_CTX
*_mem_save_system_name_0
;
655 TALLOC_CTX
*_mem_save_handle_0
;
656 if (flags
& NDR_IN
) {
659 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_system_name
));
660 if (_ptr_system_name
) {
661 NDR_PULL_ALLOC(ndr
, r
->in
.system_name
);
663 r
->in
.system_name
= NULL
;
665 if (r
->in
.system_name
) {
666 _mem_save_system_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
667 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.system_name
, 0);
668 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, r
->in
.system_name
));
669 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_system_name_0
, 0);
671 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
672 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
673 ZERO_STRUCTP(r
->out
.handle
);
675 if (flags
& NDR_OUT
) {
676 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
677 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
679 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
680 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
681 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
682 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
683 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
685 return NDR_ERR_SUCCESS
;
688 _PUBLIC_
void ndr_print_winreg_OpenHKCU(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_OpenHKCU
*r
)
690 ndr_print_struct(ndr
, name
, "winreg_OpenHKCU");
692 if (flags
& NDR_SET_VALUES
) {
693 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
695 if (flags
& NDR_IN
) {
696 ndr_print_struct(ndr
, "in", "winreg_OpenHKCU");
698 ndr_print_ptr(ndr
, "system_name", r
->in
.system_name
);
700 if (r
->in
.system_name
) {
701 ndr_print_uint16(ndr
, "system_name", *r
->in
.system_name
);
704 ndr_print_winreg_AccessMask(ndr
, "access_mask", r
->in
.access_mask
);
707 if (flags
& NDR_OUT
) {
708 ndr_print_struct(ndr
, "out", "winreg_OpenHKCU");
710 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
712 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
714 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
720 _PUBLIC_
enum ndr_err_code
ndr_push_winreg_OpenHKLM(struct ndr_push
*ndr
, int flags
, const struct winreg_OpenHKLM
*r
)
722 if (flags
& NDR_IN
) {
723 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.system_name
));
724 if (r
->in
.system_name
) {
725 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, *r
->in
.system_name
));
727 NDR_CHECK(ndr_push_winreg_AccessMask(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
729 if (flags
& NDR_OUT
) {
730 if (r
->out
.handle
== NULL
) {
731 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
733 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
734 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
736 return NDR_ERR_SUCCESS
;
739 _PUBLIC_
enum ndr_err_code
ndr_pull_winreg_OpenHKLM(struct ndr_pull
*ndr
, int flags
, struct winreg_OpenHKLM
*r
)
741 uint32_t _ptr_system_name
;
742 TALLOC_CTX
*_mem_save_system_name_0
;
743 TALLOC_CTX
*_mem_save_handle_0
;
744 if (flags
& NDR_IN
) {
747 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_system_name
));
748 if (_ptr_system_name
) {
749 NDR_PULL_ALLOC(ndr
, r
->in
.system_name
);
751 r
->in
.system_name
= NULL
;
753 if (r
->in
.system_name
) {
754 _mem_save_system_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
755 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.system_name
, 0);
756 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, r
->in
.system_name
));
757 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_system_name_0
, 0);
759 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
760 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
761 ZERO_STRUCTP(r
->out
.handle
);
763 if (flags
& NDR_OUT
) {
764 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
765 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
767 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
768 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
769 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
770 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
771 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
773 return NDR_ERR_SUCCESS
;
776 _PUBLIC_
void ndr_print_winreg_OpenHKLM(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_OpenHKLM
*r
)
778 ndr_print_struct(ndr
, name
, "winreg_OpenHKLM");
780 if (flags
& NDR_SET_VALUES
) {
781 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
783 if (flags
& NDR_IN
) {
784 ndr_print_struct(ndr
, "in", "winreg_OpenHKLM");
786 ndr_print_ptr(ndr
, "system_name", r
->in
.system_name
);
788 if (r
->in
.system_name
) {
789 ndr_print_uint16(ndr
, "system_name", *r
->in
.system_name
);
792 ndr_print_winreg_AccessMask(ndr
, "access_mask", r
->in
.access_mask
);
795 if (flags
& NDR_OUT
) {
796 ndr_print_struct(ndr
, "out", "winreg_OpenHKLM");
798 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
800 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
802 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
808 static enum ndr_err_code
ndr_push_winreg_OpenHKPD(struct ndr_push
*ndr
, int flags
, const struct winreg_OpenHKPD
*r
)
810 if (flags
& NDR_IN
) {
811 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.system_name
));
812 if (r
->in
.system_name
) {
813 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, *r
->in
.system_name
));
815 NDR_CHECK(ndr_push_winreg_AccessMask(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
817 if (flags
& NDR_OUT
) {
818 if (r
->out
.handle
== NULL
) {
819 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
821 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
822 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
824 return NDR_ERR_SUCCESS
;
827 static enum ndr_err_code
ndr_pull_winreg_OpenHKPD(struct ndr_pull
*ndr
, int flags
, struct winreg_OpenHKPD
*r
)
829 uint32_t _ptr_system_name
;
830 TALLOC_CTX
*_mem_save_system_name_0
;
831 TALLOC_CTX
*_mem_save_handle_0
;
832 if (flags
& NDR_IN
) {
835 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_system_name
));
836 if (_ptr_system_name
) {
837 NDR_PULL_ALLOC(ndr
, r
->in
.system_name
);
839 r
->in
.system_name
= NULL
;
841 if (r
->in
.system_name
) {
842 _mem_save_system_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
843 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.system_name
, 0);
844 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, r
->in
.system_name
));
845 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_system_name_0
, 0);
847 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
848 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
849 ZERO_STRUCTP(r
->out
.handle
);
851 if (flags
& NDR_OUT
) {
852 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
853 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
855 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
856 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
857 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
858 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
859 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
861 return NDR_ERR_SUCCESS
;
864 _PUBLIC_
void ndr_print_winreg_OpenHKPD(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_OpenHKPD
*r
)
866 ndr_print_struct(ndr
, name
, "winreg_OpenHKPD");
868 if (flags
& NDR_SET_VALUES
) {
869 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
871 if (flags
& NDR_IN
) {
872 ndr_print_struct(ndr
, "in", "winreg_OpenHKPD");
874 ndr_print_ptr(ndr
, "system_name", r
->in
.system_name
);
876 if (r
->in
.system_name
) {
877 ndr_print_uint16(ndr
, "system_name", *r
->in
.system_name
);
880 ndr_print_winreg_AccessMask(ndr
, "access_mask", r
->in
.access_mask
);
883 if (flags
& NDR_OUT
) {
884 ndr_print_struct(ndr
, "out", "winreg_OpenHKPD");
886 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
888 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
890 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
896 static enum ndr_err_code
ndr_push_winreg_OpenHKU(struct ndr_push
*ndr
, int flags
, const struct winreg_OpenHKU
*r
)
898 if (flags
& NDR_IN
) {
899 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.system_name
));
900 if (r
->in
.system_name
) {
901 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, *r
->in
.system_name
));
903 NDR_CHECK(ndr_push_winreg_AccessMask(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
905 if (flags
& NDR_OUT
) {
906 if (r
->out
.handle
== NULL
) {
907 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
909 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
910 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
912 return NDR_ERR_SUCCESS
;
915 static enum ndr_err_code
ndr_pull_winreg_OpenHKU(struct ndr_pull
*ndr
, int flags
, struct winreg_OpenHKU
*r
)
917 uint32_t _ptr_system_name
;
918 TALLOC_CTX
*_mem_save_system_name_0
;
919 TALLOC_CTX
*_mem_save_handle_0
;
920 if (flags
& NDR_IN
) {
923 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_system_name
));
924 if (_ptr_system_name
) {
925 NDR_PULL_ALLOC(ndr
, r
->in
.system_name
);
927 r
->in
.system_name
= NULL
;
929 if (r
->in
.system_name
) {
930 _mem_save_system_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
931 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.system_name
, 0);
932 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, r
->in
.system_name
));
933 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_system_name_0
, 0);
935 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
936 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
937 ZERO_STRUCTP(r
->out
.handle
);
939 if (flags
& NDR_OUT
) {
940 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
941 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
943 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
944 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
945 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
946 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
947 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
949 return NDR_ERR_SUCCESS
;
952 _PUBLIC_
void ndr_print_winreg_OpenHKU(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_OpenHKU
*r
)
954 ndr_print_struct(ndr
, name
, "winreg_OpenHKU");
956 if (flags
& NDR_SET_VALUES
) {
957 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
959 if (flags
& NDR_IN
) {
960 ndr_print_struct(ndr
, "in", "winreg_OpenHKU");
962 ndr_print_ptr(ndr
, "system_name", r
->in
.system_name
);
964 if (r
->in
.system_name
) {
965 ndr_print_uint16(ndr
, "system_name", *r
->in
.system_name
);
968 ndr_print_winreg_AccessMask(ndr
, "access_mask", r
->in
.access_mask
);
971 if (flags
& NDR_OUT
) {
972 ndr_print_struct(ndr
, "out", "winreg_OpenHKU");
974 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
976 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
978 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
984 _PUBLIC_
enum ndr_err_code
ndr_push_winreg_CloseKey(struct ndr_push
*ndr
, int flags
, const struct winreg_CloseKey
*r
)
986 if (flags
& NDR_IN
) {
987 if (r
->in
.handle
== NULL
) {
988 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
990 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
992 if (flags
& NDR_OUT
) {
993 if (r
->out
.handle
== NULL
) {
994 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
996 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
997 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
999 return NDR_ERR_SUCCESS
;
1002 _PUBLIC_
enum ndr_err_code
ndr_pull_winreg_CloseKey(struct ndr_pull
*ndr
, int flags
, struct winreg_CloseKey
*r
)
1004 TALLOC_CTX
*_mem_save_handle_0
;
1005 if (flags
& NDR_IN
) {
1006 ZERO_STRUCT(r
->out
);
1008 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
1009 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
1011 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1012 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
1013 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
1014 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
1015 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
1016 *r
->out
.handle
= *r
->in
.handle
;
1018 if (flags
& NDR_OUT
) {
1019 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
1020 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
1022 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1023 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
1024 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
1025 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
1026 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
1028 return NDR_ERR_SUCCESS
;
1031 _PUBLIC_
void ndr_print_winreg_CloseKey(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_CloseKey
*r
)
1033 ndr_print_struct(ndr
, name
, "winreg_CloseKey");
1035 if (flags
& NDR_SET_VALUES
) {
1036 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
1038 if (flags
& NDR_IN
) {
1039 ndr_print_struct(ndr
, "in", "winreg_CloseKey");
1041 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
1043 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
1047 if (flags
& NDR_OUT
) {
1048 ndr_print_struct(ndr
, "out", "winreg_CloseKey");
1050 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
1052 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
1054 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
1060 _PUBLIC_
enum ndr_err_code
ndr_push_winreg_CreateKey(struct ndr_push
*ndr
, int flags
, const struct winreg_CreateKey
*r
)
1062 if (flags
& NDR_IN
) {
1063 if (r
->in
.handle
== NULL
) {
1064 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
1066 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
1067 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.name
));
1068 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.keyclass
));
1069 NDR_CHECK(ndr_push_winreg_KeyOptions(ndr
, NDR_SCALARS
, r
->in
.options
));
1070 NDR_CHECK(ndr_push_winreg_AccessMask(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
1071 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.secdesc
));
1072 if (r
->in
.secdesc
) {
1073 NDR_CHECK(ndr_push_winreg_SecBuf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.secdesc
));
1075 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.action_taken
));
1076 if (r
->in
.action_taken
) {
1077 NDR_CHECK(ndr_push_winreg_CreateAction(ndr
, NDR_SCALARS
, *r
->in
.action_taken
));
1080 if (flags
& NDR_OUT
) {
1081 if (r
->out
.new_handle
== NULL
) {
1082 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
1084 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.new_handle
));
1085 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.action_taken
));
1086 if (r
->out
.action_taken
) {
1087 NDR_CHECK(ndr_push_winreg_CreateAction(ndr
, NDR_SCALARS
, *r
->out
.action_taken
));
1089 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
1091 return NDR_ERR_SUCCESS
;
1094 _PUBLIC_
enum ndr_err_code
ndr_pull_winreg_CreateKey(struct ndr_pull
*ndr
, int flags
, struct winreg_CreateKey
*r
)
1096 uint32_t _ptr_secdesc
;
1097 uint32_t _ptr_action_taken
;
1098 TALLOC_CTX
*_mem_save_handle_0
;
1099 TALLOC_CTX
*_mem_save_secdesc_0
;
1100 TALLOC_CTX
*_mem_save_new_handle_0
;
1101 TALLOC_CTX
*_mem_save_action_taken_0
;
1102 if (flags
& NDR_IN
) {
1103 ZERO_STRUCT(r
->out
);
1105 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
1106 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
1108 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1109 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
1110 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
1111 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
1112 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.name
));
1113 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.keyclass
));
1114 NDR_CHECK(ndr_pull_winreg_KeyOptions(ndr
, NDR_SCALARS
, &r
->in
.options
));
1115 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
1116 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_secdesc
));
1118 NDR_PULL_ALLOC(ndr
, r
->in
.secdesc
);
1120 r
->in
.secdesc
= NULL
;
1122 if (r
->in
.secdesc
) {
1123 _mem_save_secdesc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1124 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.secdesc
, 0);
1125 NDR_CHECK(ndr_pull_winreg_SecBuf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.secdesc
));
1126 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_0
, 0);
1128 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_action_taken
));
1129 if (_ptr_action_taken
) {
1130 NDR_PULL_ALLOC(ndr
, r
->in
.action_taken
);
1132 r
->in
.action_taken
= NULL
;
1134 if (r
->in
.action_taken
) {
1135 _mem_save_action_taken_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1136 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.action_taken
, 0);
1137 NDR_CHECK(ndr_pull_winreg_CreateAction(ndr
, NDR_SCALARS
, r
->in
.action_taken
));
1138 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_action_taken_0
, 0);
1140 NDR_PULL_ALLOC(ndr
, r
->out
.new_handle
);
1141 ZERO_STRUCTP(r
->out
.new_handle
);
1143 if (flags
& NDR_OUT
) {
1144 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
1145 NDR_PULL_ALLOC(ndr
, r
->out
.new_handle
);
1147 _mem_save_new_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1148 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.new_handle
, LIBNDR_FLAG_REF_ALLOC
);
1149 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.new_handle
));
1150 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_new_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
1151 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_action_taken
));
1152 if (_ptr_action_taken
) {
1153 NDR_PULL_ALLOC(ndr
, r
->out
.action_taken
);
1155 r
->out
.action_taken
= NULL
;
1157 if (r
->out
.action_taken
) {
1158 _mem_save_action_taken_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1159 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.action_taken
, 0);
1160 NDR_CHECK(ndr_pull_winreg_CreateAction(ndr
, NDR_SCALARS
, r
->out
.action_taken
));
1161 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_action_taken_0
, 0);
1163 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
1165 return NDR_ERR_SUCCESS
;
1168 _PUBLIC_
void ndr_print_winreg_CreateKey(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_CreateKey
*r
)
1170 ndr_print_struct(ndr
, name
, "winreg_CreateKey");
1172 if (flags
& NDR_SET_VALUES
) {
1173 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
1175 if (flags
& NDR_IN
) {
1176 ndr_print_struct(ndr
, "in", "winreg_CreateKey");
1178 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
1180 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
1182 ndr_print_winreg_String(ndr
, "name", &r
->in
.name
);
1183 ndr_print_winreg_String(ndr
, "keyclass", &r
->in
.keyclass
);
1184 ndr_print_winreg_KeyOptions(ndr
, "options", r
->in
.options
);
1185 ndr_print_winreg_AccessMask(ndr
, "access_mask", r
->in
.access_mask
);
1186 ndr_print_ptr(ndr
, "secdesc", r
->in
.secdesc
);
1188 if (r
->in
.secdesc
) {
1189 ndr_print_winreg_SecBuf(ndr
, "secdesc", r
->in
.secdesc
);
1192 ndr_print_ptr(ndr
, "action_taken", r
->in
.action_taken
);
1194 if (r
->in
.action_taken
) {
1195 ndr_print_winreg_CreateAction(ndr
, "action_taken", *r
->in
.action_taken
);
1200 if (flags
& NDR_OUT
) {
1201 ndr_print_struct(ndr
, "out", "winreg_CreateKey");
1203 ndr_print_ptr(ndr
, "new_handle", r
->out
.new_handle
);
1205 ndr_print_policy_handle(ndr
, "new_handle", r
->out
.new_handle
);
1207 ndr_print_ptr(ndr
, "action_taken", r
->out
.action_taken
);
1209 if (r
->out
.action_taken
) {
1210 ndr_print_winreg_CreateAction(ndr
, "action_taken", *r
->out
.action_taken
);
1213 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
1219 _PUBLIC_
enum ndr_err_code
ndr_push_winreg_DeleteKey(struct ndr_push
*ndr
, int flags
, const struct winreg_DeleteKey
*r
)
1221 if (flags
& NDR_IN
) {
1222 if (r
->in
.handle
== NULL
) {
1223 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
1225 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
1226 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.key
));
1228 if (flags
& NDR_OUT
) {
1229 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
1231 return NDR_ERR_SUCCESS
;
1234 _PUBLIC_
enum ndr_err_code
ndr_pull_winreg_DeleteKey(struct ndr_pull
*ndr
, int flags
, struct winreg_DeleteKey
*r
)
1236 TALLOC_CTX
*_mem_save_handle_0
;
1237 if (flags
& NDR_IN
) {
1238 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
1239 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
1241 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1242 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
1243 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
1244 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
1245 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.key
));
1247 if (flags
& NDR_OUT
) {
1248 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
1250 return NDR_ERR_SUCCESS
;
1253 _PUBLIC_
void ndr_print_winreg_DeleteKey(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_DeleteKey
*r
)
1255 ndr_print_struct(ndr
, name
, "winreg_DeleteKey");
1257 if (flags
& NDR_SET_VALUES
) {
1258 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
1260 if (flags
& NDR_IN
) {
1261 ndr_print_struct(ndr
, "in", "winreg_DeleteKey");
1263 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
1265 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
1267 ndr_print_winreg_String(ndr
, "key", &r
->in
.key
);
1270 if (flags
& NDR_OUT
) {
1271 ndr_print_struct(ndr
, "out", "winreg_DeleteKey");
1273 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
1279 static enum ndr_err_code
ndr_push_winreg_DeleteValue(struct ndr_push
*ndr
, int flags
, const struct winreg_DeleteValue
*r
)
1281 if (flags
& NDR_IN
) {
1282 if (r
->in
.handle
== NULL
) {
1283 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
1285 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
1286 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.value
));
1288 if (flags
& NDR_OUT
) {
1289 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
1291 return NDR_ERR_SUCCESS
;
1294 static enum ndr_err_code
ndr_pull_winreg_DeleteValue(struct ndr_pull
*ndr
, int flags
, struct winreg_DeleteValue
*r
)
1296 TALLOC_CTX
*_mem_save_handle_0
;
1297 if (flags
& NDR_IN
) {
1298 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
1299 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
1301 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1302 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
1303 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
1304 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
1305 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.value
));
1307 if (flags
& NDR_OUT
) {
1308 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
1310 return NDR_ERR_SUCCESS
;
1313 _PUBLIC_
void ndr_print_winreg_DeleteValue(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_DeleteValue
*r
)
1315 ndr_print_struct(ndr
, name
, "winreg_DeleteValue");
1317 if (flags
& NDR_SET_VALUES
) {
1318 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
1320 if (flags
& NDR_IN
) {
1321 ndr_print_struct(ndr
, "in", "winreg_DeleteValue");
1323 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
1325 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
1327 ndr_print_winreg_String(ndr
, "value", &r
->in
.value
);
1330 if (flags
& NDR_OUT
) {
1331 ndr_print_struct(ndr
, "out", "winreg_DeleteValue");
1333 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
1339 _PUBLIC_
enum ndr_err_code
ndr_push_winreg_EnumKey(struct ndr_push
*ndr
, int flags
, const struct winreg_EnumKey
*r
)
1341 if (flags
& NDR_IN
) {
1342 if (r
->in
.handle
== NULL
) {
1343 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
1345 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
1346 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.enum_index
));
1347 if (r
->in
.name
== NULL
) {
1348 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
1350 NDR_CHECK(ndr_push_winreg_StringBuf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.name
));
1351 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.keyclass
));
1352 if (r
->in
.keyclass
) {
1353 NDR_CHECK(ndr_push_winreg_StringBuf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.keyclass
));
1355 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.last_changed_time
));
1356 if (r
->in
.last_changed_time
) {
1357 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, *r
->in
.last_changed_time
));
1360 if (flags
& NDR_OUT
) {
1361 if (r
->out
.name
== NULL
) {
1362 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
1364 NDR_CHECK(ndr_push_winreg_StringBuf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.name
));
1365 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.keyclass
));
1366 if (r
->out
.keyclass
) {
1367 NDR_CHECK(ndr_push_winreg_StringBuf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.keyclass
));
1369 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.last_changed_time
));
1370 if (r
->out
.last_changed_time
) {
1371 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, *r
->out
.last_changed_time
));
1373 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
1375 return NDR_ERR_SUCCESS
;
1378 _PUBLIC_
enum ndr_err_code
ndr_pull_winreg_EnumKey(struct ndr_pull
*ndr
, int flags
, struct winreg_EnumKey
*r
)
1380 uint32_t _ptr_keyclass
;
1381 uint32_t _ptr_last_changed_time
;
1382 TALLOC_CTX
*_mem_save_handle_0
;
1383 TALLOC_CTX
*_mem_save_name_0
;
1384 TALLOC_CTX
*_mem_save_keyclass_0
;
1385 TALLOC_CTX
*_mem_save_last_changed_time_0
;
1386 if (flags
& NDR_IN
) {
1387 ZERO_STRUCT(r
->out
);
1389 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
1390 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
1392 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1393 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
1394 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
1395 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
1396 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.enum_index
));
1397 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
1398 NDR_PULL_ALLOC(ndr
, r
->in
.name
);
1400 _mem_save_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1401 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.name
, LIBNDR_FLAG_REF_ALLOC
);
1402 NDR_CHECK(ndr_pull_winreg_StringBuf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.name
));
1403 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_0
, LIBNDR_FLAG_REF_ALLOC
);
1404 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_keyclass
));
1405 if (_ptr_keyclass
) {
1406 NDR_PULL_ALLOC(ndr
, r
->in
.keyclass
);
1408 r
->in
.keyclass
= NULL
;
1410 if (r
->in
.keyclass
) {
1411 _mem_save_keyclass_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1412 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.keyclass
, 0);
1413 NDR_CHECK(ndr_pull_winreg_StringBuf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.keyclass
));
1414 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_keyclass_0
, 0);
1416 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_last_changed_time
));
1417 if (_ptr_last_changed_time
) {
1418 NDR_PULL_ALLOC(ndr
, r
->in
.last_changed_time
);
1420 r
->in
.last_changed_time
= NULL
;
1422 if (r
->in
.last_changed_time
) {
1423 _mem_save_last_changed_time_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1424 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.last_changed_time
, 0);
1425 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, r
->in
.last_changed_time
));
1426 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_last_changed_time_0
, 0);
1428 NDR_PULL_ALLOC(ndr
, r
->out
.name
);
1429 *r
->out
.name
= *r
->in
.name
;
1431 if (flags
& NDR_OUT
) {
1432 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
1433 NDR_PULL_ALLOC(ndr
, r
->out
.name
);
1435 _mem_save_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1436 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.name
, LIBNDR_FLAG_REF_ALLOC
);
1437 NDR_CHECK(ndr_pull_winreg_StringBuf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.name
));
1438 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_0
, LIBNDR_FLAG_REF_ALLOC
);
1439 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_keyclass
));
1440 if (_ptr_keyclass
) {
1441 NDR_PULL_ALLOC(ndr
, r
->out
.keyclass
);
1443 r
->out
.keyclass
= NULL
;
1445 if (r
->out
.keyclass
) {
1446 _mem_save_keyclass_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1447 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.keyclass
, 0);
1448 NDR_CHECK(ndr_pull_winreg_StringBuf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.keyclass
));
1449 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_keyclass_0
, 0);
1451 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_last_changed_time
));
1452 if (_ptr_last_changed_time
) {
1453 NDR_PULL_ALLOC(ndr
, r
->out
.last_changed_time
);
1455 r
->out
.last_changed_time
= NULL
;
1457 if (r
->out
.last_changed_time
) {
1458 _mem_save_last_changed_time_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1459 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.last_changed_time
, 0);
1460 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, r
->out
.last_changed_time
));
1461 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_last_changed_time_0
, 0);
1463 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
1465 return NDR_ERR_SUCCESS
;
1468 _PUBLIC_
void ndr_print_winreg_EnumKey(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_EnumKey
*r
)
1470 ndr_print_struct(ndr
, name
, "winreg_EnumKey");
1472 if (flags
& NDR_SET_VALUES
) {
1473 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
1475 if (flags
& NDR_IN
) {
1476 ndr_print_struct(ndr
, "in", "winreg_EnumKey");
1478 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
1480 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
1482 ndr_print_uint32(ndr
, "enum_index", r
->in
.enum_index
);
1483 ndr_print_ptr(ndr
, "name", r
->in
.name
);
1485 ndr_print_winreg_StringBuf(ndr
, "name", r
->in
.name
);
1487 ndr_print_ptr(ndr
, "keyclass", r
->in
.keyclass
);
1489 if (r
->in
.keyclass
) {
1490 ndr_print_winreg_StringBuf(ndr
, "keyclass", r
->in
.keyclass
);
1493 ndr_print_ptr(ndr
, "last_changed_time", r
->in
.last_changed_time
);
1495 if (r
->in
.last_changed_time
) {
1496 ndr_print_NTTIME(ndr
, "last_changed_time", *r
->in
.last_changed_time
);
1501 if (flags
& NDR_OUT
) {
1502 ndr_print_struct(ndr
, "out", "winreg_EnumKey");
1504 ndr_print_ptr(ndr
, "name", r
->out
.name
);
1506 ndr_print_winreg_StringBuf(ndr
, "name", r
->out
.name
);
1508 ndr_print_ptr(ndr
, "keyclass", r
->out
.keyclass
);
1510 if (r
->out
.keyclass
) {
1511 ndr_print_winreg_StringBuf(ndr
, "keyclass", r
->out
.keyclass
);
1514 ndr_print_ptr(ndr
, "last_changed_time", r
->out
.last_changed_time
);
1516 if (r
->out
.last_changed_time
) {
1517 ndr_print_NTTIME(ndr
, "last_changed_time", *r
->out
.last_changed_time
);
1520 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
1526 _PUBLIC_
enum ndr_err_code
ndr_push_winreg_EnumValue(struct ndr_push
*ndr
, int flags
, const struct winreg_EnumValue
*r
)
1528 if (flags
& NDR_IN
) {
1529 if (r
->in
.handle
== NULL
) {
1530 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
1532 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
1533 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.enum_index
));
1534 if (r
->in
.name
== NULL
) {
1535 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
1537 NDR_CHECK(ndr_push_winreg_ValNameBuf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.name
));
1538 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.type
));
1540 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, *r
->in
.type
));
1542 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.value
));
1544 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, *r
->in
.size
));
1545 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
1546 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, *r
->in
.length
));
1547 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->in
.value
, *r
->in
.length
));
1549 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.size
));
1551 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->in
.size
));
1553 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.length
));
1555 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->in
.length
));
1558 if (flags
& NDR_OUT
) {
1559 if (r
->out
.name
== NULL
) {
1560 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
1562 NDR_CHECK(ndr_push_winreg_ValNameBuf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.name
));
1563 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.type
));
1565 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, *r
->out
.type
));
1567 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.value
));
1569 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, *r
->out
.size
));
1570 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
1571 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, *r
->out
.length
));
1572 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->out
.value
, *r
->out
.length
));
1574 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.size
));
1576 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.size
));
1578 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.length
));
1579 if (r
->out
.length
) {
1580 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.length
));
1582 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
1584 return NDR_ERR_SUCCESS
;
1587 _PUBLIC_
enum ndr_err_code
ndr_pull_winreg_EnumValue(struct ndr_pull
*ndr
, int flags
, struct winreg_EnumValue
*r
)
1590 uint32_t _ptr_value
;
1592 uint32_t _ptr_length
;
1593 TALLOC_CTX
*_mem_save_handle_0
;
1594 TALLOC_CTX
*_mem_save_name_0
;
1595 TALLOC_CTX
*_mem_save_type_0
;
1596 TALLOC_CTX
*_mem_save_value_0
;
1597 TALLOC_CTX
*_mem_save_size_0
;
1598 TALLOC_CTX
*_mem_save_length_0
;
1599 if (flags
& NDR_IN
) {
1600 ZERO_STRUCT(r
->out
);
1602 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
1603 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
1605 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1606 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
1607 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
1608 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
1609 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.enum_index
));
1610 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
1611 NDR_PULL_ALLOC(ndr
, r
->in
.name
);
1613 _mem_save_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1614 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.name
, LIBNDR_FLAG_REF_ALLOC
);
1615 NDR_CHECK(ndr_pull_winreg_ValNameBuf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.name
));
1616 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_0
, LIBNDR_FLAG_REF_ALLOC
);
1617 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_type
));
1619 NDR_PULL_ALLOC(ndr
, r
->in
.type
);
1624 _mem_save_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1625 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.type
, 0);
1626 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, r
->in
.type
));
1627 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_type_0
, 0);
1629 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_value
));
1631 NDR_PULL_ALLOC(ndr
, r
->in
.value
);
1636 _mem_save_value_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1637 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.value
, 0);
1638 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.value
));
1639 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.value
));
1640 if (ndr_get_array_length(ndr
, &r
->in
.value
) > ndr_get_array_size(ndr
, &r
->in
.value
)) {
1641 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.value
), ndr_get_array_length(ndr
, &r
->in
.value
));
1643 NDR_PULL_ALLOC_N(ndr
, r
->in
.value
, ndr_get_array_size(ndr
, &r
->in
.value
));
1644 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->in
.value
, ndr_get_array_length(ndr
, &r
->in
.value
)));
1645 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_value_0
, 0);
1647 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_size
));
1649 NDR_PULL_ALLOC(ndr
, r
->in
.size
);
1654 _mem_save_size_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1655 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.size
, 0);
1656 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->in
.size
));
1657 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_size_0
, 0);
1659 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_length
));
1661 NDR_PULL_ALLOC(ndr
, r
->in
.length
);
1663 r
->in
.length
= NULL
;
1666 _mem_save_length_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1667 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.length
, 0);
1668 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->in
.length
));
1669 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_length_0
, 0);
1671 NDR_PULL_ALLOC(ndr
, r
->out
.name
);
1672 *r
->out
.name
= *r
->in
.name
;
1674 if (r
->in
.size
== NULL
) return ndr_pull_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL Pointer for size_is()");
1675 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.value
, *r
->in
.size
));
1678 if (r
->in
.length
== NULL
) return ndr_pull_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL Pointer for length_is()");
1679 NDR_CHECK(ndr_check_array_length(ndr
, (void*)&r
->in
.value
, *r
->in
.length
));
1682 if (flags
& NDR_OUT
) {
1683 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
1684 NDR_PULL_ALLOC(ndr
, r
->out
.name
);
1686 _mem_save_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1687 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.name
, LIBNDR_FLAG_REF_ALLOC
);
1688 NDR_CHECK(ndr_pull_winreg_ValNameBuf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.name
));
1689 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_0
, LIBNDR_FLAG_REF_ALLOC
);
1690 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_type
));
1692 NDR_PULL_ALLOC(ndr
, r
->out
.type
);
1697 _mem_save_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1698 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.type
, 0);
1699 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, r
->out
.type
));
1700 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_type_0
, 0);
1702 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_value
));
1704 NDR_PULL_ALLOC(ndr
, r
->out
.value
);
1706 r
->out
.value
= NULL
;
1709 _mem_save_value_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1710 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.value
, 0);
1711 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.value
));
1712 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->out
.value
));
1713 if (ndr_get_array_length(ndr
, &r
->out
.value
) > ndr_get_array_size(ndr
, &r
->out
.value
)) {
1714 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->out
.value
), ndr_get_array_length(ndr
, &r
->out
.value
));
1716 NDR_PULL_ALLOC_N(ndr
, r
->out
.value
, ndr_get_array_size(ndr
, &r
->out
.value
));
1717 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->out
.value
, ndr_get_array_length(ndr
, &r
->out
.value
)));
1718 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_value_0
, 0);
1720 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_size
));
1722 NDR_PULL_ALLOC(ndr
, r
->out
.size
);
1727 _mem_save_size_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1728 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.size
, 0);
1729 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.size
));
1730 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_size_0
, 0);
1732 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_length
));
1734 NDR_PULL_ALLOC(ndr
, r
->out
.length
);
1736 r
->out
.length
= NULL
;
1738 if (r
->out
.length
) {
1739 _mem_save_length_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1740 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.length
, 0);
1741 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.length
));
1742 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_length_0
, 0);
1744 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
1746 if (r
->out
.size
== NULL
) return ndr_pull_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL Pointer for size_is()");
1747 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.value
, *r
->out
.size
));
1750 if (r
->out
.length
== NULL
) return ndr_pull_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL Pointer for length_is()");
1751 NDR_CHECK(ndr_check_array_length(ndr
, (void*)&r
->out
.value
, *r
->out
.length
));
1754 return NDR_ERR_SUCCESS
;
1757 _PUBLIC_
void ndr_print_winreg_EnumValue(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_EnumValue
*r
)
1759 ndr_print_struct(ndr
, name
, "winreg_EnumValue");
1761 if (flags
& NDR_SET_VALUES
) {
1762 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
1764 if (flags
& NDR_IN
) {
1765 ndr_print_struct(ndr
, "in", "winreg_EnumValue");
1767 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
1769 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
1771 ndr_print_uint32(ndr
, "enum_index", r
->in
.enum_index
);
1772 ndr_print_ptr(ndr
, "name", r
->in
.name
);
1774 ndr_print_winreg_ValNameBuf(ndr
, "name", r
->in
.name
);
1776 ndr_print_ptr(ndr
, "type", r
->in
.type
);
1779 ndr_print_winreg_Type(ndr
, "type", *r
->in
.type
);
1782 ndr_print_ptr(ndr
, "value", r
->in
.value
);
1785 if (r
->in
.length
== NULL
) return;
1786 ndr_print_array_uint8(ndr
, "value", r
->in
.value
, *r
->in
.length
);
1789 ndr_print_ptr(ndr
, "size", r
->in
.size
);
1792 ndr_print_uint32(ndr
, "size", *r
->in
.size
);
1795 ndr_print_ptr(ndr
, "length", r
->in
.length
);
1798 ndr_print_uint32(ndr
, "length", *r
->in
.length
);
1803 if (flags
& NDR_OUT
) {
1804 ndr_print_struct(ndr
, "out", "winreg_EnumValue");
1806 ndr_print_ptr(ndr
, "name", r
->out
.name
);
1808 ndr_print_winreg_ValNameBuf(ndr
, "name", r
->out
.name
);
1810 ndr_print_ptr(ndr
, "type", r
->out
.type
);
1813 ndr_print_winreg_Type(ndr
, "type", *r
->out
.type
);
1816 ndr_print_ptr(ndr
, "value", r
->out
.value
);
1819 if (r
->out
.length
== NULL
) return;
1820 ndr_print_array_uint8(ndr
, "value", r
->out
.value
, *r
->out
.length
);
1823 ndr_print_ptr(ndr
, "size", r
->out
.size
);
1826 ndr_print_uint32(ndr
, "size", *r
->out
.size
);
1829 ndr_print_ptr(ndr
, "length", r
->out
.length
);
1831 if (r
->out
.length
) {
1832 ndr_print_uint32(ndr
, "length", *r
->out
.length
);
1835 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
1841 _PUBLIC_
enum ndr_err_code
ndr_push_winreg_FlushKey(struct ndr_push
*ndr
, int flags
, const struct winreg_FlushKey
*r
)
1843 if (flags
& NDR_IN
) {
1844 if (r
->in
.handle
== NULL
) {
1845 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
1847 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
1849 if (flags
& NDR_OUT
) {
1850 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
1852 return NDR_ERR_SUCCESS
;
1855 _PUBLIC_
enum ndr_err_code
ndr_pull_winreg_FlushKey(struct ndr_pull
*ndr
, int flags
, struct winreg_FlushKey
*r
)
1857 TALLOC_CTX
*_mem_save_handle_0
;
1858 if (flags
& NDR_IN
) {
1859 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
1860 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
1862 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1863 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
1864 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
1865 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
1867 if (flags
& NDR_OUT
) {
1868 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
1870 return NDR_ERR_SUCCESS
;
1873 _PUBLIC_
void ndr_print_winreg_FlushKey(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_FlushKey
*r
)
1875 ndr_print_struct(ndr
, name
, "winreg_FlushKey");
1877 if (flags
& NDR_SET_VALUES
) {
1878 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
1880 if (flags
& NDR_IN
) {
1881 ndr_print_struct(ndr
, "in", "winreg_FlushKey");
1883 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
1885 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
1889 if (flags
& NDR_OUT
) {
1890 ndr_print_struct(ndr
, "out", "winreg_FlushKey");
1892 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
1898 _PUBLIC_
enum ndr_err_code
ndr_push_winreg_GetKeySecurity(struct ndr_push
*ndr
, int flags
, const struct winreg_GetKeySecurity
*r
)
1900 if (flags
& NDR_IN
) {
1901 if (r
->in
.handle
== NULL
) {
1902 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
1904 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
1905 NDR_CHECK(ndr_push_security_secinfo(ndr
, NDR_SCALARS
, r
->in
.sec_info
));
1906 if (r
->in
.sd
== NULL
) {
1907 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
1909 NDR_CHECK(ndr_push_KeySecurityData(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.sd
));
1911 if (flags
& NDR_OUT
) {
1912 if (r
->out
.sd
== NULL
) {
1913 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
1915 NDR_CHECK(ndr_push_KeySecurityData(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.sd
));
1916 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
1918 return NDR_ERR_SUCCESS
;
1921 _PUBLIC_
enum ndr_err_code
ndr_pull_winreg_GetKeySecurity(struct ndr_pull
*ndr
, int flags
, struct winreg_GetKeySecurity
*r
)
1923 TALLOC_CTX
*_mem_save_handle_0
;
1924 TALLOC_CTX
*_mem_save_sd_0
;
1925 if (flags
& NDR_IN
) {
1926 ZERO_STRUCT(r
->out
);
1928 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
1929 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
1931 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1932 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
1933 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
1934 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
1935 NDR_CHECK(ndr_pull_security_secinfo(ndr
, NDR_SCALARS
, &r
->in
.sec_info
));
1936 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
1937 NDR_PULL_ALLOC(ndr
, r
->in
.sd
);
1939 _mem_save_sd_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1940 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.sd
, LIBNDR_FLAG_REF_ALLOC
);
1941 NDR_CHECK(ndr_pull_KeySecurityData(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.sd
));
1942 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sd_0
, LIBNDR_FLAG_REF_ALLOC
);
1943 NDR_PULL_ALLOC(ndr
, r
->out
.sd
);
1944 *r
->out
.sd
= *r
->in
.sd
;
1946 if (flags
& NDR_OUT
) {
1947 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
1948 NDR_PULL_ALLOC(ndr
, r
->out
.sd
);
1950 _mem_save_sd_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1951 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.sd
, LIBNDR_FLAG_REF_ALLOC
);
1952 NDR_CHECK(ndr_pull_KeySecurityData(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.sd
));
1953 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sd_0
, LIBNDR_FLAG_REF_ALLOC
);
1954 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
1956 return NDR_ERR_SUCCESS
;
1959 _PUBLIC_
void ndr_print_winreg_GetKeySecurity(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_GetKeySecurity
*r
)
1961 ndr_print_struct(ndr
, name
, "winreg_GetKeySecurity");
1963 if (flags
& NDR_SET_VALUES
) {
1964 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
1966 if (flags
& NDR_IN
) {
1967 ndr_print_struct(ndr
, "in", "winreg_GetKeySecurity");
1969 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
1971 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
1973 ndr_print_security_secinfo(ndr
, "sec_info", r
->in
.sec_info
);
1974 ndr_print_ptr(ndr
, "sd", r
->in
.sd
);
1976 ndr_print_KeySecurityData(ndr
, "sd", r
->in
.sd
);
1980 if (flags
& NDR_OUT
) {
1981 ndr_print_struct(ndr
, "out", "winreg_GetKeySecurity");
1983 ndr_print_ptr(ndr
, "sd", r
->out
.sd
);
1985 ndr_print_KeySecurityData(ndr
, "sd", r
->out
.sd
);
1987 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
1993 static enum ndr_err_code
ndr_push_winreg_LoadKey(struct ndr_push
*ndr
, int flags
, const struct winreg_LoadKey
*r
)
1995 if (flags
& NDR_IN
) {
1996 if (r
->in
.handle
== NULL
) {
1997 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
1999 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
2000 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.keyname
));
2001 if (r
->in
.keyname
) {
2002 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.keyname
));
2004 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.filename
));
2005 if (r
->in
.filename
) {
2006 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.filename
));
2009 if (flags
& NDR_OUT
) {
2010 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
2012 return NDR_ERR_SUCCESS
;
2015 static enum ndr_err_code
ndr_pull_winreg_LoadKey(struct ndr_pull
*ndr
, int flags
, struct winreg_LoadKey
*r
)
2017 uint32_t _ptr_keyname
;
2018 uint32_t _ptr_filename
;
2019 TALLOC_CTX
*_mem_save_handle_0
;
2020 TALLOC_CTX
*_mem_save_keyname_0
;
2021 TALLOC_CTX
*_mem_save_filename_0
;
2022 if (flags
& NDR_IN
) {
2023 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2024 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
2026 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2027 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
2028 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
2029 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
2030 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_keyname
));
2032 NDR_PULL_ALLOC(ndr
, r
->in
.keyname
);
2034 r
->in
.keyname
= NULL
;
2036 if (r
->in
.keyname
) {
2037 _mem_save_keyname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2038 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.keyname
, 0);
2039 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.keyname
));
2040 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_keyname_0
, 0);
2042 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_filename
));
2043 if (_ptr_filename
) {
2044 NDR_PULL_ALLOC(ndr
, r
->in
.filename
);
2046 r
->in
.filename
= NULL
;
2048 if (r
->in
.filename
) {
2049 _mem_save_filename_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2050 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.filename
, 0);
2051 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.filename
));
2052 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_filename_0
, 0);
2055 if (flags
& NDR_OUT
) {
2056 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
2058 return NDR_ERR_SUCCESS
;
2061 _PUBLIC_
void ndr_print_winreg_LoadKey(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_LoadKey
*r
)
2063 ndr_print_struct(ndr
, name
, "winreg_LoadKey");
2065 if (flags
& NDR_SET_VALUES
) {
2066 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
2068 if (flags
& NDR_IN
) {
2069 ndr_print_struct(ndr
, "in", "winreg_LoadKey");
2071 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
2073 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
2075 ndr_print_ptr(ndr
, "keyname", r
->in
.keyname
);
2077 if (r
->in
.keyname
) {
2078 ndr_print_winreg_String(ndr
, "keyname", r
->in
.keyname
);
2081 ndr_print_ptr(ndr
, "filename", r
->in
.filename
);
2083 if (r
->in
.filename
) {
2084 ndr_print_winreg_String(ndr
, "filename", r
->in
.filename
);
2089 if (flags
& NDR_OUT
) {
2090 ndr_print_struct(ndr
, "out", "winreg_LoadKey");
2092 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
2098 _PUBLIC_
enum ndr_err_code
ndr_push_winreg_NotifyChangeKeyValue(struct ndr_push
*ndr
, int flags
, const struct winreg_NotifyChangeKeyValue
*r
)
2100 if (flags
& NDR_IN
) {
2101 if (r
->in
.handle
== NULL
) {
2102 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2104 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
2105 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->in
.watch_subtree
));
2106 NDR_CHECK(ndr_push_winreg_NotifyChangeType(ndr
, NDR_SCALARS
, r
->in
.notify_filter
));
2107 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.unknown
));
2108 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.string1
));
2109 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.string2
));
2110 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.unknown2
));
2112 if (flags
& NDR_OUT
) {
2113 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
2115 return NDR_ERR_SUCCESS
;
2118 _PUBLIC_
enum ndr_err_code
ndr_pull_winreg_NotifyChangeKeyValue(struct ndr_pull
*ndr
, int flags
, struct winreg_NotifyChangeKeyValue
*r
)
2120 TALLOC_CTX
*_mem_save_handle_0
;
2121 if (flags
& NDR_IN
) {
2122 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2123 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
2125 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2126 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
2127 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
2128 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
2129 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->in
.watch_subtree
));
2130 NDR_CHECK(ndr_pull_winreg_NotifyChangeType(ndr
, NDR_SCALARS
, &r
->in
.notify_filter
));
2131 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.unknown
));
2132 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.string1
));
2133 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.string2
));
2134 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.unknown2
));
2136 if (flags
& NDR_OUT
) {
2137 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
2139 return NDR_ERR_SUCCESS
;
2142 _PUBLIC_
void ndr_print_winreg_NotifyChangeKeyValue(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_NotifyChangeKeyValue
*r
)
2144 ndr_print_struct(ndr
, name
, "winreg_NotifyChangeKeyValue");
2146 if (flags
& NDR_SET_VALUES
) {
2147 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
2149 if (flags
& NDR_IN
) {
2150 ndr_print_struct(ndr
, "in", "winreg_NotifyChangeKeyValue");
2152 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
2154 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
2156 ndr_print_uint8(ndr
, "watch_subtree", r
->in
.watch_subtree
);
2157 ndr_print_winreg_NotifyChangeType(ndr
, "notify_filter", r
->in
.notify_filter
);
2158 ndr_print_uint32(ndr
, "unknown", r
->in
.unknown
);
2159 ndr_print_winreg_String(ndr
, "string1", &r
->in
.string1
);
2160 ndr_print_winreg_String(ndr
, "string2", &r
->in
.string2
);
2161 ndr_print_uint32(ndr
, "unknown2", r
->in
.unknown2
);
2164 if (flags
& NDR_OUT
) {
2165 ndr_print_struct(ndr
, "out", "winreg_NotifyChangeKeyValue");
2167 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
2173 _PUBLIC_
enum ndr_err_code
ndr_push_winreg_OpenKey(struct ndr_push
*ndr
, int flags
, const struct winreg_OpenKey
*r
)
2175 if (flags
& NDR_IN
) {
2176 if (r
->in
.parent_handle
== NULL
) {
2177 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2179 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.parent_handle
));
2180 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.keyname
));
2181 NDR_CHECK(ndr_push_winreg_KeyOptions(ndr
, NDR_SCALARS
, r
->in
.options
));
2182 NDR_CHECK(ndr_push_winreg_AccessMask(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
2184 if (flags
& NDR_OUT
) {
2185 if (r
->out
.handle
== NULL
) {
2186 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2188 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
2189 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
2191 return NDR_ERR_SUCCESS
;
2194 _PUBLIC_
enum ndr_err_code
ndr_pull_winreg_OpenKey(struct ndr_pull
*ndr
, int flags
, struct winreg_OpenKey
*r
)
2196 TALLOC_CTX
*_mem_save_parent_handle_0
;
2197 TALLOC_CTX
*_mem_save_handle_0
;
2198 if (flags
& NDR_IN
) {
2199 ZERO_STRUCT(r
->out
);
2201 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2202 NDR_PULL_ALLOC(ndr
, r
->in
.parent_handle
);
2204 _mem_save_parent_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2205 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.parent_handle
, LIBNDR_FLAG_REF_ALLOC
);
2206 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.parent_handle
));
2207 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_parent_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
2208 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.keyname
));
2209 NDR_CHECK(ndr_pull_winreg_KeyOptions(ndr
, NDR_SCALARS
, &r
->in
.options
));
2210 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
2211 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
2212 ZERO_STRUCTP(r
->out
.handle
);
2214 if (flags
& NDR_OUT
) {
2215 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2216 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
2218 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2219 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
2220 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
2221 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
2222 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
2224 return NDR_ERR_SUCCESS
;
2227 _PUBLIC_
void ndr_print_winreg_OpenKey(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_OpenKey
*r
)
2229 ndr_print_struct(ndr
, name
, "winreg_OpenKey");
2231 if (flags
& NDR_SET_VALUES
) {
2232 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
2234 if (flags
& NDR_IN
) {
2235 ndr_print_struct(ndr
, "in", "winreg_OpenKey");
2237 ndr_print_ptr(ndr
, "parent_handle", r
->in
.parent_handle
);
2239 ndr_print_policy_handle(ndr
, "parent_handle", r
->in
.parent_handle
);
2241 ndr_print_winreg_String(ndr
, "keyname", &r
->in
.keyname
);
2242 ndr_print_winreg_KeyOptions(ndr
, "options", r
->in
.options
);
2243 ndr_print_winreg_AccessMask(ndr
, "access_mask", r
->in
.access_mask
);
2246 if (flags
& NDR_OUT
) {
2247 ndr_print_struct(ndr
, "out", "winreg_OpenKey");
2249 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
2251 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
2253 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
2259 _PUBLIC_
enum ndr_err_code
ndr_push_winreg_QueryInfoKey(struct ndr_push
*ndr
, int flags
, const struct winreg_QueryInfoKey
*r
)
2261 if (flags
& NDR_IN
) {
2262 if (r
->in
.handle
== NULL
) {
2263 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2265 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
2266 if (r
->in
.classname
== NULL
) {
2267 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2269 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.classname
));
2271 if (flags
& NDR_OUT
) {
2272 if (r
->out
.classname
== NULL
) {
2273 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2275 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.classname
));
2276 if (r
->out
.num_subkeys
== NULL
) {
2277 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2279 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.num_subkeys
));
2280 if (r
->out
.max_subkeylen
== NULL
) {
2281 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2283 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.max_subkeylen
));
2284 if (r
->out
.max_classlen
== NULL
) {
2285 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2287 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.max_classlen
));
2288 if (r
->out
.num_values
== NULL
) {
2289 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2291 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.num_values
));
2292 if (r
->out
.max_valnamelen
== NULL
) {
2293 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2295 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.max_valnamelen
));
2296 if (r
->out
.max_valbufsize
== NULL
) {
2297 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2299 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.max_valbufsize
));
2300 if (r
->out
.secdescsize
== NULL
) {
2301 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2303 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.secdescsize
));
2304 if (r
->out
.last_changed_time
== NULL
) {
2305 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2307 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, *r
->out
.last_changed_time
));
2308 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
2310 return NDR_ERR_SUCCESS
;
2313 _PUBLIC_
enum ndr_err_code
ndr_pull_winreg_QueryInfoKey(struct ndr_pull
*ndr
, int flags
, struct winreg_QueryInfoKey
*r
)
2315 TALLOC_CTX
*_mem_save_handle_0
;
2316 TALLOC_CTX
*_mem_save_classname_0
;
2317 TALLOC_CTX
*_mem_save_num_subkeys_0
;
2318 TALLOC_CTX
*_mem_save_max_subkeylen_0
;
2319 TALLOC_CTX
*_mem_save_max_classlen_0
;
2320 TALLOC_CTX
*_mem_save_num_values_0
;
2321 TALLOC_CTX
*_mem_save_max_valnamelen_0
;
2322 TALLOC_CTX
*_mem_save_max_valbufsize_0
;
2323 TALLOC_CTX
*_mem_save_secdescsize_0
;
2324 TALLOC_CTX
*_mem_save_last_changed_time_0
;
2325 if (flags
& NDR_IN
) {
2326 ZERO_STRUCT(r
->out
);
2328 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2329 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
2331 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2332 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
2333 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
2334 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
2335 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2336 NDR_PULL_ALLOC(ndr
, r
->in
.classname
);
2338 _mem_save_classname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2339 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.classname
, LIBNDR_FLAG_REF_ALLOC
);
2340 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.classname
));
2341 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_classname_0
, LIBNDR_FLAG_REF_ALLOC
);
2342 NDR_PULL_ALLOC(ndr
, r
->out
.classname
);
2343 *r
->out
.classname
= *r
->in
.classname
;
2344 NDR_PULL_ALLOC(ndr
, r
->out
.num_subkeys
);
2345 ZERO_STRUCTP(r
->out
.num_subkeys
);
2346 NDR_PULL_ALLOC(ndr
, r
->out
.max_subkeylen
);
2347 ZERO_STRUCTP(r
->out
.max_subkeylen
);
2348 NDR_PULL_ALLOC(ndr
, r
->out
.max_classlen
);
2349 ZERO_STRUCTP(r
->out
.max_classlen
);
2350 NDR_PULL_ALLOC(ndr
, r
->out
.num_values
);
2351 ZERO_STRUCTP(r
->out
.num_values
);
2352 NDR_PULL_ALLOC(ndr
, r
->out
.max_valnamelen
);
2353 ZERO_STRUCTP(r
->out
.max_valnamelen
);
2354 NDR_PULL_ALLOC(ndr
, r
->out
.max_valbufsize
);
2355 ZERO_STRUCTP(r
->out
.max_valbufsize
);
2356 NDR_PULL_ALLOC(ndr
, r
->out
.secdescsize
);
2357 ZERO_STRUCTP(r
->out
.secdescsize
);
2358 NDR_PULL_ALLOC(ndr
, r
->out
.last_changed_time
);
2359 ZERO_STRUCTP(r
->out
.last_changed_time
);
2361 if (flags
& NDR_OUT
) {
2362 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2363 NDR_PULL_ALLOC(ndr
, r
->out
.classname
);
2365 _mem_save_classname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2366 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.classname
, LIBNDR_FLAG_REF_ALLOC
);
2367 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.classname
));
2368 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_classname_0
, LIBNDR_FLAG_REF_ALLOC
);
2369 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2370 NDR_PULL_ALLOC(ndr
, r
->out
.num_subkeys
);
2372 _mem_save_num_subkeys_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2373 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.num_subkeys
, LIBNDR_FLAG_REF_ALLOC
);
2374 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.num_subkeys
));
2375 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_num_subkeys_0
, LIBNDR_FLAG_REF_ALLOC
);
2376 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2377 NDR_PULL_ALLOC(ndr
, r
->out
.max_subkeylen
);
2379 _mem_save_max_subkeylen_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2380 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.max_subkeylen
, LIBNDR_FLAG_REF_ALLOC
);
2381 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.max_subkeylen
));
2382 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_max_subkeylen_0
, LIBNDR_FLAG_REF_ALLOC
);
2383 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2384 NDR_PULL_ALLOC(ndr
, r
->out
.max_classlen
);
2386 _mem_save_max_classlen_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2387 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.max_classlen
, LIBNDR_FLAG_REF_ALLOC
);
2388 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.max_classlen
));
2389 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_max_classlen_0
, LIBNDR_FLAG_REF_ALLOC
);
2390 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2391 NDR_PULL_ALLOC(ndr
, r
->out
.num_values
);
2393 _mem_save_num_values_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2394 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.num_values
, LIBNDR_FLAG_REF_ALLOC
);
2395 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.num_values
));
2396 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_num_values_0
, LIBNDR_FLAG_REF_ALLOC
);
2397 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2398 NDR_PULL_ALLOC(ndr
, r
->out
.max_valnamelen
);
2400 _mem_save_max_valnamelen_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2401 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.max_valnamelen
, LIBNDR_FLAG_REF_ALLOC
);
2402 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.max_valnamelen
));
2403 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_max_valnamelen_0
, LIBNDR_FLAG_REF_ALLOC
);
2404 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2405 NDR_PULL_ALLOC(ndr
, r
->out
.max_valbufsize
);
2407 _mem_save_max_valbufsize_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2408 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.max_valbufsize
, LIBNDR_FLAG_REF_ALLOC
);
2409 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.max_valbufsize
));
2410 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_max_valbufsize_0
, LIBNDR_FLAG_REF_ALLOC
);
2411 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2412 NDR_PULL_ALLOC(ndr
, r
->out
.secdescsize
);
2414 _mem_save_secdescsize_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2415 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.secdescsize
, LIBNDR_FLAG_REF_ALLOC
);
2416 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.secdescsize
));
2417 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdescsize_0
, LIBNDR_FLAG_REF_ALLOC
);
2418 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2419 NDR_PULL_ALLOC(ndr
, r
->out
.last_changed_time
);
2421 _mem_save_last_changed_time_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2422 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.last_changed_time
, LIBNDR_FLAG_REF_ALLOC
);
2423 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, r
->out
.last_changed_time
));
2424 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_last_changed_time_0
, LIBNDR_FLAG_REF_ALLOC
);
2425 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
2427 return NDR_ERR_SUCCESS
;
2430 _PUBLIC_
void ndr_print_winreg_QueryInfoKey(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_QueryInfoKey
*r
)
2432 ndr_print_struct(ndr
, name
, "winreg_QueryInfoKey");
2434 if (flags
& NDR_SET_VALUES
) {
2435 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
2437 if (flags
& NDR_IN
) {
2438 ndr_print_struct(ndr
, "in", "winreg_QueryInfoKey");
2440 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
2442 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
2444 ndr_print_ptr(ndr
, "classname", r
->in
.classname
);
2446 ndr_print_winreg_String(ndr
, "classname", r
->in
.classname
);
2450 if (flags
& NDR_OUT
) {
2451 ndr_print_struct(ndr
, "out", "winreg_QueryInfoKey");
2453 ndr_print_ptr(ndr
, "classname", r
->out
.classname
);
2455 ndr_print_winreg_String(ndr
, "classname", r
->out
.classname
);
2457 ndr_print_ptr(ndr
, "num_subkeys", r
->out
.num_subkeys
);
2459 ndr_print_uint32(ndr
, "num_subkeys", *r
->out
.num_subkeys
);
2461 ndr_print_ptr(ndr
, "max_subkeylen", r
->out
.max_subkeylen
);
2463 ndr_print_uint32(ndr
, "max_subkeylen", *r
->out
.max_subkeylen
);
2465 ndr_print_ptr(ndr
, "max_classlen", r
->out
.max_classlen
);
2467 ndr_print_uint32(ndr
, "max_classlen", *r
->out
.max_classlen
);
2469 ndr_print_ptr(ndr
, "num_values", r
->out
.num_values
);
2471 ndr_print_uint32(ndr
, "num_values", *r
->out
.num_values
);
2473 ndr_print_ptr(ndr
, "max_valnamelen", r
->out
.max_valnamelen
);
2475 ndr_print_uint32(ndr
, "max_valnamelen", *r
->out
.max_valnamelen
);
2477 ndr_print_ptr(ndr
, "max_valbufsize", r
->out
.max_valbufsize
);
2479 ndr_print_uint32(ndr
, "max_valbufsize", *r
->out
.max_valbufsize
);
2481 ndr_print_ptr(ndr
, "secdescsize", r
->out
.secdescsize
);
2483 ndr_print_uint32(ndr
, "secdescsize", *r
->out
.secdescsize
);
2485 ndr_print_ptr(ndr
, "last_changed_time", r
->out
.last_changed_time
);
2487 ndr_print_NTTIME(ndr
, "last_changed_time", *r
->out
.last_changed_time
);
2489 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
2495 _PUBLIC_
enum ndr_err_code
ndr_push_winreg_QueryValue(struct ndr_push
*ndr
, int flags
, const struct winreg_QueryValue
*r
)
2497 if (flags
& NDR_IN
) {
2498 if (r
->in
.handle
== NULL
) {
2499 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2501 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
2502 if (r
->in
.value_name
== NULL
) {
2503 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2505 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.value_name
));
2506 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.type
));
2508 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, *r
->in
.type
));
2510 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.data
));
2512 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.data_size
?*r
->in
.data_size
:0));
2513 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
2514 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.data_length
?*r
->in
.data_length
:0));
2515 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->in
.data
, r
->in
.data_length
?*r
->in
.data_length
:0));
2517 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.data_size
));
2518 if (r
->in
.data_size
) {
2519 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->in
.data_size
));
2521 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.data_length
));
2522 if (r
->in
.data_length
) {
2523 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->in
.data_length
));
2526 if (flags
& NDR_OUT
) {
2527 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.type
));
2529 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, *r
->out
.type
));
2531 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.data
));
2533 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->out
.data_size
?*r
->out
.data_size
:0));
2534 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
2535 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->out
.data_length
?*r
->out
.data_length
:0));
2536 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->out
.data
, r
->out
.data_length
?*r
->out
.data_length
:0));
2538 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.data_size
));
2539 if (r
->out
.data_size
) {
2540 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.data_size
));
2542 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.data_length
));
2543 if (r
->out
.data_length
) {
2544 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.data_length
));
2546 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
2548 return NDR_ERR_SUCCESS
;
2551 _PUBLIC_
enum ndr_err_code
ndr_pull_winreg_QueryValue(struct ndr_pull
*ndr
, int flags
, struct winreg_QueryValue
*r
)
2555 uint32_t _ptr_data_size
;
2556 uint32_t _ptr_data_length
;
2557 TALLOC_CTX
*_mem_save_handle_0
;
2558 TALLOC_CTX
*_mem_save_value_name_0
;
2559 TALLOC_CTX
*_mem_save_type_0
;
2560 TALLOC_CTX
*_mem_save_data_0
;
2561 TALLOC_CTX
*_mem_save_data_size_0
;
2562 TALLOC_CTX
*_mem_save_data_length_0
;
2563 if (flags
& NDR_IN
) {
2564 ZERO_STRUCT(r
->out
);
2566 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2567 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
2569 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2570 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
2571 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
2572 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
2573 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2574 NDR_PULL_ALLOC(ndr
, r
->in
.value_name
);
2576 _mem_save_value_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2577 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.value_name
, LIBNDR_FLAG_REF_ALLOC
);
2578 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.value_name
));
2579 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_value_name_0
, LIBNDR_FLAG_REF_ALLOC
);
2580 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_type
));
2582 NDR_PULL_ALLOC(ndr
, r
->in
.type
);
2587 _mem_save_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2588 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.type
, 0);
2589 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, r
->in
.type
));
2590 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_type_0
, 0);
2592 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data
));
2594 NDR_PULL_ALLOC(ndr
, r
->in
.data
);
2599 _mem_save_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2600 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.data
, 0);
2601 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.data
));
2602 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.data
));
2603 if (ndr_get_array_length(ndr
, &r
->in
.data
) > ndr_get_array_size(ndr
, &r
->in
.data
)) {
2604 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.data
), ndr_get_array_length(ndr
, &r
->in
.data
));
2606 NDR_PULL_ALLOC_N(ndr
, r
->in
.data
, ndr_get_array_size(ndr
, &r
->in
.data
));
2607 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->in
.data
, ndr_get_array_length(ndr
, &r
->in
.data
)));
2608 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_0
, 0);
2610 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_size
));
2611 if (_ptr_data_size
) {
2612 NDR_PULL_ALLOC(ndr
, r
->in
.data_size
);
2614 r
->in
.data_size
= NULL
;
2616 if (r
->in
.data_size
) {
2617 _mem_save_data_size_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2618 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.data_size
, 0);
2619 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->in
.data_size
));
2620 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_size_0
, 0);
2622 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_length
));
2623 if (_ptr_data_length
) {
2624 NDR_PULL_ALLOC(ndr
, r
->in
.data_length
);
2626 r
->in
.data_length
= NULL
;
2628 if (r
->in
.data_length
) {
2629 _mem_save_data_length_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2630 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.data_length
, 0);
2631 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->in
.data_length
));
2632 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_length_0
, 0);
2635 if (r
->in
.data_size
== NULL
) return ndr_pull_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL Pointer for size_is()");
2636 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.data
, r
->in
.data_size
?*r
->in
.data_size
:0));
2639 if (r
->in
.data_length
== NULL
) return ndr_pull_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL Pointer for length_is()");
2640 NDR_CHECK(ndr_check_array_length(ndr
, (void*)&r
->in
.data
, r
->in
.data_length
?*r
->in
.data_length
:0));
2643 if (flags
& NDR_OUT
) {
2644 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_type
));
2646 NDR_PULL_ALLOC(ndr
, r
->out
.type
);
2651 _mem_save_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2652 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.type
, 0);
2653 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, r
->out
.type
));
2654 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_type_0
, 0);
2656 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data
));
2658 NDR_PULL_ALLOC(ndr
, r
->out
.data
);
2663 _mem_save_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2664 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.data
, 0);
2665 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.data
));
2666 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->out
.data
));
2667 if (ndr_get_array_length(ndr
, &r
->out
.data
) > ndr_get_array_size(ndr
, &r
->out
.data
)) {
2668 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->out
.data
), ndr_get_array_length(ndr
, &r
->out
.data
));
2670 NDR_PULL_ALLOC_N(ndr
, r
->out
.data
, ndr_get_array_size(ndr
, &r
->out
.data
));
2671 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->out
.data
, ndr_get_array_length(ndr
, &r
->out
.data
)));
2672 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_0
, 0);
2674 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_size
));
2675 if (_ptr_data_size
) {
2676 NDR_PULL_ALLOC(ndr
, r
->out
.data_size
);
2678 r
->out
.data_size
= NULL
;
2680 if (r
->out
.data_size
) {
2681 _mem_save_data_size_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2682 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.data_size
, 0);
2683 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.data_size
));
2684 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_size_0
, 0);
2686 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_length
));
2687 if (_ptr_data_length
) {
2688 NDR_PULL_ALLOC(ndr
, r
->out
.data_length
);
2690 r
->out
.data_length
= NULL
;
2692 if (r
->out
.data_length
) {
2693 _mem_save_data_length_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2694 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.data_length
, 0);
2695 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.data_length
));
2696 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_length_0
, 0);
2698 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
2700 if (r
->out
.data_size
== NULL
) return ndr_pull_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL Pointer for size_is()");
2701 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.data
, r
->out
.data_size
?*r
->out
.data_size
:0));
2704 if (r
->out
.data_length
== NULL
) return ndr_pull_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL Pointer for length_is()");
2705 NDR_CHECK(ndr_check_array_length(ndr
, (void*)&r
->out
.data
, r
->out
.data_length
?*r
->out
.data_length
:0));
2708 return NDR_ERR_SUCCESS
;
2711 _PUBLIC_
void ndr_print_winreg_QueryValue(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_QueryValue
*r
)
2713 ndr_print_struct(ndr
, name
, "winreg_QueryValue");
2715 if (flags
& NDR_SET_VALUES
) {
2716 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
2718 if (flags
& NDR_IN
) {
2719 ndr_print_struct(ndr
, "in", "winreg_QueryValue");
2721 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
2723 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
2725 ndr_print_ptr(ndr
, "value_name", r
->in
.value_name
);
2727 ndr_print_winreg_String(ndr
, "value_name", r
->in
.value_name
);
2729 ndr_print_ptr(ndr
, "type", r
->in
.type
);
2732 ndr_print_winreg_Type(ndr
, "type", *r
->in
.type
);
2735 ndr_print_ptr(ndr
, "data", r
->in
.data
);
2738 if (r
->in
.data_length
== NULL
) return;
2739 ndr_print_array_uint8(ndr
, "data", r
->in
.data
, r
->in
.data_length
?*r
->in
.data_length
:0);
2742 ndr_print_ptr(ndr
, "data_size", r
->in
.data_size
);
2744 if (r
->in
.data_size
) {
2745 ndr_print_uint32(ndr
, "data_size", *r
->in
.data_size
);
2748 ndr_print_ptr(ndr
, "data_length", r
->in
.data_length
);
2750 if (r
->in
.data_length
) {
2751 ndr_print_uint32(ndr
, "data_length", *r
->in
.data_length
);
2756 if (flags
& NDR_OUT
) {
2757 ndr_print_struct(ndr
, "out", "winreg_QueryValue");
2759 ndr_print_ptr(ndr
, "type", r
->out
.type
);
2762 ndr_print_winreg_Type(ndr
, "type", *r
->out
.type
);
2765 ndr_print_ptr(ndr
, "data", r
->out
.data
);
2768 if (r
->out
.data_length
== NULL
) return;
2769 ndr_print_array_uint8(ndr
, "data", r
->out
.data
, r
->out
.data_length
?*r
->out
.data_length
:0);
2772 ndr_print_ptr(ndr
, "data_size", r
->out
.data_size
);
2774 if (r
->out
.data_size
) {
2775 ndr_print_uint32(ndr
, "data_size", *r
->out
.data_size
);
2778 ndr_print_ptr(ndr
, "data_length", r
->out
.data_length
);
2780 if (r
->out
.data_length
) {
2781 ndr_print_uint32(ndr
, "data_length", *r
->out
.data_length
);
2784 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
2790 static enum ndr_err_code
ndr_push_winreg_ReplaceKey(struct ndr_push
*ndr
, int flags
, const struct winreg_ReplaceKey
*r
)
2792 if (flags
& NDR_IN
) {
2793 if (r
->in
.handle
== NULL
) {
2794 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2796 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
2797 if (r
->in
.subkey
== NULL
) {
2798 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2800 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.subkey
));
2801 if (r
->in
.new_file
== NULL
) {
2802 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2804 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.new_file
));
2805 if (r
->in
.old_file
== NULL
) {
2806 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2808 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.old_file
));
2810 if (flags
& NDR_OUT
) {
2811 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
2813 return NDR_ERR_SUCCESS
;
2816 static enum ndr_err_code
ndr_pull_winreg_ReplaceKey(struct ndr_pull
*ndr
, int flags
, struct winreg_ReplaceKey
*r
)
2818 TALLOC_CTX
*_mem_save_handle_0
;
2819 TALLOC_CTX
*_mem_save_subkey_0
;
2820 TALLOC_CTX
*_mem_save_new_file_0
;
2821 TALLOC_CTX
*_mem_save_old_file_0
;
2822 if (flags
& NDR_IN
) {
2823 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2824 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
2826 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2827 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
2828 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
2829 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
2830 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2831 NDR_PULL_ALLOC(ndr
, r
->in
.subkey
);
2833 _mem_save_subkey_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2834 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.subkey
, LIBNDR_FLAG_REF_ALLOC
);
2835 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.subkey
));
2836 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_subkey_0
, LIBNDR_FLAG_REF_ALLOC
);
2837 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2838 NDR_PULL_ALLOC(ndr
, r
->in
.new_file
);
2840 _mem_save_new_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2841 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.new_file
, LIBNDR_FLAG_REF_ALLOC
);
2842 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.new_file
));
2843 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_new_file_0
, LIBNDR_FLAG_REF_ALLOC
);
2844 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2845 NDR_PULL_ALLOC(ndr
, r
->in
.old_file
);
2847 _mem_save_old_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2848 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.old_file
, LIBNDR_FLAG_REF_ALLOC
);
2849 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.old_file
));
2850 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_old_file_0
, LIBNDR_FLAG_REF_ALLOC
);
2852 if (flags
& NDR_OUT
) {
2853 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
2855 return NDR_ERR_SUCCESS
;
2858 _PUBLIC_
void ndr_print_winreg_ReplaceKey(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_ReplaceKey
*r
)
2860 ndr_print_struct(ndr
, name
, "winreg_ReplaceKey");
2862 if (flags
& NDR_SET_VALUES
) {
2863 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
2865 if (flags
& NDR_IN
) {
2866 ndr_print_struct(ndr
, "in", "winreg_ReplaceKey");
2868 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
2870 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
2872 ndr_print_ptr(ndr
, "subkey", r
->in
.subkey
);
2874 ndr_print_winreg_String(ndr
, "subkey", r
->in
.subkey
);
2876 ndr_print_ptr(ndr
, "new_file", r
->in
.new_file
);
2878 ndr_print_winreg_String(ndr
, "new_file", r
->in
.new_file
);
2880 ndr_print_ptr(ndr
, "old_file", r
->in
.old_file
);
2882 ndr_print_winreg_String(ndr
, "old_file", r
->in
.old_file
);
2886 if (flags
& NDR_OUT
) {
2887 ndr_print_struct(ndr
, "out", "winreg_ReplaceKey");
2889 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
2895 static enum ndr_err_code
ndr_push_winreg_RestoreKey(struct ndr_push
*ndr
, int flags
, const struct winreg_RestoreKey
*r
)
2897 if (flags
& NDR_IN
) {
2898 if (r
->in
.handle
== NULL
) {
2899 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2901 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
2902 if (r
->in
.filename
== NULL
) {
2903 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2905 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.filename
));
2906 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.flags
));
2908 if (flags
& NDR_OUT
) {
2909 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
2911 return NDR_ERR_SUCCESS
;
2914 static enum ndr_err_code
ndr_pull_winreg_RestoreKey(struct ndr_pull
*ndr
, int flags
, struct winreg_RestoreKey
*r
)
2916 TALLOC_CTX
*_mem_save_handle_0
;
2917 TALLOC_CTX
*_mem_save_filename_0
;
2918 if (flags
& NDR_IN
) {
2919 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2920 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
2922 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2923 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
2924 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
2925 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
2926 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2927 NDR_PULL_ALLOC(ndr
, r
->in
.filename
);
2929 _mem_save_filename_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2930 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.filename
, LIBNDR_FLAG_REF_ALLOC
);
2931 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.filename
));
2932 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_filename_0
, LIBNDR_FLAG_REF_ALLOC
);
2933 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.flags
));
2935 if (flags
& NDR_OUT
) {
2936 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
2938 return NDR_ERR_SUCCESS
;
2941 _PUBLIC_
void ndr_print_winreg_RestoreKey(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_RestoreKey
*r
)
2943 ndr_print_struct(ndr
, name
, "winreg_RestoreKey");
2945 if (flags
& NDR_SET_VALUES
) {
2946 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
2948 if (flags
& NDR_IN
) {
2949 ndr_print_struct(ndr
, "in", "winreg_RestoreKey");
2951 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
2953 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
2955 ndr_print_ptr(ndr
, "filename", r
->in
.filename
);
2957 ndr_print_winreg_String(ndr
, "filename", r
->in
.filename
);
2959 ndr_print_uint32(ndr
, "flags", r
->in
.flags
);
2962 if (flags
& NDR_OUT
) {
2963 ndr_print_struct(ndr
, "out", "winreg_RestoreKey");
2965 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
2971 static enum ndr_err_code
ndr_push_winreg_SaveKey(struct ndr_push
*ndr
, int flags
, const struct winreg_SaveKey
*r
)
2973 if (flags
& NDR_IN
) {
2974 if (r
->in
.handle
== NULL
) {
2975 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2977 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
2978 if (r
->in
.filename
== NULL
) {
2979 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2981 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.filename
));
2982 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.sec_attrib
));
2983 if (r
->in
.sec_attrib
) {
2984 NDR_CHECK(ndr_push_KeySecurityAttribute(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.sec_attrib
));
2987 if (flags
& NDR_OUT
) {
2988 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
2990 return NDR_ERR_SUCCESS
;
2993 static enum ndr_err_code
ndr_pull_winreg_SaveKey(struct ndr_pull
*ndr
, int flags
, struct winreg_SaveKey
*r
)
2995 uint32_t _ptr_sec_attrib
;
2996 TALLOC_CTX
*_mem_save_handle_0
;
2997 TALLOC_CTX
*_mem_save_filename_0
;
2998 TALLOC_CTX
*_mem_save_sec_attrib_0
;
2999 if (flags
& NDR_IN
) {
3000 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
3001 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
3003 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3004 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
3005 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
3006 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
3007 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
3008 NDR_PULL_ALLOC(ndr
, r
->in
.filename
);
3010 _mem_save_filename_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3011 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.filename
, LIBNDR_FLAG_REF_ALLOC
);
3012 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.filename
));
3013 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_filename_0
, LIBNDR_FLAG_REF_ALLOC
);
3014 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sec_attrib
));
3015 if (_ptr_sec_attrib
) {
3016 NDR_PULL_ALLOC(ndr
, r
->in
.sec_attrib
);
3018 r
->in
.sec_attrib
= NULL
;
3020 if (r
->in
.sec_attrib
) {
3021 _mem_save_sec_attrib_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3022 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.sec_attrib
, 0);
3023 NDR_CHECK(ndr_pull_KeySecurityAttribute(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.sec_attrib
));
3024 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sec_attrib_0
, 0);
3027 if (flags
& NDR_OUT
) {
3028 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
3030 return NDR_ERR_SUCCESS
;
3033 _PUBLIC_
void ndr_print_winreg_SaveKey(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_SaveKey
*r
)
3035 ndr_print_struct(ndr
, name
, "winreg_SaveKey");
3037 if (flags
& NDR_SET_VALUES
) {
3038 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
3040 if (flags
& NDR_IN
) {
3041 ndr_print_struct(ndr
, "in", "winreg_SaveKey");
3043 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
3045 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
3047 ndr_print_ptr(ndr
, "filename", r
->in
.filename
);
3049 ndr_print_winreg_String(ndr
, "filename", r
->in
.filename
);
3051 ndr_print_ptr(ndr
, "sec_attrib", r
->in
.sec_attrib
);
3053 if (r
->in
.sec_attrib
) {
3054 ndr_print_KeySecurityAttribute(ndr
, "sec_attrib", r
->in
.sec_attrib
);
3059 if (flags
& NDR_OUT
) {
3060 ndr_print_struct(ndr
, "out", "winreg_SaveKey");
3062 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
3068 static enum ndr_err_code
ndr_push_winreg_SetKeySecurity(struct ndr_push
*ndr
, int flags
, const struct winreg_SetKeySecurity
*r
)
3070 if (flags
& NDR_IN
) {
3071 if (r
->in
.handle
== NULL
) {
3072 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
3074 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
3075 NDR_CHECK(ndr_push_security_secinfo(ndr
, NDR_SCALARS
, r
->in
.sec_info
));
3076 if (r
->in
.sd
== NULL
) {
3077 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
3079 NDR_CHECK(ndr_push_KeySecurityData(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.sd
));
3081 if (flags
& NDR_OUT
) {
3082 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
3084 return NDR_ERR_SUCCESS
;
3087 static enum ndr_err_code
ndr_pull_winreg_SetKeySecurity(struct ndr_pull
*ndr
, int flags
, struct winreg_SetKeySecurity
*r
)
3089 TALLOC_CTX
*_mem_save_handle_0
;
3090 TALLOC_CTX
*_mem_save_sd_0
;
3091 if (flags
& NDR_IN
) {
3092 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
3093 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
3095 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3096 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
3097 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
3098 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
3099 NDR_CHECK(ndr_pull_security_secinfo(ndr
, NDR_SCALARS
, &r
->in
.sec_info
));
3100 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
3101 NDR_PULL_ALLOC(ndr
, r
->in
.sd
);
3103 _mem_save_sd_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3104 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.sd
, LIBNDR_FLAG_REF_ALLOC
);
3105 NDR_CHECK(ndr_pull_KeySecurityData(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.sd
));
3106 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sd_0
, LIBNDR_FLAG_REF_ALLOC
);
3108 if (flags
& NDR_OUT
) {
3109 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
3111 return NDR_ERR_SUCCESS
;
3114 _PUBLIC_
void ndr_print_winreg_SetKeySecurity(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_SetKeySecurity
*r
)
3116 ndr_print_struct(ndr
, name
, "winreg_SetKeySecurity");
3118 if (flags
& NDR_SET_VALUES
) {
3119 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
3121 if (flags
& NDR_IN
) {
3122 ndr_print_struct(ndr
, "in", "winreg_SetKeySecurity");
3124 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
3126 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
3128 ndr_print_security_secinfo(ndr
, "sec_info", r
->in
.sec_info
);
3129 ndr_print_ptr(ndr
, "sd", r
->in
.sd
);
3131 ndr_print_KeySecurityData(ndr
, "sd", r
->in
.sd
);
3135 if (flags
& NDR_OUT
) {
3136 ndr_print_struct(ndr
, "out", "winreg_SetKeySecurity");
3138 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
3144 static enum ndr_err_code
ndr_push_winreg_SetValue(struct ndr_push
*ndr
, int flags
, const struct winreg_SetValue
*r
)
3146 if (flags
& NDR_IN
) {
3147 if (r
->in
.handle
== NULL
) {
3148 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
3150 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
3151 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.name
));
3152 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, r
->in
.type
));
3153 if (r
->in
.data
== NULL
) {
3154 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
3156 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.size
));
3157 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->in
.data
, r
->in
.size
));
3158 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.size
));
3160 if (flags
& NDR_OUT
) {
3161 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
3163 return NDR_ERR_SUCCESS
;
3166 static enum ndr_err_code
ndr_pull_winreg_SetValue(struct ndr_pull
*ndr
, int flags
, struct winreg_SetValue
*r
)
3168 TALLOC_CTX
*_mem_save_handle_0
;
3169 if (flags
& NDR_IN
) {
3170 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
3171 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
3173 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3174 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
3175 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
3176 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
3177 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.name
));
3178 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, &r
->in
.type
));
3179 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.data
));
3180 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
3181 NDR_PULL_ALLOC_N(ndr
, r
->in
.data
, ndr_get_array_size(ndr
, &r
->in
.data
));
3183 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->in
.data
, ndr_get_array_size(ndr
, &r
->in
.data
)));
3184 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.size
));
3186 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.data
, r
->in
.size
));
3189 if (flags
& NDR_OUT
) {
3190 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
3192 return NDR_ERR_SUCCESS
;
3195 _PUBLIC_
void ndr_print_winreg_SetValue(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_SetValue
*r
)
3197 ndr_print_struct(ndr
, name
, "winreg_SetValue");
3199 if (flags
& NDR_SET_VALUES
) {
3200 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
3202 if (flags
& NDR_IN
) {
3203 ndr_print_struct(ndr
, "in", "winreg_SetValue");
3205 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
3207 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
3209 ndr_print_winreg_String(ndr
, "name", &r
->in
.name
);
3210 ndr_print_winreg_Type(ndr
, "type", r
->in
.type
);
3211 ndr_print_ptr(ndr
, "data", r
->in
.data
);
3213 ndr_print_array_uint8(ndr
, "data", r
->in
.data
, r
->in
.size
);
3215 ndr_print_uint32(ndr
, "size", r
->in
.size
);
3218 if (flags
& NDR_OUT
) {
3219 ndr_print_struct(ndr
, "out", "winreg_SetValue");
3221 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
3227 static enum ndr_err_code
ndr_push_winreg_UnLoadKey(struct ndr_push
*ndr
, int flags
, const struct winreg_UnLoadKey
*r
)
3229 if (flags
& NDR_IN
) {
3230 if (r
->in
.handle
== NULL
) {
3231 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
3233 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
3234 if (r
->in
.subkey
== NULL
) {
3235 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
3237 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.subkey
));
3239 if (flags
& NDR_OUT
) {
3240 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
3242 return NDR_ERR_SUCCESS
;
3245 static enum ndr_err_code
ndr_pull_winreg_UnLoadKey(struct ndr_pull
*ndr
, int flags
, struct winreg_UnLoadKey
*r
)
3247 TALLOC_CTX
*_mem_save_handle_0
;
3248 TALLOC_CTX
*_mem_save_subkey_0
;
3249 if (flags
& NDR_IN
) {
3250 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
3251 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
3253 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3254 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
3255 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
3256 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
3257 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
3258 NDR_PULL_ALLOC(ndr
, r
->in
.subkey
);
3260 _mem_save_subkey_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3261 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.subkey
, LIBNDR_FLAG_REF_ALLOC
);
3262 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.subkey
));
3263 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_subkey_0
, LIBNDR_FLAG_REF_ALLOC
);
3265 if (flags
& NDR_OUT
) {
3266 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
3268 return NDR_ERR_SUCCESS
;
3271 _PUBLIC_
void ndr_print_winreg_UnLoadKey(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_UnLoadKey
*r
)
3273 ndr_print_struct(ndr
, name
, "winreg_UnLoadKey");
3275 if (flags
& NDR_SET_VALUES
) {
3276 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
3278 if (flags
& NDR_IN
) {
3279 ndr_print_struct(ndr
, "in", "winreg_UnLoadKey");
3281 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
3283 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
3285 ndr_print_ptr(ndr
, "subkey", r
->in
.subkey
);
3287 ndr_print_winreg_String(ndr
, "subkey", r
->in
.subkey
);
3291 if (flags
& NDR_OUT
) {
3292 ndr_print_struct(ndr
, "out", "winreg_UnLoadKey");
3294 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
3300 static enum ndr_err_code
ndr_push_winreg_InitiateSystemShutdown(struct ndr_push
*ndr
, int flags
, const struct winreg_InitiateSystemShutdown
*r
)
3302 if (flags
& NDR_IN
) {
3303 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.hostname
));
3304 if (r
->in
.hostname
) {
3305 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, *r
->in
.hostname
));
3307 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.message
));
3308 if (r
->in
.message
) {
3309 NDR_CHECK(ndr_push_lsa_StringLarge(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.message
));
3311 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.timeout
));
3312 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->in
.force_apps
));
3313 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->in
.do_reboot
));
3315 if (flags
& NDR_OUT
) {
3316 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
3318 return NDR_ERR_SUCCESS
;
3321 static enum ndr_err_code
ndr_pull_winreg_InitiateSystemShutdown(struct ndr_pull
*ndr
, int flags
, struct winreg_InitiateSystemShutdown
*r
)
3323 uint32_t _ptr_hostname
;
3324 uint32_t _ptr_message
;
3325 TALLOC_CTX
*_mem_save_hostname_0
;
3326 TALLOC_CTX
*_mem_save_message_0
;
3327 if (flags
& NDR_IN
) {
3328 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_hostname
));
3329 if (_ptr_hostname
) {
3330 NDR_PULL_ALLOC(ndr
, r
->in
.hostname
);
3332 r
->in
.hostname
= NULL
;
3334 if (r
->in
.hostname
) {
3335 _mem_save_hostname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3336 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.hostname
, 0);
3337 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, r
->in
.hostname
));
3338 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_hostname_0
, 0);
3340 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_message
));
3342 NDR_PULL_ALLOC(ndr
, r
->in
.message
);
3344 r
->in
.message
= NULL
;
3346 if (r
->in
.message
) {
3347 _mem_save_message_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3348 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.message
, 0);
3349 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.message
));
3350 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_message_0
, 0);
3352 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.timeout
));
3353 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->in
.force_apps
));
3354 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->in
.do_reboot
));
3356 if (flags
& NDR_OUT
) {
3357 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
3359 return NDR_ERR_SUCCESS
;
3362 _PUBLIC_
void ndr_print_winreg_InitiateSystemShutdown(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_InitiateSystemShutdown
*r
)
3364 ndr_print_struct(ndr
, name
, "winreg_InitiateSystemShutdown");
3366 if (flags
& NDR_SET_VALUES
) {
3367 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
3369 if (flags
& NDR_IN
) {
3370 ndr_print_struct(ndr
, "in", "winreg_InitiateSystemShutdown");
3372 ndr_print_ptr(ndr
, "hostname", r
->in
.hostname
);
3374 if (r
->in
.hostname
) {
3375 ndr_print_uint16(ndr
, "hostname", *r
->in
.hostname
);
3378 ndr_print_ptr(ndr
, "message", r
->in
.message
);
3380 if (r
->in
.message
) {
3381 ndr_print_lsa_StringLarge(ndr
, "message", r
->in
.message
);
3384 ndr_print_uint32(ndr
, "timeout", r
->in
.timeout
);
3385 ndr_print_uint8(ndr
, "force_apps", r
->in
.force_apps
);
3386 ndr_print_uint8(ndr
, "do_reboot", r
->in
.do_reboot
);
3389 if (flags
& NDR_OUT
) {
3390 ndr_print_struct(ndr
, "out", "winreg_InitiateSystemShutdown");
3392 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
3398 static enum ndr_err_code
ndr_push_winreg_AbortSystemShutdown(struct ndr_push
*ndr
, int flags
, const struct winreg_AbortSystemShutdown
*r
)
3400 if (flags
& NDR_IN
) {
3401 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
3403 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, *r
->in
.server
));
3406 if (flags
& NDR_OUT
) {
3407 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
3409 return NDR_ERR_SUCCESS
;
3412 static enum ndr_err_code
ndr_pull_winreg_AbortSystemShutdown(struct ndr_pull
*ndr
, int flags
, struct winreg_AbortSystemShutdown
*r
)
3414 uint32_t _ptr_server
;
3415 TALLOC_CTX
*_mem_save_server_0
;
3416 if (flags
& NDR_IN
) {
3417 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
3419 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
3421 r
->in
.server
= NULL
;
3424 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3425 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
3426 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, r
->in
.server
));
3427 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
3430 if (flags
& NDR_OUT
) {
3431 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
3433 return NDR_ERR_SUCCESS
;
3436 _PUBLIC_
void ndr_print_winreg_AbortSystemShutdown(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_AbortSystemShutdown
*r
)
3438 ndr_print_struct(ndr
, name
, "winreg_AbortSystemShutdown");
3440 if (flags
& NDR_SET_VALUES
) {
3441 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
3443 if (flags
& NDR_IN
) {
3444 ndr_print_struct(ndr
, "in", "winreg_AbortSystemShutdown");
3446 ndr_print_ptr(ndr
, "server", r
->in
.server
);
3449 ndr_print_uint16(ndr
, "server", *r
->in
.server
);
3454 if (flags
& NDR_OUT
) {
3455 ndr_print_struct(ndr
, "out", "winreg_AbortSystemShutdown");
3457 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
3463 _PUBLIC_
enum ndr_err_code
ndr_push_winreg_GetVersion(struct ndr_push
*ndr
, int flags
, const struct winreg_GetVersion
*r
)
3465 if (flags
& NDR_IN
) {
3466 if (r
->in
.handle
== NULL
) {
3467 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
3469 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
3471 if (flags
& NDR_OUT
) {
3472 if (r
->out
.version
== NULL
) {
3473 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
3475 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.version
));
3476 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
3478 return NDR_ERR_SUCCESS
;
3481 _PUBLIC_
enum ndr_err_code
ndr_pull_winreg_GetVersion(struct ndr_pull
*ndr
, int flags
, struct winreg_GetVersion
*r
)
3483 TALLOC_CTX
*_mem_save_handle_0
;
3484 TALLOC_CTX
*_mem_save_version_0
;
3485 if (flags
& NDR_IN
) {
3486 ZERO_STRUCT(r
->out
);
3488 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
3489 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
3491 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3492 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
3493 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
3494 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
3495 NDR_PULL_ALLOC(ndr
, r
->out
.version
);
3496 ZERO_STRUCTP(r
->out
.version
);
3498 if (flags
& NDR_OUT
) {
3499 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
3500 NDR_PULL_ALLOC(ndr
, r
->out
.version
);
3502 _mem_save_version_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3503 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.version
, LIBNDR_FLAG_REF_ALLOC
);
3504 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.version
));
3505 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_version_0
, LIBNDR_FLAG_REF_ALLOC
);
3506 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
3508 return NDR_ERR_SUCCESS
;
3511 _PUBLIC_
void ndr_print_winreg_GetVersion(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_GetVersion
*r
)
3513 ndr_print_struct(ndr
, name
, "winreg_GetVersion");
3515 if (flags
& NDR_SET_VALUES
) {
3516 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
3518 if (flags
& NDR_IN
) {
3519 ndr_print_struct(ndr
, "in", "winreg_GetVersion");
3521 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
3523 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
3527 if (flags
& NDR_OUT
) {
3528 ndr_print_struct(ndr
, "out", "winreg_GetVersion");
3530 ndr_print_ptr(ndr
, "version", r
->out
.version
);
3532 ndr_print_uint32(ndr
, "version", *r
->out
.version
);
3534 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
3540 static enum ndr_err_code
ndr_push_winreg_OpenHKCC(struct ndr_push
*ndr
, int flags
, const struct winreg_OpenHKCC
*r
)
3542 if (flags
& NDR_IN
) {
3543 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.system_name
));
3544 if (r
->in
.system_name
) {
3545 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, *r
->in
.system_name
));
3547 NDR_CHECK(ndr_push_winreg_AccessMask(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
3549 if (flags
& NDR_OUT
) {
3550 if (r
->out
.handle
== NULL
) {
3551 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
3553 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
3554 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
3556 return NDR_ERR_SUCCESS
;
3559 static enum ndr_err_code
ndr_pull_winreg_OpenHKCC(struct ndr_pull
*ndr
, int flags
, struct winreg_OpenHKCC
*r
)
3561 uint32_t _ptr_system_name
;
3562 TALLOC_CTX
*_mem_save_system_name_0
;
3563 TALLOC_CTX
*_mem_save_handle_0
;
3564 if (flags
& NDR_IN
) {
3565 ZERO_STRUCT(r
->out
);
3567 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_system_name
));
3568 if (_ptr_system_name
) {
3569 NDR_PULL_ALLOC(ndr
, r
->in
.system_name
);
3571 r
->in
.system_name
= NULL
;
3573 if (r
->in
.system_name
) {
3574 _mem_save_system_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3575 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.system_name
, 0);
3576 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, r
->in
.system_name
));
3577 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_system_name_0
, 0);
3579 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
3580 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
3581 ZERO_STRUCTP(r
->out
.handle
);
3583 if (flags
& NDR_OUT
) {
3584 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
3585 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
3587 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3588 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
3589 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
3590 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
3591 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
3593 return NDR_ERR_SUCCESS
;
3596 _PUBLIC_
void ndr_print_winreg_OpenHKCC(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_OpenHKCC
*r
)
3598 ndr_print_struct(ndr
, name
, "winreg_OpenHKCC");
3600 if (flags
& NDR_SET_VALUES
) {
3601 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
3603 if (flags
& NDR_IN
) {
3604 ndr_print_struct(ndr
, "in", "winreg_OpenHKCC");
3606 ndr_print_ptr(ndr
, "system_name", r
->in
.system_name
);
3608 if (r
->in
.system_name
) {
3609 ndr_print_uint16(ndr
, "system_name", *r
->in
.system_name
);
3612 ndr_print_winreg_AccessMask(ndr
, "access_mask", r
->in
.access_mask
);
3615 if (flags
& NDR_OUT
) {
3616 ndr_print_struct(ndr
, "out", "winreg_OpenHKCC");
3618 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
3620 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
3622 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
3628 static enum ndr_err_code
ndr_push_winreg_OpenHKDD(struct ndr_push
*ndr
, int flags
, const struct winreg_OpenHKDD
*r
)
3630 if (flags
& NDR_IN
) {
3631 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.system_name
));
3632 if (r
->in
.system_name
) {
3633 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, *r
->in
.system_name
));
3635 NDR_CHECK(ndr_push_winreg_AccessMask(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
3637 if (flags
& NDR_OUT
) {
3638 if (r
->out
.handle
== NULL
) {
3639 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
3641 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
3642 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
3644 return NDR_ERR_SUCCESS
;
3647 static enum ndr_err_code
ndr_pull_winreg_OpenHKDD(struct ndr_pull
*ndr
, int flags
, struct winreg_OpenHKDD
*r
)
3649 uint32_t _ptr_system_name
;
3650 TALLOC_CTX
*_mem_save_system_name_0
;
3651 TALLOC_CTX
*_mem_save_handle_0
;
3652 if (flags
& NDR_IN
) {
3653 ZERO_STRUCT(r
->out
);
3655 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_system_name
));
3656 if (_ptr_system_name
) {
3657 NDR_PULL_ALLOC(ndr
, r
->in
.system_name
);
3659 r
->in
.system_name
= NULL
;
3661 if (r
->in
.system_name
) {
3662 _mem_save_system_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3663 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.system_name
, 0);
3664 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, r
->in
.system_name
));
3665 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_system_name_0
, 0);
3667 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
3668 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
3669 ZERO_STRUCTP(r
->out
.handle
);
3671 if (flags
& NDR_OUT
) {
3672 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
3673 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
3675 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3676 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
3677 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
3678 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
3679 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
3681 return NDR_ERR_SUCCESS
;
3684 _PUBLIC_
void ndr_print_winreg_OpenHKDD(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_OpenHKDD
*r
)
3686 ndr_print_struct(ndr
, name
, "winreg_OpenHKDD");
3688 if (flags
& NDR_SET_VALUES
) {
3689 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
3691 if (flags
& NDR_IN
) {
3692 ndr_print_struct(ndr
, "in", "winreg_OpenHKDD");
3694 ndr_print_ptr(ndr
, "system_name", r
->in
.system_name
);
3696 if (r
->in
.system_name
) {
3697 ndr_print_uint16(ndr
, "system_name", *r
->in
.system_name
);
3700 ndr_print_winreg_AccessMask(ndr
, "access_mask", r
->in
.access_mask
);
3703 if (flags
& NDR_OUT
) {
3704 ndr_print_struct(ndr
, "out", "winreg_OpenHKDD");
3706 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
3708 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
3710 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
3716 _PUBLIC_
enum ndr_err_code
ndr_push_winreg_QueryMultipleValues(struct ndr_push
*ndr
, int flags
, const struct winreg_QueryMultipleValues
*r
)
3718 uint32_t cntr_values_1
;
3719 if (flags
& NDR_IN
) {
3720 if (r
->in
.key_handle
== NULL
) {
3721 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
3723 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.key_handle
));
3724 if (r
->in
.values
== NULL
) {
3725 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
3727 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.num_values
));
3728 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
3729 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.num_values
));
3730 for (cntr_values_1
= 0; cntr_values_1
< r
->in
.num_values
; cntr_values_1
++) {
3731 NDR_CHECK(ndr_push_QueryMultipleValue(ndr
, NDR_SCALARS
, &r
->in
.values
[cntr_values_1
]));
3733 for (cntr_values_1
= 0; cntr_values_1
< r
->in
.num_values
; cntr_values_1
++) {
3734 NDR_CHECK(ndr_push_QueryMultipleValue(ndr
, NDR_BUFFERS
, &r
->in
.values
[cntr_values_1
]));
3736 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.num_values
));
3737 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
3739 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, *r
->in
.buffer_size
));
3740 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
3741 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, *r
->in
.buffer_size
));
3742 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, *r
->in
.buffer_size
));
3744 if (r
->in
.buffer_size
== NULL
) {
3745 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
3747 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->in
.buffer_size
));
3749 if (flags
& NDR_OUT
) {
3750 if (r
->out
.values
== NULL
) {
3751 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
3753 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.num_values
));
3754 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
3755 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.num_values
));
3756 for (cntr_values_1
= 0; cntr_values_1
< r
->in
.num_values
; cntr_values_1
++) {
3757 NDR_CHECK(ndr_push_QueryMultipleValue(ndr
, NDR_SCALARS
, &r
->out
.values
[cntr_values_1
]));
3759 for (cntr_values_1
= 0; cntr_values_1
< r
->in
.num_values
; cntr_values_1
++) {
3760 NDR_CHECK(ndr_push_QueryMultipleValue(ndr
, NDR_BUFFERS
, &r
->out
.values
[cntr_values_1
]));
3762 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.buffer
));
3763 if (r
->out
.buffer
) {
3764 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, *r
->out
.buffer_size
));
3765 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
3766 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, *r
->out
.buffer_size
));
3767 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->out
.buffer
, *r
->out
.buffer_size
));
3769 if (r
->out
.buffer_size
== NULL
) {
3770 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
3772 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.buffer_size
));
3773 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
3775 return NDR_ERR_SUCCESS
;
3778 _PUBLIC_
enum ndr_err_code
ndr_pull_winreg_QueryMultipleValues(struct ndr_pull
*ndr
, int flags
, struct winreg_QueryMultipleValues
*r
)
3780 uint32_t cntr_values_1
;
3781 uint32_t _ptr_buffer
;
3782 TALLOC_CTX
*_mem_save_key_handle_0
;
3783 TALLOC_CTX
*_mem_save_values_1
;
3784 TALLOC_CTX
*_mem_save_buffer_0
;
3785 TALLOC_CTX
*_mem_save_buffer_size_0
;
3786 if (flags
& NDR_IN
) {
3787 ZERO_STRUCT(r
->out
);
3789 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
3790 NDR_PULL_ALLOC(ndr
, r
->in
.key_handle
);
3792 _mem_save_key_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3793 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.key_handle
, LIBNDR_FLAG_REF_ALLOC
);
3794 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.key_handle
));
3795 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_key_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
3796 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.values
));
3797 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.values
));
3798 if (ndr_get_array_length(ndr
, &r
->in
.values
) > ndr_get_array_size(ndr
, &r
->in
.values
)) {
3799 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.values
), ndr_get_array_length(ndr
, &r
->in
.values
));
3801 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
3802 NDR_PULL_ALLOC_N(ndr
, r
->in
.values
, ndr_get_array_size(ndr
, &r
->in
.values
));
3804 memcpy(r
->out
.values
, r
->in
.values
, (ndr_get_array_size(ndr
, &r
->in
.values
)) * sizeof(*r
->in
.values
));
3805 _mem_save_values_1
= NDR_PULL_GET_MEM_CTX(ndr
);
3806 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.values
, 0);
3807 for (cntr_values_1
= 0; cntr_values_1
< ndr_get_array_length(ndr
, &r
->in
.values
); cntr_values_1
++) {
3808 NDR_CHECK(ndr_pull_QueryMultipleValue(ndr
, NDR_SCALARS
, &r
->in
.values
[cntr_values_1
]));
3810 for (cntr_values_1
= 0; cntr_values_1
< ndr_get_array_length(ndr
, &r
->in
.values
); cntr_values_1
++) {
3811 NDR_CHECK(ndr_pull_QueryMultipleValue(ndr
, NDR_BUFFERS
, &r
->in
.values
[cntr_values_1
]));
3813 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_values_1
, 0);
3814 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.num_values
));
3815 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
3817 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
3819 r
->in
.buffer
= NULL
;
3822 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3823 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
3824 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.buffer
));
3825 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.buffer
));
3826 if (ndr_get_array_length(ndr
, &r
->in
.buffer
) > ndr_get_array_size(ndr
, &r
->in
.buffer
)) {
3827 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.buffer
), ndr_get_array_length(ndr
, &r
->in
.buffer
));
3829 NDR_PULL_ALLOC_N(ndr
, r
->in
.buffer
, ndr_get_array_size(ndr
, &r
->in
.buffer
));
3830 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, ndr_get_array_length(ndr
, &r
->in
.buffer
)));
3831 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
3833 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
3834 NDR_PULL_ALLOC(ndr
, r
->in
.buffer_size
);
3836 _mem_save_buffer_size_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3837 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer_size
, LIBNDR_FLAG_REF_ALLOC
);
3838 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->in
.buffer_size
));
3839 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_size_0
, LIBNDR_FLAG_REF_ALLOC
);
3840 NDR_PULL_ALLOC_N(ndr
, r
->out
.values
, r
->in
.num_values
);
3841 memcpy(r
->out
.values
, r
->in
.values
, (r
->in
.num_values
) * sizeof(*r
->in
.values
));
3842 NDR_PULL_ALLOC(ndr
, r
->out
.buffer_size
);
3843 *r
->out
.buffer_size
= *r
->in
.buffer_size
;
3845 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.values
, r
->in
.num_values
));
3848 NDR_CHECK(ndr_check_array_length(ndr
, (void*)&r
->in
.values
, r
->in
.num_values
));
3851 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.buffer
, *r
->in
.buffer_size
));
3854 NDR_CHECK(ndr_check_array_length(ndr
, (void*)&r
->in
.buffer
, *r
->in
.buffer_size
));
3857 if (flags
& NDR_OUT
) {
3858 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.values
));
3859 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->out
.values
));
3860 if (ndr_get_array_length(ndr
, &r
->out
.values
) > ndr_get_array_size(ndr
, &r
->out
.values
)) {
3861 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->out
.values
), ndr_get_array_length(ndr
, &r
->out
.values
));
3863 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
3864 NDR_PULL_ALLOC_N(ndr
, r
->out
.values
, ndr_get_array_size(ndr
, &r
->out
.values
));
3866 memcpy(r
->out
.values
, r
->in
.values
, (ndr_get_array_size(ndr
, &r
->out
.values
)) * sizeof(*r
->in
.values
));
3867 _mem_save_values_1
= NDR_PULL_GET_MEM_CTX(ndr
);
3868 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.values
, 0);
3869 for (cntr_values_1
= 0; cntr_values_1
< ndr_get_array_length(ndr
, &r
->out
.values
); cntr_values_1
++) {
3870 NDR_CHECK(ndr_pull_QueryMultipleValue(ndr
, NDR_SCALARS
, &r
->out
.values
[cntr_values_1
]));
3872 for (cntr_values_1
= 0; cntr_values_1
< ndr_get_array_length(ndr
, &r
->out
.values
); cntr_values_1
++) {
3873 NDR_CHECK(ndr_pull_QueryMultipleValue(ndr
, NDR_BUFFERS
, &r
->out
.values
[cntr_values_1
]));
3875 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_values_1
, 0);
3876 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
3878 NDR_PULL_ALLOC(ndr
, r
->out
.buffer
);
3880 r
->out
.buffer
= NULL
;
3882 if (r
->out
.buffer
) {
3883 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3884 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.buffer
, 0);
3885 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.buffer
));
3886 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->out
.buffer
));
3887 if (ndr_get_array_length(ndr
, &r
->out
.buffer
) > ndr_get_array_size(ndr
, &r
->out
.buffer
)) {
3888 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->out
.buffer
), ndr_get_array_length(ndr
, &r
->out
.buffer
));
3890 NDR_PULL_ALLOC_N(ndr
, r
->out
.buffer
, ndr_get_array_size(ndr
, &r
->out
.buffer
));
3891 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->out
.buffer
, ndr_get_array_length(ndr
, &r
->out
.buffer
)));
3892 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
3894 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
3895 NDR_PULL_ALLOC(ndr
, r
->out
.buffer_size
);
3897 _mem_save_buffer_size_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3898 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.buffer_size
, LIBNDR_FLAG_REF_ALLOC
);
3899 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.buffer_size
));
3900 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_size_0
, LIBNDR_FLAG_REF_ALLOC
);
3901 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
3902 if (r
->out
.values
) {
3903 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.values
, r
->in
.num_values
));
3905 if (r
->out
.values
) {
3906 NDR_CHECK(ndr_check_array_length(ndr
, (void*)&r
->out
.values
, r
->in
.num_values
));
3908 if (r
->out
.buffer
) {
3909 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.buffer
, *r
->out
.buffer_size
));
3911 if (r
->out
.buffer
) {
3912 NDR_CHECK(ndr_check_array_length(ndr
, (void*)&r
->out
.buffer
, *r
->out
.buffer_size
));
3915 return NDR_ERR_SUCCESS
;
3918 _PUBLIC_
void ndr_print_winreg_QueryMultipleValues(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_QueryMultipleValues
*r
)
3920 uint32_t cntr_values_1
;
3921 ndr_print_struct(ndr
, name
, "winreg_QueryMultipleValues");
3923 if (flags
& NDR_SET_VALUES
) {
3924 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
3926 if (flags
& NDR_IN
) {
3927 ndr_print_struct(ndr
, "in", "winreg_QueryMultipleValues");
3929 ndr_print_ptr(ndr
, "key_handle", r
->in
.key_handle
);
3931 ndr_print_policy_handle(ndr
, "key_handle", r
->in
.key_handle
);
3933 ndr_print_ptr(ndr
, "values", r
->in
.values
);
3935 ndr
->print(ndr
, "%s: ARRAY(%d)", "values", (int)r
->in
.num_values
);
3937 for (cntr_values_1
=0;cntr_values_1
<r
->in
.num_values
;cntr_values_1
++) {
3939 if (asprintf(&idx_1
, "[%d]", cntr_values_1
) != -1) {
3940 ndr_print_QueryMultipleValue(ndr
, "values", &r
->in
.values
[cntr_values_1
]);
3946 ndr_print_uint32(ndr
, "num_values", r
->in
.num_values
);
3947 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
3950 ndr_print_array_uint8(ndr
, "buffer", r
->in
.buffer
, *r
->in
.buffer_size
);
3953 ndr_print_ptr(ndr
, "buffer_size", r
->in
.buffer_size
);
3955 ndr_print_uint32(ndr
, "buffer_size", *r
->in
.buffer_size
);
3959 if (flags
& NDR_OUT
) {
3960 ndr_print_struct(ndr
, "out", "winreg_QueryMultipleValues");
3962 ndr_print_ptr(ndr
, "values", r
->out
.values
);
3964 ndr
->print(ndr
, "%s: ARRAY(%d)", "values", (int)r
->in
.num_values
);
3966 for (cntr_values_1
=0;cntr_values_1
<r
->in
.num_values
;cntr_values_1
++) {
3968 if (asprintf(&idx_1
, "[%d]", cntr_values_1
) != -1) {
3969 ndr_print_QueryMultipleValue(ndr
, "values", &r
->out
.values
[cntr_values_1
]);
3975 ndr_print_ptr(ndr
, "buffer", r
->out
.buffer
);
3977 if (r
->out
.buffer
) {
3978 ndr_print_array_uint8(ndr
, "buffer", r
->out
.buffer
, *r
->out
.buffer_size
);
3981 ndr_print_ptr(ndr
, "buffer_size", r
->out
.buffer_size
);
3983 ndr_print_uint32(ndr
, "buffer_size", *r
->out
.buffer_size
);
3985 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
3991 static enum ndr_err_code
ndr_push_winreg_InitiateSystemShutdownEx(struct ndr_push
*ndr
, int flags
, const struct winreg_InitiateSystemShutdownEx
*r
)
3993 if (flags
& NDR_IN
) {
3994 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.hostname
));
3995 if (r
->in
.hostname
) {
3996 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, *r
->in
.hostname
));
3998 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.message
));
3999 if (r
->in
.message
) {
4000 NDR_CHECK(ndr_push_lsa_StringLarge(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.message
));
4002 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.timeout
));
4003 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->in
.force_apps
));
4004 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->in
.do_reboot
));
4005 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.reason
));
4007 if (flags
& NDR_OUT
) {
4008 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
4010 return NDR_ERR_SUCCESS
;
4013 static enum ndr_err_code
ndr_pull_winreg_InitiateSystemShutdownEx(struct ndr_pull
*ndr
, int flags
, struct winreg_InitiateSystemShutdownEx
*r
)
4015 uint32_t _ptr_hostname
;
4016 uint32_t _ptr_message
;
4017 TALLOC_CTX
*_mem_save_hostname_0
;
4018 TALLOC_CTX
*_mem_save_message_0
;
4019 if (flags
& NDR_IN
) {
4020 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_hostname
));
4021 if (_ptr_hostname
) {
4022 NDR_PULL_ALLOC(ndr
, r
->in
.hostname
);
4024 r
->in
.hostname
= NULL
;
4026 if (r
->in
.hostname
) {
4027 _mem_save_hostname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4028 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.hostname
, 0);
4029 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, r
->in
.hostname
));
4030 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_hostname_0
, 0);
4032 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_message
));
4034 NDR_PULL_ALLOC(ndr
, r
->in
.message
);
4036 r
->in
.message
= NULL
;
4038 if (r
->in
.message
) {
4039 _mem_save_message_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4040 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.message
, 0);
4041 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.message
));
4042 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_message_0
, 0);
4044 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.timeout
));
4045 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->in
.force_apps
));
4046 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->in
.do_reboot
));
4047 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.reason
));
4049 if (flags
& NDR_OUT
) {
4050 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
4052 return NDR_ERR_SUCCESS
;
4055 _PUBLIC_
void ndr_print_winreg_InitiateSystemShutdownEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_InitiateSystemShutdownEx
*r
)
4057 ndr_print_struct(ndr
, name
, "winreg_InitiateSystemShutdownEx");
4059 if (flags
& NDR_SET_VALUES
) {
4060 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
4062 if (flags
& NDR_IN
) {
4063 ndr_print_struct(ndr
, "in", "winreg_InitiateSystemShutdownEx");
4065 ndr_print_ptr(ndr
, "hostname", r
->in
.hostname
);
4067 if (r
->in
.hostname
) {
4068 ndr_print_uint16(ndr
, "hostname", *r
->in
.hostname
);
4071 ndr_print_ptr(ndr
, "message", r
->in
.message
);
4073 if (r
->in
.message
) {
4074 ndr_print_lsa_StringLarge(ndr
, "message", r
->in
.message
);
4077 ndr_print_uint32(ndr
, "timeout", r
->in
.timeout
);
4078 ndr_print_uint8(ndr
, "force_apps", r
->in
.force_apps
);
4079 ndr_print_uint8(ndr
, "do_reboot", r
->in
.do_reboot
);
4080 ndr_print_uint32(ndr
, "reason", r
->in
.reason
);
4083 if (flags
& NDR_OUT
) {
4084 ndr_print_struct(ndr
, "out", "winreg_InitiateSystemShutdownEx");
4086 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
4092 static enum ndr_err_code
ndr_push_winreg_SaveKeyEx(struct ndr_push
*ndr
, int flags
, const struct winreg_SaveKeyEx
*r
)
4094 if (flags
& NDR_IN
) {
4095 if (r
->in
.handle
== NULL
) {
4096 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
4098 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
4099 if (r
->in
.filename
== NULL
) {
4100 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
4102 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.filename
));
4103 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.sec_attrib
));
4104 if (r
->in
.sec_attrib
) {
4105 NDR_CHECK(ndr_push_KeySecurityAttribute(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.sec_attrib
));
4107 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.flags
));
4109 if (flags
& NDR_OUT
) {
4110 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
4112 return NDR_ERR_SUCCESS
;
4115 static enum ndr_err_code
ndr_pull_winreg_SaveKeyEx(struct ndr_pull
*ndr
, int flags
, struct winreg_SaveKeyEx
*r
)
4117 uint32_t _ptr_sec_attrib
;
4118 TALLOC_CTX
*_mem_save_handle_0
;
4119 TALLOC_CTX
*_mem_save_filename_0
;
4120 TALLOC_CTX
*_mem_save_sec_attrib_0
;
4121 if (flags
& NDR_IN
) {
4122 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
4123 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
4125 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4126 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
4127 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
4128 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
4129 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
4130 NDR_PULL_ALLOC(ndr
, r
->in
.filename
);
4132 _mem_save_filename_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4133 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.filename
, LIBNDR_FLAG_REF_ALLOC
);
4134 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.filename
));
4135 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_filename_0
, LIBNDR_FLAG_REF_ALLOC
);
4136 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sec_attrib
));
4137 if (_ptr_sec_attrib
) {
4138 NDR_PULL_ALLOC(ndr
, r
->in
.sec_attrib
);
4140 r
->in
.sec_attrib
= NULL
;
4142 if (r
->in
.sec_attrib
) {
4143 _mem_save_sec_attrib_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4144 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.sec_attrib
, 0);
4145 NDR_CHECK(ndr_pull_KeySecurityAttribute(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.sec_attrib
));
4146 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sec_attrib_0
, 0);
4148 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.flags
));
4150 if (flags
& NDR_OUT
) {
4151 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
4153 return NDR_ERR_SUCCESS
;
4156 _PUBLIC_
void ndr_print_winreg_SaveKeyEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_SaveKeyEx
*r
)
4158 ndr_print_struct(ndr
, name
, "winreg_SaveKeyEx");
4160 if (flags
& NDR_SET_VALUES
) {
4161 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
4163 if (flags
& NDR_IN
) {
4164 ndr_print_struct(ndr
, "in", "winreg_SaveKeyEx");
4166 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
4168 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
4170 ndr_print_ptr(ndr
, "filename", r
->in
.filename
);
4172 ndr_print_winreg_String(ndr
, "filename", r
->in
.filename
);
4174 ndr_print_ptr(ndr
, "sec_attrib", r
->in
.sec_attrib
);
4176 if (r
->in
.sec_attrib
) {
4177 ndr_print_KeySecurityAttribute(ndr
, "sec_attrib", r
->in
.sec_attrib
);
4180 ndr_print_uint32(ndr
, "flags", r
->in
.flags
);
4183 if (flags
& NDR_OUT
) {
4184 ndr_print_struct(ndr
, "out", "winreg_SaveKeyEx");
4186 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
4192 static enum ndr_err_code
ndr_push_winreg_OpenHKPT(struct ndr_push
*ndr
, int flags
, const struct winreg_OpenHKPT
*r
)
4194 if (flags
& NDR_IN
) {
4195 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.system_name
));
4196 if (r
->in
.system_name
) {
4197 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, *r
->in
.system_name
));
4199 NDR_CHECK(ndr_push_winreg_AccessMask(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
4201 if (flags
& NDR_OUT
) {
4202 if (r
->out
.handle
== NULL
) {
4203 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
4205 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
4206 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
4208 return NDR_ERR_SUCCESS
;
4211 static enum ndr_err_code
ndr_pull_winreg_OpenHKPT(struct ndr_pull
*ndr
, int flags
, struct winreg_OpenHKPT
*r
)
4213 uint32_t _ptr_system_name
;
4214 TALLOC_CTX
*_mem_save_system_name_0
;
4215 TALLOC_CTX
*_mem_save_handle_0
;
4216 if (flags
& NDR_IN
) {
4217 ZERO_STRUCT(r
->out
);
4219 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_system_name
));
4220 if (_ptr_system_name
) {
4221 NDR_PULL_ALLOC(ndr
, r
->in
.system_name
);
4223 r
->in
.system_name
= NULL
;
4225 if (r
->in
.system_name
) {
4226 _mem_save_system_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4227 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.system_name
, 0);
4228 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, r
->in
.system_name
));
4229 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_system_name_0
, 0);
4231 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
4232 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
4233 ZERO_STRUCTP(r
->out
.handle
);
4235 if (flags
& NDR_OUT
) {
4236 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
4237 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
4239 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4240 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
4241 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
4242 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
4243 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
4245 return NDR_ERR_SUCCESS
;
4248 _PUBLIC_
void ndr_print_winreg_OpenHKPT(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_OpenHKPT
*r
)
4250 ndr_print_struct(ndr
, name
, "winreg_OpenHKPT");
4252 if (flags
& NDR_SET_VALUES
) {
4253 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
4255 if (flags
& NDR_IN
) {
4256 ndr_print_struct(ndr
, "in", "winreg_OpenHKPT");
4258 ndr_print_ptr(ndr
, "system_name", r
->in
.system_name
);
4260 if (r
->in
.system_name
) {
4261 ndr_print_uint16(ndr
, "system_name", *r
->in
.system_name
);
4264 ndr_print_winreg_AccessMask(ndr
, "access_mask", r
->in
.access_mask
);
4267 if (flags
& NDR_OUT
) {
4268 ndr_print_struct(ndr
, "out", "winreg_OpenHKPT");
4270 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
4272 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
4274 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
4280 static enum ndr_err_code
ndr_push_winreg_OpenHKPN(struct ndr_push
*ndr
, int flags
, const struct winreg_OpenHKPN
*r
)
4282 if (flags
& NDR_IN
) {
4283 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.system_name
));
4284 if (r
->in
.system_name
) {
4285 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, *r
->in
.system_name
));
4287 NDR_CHECK(ndr_push_winreg_AccessMask(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
4289 if (flags
& NDR_OUT
) {
4290 if (r
->out
.handle
== NULL
) {
4291 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
4293 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
4294 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
4296 return NDR_ERR_SUCCESS
;
4299 static enum ndr_err_code
ndr_pull_winreg_OpenHKPN(struct ndr_pull
*ndr
, int flags
, struct winreg_OpenHKPN
*r
)
4301 uint32_t _ptr_system_name
;
4302 TALLOC_CTX
*_mem_save_system_name_0
;
4303 TALLOC_CTX
*_mem_save_handle_0
;
4304 if (flags
& NDR_IN
) {
4305 ZERO_STRUCT(r
->out
);
4307 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_system_name
));
4308 if (_ptr_system_name
) {
4309 NDR_PULL_ALLOC(ndr
, r
->in
.system_name
);
4311 r
->in
.system_name
= NULL
;
4313 if (r
->in
.system_name
) {
4314 _mem_save_system_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4315 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.system_name
, 0);
4316 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, r
->in
.system_name
));
4317 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_system_name_0
, 0);
4319 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
4320 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
4321 ZERO_STRUCTP(r
->out
.handle
);
4323 if (flags
& NDR_OUT
) {
4324 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
4325 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
4327 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4328 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
4329 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
4330 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
4331 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
4333 return NDR_ERR_SUCCESS
;
4336 _PUBLIC_
void ndr_print_winreg_OpenHKPN(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_OpenHKPN
*r
)
4338 ndr_print_struct(ndr
, name
, "winreg_OpenHKPN");
4340 if (flags
& NDR_SET_VALUES
) {
4341 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
4343 if (flags
& NDR_IN
) {
4344 ndr_print_struct(ndr
, "in", "winreg_OpenHKPN");
4346 ndr_print_ptr(ndr
, "system_name", r
->in
.system_name
);
4348 if (r
->in
.system_name
) {
4349 ndr_print_uint16(ndr
, "system_name", *r
->in
.system_name
);
4352 ndr_print_winreg_AccessMask(ndr
, "access_mask", r
->in
.access_mask
);
4355 if (flags
& NDR_OUT
) {
4356 ndr_print_struct(ndr
, "out", "winreg_OpenHKPN");
4358 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
4360 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
4362 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
4368 static enum ndr_err_code
ndr_push_winreg_QueryMultipleValues2(struct ndr_push
*ndr
, int flags
, const struct winreg_QueryMultipleValues2
*r
)
4370 uint32_t cntr_values_1
;
4371 if (flags
& NDR_IN
) {
4372 if (r
->in
.key_handle
== NULL
) {
4373 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
4375 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.key_handle
));
4376 if (r
->in
.values
== NULL
) {
4377 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
4379 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.num_values
));
4380 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
4381 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.num_values
));
4382 for (cntr_values_1
= 0; cntr_values_1
< r
->in
.num_values
; cntr_values_1
++) {
4383 NDR_CHECK(ndr_push_QueryMultipleValue(ndr
, NDR_SCALARS
, &r
->in
.values
[cntr_values_1
]));
4385 for (cntr_values_1
= 0; cntr_values_1
< r
->in
.num_values
; cntr_values_1
++) {
4386 NDR_CHECK(ndr_push_QueryMultipleValue(ndr
, NDR_BUFFERS
, &r
->in
.values
[cntr_values_1
]));
4388 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.num_values
));
4389 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
4391 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.offered
));
4392 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
4393 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.offered
));
4394 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, r
->in
.offered
));
4396 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
4398 if (flags
& NDR_OUT
) {
4399 if (r
->out
.values
== NULL
) {
4400 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
4402 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.num_values
));
4403 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
4404 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.num_values
));
4405 for (cntr_values_1
= 0; cntr_values_1
< r
->in
.num_values
; cntr_values_1
++) {
4406 NDR_CHECK(ndr_push_QueryMultipleValue(ndr
, NDR_SCALARS
, &r
->out
.values
[cntr_values_1
]));
4408 for (cntr_values_1
= 0; cntr_values_1
< r
->in
.num_values
; cntr_values_1
++) {
4409 NDR_CHECK(ndr_push_QueryMultipleValue(ndr
, NDR_BUFFERS
, &r
->out
.values
[cntr_values_1
]));
4411 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.buffer
));
4412 if (r
->out
.buffer
) {
4413 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.offered
));
4414 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
4415 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.offered
));
4416 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->out
.buffer
, r
->in
.offered
));
4418 if (r
->out
.needed
== NULL
) {
4419 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
4421 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
4422 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
4424 return NDR_ERR_SUCCESS
;
4427 static enum ndr_err_code
ndr_pull_winreg_QueryMultipleValues2(struct ndr_pull
*ndr
, int flags
, struct winreg_QueryMultipleValues2
*r
)
4429 uint32_t cntr_values_1
;
4430 uint32_t _ptr_buffer
;
4431 TALLOC_CTX
*_mem_save_key_handle_0
;
4432 TALLOC_CTX
*_mem_save_values_1
;
4433 TALLOC_CTX
*_mem_save_buffer_0
;
4434 TALLOC_CTX
*_mem_save_needed_0
;
4435 if (flags
& NDR_IN
) {
4436 ZERO_STRUCT(r
->out
);
4438 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
4439 NDR_PULL_ALLOC(ndr
, r
->in
.key_handle
);
4441 _mem_save_key_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4442 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.key_handle
, LIBNDR_FLAG_REF_ALLOC
);
4443 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.key_handle
));
4444 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_key_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
4445 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.values
));
4446 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.values
));
4447 if (ndr_get_array_length(ndr
, &r
->in
.values
) > ndr_get_array_size(ndr
, &r
->in
.values
)) {
4448 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.values
), ndr_get_array_length(ndr
, &r
->in
.values
));
4450 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
4451 NDR_PULL_ALLOC_N(ndr
, r
->in
.values
, ndr_get_array_size(ndr
, &r
->in
.values
));
4453 memcpy(r
->out
.values
, r
->in
.values
, (ndr_get_array_size(ndr
, &r
->in
.values
)) * sizeof(*r
->in
.values
));
4454 _mem_save_values_1
= NDR_PULL_GET_MEM_CTX(ndr
);
4455 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.values
, 0);
4456 for (cntr_values_1
= 0; cntr_values_1
< ndr_get_array_length(ndr
, &r
->in
.values
); cntr_values_1
++) {
4457 NDR_CHECK(ndr_pull_QueryMultipleValue(ndr
, NDR_SCALARS
, &r
->in
.values
[cntr_values_1
]));
4459 for (cntr_values_1
= 0; cntr_values_1
< ndr_get_array_length(ndr
, &r
->in
.values
); cntr_values_1
++) {
4460 NDR_CHECK(ndr_pull_QueryMultipleValue(ndr
, NDR_BUFFERS
, &r
->in
.values
[cntr_values_1
]));
4462 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_values_1
, 0);
4463 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.num_values
));
4464 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
4466 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
4468 r
->in
.buffer
= NULL
;
4471 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4472 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
4473 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.buffer
));
4474 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.buffer
));
4475 if (ndr_get_array_length(ndr
, &r
->in
.buffer
) > ndr_get_array_size(ndr
, &r
->in
.buffer
)) {
4476 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.buffer
), ndr_get_array_length(ndr
, &r
->in
.buffer
));
4478 NDR_PULL_ALLOC_N(ndr
, r
->in
.buffer
, ndr_get_array_size(ndr
, &r
->in
.buffer
));
4479 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, ndr_get_array_length(ndr
, &r
->in
.buffer
)));
4480 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
4482 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
4483 NDR_PULL_ALLOC_N(ndr
, r
->out
.values
, r
->in
.num_values
);
4484 memcpy(r
->out
.values
, r
->in
.values
, (r
->in
.num_values
) * sizeof(*r
->in
.values
));
4485 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
4486 ZERO_STRUCTP(r
->out
.needed
);
4488 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.values
, r
->in
.num_values
));
4491 NDR_CHECK(ndr_check_array_length(ndr
, (void*)&r
->in
.values
, r
->in
.num_values
));
4494 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.buffer
, r
->in
.offered
));
4497 NDR_CHECK(ndr_check_array_length(ndr
, (void*)&r
->in
.buffer
, r
->in
.offered
));
4500 if (flags
& NDR_OUT
) {
4501 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.values
));
4502 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->out
.values
));
4503 if (ndr_get_array_length(ndr
, &r
->out
.values
) > ndr_get_array_size(ndr
, &r
->out
.values
)) {
4504 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->out
.values
), ndr_get_array_length(ndr
, &r
->out
.values
));
4506 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
4507 NDR_PULL_ALLOC_N(ndr
, r
->out
.values
, ndr_get_array_size(ndr
, &r
->out
.values
));
4509 memcpy(r
->out
.values
, r
->in
.values
, (ndr_get_array_size(ndr
, &r
->out
.values
)) * sizeof(*r
->in
.values
));
4510 _mem_save_values_1
= NDR_PULL_GET_MEM_CTX(ndr
);
4511 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.values
, 0);
4512 for (cntr_values_1
= 0; cntr_values_1
< ndr_get_array_length(ndr
, &r
->out
.values
); cntr_values_1
++) {
4513 NDR_CHECK(ndr_pull_QueryMultipleValue(ndr
, NDR_SCALARS
, &r
->out
.values
[cntr_values_1
]));
4515 for (cntr_values_1
= 0; cntr_values_1
< ndr_get_array_length(ndr
, &r
->out
.values
); cntr_values_1
++) {
4516 NDR_CHECK(ndr_pull_QueryMultipleValue(ndr
, NDR_BUFFERS
, &r
->out
.values
[cntr_values_1
]));
4518 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_values_1
, 0);
4519 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
4521 NDR_PULL_ALLOC(ndr
, r
->out
.buffer
);
4523 r
->out
.buffer
= NULL
;
4525 if (r
->out
.buffer
) {
4526 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4527 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.buffer
, 0);
4528 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.buffer
));
4529 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->out
.buffer
));
4530 if (ndr_get_array_length(ndr
, &r
->out
.buffer
) > ndr_get_array_size(ndr
, &r
->out
.buffer
)) {
4531 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->out
.buffer
), ndr_get_array_length(ndr
, &r
->out
.buffer
));
4533 NDR_PULL_ALLOC_N(ndr
, r
->out
.buffer
, ndr_get_array_size(ndr
, &r
->out
.buffer
));
4534 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->out
.buffer
, ndr_get_array_length(ndr
, &r
->out
.buffer
)));
4535 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
4537 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
4538 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
4540 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4541 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
4542 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
4543 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
4544 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
4545 if (r
->out
.values
) {
4546 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.values
, r
->in
.num_values
));
4548 if (r
->out
.values
) {
4549 NDR_CHECK(ndr_check_array_length(ndr
, (void*)&r
->out
.values
, r
->in
.num_values
));
4551 if (r
->out
.buffer
) {
4552 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.buffer
, r
->in
.offered
));
4554 if (r
->out
.buffer
) {
4555 NDR_CHECK(ndr_check_array_length(ndr
, (void*)&r
->out
.buffer
, r
->in
.offered
));
4558 return NDR_ERR_SUCCESS
;
4561 _PUBLIC_
void ndr_print_winreg_QueryMultipleValues2(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_QueryMultipleValues2
*r
)
4563 uint32_t cntr_values_1
;
4564 ndr_print_struct(ndr
, name
, "winreg_QueryMultipleValues2");
4566 if (flags
& NDR_SET_VALUES
) {
4567 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
4569 if (flags
& NDR_IN
) {
4570 ndr_print_struct(ndr
, "in", "winreg_QueryMultipleValues2");
4572 ndr_print_ptr(ndr
, "key_handle", r
->in
.key_handle
);
4574 ndr_print_policy_handle(ndr
, "key_handle", r
->in
.key_handle
);
4576 ndr_print_ptr(ndr
, "values", r
->in
.values
);
4578 ndr
->print(ndr
, "%s: ARRAY(%d)", "values", (int)r
->in
.num_values
);
4580 for (cntr_values_1
=0;cntr_values_1
<r
->in
.num_values
;cntr_values_1
++) {
4582 if (asprintf(&idx_1
, "[%d]", cntr_values_1
) != -1) {
4583 ndr_print_QueryMultipleValue(ndr
, "values", &r
->in
.values
[cntr_values_1
]);
4589 ndr_print_uint32(ndr
, "num_values", r
->in
.num_values
);
4590 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
4593 ndr_print_array_uint8(ndr
, "buffer", r
->in
.buffer
, r
->in
.offered
);
4596 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
4599 if (flags
& NDR_OUT
) {
4600 ndr_print_struct(ndr
, "out", "winreg_QueryMultipleValues2");
4602 ndr_print_ptr(ndr
, "values", r
->out
.values
);
4604 ndr
->print(ndr
, "%s: ARRAY(%d)", "values", (int)r
->in
.num_values
);
4606 for (cntr_values_1
=0;cntr_values_1
<r
->in
.num_values
;cntr_values_1
++) {
4608 if (asprintf(&idx_1
, "[%d]", cntr_values_1
) != -1) {
4609 ndr_print_QueryMultipleValue(ndr
, "values", &r
->out
.values
[cntr_values_1
]);
4615 ndr_print_ptr(ndr
, "buffer", r
->out
.buffer
);
4617 if (r
->out
.buffer
) {
4618 ndr_print_array_uint8(ndr
, "buffer", r
->out
.buffer
, r
->in
.offered
);
4621 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
4623 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
4625 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
4631 static enum ndr_err_code
ndr_push_winreg_DeleteKeyEx(struct ndr_push
*ndr
, int flags
, const struct winreg_DeleteKeyEx
*r
)
4633 if (flags
& NDR_IN
) {
4634 if (r
->in
.handle
== NULL
) {
4635 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
4637 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
4638 if (r
->in
.key
== NULL
) {
4639 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
4641 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.key
));
4642 NDR_CHECK(ndr_push_winreg_AccessMask(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
4643 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.reserved
));
4645 if (flags
& NDR_OUT
) {
4646 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
4648 return NDR_ERR_SUCCESS
;
4651 static enum ndr_err_code
ndr_pull_winreg_DeleteKeyEx(struct ndr_pull
*ndr
, int flags
, struct winreg_DeleteKeyEx
*r
)
4653 TALLOC_CTX
*_mem_save_handle_0
;
4654 TALLOC_CTX
*_mem_save_key_0
;
4655 if (flags
& NDR_IN
) {
4656 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
4657 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
4659 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4660 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
4661 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
4662 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
4663 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
4664 NDR_PULL_ALLOC(ndr
, r
->in
.key
);
4666 _mem_save_key_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4667 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.key
, LIBNDR_FLAG_REF_ALLOC
);
4668 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.key
));
4669 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_key_0
, LIBNDR_FLAG_REF_ALLOC
);
4670 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
4671 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.reserved
));
4673 if (flags
& NDR_OUT
) {
4674 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
4676 return NDR_ERR_SUCCESS
;
4679 _PUBLIC_
void ndr_print_winreg_DeleteKeyEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_DeleteKeyEx
*r
)
4681 ndr_print_struct(ndr
, name
, "winreg_DeleteKeyEx");
4683 if (flags
& NDR_SET_VALUES
) {
4684 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
4686 if (flags
& NDR_IN
) {
4687 ndr_print_struct(ndr
, "in", "winreg_DeleteKeyEx");
4689 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
4691 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
4693 ndr_print_ptr(ndr
, "key", r
->in
.key
);
4695 ndr_print_winreg_String(ndr
, "key", r
->in
.key
);
4697 ndr_print_winreg_AccessMask(ndr
, "access_mask", r
->in
.access_mask
);
4698 ndr_print_uint32(ndr
, "reserved", r
->in
.reserved
);
4701 if (flags
& NDR_OUT
) {
4702 ndr_print_struct(ndr
, "out", "winreg_DeleteKeyEx");
4704 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
4710 static const struct ndr_interface_call winreg_calls
[] = {
4713 sizeof(struct winreg_OpenHKCR
),
4714 (ndr_push_flags_fn_t
) ndr_push_winreg_OpenHKCR
,
4715 (ndr_pull_flags_fn_t
) ndr_pull_winreg_OpenHKCR
,
4716 (ndr_print_function_t
) ndr_print_winreg_OpenHKCR
,
4721 sizeof(struct winreg_OpenHKCU
),
4722 (ndr_push_flags_fn_t
) ndr_push_winreg_OpenHKCU
,
4723 (ndr_pull_flags_fn_t
) ndr_pull_winreg_OpenHKCU
,
4724 (ndr_print_function_t
) ndr_print_winreg_OpenHKCU
,
4729 sizeof(struct winreg_OpenHKLM
),
4730 (ndr_push_flags_fn_t
) ndr_push_winreg_OpenHKLM
,
4731 (ndr_pull_flags_fn_t
) ndr_pull_winreg_OpenHKLM
,
4732 (ndr_print_function_t
) ndr_print_winreg_OpenHKLM
,
4737 sizeof(struct winreg_OpenHKPD
),
4738 (ndr_push_flags_fn_t
) ndr_push_winreg_OpenHKPD
,
4739 (ndr_pull_flags_fn_t
) ndr_pull_winreg_OpenHKPD
,
4740 (ndr_print_function_t
) ndr_print_winreg_OpenHKPD
,
4745 sizeof(struct winreg_OpenHKU
),
4746 (ndr_push_flags_fn_t
) ndr_push_winreg_OpenHKU
,
4747 (ndr_pull_flags_fn_t
) ndr_pull_winreg_OpenHKU
,
4748 (ndr_print_function_t
) ndr_print_winreg_OpenHKU
,
4753 sizeof(struct winreg_CloseKey
),
4754 (ndr_push_flags_fn_t
) ndr_push_winreg_CloseKey
,
4755 (ndr_pull_flags_fn_t
) ndr_pull_winreg_CloseKey
,
4756 (ndr_print_function_t
) ndr_print_winreg_CloseKey
,
4761 sizeof(struct winreg_CreateKey
),
4762 (ndr_push_flags_fn_t
) ndr_push_winreg_CreateKey
,
4763 (ndr_pull_flags_fn_t
) ndr_pull_winreg_CreateKey
,
4764 (ndr_print_function_t
) ndr_print_winreg_CreateKey
,
4769 sizeof(struct winreg_DeleteKey
),
4770 (ndr_push_flags_fn_t
) ndr_push_winreg_DeleteKey
,
4771 (ndr_pull_flags_fn_t
) ndr_pull_winreg_DeleteKey
,
4772 (ndr_print_function_t
) ndr_print_winreg_DeleteKey
,
4776 "winreg_DeleteValue",
4777 sizeof(struct winreg_DeleteValue
),
4778 (ndr_push_flags_fn_t
) ndr_push_winreg_DeleteValue
,
4779 (ndr_pull_flags_fn_t
) ndr_pull_winreg_DeleteValue
,
4780 (ndr_print_function_t
) ndr_print_winreg_DeleteValue
,
4785 sizeof(struct winreg_EnumKey
),
4786 (ndr_push_flags_fn_t
) ndr_push_winreg_EnumKey
,
4787 (ndr_pull_flags_fn_t
) ndr_pull_winreg_EnumKey
,
4788 (ndr_print_function_t
) ndr_print_winreg_EnumKey
,
4793 sizeof(struct winreg_EnumValue
),
4794 (ndr_push_flags_fn_t
) ndr_push_winreg_EnumValue
,
4795 (ndr_pull_flags_fn_t
) ndr_pull_winreg_EnumValue
,
4796 (ndr_print_function_t
) ndr_print_winreg_EnumValue
,
4801 sizeof(struct winreg_FlushKey
),
4802 (ndr_push_flags_fn_t
) ndr_push_winreg_FlushKey
,
4803 (ndr_pull_flags_fn_t
) ndr_pull_winreg_FlushKey
,
4804 (ndr_print_function_t
) ndr_print_winreg_FlushKey
,
4808 "winreg_GetKeySecurity",
4809 sizeof(struct winreg_GetKeySecurity
),
4810 (ndr_push_flags_fn_t
) ndr_push_winreg_GetKeySecurity
,
4811 (ndr_pull_flags_fn_t
) ndr_pull_winreg_GetKeySecurity
,
4812 (ndr_print_function_t
) ndr_print_winreg_GetKeySecurity
,
4817 sizeof(struct winreg_LoadKey
),
4818 (ndr_push_flags_fn_t
) ndr_push_winreg_LoadKey
,
4819 (ndr_pull_flags_fn_t
) ndr_pull_winreg_LoadKey
,
4820 (ndr_print_function_t
) ndr_print_winreg_LoadKey
,
4824 "winreg_NotifyChangeKeyValue",
4825 sizeof(struct winreg_NotifyChangeKeyValue
),
4826 (ndr_push_flags_fn_t
) ndr_push_winreg_NotifyChangeKeyValue
,
4827 (ndr_pull_flags_fn_t
) ndr_pull_winreg_NotifyChangeKeyValue
,
4828 (ndr_print_function_t
) ndr_print_winreg_NotifyChangeKeyValue
,
4833 sizeof(struct winreg_OpenKey
),
4834 (ndr_push_flags_fn_t
) ndr_push_winreg_OpenKey
,
4835 (ndr_pull_flags_fn_t
) ndr_pull_winreg_OpenKey
,
4836 (ndr_print_function_t
) ndr_print_winreg_OpenKey
,
4840 "winreg_QueryInfoKey",
4841 sizeof(struct winreg_QueryInfoKey
),
4842 (ndr_push_flags_fn_t
) ndr_push_winreg_QueryInfoKey
,
4843 (ndr_pull_flags_fn_t
) ndr_pull_winreg_QueryInfoKey
,
4844 (ndr_print_function_t
) ndr_print_winreg_QueryInfoKey
,
4848 "winreg_QueryValue",
4849 sizeof(struct winreg_QueryValue
),
4850 (ndr_push_flags_fn_t
) ndr_push_winreg_QueryValue
,
4851 (ndr_pull_flags_fn_t
) ndr_pull_winreg_QueryValue
,
4852 (ndr_print_function_t
) ndr_print_winreg_QueryValue
,
4856 "winreg_ReplaceKey",
4857 sizeof(struct winreg_ReplaceKey
),
4858 (ndr_push_flags_fn_t
) ndr_push_winreg_ReplaceKey
,
4859 (ndr_pull_flags_fn_t
) ndr_pull_winreg_ReplaceKey
,
4860 (ndr_print_function_t
) ndr_print_winreg_ReplaceKey
,
4864 "winreg_RestoreKey",
4865 sizeof(struct winreg_RestoreKey
),
4866 (ndr_push_flags_fn_t
) ndr_push_winreg_RestoreKey
,
4867 (ndr_pull_flags_fn_t
) ndr_pull_winreg_RestoreKey
,
4868 (ndr_print_function_t
) ndr_print_winreg_RestoreKey
,
4873 sizeof(struct winreg_SaveKey
),
4874 (ndr_push_flags_fn_t
) ndr_push_winreg_SaveKey
,
4875 (ndr_pull_flags_fn_t
) ndr_pull_winreg_SaveKey
,
4876 (ndr_print_function_t
) ndr_print_winreg_SaveKey
,
4880 "winreg_SetKeySecurity",
4881 sizeof(struct winreg_SetKeySecurity
),
4882 (ndr_push_flags_fn_t
) ndr_push_winreg_SetKeySecurity
,
4883 (ndr_pull_flags_fn_t
) ndr_pull_winreg_SetKeySecurity
,
4884 (ndr_print_function_t
) ndr_print_winreg_SetKeySecurity
,
4889 sizeof(struct winreg_SetValue
),
4890 (ndr_push_flags_fn_t
) ndr_push_winreg_SetValue
,
4891 (ndr_pull_flags_fn_t
) ndr_pull_winreg_SetValue
,
4892 (ndr_print_function_t
) ndr_print_winreg_SetValue
,
4897 sizeof(struct winreg_UnLoadKey
),
4898 (ndr_push_flags_fn_t
) ndr_push_winreg_UnLoadKey
,
4899 (ndr_pull_flags_fn_t
) ndr_pull_winreg_UnLoadKey
,
4900 (ndr_print_function_t
) ndr_print_winreg_UnLoadKey
,
4904 "winreg_InitiateSystemShutdown",
4905 sizeof(struct winreg_InitiateSystemShutdown
),
4906 (ndr_push_flags_fn_t
) ndr_push_winreg_InitiateSystemShutdown
,
4907 (ndr_pull_flags_fn_t
) ndr_pull_winreg_InitiateSystemShutdown
,
4908 (ndr_print_function_t
) ndr_print_winreg_InitiateSystemShutdown
,
4912 "winreg_AbortSystemShutdown",
4913 sizeof(struct winreg_AbortSystemShutdown
),
4914 (ndr_push_flags_fn_t
) ndr_push_winreg_AbortSystemShutdown
,
4915 (ndr_pull_flags_fn_t
) ndr_pull_winreg_AbortSystemShutdown
,
4916 (ndr_print_function_t
) ndr_print_winreg_AbortSystemShutdown
,
4920 "winreg_GetVersion",
4921 sizeof(struct winreg_GetVersion
),
4922 (ndr_push_flags_fn_t
) ndr_push_winreg_GetVersion
,
4923 (ndr_pull_flags_fn_t
) ndr_pull_winreg_GetVersion
,
4924 (ndr_print_function_t
) ndr_print_winreg_GetVersion
,
4929 sizeof(struct winreg_OpenHKCC
),
4930 (ndr_push_flags_fn_t
) ndr_push_winreg_OpenHKCC
,
4931 (ndr_pull_flags_fn_t
) ndr_pull_winreg_OpenHKCC
,
4932 (ndr_print_function_t
) ndr_print_winreg_OpenHKCC
,
4937 sizeof(struct winreg_OpenHKDD
),
4938 (ndr_push_flags_fn_t
) ndr_push_winreg_OpenHKDD
,
4939 (ndr_pull_flags_fn_t
) ndr_pull_winreg_OpenHKDD
,
4940 (ndr_print_function_t
) ndr_print_winreg_OpenHKDD
,
4944 "winreg_QueryMultipleValues",
4945 sizeof(struct winreg_QueryMultipleValues
),
4946 (ndr_push_flags_fn_t
) ndr_push_winreg_QueryMultipleValues
,
4947 (ndr_pull_flags_fn_t
) ndr_pull_winreg_QueryMultipleValues
,
4948 (ndr_print_function_t
) ndr_print_winreg_QueryMultipleValues
,
4952 "winreg_InitiateSystemShutdownEx",
4953 sizeof(struct winreg_InitiateSystemShutdownEx
),
4954 (ndr_push_flags_fn_t
) ndr_push_winreg_InitiateSystemShutdownEx
,
4955 (ndr_pull_flags_fn_t
) ndr_pull_winreg_InitiateSystemShutdownEx
,
4956 (ndr_print_function_t
) ndr_print_winreg_InitiateSystemShutdownEx
,
4961 sizeof(struct winreg_SaveKeyEx
),
4962 (ndr_push_flags_fn_t
) ndr_push_winreg_SaveKeyEx
,
4963 (ndr_pull_flags_fn_t
) ndr_pull_winreg_SaveKeyEx
,
4964 (ndr_print_function_t
) ndr_print_winreg_SaveKeyEx
,
4969 sizeof(struct winreg_OpenHKPT
),
4970 (ndr_push_flags_fn_t
) ndr_push_winreg_OpenHKPT
,
4971 (ndr_pull_flags_fn_t
) ndr_pull_winreg_OpenHKPT
,
4972 (ndr_print_function_t
) ndr_print_winreg_OpenHKPT
,
4977 sizeof(struct winreg_OpenHKPN
),
4978 (ndr_push_flags_fn_t
) ndr_push_winreg_OpenHKPN
,
4979 (ndr_pull_flags_fn_t
) ndr_pull_winreg_OpenHKPN
,
4980 (ndr_print_function_t
) ndr_print_winreg_OpenHKPN
,
4984 "winreg_QueryMultipleValues2",
4985 sizeof(struct winreg_QueryMultipleValues2
),
4986 (ndr_push_flags_fn_t
) ndr_push_winreg_QueryMultipleValues2
,
4987 (ndr_pull_flags_fn_t
) ndr_pull_winreg_QueryMultipleValues2
,
4988 (ndr_print_function_t
) ndr_print_winreg_QueryMultipleValues2
,
4992 "winreg_DeleteKeyEx",
4993 sizeof(struct winreg_DeleteKeyEx
),
4994 (ndr_push_flags_fn_t
) ndr_push_winreg_DeleteKeyEx
,
4995 (ndr_pull_flags_fn_t
) ndr_pull_winreg_DeleteKeyEx
,
4996 (ndr_print_function_t
) ndr_print_winreg_DeleteKeyEx
,
4999 { NULL
, 0, NULL
, NULL
, NULL
, false }
5002 static const char * const winreg_endpoint_strings
[] = {
5003 "ncacn_np:[\\pipe\\winreg]",
5008 static const struct ndr_interface_string_array winreg_endpoints
= {
5010 .names
= winreg_endpoint_strings
5013 static const char * const winreg_authservice_strings
[] = {
5017 static const struct ndr_interface_string_array winreg_authservices
= {
5019 .names
= winreg_authservice_strings
5023 const struct ndr_interface_table ndr_table_winreg
= {
5026 {0x338cd001,0x2244,0x31f1,{0xaa,0xaa},{0x90,0x00,0x38,0x00,0x10,0x03}},
5029 .helpstring
= NDR_WINREG_HELPSTRING
,
5031 .calls
= winreg_calls
,
5032 .endpoints
= &winreg_endpoints
,
5033 .authservices
= &winreg_authservices