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_KeyType(struct ndr_push
*ndr
, int ndr_flags
, enum winreg_KeyType r
)
222 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
223 return NDR_ERR_SUCCESS
;
226 static enum ndr_err_code
ndr_pull_winreg_KeyType(struct ndr_pull
*ndr
, int ndr_flags
, enum winreg_KeyType
*r
)
229 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
231 return NDR_ERR_SUCCESS
;
234 _PUBLIC_
void ndr_print_winreg_KeyType(struct ndr_print
*ndr
, const char *name
, enum winreg_KeyType r
)
236 const char *val
= NULL
;
239 case REG_KEYTYPE_NON_VOLATILE
: val
= "REG_KEYTYPE_NON_VOLATILE"; break;
240 case REG_KEYTYPE_VOLATILE
: val
= "REG_KEYTYPE_VOLATILE"; break;
241 case REG_KEYTYPE_SYMLINK
: val
= "REG_KEYTYPE_SYMLINK"; break;
243 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
246 static enum ndr_err_code
ndr_push_winreg_CreateAction(struct ndr_push
*ndr
, int ndr_flags
, enum winreg_CreateAction r
)
248 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
249 return NDR_ERR_SUCCESS
;
252 static enum ndr_err_code
ndr_pull_winreg_CreateAction(struct ndr_pull
*ndr
, int ndr_flags
, enum winreg_CreateAction
*r
)
255 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
257 return NDR_ERR_SUCCESS
;
260 _PUBLIC_
void ndr_print_winreg_CreateAction(struct ndr_print
*ndr
, const char *name
, enum winreg_CreateAction r
)
262 const char *val
= NULL
;
265 case REG_ACTION_NONE
: val
= "REG_ACTION_NONE"; break;
266 case REG_CREATED_NEW_KEY
: val
= "REG_CREATED_NEW_KEY"; break;
267 case REG_OPENED_EXISTING_KEY
: val
= "REG_OPENED_EXISTING_KEY"; break;
269 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
272 static enum ndr_err_code
ndr_push_winreg_StringBuf(struct ndr_push
*ndr
, int ndr_flags
, const struct winreg_StringBuf
*r
)
274 if (ndr_flags
& NDR_SCALARS
) {
275 NDR_CHECK(ndr_push_align(ndr
, 5));
276 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, strlen_m_term_null(r
->name
) * 2));
277 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->size
));
278 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->name
));
279 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
281 if (ndr_flags
& NDR_BUFFERS
) {
283 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->size
/ 2));
284 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
285 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, strlen_m_term_null(r
->name
) * 2 / 2));
286 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->name
, strlen_m_term_null(r
->name
) * 2 / 2, sizeof(uint16_t), CH_UTF16
));
289 return NDR_ERR_SUCCESS
;
292 static enum ndr_err_code
ndr_pull_winreg_StringBuf(struct ndr_pull
*ndr
, int ndr_flags
, struct winreg_StringBuf
*r
)
295 TALLOC_CTX
*_mem_save_name_0
;
296 if (ndr_flags
& NDR_SCALARS
) {
297 NDR_CHECK(ndr_pull_align(ndr
, 5));
298 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->length
));
299 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->size
));
300 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_name
));
302 NDR_PULL_ALLOC(ndr
, r
->name
);
306 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
308 if (ndr_flags
& NDR_BUFFERS
) {
310 _mem_save_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
311 NDR_PULL_SET_MEM_CTX(ndr
, r
->name
, 0);
312 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->name
));
313 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->name
));
314 if (ndr_get_array_length(ndr
, &r
->name
) > ndr_get_array_size(ndr
, &r
->name
)) {
315 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
));
317 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->name
, ndr_get_array_length(ndr
, &r
->name
), sizeof(uint16_t), CH_UTF16
));
318 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_0
, 0);
321 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->name
, r
->size
/ 2));
324 NDR_CHECK(ndr_check_array_length(ndr
, (void*)&r
->name
, r
->length
/ 2));
327 return NDR_ERR_SUCCESS
;
330 _PUBLIC_
void ndr_print_winreg_StringBuf(struct ndr_print
*ndr
, const char *name
, const struct winreg_StringBuf
*r
)
332 ndr_print_struct(ndr
, name
, "winreg_StringBuf");
334 ndr_print_uint16(ndr
, "length", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?strlen_m_term_null(r
->name
) * 2:r
->length
);
335 ndr_print_uint16(ndr
, "size", r
->size
);
336 ndr_print_ptr(ndr
, "name", r
->name
);
339 ndr_print_string(ndr
, "name", r
->name
);
345 static enum ndr_err_code
ndr_push_winreg_ValNameBuf(struct ndr_push
*ndr
, int ndr_flags
, const struct winreg_ValNameBuf
*r
)
347 if (ndr_flags
& NDR_SCALARS
) {
348 NDR_CHECK(ndr_push_align(ndr
, 5));
349 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, strlen_m_term(r
->name
) * 2));
350 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->size
));
351 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->name
));
352 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
354 if (ndr_flags
& NDR_BUFFERS
) {
356 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->size
/ 2));
357 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
358 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, strlen_m_term(r
->name
) * 2 / 2));
359 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->name
, strlen_m_term(r
->name
) * 2 / 2, sizeof(uint16_t), CH_UTF16
));
362 return NDR_ERR_SUCCESS
;
365 static enum ndr_err_code
ndr_pull_winreg_ValNameBuf(struct ndr_pull
*ndr
, int ndr_flags
, struct winreg_ValNameBuf
*r
)
368 TALLOC_CTX
*_mem_save_name_0
;
369 if (ndr_flags
& NDR_SCALARS
) {
370 NDR_CHECK(ndr_pull_align(ndr
, 5));
371 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->length
));
372 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->size
));
373 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_name
));
375 NDR_PULL_ALLOC(ndr
, r
->name
);
379 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
381 if (ndr_flags
& NDR_BUFFERS
) {
383 _mem_save_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
384 NDR_PULL_SET_MEM_CTX(ndr
, r
->name
, 0);
385 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->name
));
386 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->name
));
387 if (ndr_get_array_length(ndr
, &r
->name
) > ndr_get_array_size(ndr
, &r
->name
)) {
388 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
));
390 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->name
, ndr_get_array_length(ndr
, &r
->name
), sizeof(uint16_t), CH_UTF16
));
391 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_0
, 0);
394 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->name
, r
->size
/ 2));
397 NDR_CHECK(ndr_check_array_length(ndr
, (void*)&r
->name
, r
->length
/ 2));
400 return NDR_ERR_SUCCESS
;
403 _PUBLIC_
void ndr_print_winreg_ValNameBuf(struct ndr_print
*ndr
, const char *name
, const struct winreg_ValNameBuf
*r
)
405 ndr_print_struct(ndr
, name
, "winreg_ValNameBuf");
407 ndr_print_uint16(ndr
, "length", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?strlen_m_term(r
->name
) * 2:r
->length
);
408 ndr_print_uint16(ndr
, "size", r
->size
);
409 ndr_print_ptr(ndr
, "name", r
->name
);
412 ndr_print_string(ndr
, "name", r
->name
);
418 _PUBLIC_
enum ndr_err_code
ndr_push_winreg_NotifyChangeType(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
420 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
421 return NDR_ERR_SUCCESS
;
424 _PUBLIC_
enum ndr_err_code
ndr_pull_winreg_NotifyChangeType(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
427 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
429 return NDR_ERR_SUCCESS
;
432 _PUBLIC_
void ndr_print_winreg_NotifyChangeType(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
434 ndr_print_uint32(ndr
, name
, r
);
436 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "REG_NOTIFY_CHANGE_NAME", REG_NOTIFY_CHANGE_NAME
, r
);
437 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "REG_NOTIFY_CHANGE_ATTRIBUTES", REG_NOTIFY_CHANGE_ATTRIBUTES
, r
);
438 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "REG_NOTIFY_CHANGE_LAST_SET", REG_NOTIFY_CHANGE_LAST_SET
, r
);
439 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "REG_NOTIFY_CHANGE_SECURITY", REG_NOTIFY_CHANGE_SECURITY
, r
);
443 static enum ndr_err_code
ndr_push_KeySecurityAttribute(struct ndr_push
*ndr
, int ndr_flags
, const struct KeySecurityAttribute
*r
)
445 if (ndr_flags
& NDR_SCALARS
) {
446 NDR_CHECK(ndr_push_align(ndr
, 5));
447 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->data_size
));
448 NDR_CHECK(ndr_push_KeySecurityData(ndr
, NDR_SCALARS
, &r
->sec_data
));
449 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->inherit
));
450 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
452 if (ndr_flags
& NDR_BUFFERS
) {
453 NDR_CHECK(ndr_push_KeySecurityData(ndr
, NDR_BUFFERS
, &r
->sec_data
));
455 return NDR_ERR_SUCCESS
;
458 static enum ndr_err_code
ndr_pull_KeySecurityAttribute(struct ndr_pull
*ndr
, int ndr_flags
, struct KeySecurityAttribute
*r
)
460 if (ndr_flags
& NDR_SCALARS
) {
461 NDR_CHECK(ndr_pull_align(ndr
, 5));
462 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->data_size
));
463 NDR_CHECK(ndr_pull_KeySecurityData(ndr
, NDR_SCALARS
, &r
->sec_data
));
464 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->inherit
));
465 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
467 if (ndr_flags
& NDR_BUFFERS
) {
468 NDR_CHECK(ndr_pull_KeySecurityData(ndr
, NDR_BUFFERS
, &r
->sec_data
));
470 return NDR_ERR_SUCCESS
;
473 _PUBLIC_
void ndr_print_KeySecurityAttribute(struct ndr_print
*ndr
, const char *name
, const struct KeySecurityAttribute
*r
)
475 ndr_print_struct(ndr
, name
, "KeySecurityAttribute");
477 ndr_print_uint32(ndr
, "data_size", r
->data_size
);
478 ndr_print_KeySecurityData(ndr
, "sec_data", &r
->sec_data
);
479 ndr_print_uint8(ndr
, "inherit", r
->inherit
);
483 static enum ndr_err_code
ndr_push_QueryMultipleValue(struct ndr_push
*ndr
, int ndr_flags
, const struct QueryMultipleValue
*r
)
485 if (ndr_flags
& NDR_SCALARS
) {
486 NDR_CHECK(ndr_push_align(ndr
, 5));
487 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->name
));
488 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, r
->type
));
489 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->offset
));
490 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->length
));
491 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
493 if (ndr_flags
& NDR_BUFFERS
) {
495 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->name
));
498 return NDR_ERR_SUCCESS
;
501 static enum ndr_err_code
ndr_pull_QueryMultipleValue(struct ndr_pull
*ndr
, int ndr_flags
, struct QueryMultipleValue
*r
)
504 TALLOC_CTX
*_mem_save_name_0
;
505 if (ndr_flags
& NDR_SCALARS
) {
506 NDR_CHECK(ndr_pull_align(ndr
, 5));
507 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_name
));
509 NDR_PULL_ALLOC(ndr
, r
->name
);
513 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, &r
->type
));
514 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->offset
));
515 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->length
));
516 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
518 if (ndr_flags
& NDR_BUFFERS
) {
520 _mem_save_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
521 NDR_PULL_SET_MEM_CTX(ndr
, r
->name
, 0);
522 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->name
));
523 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_0
, 0);
526 return NDR_ERR_SUCCESS
;
529 _PUBLIC_
void ndr_print_QueryMultipleValue(struct ndr_print
*ndr
, const char *name
, const struct QueryMultipleValue
*r
)
531 ndr_print_struct(ndr
, name
, "QueryMultipleValue");
533 ndr_print_ptr(ndr
, "name", r
->name
);
536 ndr_print_winreg_String(ndr
, "name", r
->name
);
539 ndr_print_winreg_Type(ndr
, "type", r
->type
);
540 ndr_print_uint32(ndr
, "offset", r
->offset
);
541 ndr_print_uint32(ndr
, "length", r
->length
);
545 static enum ndr_err_code
ndr_push_winreg_OpenHKCR(struct ndr_push
*ndr
, int flags
, const struct winreg_OpenHKCR
*r
)
547 if (flags
& NDR_IN
) {
548 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.system_name
));
549 if (r
->in
.system_name
) {
550 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, *r
->in
.system_name
));
552 NDR_CHECK(ndr_push_winreg_AccessMask(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
554 if (flags
& NDR_OUT
) {
555 if (r
->out
.handle
== NULL
) {
556 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
558 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
559 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
561 return NDR_ERR_SUCCESS
;
564 static enum ndr_err_code
ndr_pull_winreg_OpenHKCR(struct ndr_pull
*ndr
, int flags
, struct winreg_OpenHKCR
*r
)
566 uint32_t _ptr_system_name
;
567 TALLOC_CTX
*_mem_save_system_name_0
;
568 TALLOC_CTX
*_mem_save_handle_0
;
569 if (flags
& NDR_IN
) {
572 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_system_name
));
573 if (_ptr_system_name
) {
574 NDR_PULL_ALLOC(ndr
, r
->in
.system_name
);
576 r
->in
.system_name
= NULL
;
578 if (r
->in
.system_name
) {
579 _mem_save_system_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
580 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.system_name
, 0);
581 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, r
->in
.system_name
));
582 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_system_name_0
, 0);
584 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
585 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
586 ZERO_STRUCTP(r
->out
.handle
);
588 if (flags
& NDR_OUT
) {
589 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
590 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
592 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
593 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
594 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
595 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
596 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
598 return NDR_ERR_SUCCESS
;
601 _PUBLIC_
void ndr_print_winreg_OpenHKCR(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_OpenHKCR
*r
)
603 ndr_print_struct(ndr
, name
, "winreg_OpenHKCR");
605 if (flags
& NDR_SET_VALUES
) {
606 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
608 if (flags
& NDR_IN
) {
609 ndr_print_struct(ndr
, "in", "winreg_OpenHKCR");
611 ndr_print_ptr(ndr
, "system_name", r
->in
.system_name
);
613 if (r
->in
.system_name
) {
614 ndr_print_uint16(ndr
, "system_name", *r
->in
.system_name
);
617 ndr_print_winreg_AccessMask(ndr
, "access_mask", r
->in
.access_mask
);
620 if (flags
& NDR_OUT
) {
621 ndr_print_struct(ndr
, "out", "winreg_OpenHKCR");
623 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
625 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
627 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
633 static enum ndr_err_code
ndr_push_winreg_OpenHKCU(struct ndr_push
*ndr
, int flags
, const struct winreg_OpenHKCU
*r
)
635 if (flags
& NDR_IN
) {
636 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.system_name
));
637 if (r
->in
.system_name
) {
638 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, *r
->in
.system_name
));
640 NDR_CHECK(ndr_push_winreg_AccessMask(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
642 if (flags
& NDR_OUT
) {
643 if (r
->out
.handle
== NULL
) {
644 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
646 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
647 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
649 return NDR_ERR_SUCCESS
;
652 static enum ndr_err_code
ndr_pull_winreg_OpenHKCU(struct ndr_pull
*ndr
, int flags
, struct winreg_OpenHKCU
*r
)
654 uint32_t _ptr_system_name
;
655 TALLOC_CTX
*_mem_save_system_name_0
;
656 TALLOC_CTX
*_mem_save_handle_0
;
657 if (flags
& NDR_IN
) {
660 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_system_name
));
661 if (_ptr_system_name
) {
662 NDR_PULL_ALLOC(ndr
, r
->in
.system_name
);
664 r
->in
.system_name
= NULL
;
666 if (r
->in
.system_name
) {
667 _mem_save_system_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
668 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.system_name
, 0);
669 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, r
->in
.system_name
));
670 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_system_name_0
, 0);
672 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
673 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
674 ZERO_STRUCTP(r
->out
.handle
);
676 if (flags
& NDR_OUT
) {
677 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
678 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
680 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
681 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
682 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
683 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
684 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
686 return NDR_ERR_SUCCESS
;
689 _PUBLIC_
void ndr_print_winreg_OpenHKCU(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_OpenHKCU
*r
)
691 ndr_print_struct(ndr
, name
, "winreg_OpenHKCU");
693 if (flags
& NDR_SET_VALUES
) {
694 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
696 if (flags
& NDR_IN
) {
697 ndr_print_struct(ndr
, "in", "winreg_OpenHKCU");
699 ndr_print_ptr(ndr
, "system_name", r
->in
.system_name
);
701 if (r
->in
.system_name
) {
702 ndr_print_uint16(ndr
, "system_name", *r
->in
.system_name
);
705 ndr_print_winreg_AccessMask(ndr
, "access_mask", r
->in
.access_mask
);
708 if (flags
& NDR_OUT
) {
709 ndr_print_struct(ndr
, "out", "winreg_OpenHKCU");
711 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
713 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
715 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
721 _PUBLIC_
enum ndr_err_code
ndr_push_winreg_OpenHKLM(struct ndr_push
*ndr
, int flags
, const struct winreg_OpenHKLM
*r
)
723 if (flags
& NDR_IN
) {
724 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.system_name
));
725 if (r
->in
.system_name
) {
726 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, *r
->in
.system_name
));
728 NDR_CHECK(ndr_push_winreg_AccessMask(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
730 if (flags
& NDR_OUT
) {
731 if (r
->out
.handle
== NULL
) {
732 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
734 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
735 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
737 return NDR_ERR_SUCCESS
;
740 _PUBLIC_
enum ndr_err_code
ndr_pull_winreg_OpenHKLM(struct ndr_pull
*ndr
, int flags
, struct winreg_OpenHKLM
*r
)
742 uint32_t _ptr_system_name
;
743 TALLOC_CTX
*_mem_save_system_name_0
;
744 TALLOC_CTX
*_mem_save_handle_0
;
745 if (flags
& NDR_IN
) {
748 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_system_name
));
749 if (_ptr_system_name
) {
750 NDR_PULL_ALLOC(ndr
, r
->in
.system_name
);
752 r
->in
.system_name
= NULL
;
754 if (r
->in
.system_name
) {
755 _mem_save_system_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
756 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.system_name
, 0);
757 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, r
->in
.system_name
));
758 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_system_name_0
, 0);
760 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
761 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
762 ZERO_STRUCTP(r
->out
.handle
);
764 if (flags
& NDR_OUT
) {
765 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
766 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
768 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
769 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
770 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
771 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
772 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
774 return NDR_ERR_SUCCESS
;
777 _PUBLIC_
void ndr_print_winreg_OpenHKLM(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_OpenHKLM
*r
)
779 ndr_print_struct(ndr
, name
, "winreg_OpenHKLM");
781 if (flags
& NDR_SET_VALUES
) {
782 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
784 if (flags
& NDR_IN
) {
785 ndr_print_struct(ndr
, "in", "winreg_OpenHKLM");
787 ndr_print_ptr(ndr
, "system_name", r
->in
.system_name
);
789 if (r
->in
.system_name
) {
790 ndr_print_uint16(ndr
, "system_name", *r
->in
.system_name
);
793 ndr_print_winreg_AccessMask(ndr
, "access_mask", r
->in
.access_mask
);
796 if (flags
& NDR_OUT
) {
797 ndr_print_struct(ndr
, "out", "winreg_OpenHKLM");
799 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
801 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
803 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
809 static enum ndr_err_code
ndr_push_winreg_OpenHKPD(struct ndr_push
*ndr
, int flags
, const struct winreg_OpenHKPD
*r
)
811 if (flags
& NDR_IN
) {
812 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.system_name
));
813 if (r
->in
.system_name
) {
814 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, *r
->in
.system_name
));
816 NDR_CHECK(ndr_push_winreg_AccessMask(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
818 if (flags
& NDR_OUT
) {
819 if (r
->out
.handle
== NULL
) {
820 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
822 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
823 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
825 return NDR_ERR_SUCCESS
;
828 static enum ndr_err_code
ndr_pull_winreg_OpenHKPD(struct ndr_pull
*ndr
, int flags
, struct winreg_OpenHKPD
*r
)
830 uint32_t _ptr_system_name
;
831 TALLOC_CTX
*_mem_save_system_name_0
;
832 TALLOC_CTX
*_mem_save_handle_0
;
833 if (flags
& NDR_IN
) {
836 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_system_name
));
837 if (_ptr_system_name
) {
838 NDR_PULL_ALLOC(ndr
, r
->in
.system_name
);
840 r
->in
.system_name
= NULL
;
842 if (r
->in
.system_name
) {
843 _mem_save_system_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
844 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.system_name
, 0);
845 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, r
->in
.system_name
));
846 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_system_name_0
, 0);
848 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
849 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
850 ZERO_STRUCTP(r
->out
.handle
);
852 if (flags
& NDR_OUT
) {
853 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
854 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
856 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
857 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
858 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
859 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
860 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
862 return NDR_ERR_SUCCESS
;
865 _PUBLIC_
void ndr_print_winreg_OpenHKPD(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_OpenHKPD
*r
)
867 ndr_print_struct(ndr
, name
, "winreg_OpenHKPD");
869 if (flags
& NDR_SET_VALUES
) {
870 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
872 if (flags
& NDR_IN
) {
873 ndr_print_struct(ndr
, "in", "winreg_OpenHKPD");
875 ndr_print_ptr(ndr
, "system_name", r
->in
.system_name
);
877 if (r
->in
.system_name
) {
878 ndr_print_uint16(ndr
, "system_name", *r
->in
.system_name
);
881 ndr_print_winreg_AccessMask(ndr
, "access_mask", r
->in
.access_mask
);
884 if (flags
& NDR_OUT
) {
885 ndr_print_struct(ndr
, "out", "winreg_OpenHKPD");
887 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
889 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
891 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
897 static enum ndr_err_code
ndr_push_winreg_OpenHKU(struct ndr_push
*ndr
, int flags
, const struct winreg_OpenHKU
*r
)
899 if (flags
& NDR_IN
) {
900 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.system_name
));
901 if (r
->in
.system_name
) {
902 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, *r
->in
.system_name
));
904 NDR_CHECK(ndr_push_winreg_AccessMask(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
906 if (flags
& NDR_OUT
) {
907 if (r
->out
.handle
== NULL
) {
908 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
910 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
911 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
913 return NDR_ERR_SUCCESS
;
916 static enum ndr_err_code
ndr_pull_winreg_OpenHKU(struct ndr_pull
*ndr
, int flags
, struct winreg_OpenHKU
*r
)
918 uint32_t _ptr_system_name
;
919 TALLOC_CTX
*_mem_save_system_name_0
;
920 TALLOC_CTX
*_mem_save_handle_0
;
921 if (flags
& NDR_IN
) {
924 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_system_name
));
925 if (_ptr_system_name
) {
926 NDR_PULL_ALLOC(ndr
, r
->in
.system_name
);
928 r
->in
.system_name
= NULL
;
930 if (r
->in
.system_name
) {
931 _mem_save_system_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
932 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.system_name
, 0);
933 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, r
->in
.system_name
));
934 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_system_name_0
, 0);
936 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
937 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
938 ZERO_STRUCTP(r
->out
.handle
);
940 if (flags
& NDR_OUT
) {
941 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
942 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
944 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
945 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
946 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
947 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
948 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
950 return NDR_ERR_SUCCESS
;
953 _PUBLIC_
void ndr_print_winreg_OpenHKU(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_OpenHKU
*r
)
955 ndr_print_struct(ndr
, name
, "winreg_OpenHKU");
957 if (flags
& NDR_SET_VALUES
) {
958 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
960 if (flags
& NDR_IN
) {
961 ndr_print_struct(ndr
, "in", "winreg_OpenHKU");
963 ndr_print_ptr(ndr
, "system_name", r
->in
.system_name
);
965 if (r
->in
.system_name
) {
966 ndr_print_uint16(ndr
, "system_name", *r
->in
.system_name
);
969 ndr_print_winreg_AccessMask(ndr
, "access_mask", r
->in
.access_mask
);
972 if (flags
& NDR_OUT
) {
973 ndr_print_struct(ndr
, "out", "winreg_OpenHKU");
975 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
977 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
979 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
985 _PUBLIC_
enum ndr_err_code
ndr_push_winreg_CloseKey(struct ndr_push
*ndr
, int flags
, const struct winreg_CloseKey
*r
)
987 if (flags
& NDR_IN
) {
988 if (r
->in
.handle
== NULL
) {
989 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
991 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
993 if (flags
& NDR_OUT
) {
994 if (r
->out
.handle
== NULL
) {
995 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
997 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
998 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
1000 return NDR_ERR_SUCCESS
;
1003 _PUBLIC_
enum ndr_err_code
ndr_pull_winreg_CloseKey(struct ndr_pull
*ndr
, int flags
, struct winreg_CloseKey
*r
)
1005 TALLOC_CTX
*_mem_save_handle_0
;
1006 if (flags
& NDR_IN
) {
1007 ZERO_STRUCT(r
->out
);
1009 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
1010 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
1012 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1013 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
1014 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
1015 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
1016 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
1017 *r
->out
.handle
= *r
->in
.handle
;
1019 if (flags
& NDR_OUT
) {
1020 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
1021 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
1023 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1024 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
1025 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
1026 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
1027 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
1029 return NDR_ERR_SUCCESS
;
1032 _PUBLIC_
void ndr_print_winreg_CloseKey(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_CloseKey
*r
)
1034 ndr_print_struct(ndr
, name
, "winreg_CloseKey");
1036 if (flags
& NDR_SET_VALUES
) {
1037 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
1039 if (flags
& NDR_IN
) {
1040 ndr_print_struct(ndr
, "in", "winreg_CloseKey");
1042 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
1044 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
1048 if (flags
& NDR_OUT
) {
1049 ndr_print_struct(ndr
, "out", "winreg_CloseKey");
1051 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
1053 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
1055 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
1061 _PUBLIC_
enum ndr_err_code
ndr_push_winreg_CreateKey(struct ndr_push
*ndr
, int flags
, const struct winreg_CreateKey
*r
)
1063 if (flags
& NDR_IN
) {
1064 if (r
->in
.handle
== NULL
) {
1065 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
1067 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
1068 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.name
));
1069 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.keyclass
));
1070 NDR_CHECK(ndr_push_winreg_KeyType(ndr
, NDR_SCALARS
, r
->in
.options
));
1071 NDR_CHECK(ndr_push_winreg_AccessMask(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
1072 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.secdesc
));
1073 if (r
->in
.secdesc
) {
1074 NDR_CHECK(ndr_push_winreg_SecBuf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.secdesc
));
1076 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.action_taken
));
1077 if (r
->in
.action_taken
) {
1078 NDR_CHECK(ndr_push_winreg_CreateAction(ndr
, NDR_SCALARS
, *r
->in
.action_taken
));
1081 if (flags
& NDR_OUT
) {
1082 if (r
->out
.new_handle
== NULL
) {
1083 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
1085 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.new_handle
));
1086 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.action_taken
));
1087 if (r
->out
.action_taken
) {
1088 NDR_CHECK(ndr_push_winreg_CreateAction(ndr
, NDR_SCALARS
, *r
->out
.action_taken
));
1090 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
1092 return NDR_ERR_SUCCESS
;
1095 _PUBLIC_
enum ndr_err_code
ndr_pull_winreg_CreateKey(struct ndr_pull
*ndr
, int flags
, struct winreg_CreateKey
*r
)
1097 uint32_t _ptr_secdesc
;
1098 uint32_t _ptr_action_taken
;
1099 TALLOC_CTX
*_mem_save_handle_0
;
1100 TALLOC_CTX
*_mem_save_secdesc_0
;
1101 TALLOC_CTX
*_mem_save_new_handle_0
;
1102 TALLOC_CTX
*_mem_save_action_taken_0
;
1103 if (flags
& NDR_IN
) {
1104 ZERO_STRUCT(r
->out
);
1106 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
1107 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
1109 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1110 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
1111 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
1112 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
1113 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.name
));
1114 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.keyclass
));
1115 NDR_CHECK(ndr_pull_winreg_KeyType(ndr
, NDR_SCALARS
, &r
->in
.options
));
1116 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
1117 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_secdesc
));
1119 NDR_PULL_ALLOC(ndr
, r
->in
.secdesc
);
1121 r
->in
.secdesc
= NULL
;
1123 if (r
->in
.secdesc
) {
1124 _mem_save_secdesc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1125 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.secdesc
, 0);
1126 NDR_CHECK(ndr_pull_winreg_SecBuf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.secdesc
));
1127 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_0
, 0);
1129 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_action_taken
));
1130 if (_ptr_action_taken
) {
1131 NDR_PULL_ALLOC(ndr
, r
->in
.action_taken
);
1133 r
->in
.action_taken
= NULL
;
1135 if (r
->in
.action_taken
) {
1136 _mem_save_action_taken_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1137 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.action_taken
, 0);
1138 NDR_CHECK(ndr_pull_winreg_CreateAction(ndr
, NDR_SCALARS
, r
->in
.action_taken
));
1139 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_action_taken_0
, 0);
1141 NDR_PULL_ALLOC(ndr
, r
->out
.new_handle
);
1142 ZERO_STRUCTP(r
->out
.new_handle
);
1144 if (flags
& NDR_OUT
) {
1145 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
1146 NDR_PULL_ALLOC(ndr
, r
->out
.new_handle
);
1148 _mem_save_new_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1149 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.new_handle
, LIBNDR_FLAG_REF_ALLOC
);
1150 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.new_handle
));
1151 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_new_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
1152 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_action_taken
));
1153 if (_ptr_action_taken
) {
1154 NDR_PULL_ALLOC(ndr
, r
->out
.action_taken
);
1156 r
->out
.action_taken
= NULL
;
1158 if (r
->out
.action_taken
) {
1159 _mem_save_action_taken_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1160 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.action_taken
, 0);
1161 NDR_CHECK(ndr_pull_winreg_CreateAction(ndr
, NDR_SCALARS
, r
->out
.action_taken
));
1162 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_action_taken_0
, 0);
1164 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
1166 return NDR_ERR_SUCCESS
;
1169 _PUBLIC_
void ndr_print_winreg_CreateKey(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_CreateKey
*r
)
1171 ndr_print_struct(ndr
, name
, "winreg_CreateKey");
1173 if (flags
& NDR_SET_VALUES
) {
1174 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
1176 if (flags
& NDR_IN
) {
1177 ndr_print_struct(ndr
, "in", "winreg_CreateKey");
1179 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
1181 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
1183 ndr_print_winreg_String(ndr
, "name", &r
->in
.name
);
1184 ndr_print_winreg_String(ndr
, "keyclass", &r
->in
.keyclass
);
1185 ndr_print_winreg_KeyType(ndr
, "options", r
->in
.options
);
1186 ndr_print_winreg_AccessMask(ndr
, "access_mask", r
->in
.access_mask
);
1187 ndr_print_ptr(ndr
, "secdesc", r
->in
.secdesc
);
1189 if (r
->in
.secdesc
) {
1190 ndr_print_winreg_SecBuf(ndr
, "secdesc", r
->in
.secdesc
);
1193 ndr_print_ptr(ndr
, "action_taken", r
->in
.action_taken
);
1195 if (r
->in
.action_taken
) {
1196 ndr_print_winreg_CreateAction(ndr
, "action_taken", *r
->in
.action_taken
);
1201 if (flags
& NDR_OUT
) {
1202 ndr_print_struct(ndr
, "out", "winreg_CreateKey");
1204 ndr_print_ptr(ndr
, "new_handle", r
->out
.new_handle
);
1206 ndr_print_policy_handle(ndr
, "new_handle", r
->out
.new_handle
);
1208 ndr_print_ptr(ndr
, "action_taken", r
->out
.action_taken
);
1210 if (r
->out
.action_taken
) {
1211 ndr_print_winreg_CreateAction(ndr
, "action_taken", *r
->out
.action_taken
);
1214 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
1220 _PUBLIC_
enum ndr_err_code
ndr_push_winreg_DeleteKey(struct ndr_push
*ndr
, int flags
, const struct winreg_DeleteKey
*r
)
1222 if (flags
& NDR_IN
) {
1223 if (r
->in
.handle
== NULL
) {
1224 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
1226 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
1227 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.key
));
1229 if (flags
& NDR_OUT
) {
1230 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
1232 return NDR_ERR_SUCCESS
;
1235 _PUBLIC_
enum ndr_err_code
ndr_pull_winreg_DeleteKey(struct ndr_pull
*ndr
, int flags
, struct winreg_DeleteKey
*r
)
1237 TALLOC_CTX
*_mem_save_handle_0
;
1238 if (flags
& NDR_IN
) {
1239 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
1240 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
1242 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1243 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
1244 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
1245 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
1246 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.key
));
1248 if (flags
& NDR_OUT
) {
1249 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
1251 return NDR_ERR_SUCCESS
;
1254 _PUBLIC_
void ndr_print_winreg_DeleteKey(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_DeleteKey
*r
)
1256 ndr_print_struct(ndr
, name
, "winreg_DeleteKey");
1258 if (flags
& NDR_SET_VALUES
) {
1259 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
1261 if (flags
& NDR_IN
) {
1262 ndr_print_struct(ndr
, "in", "winreg_DeleteKey");
1264 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
1266 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
1268 ndr_print_winreg_String(ndr
, "key", &r
->in
.key
);
1271 if (flags
& NDR_OUT
) {
1272 ndr_print_struct(ndr
, "out", "winreg_DeleteKey");
1274 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
1280 static enum ndr_err_code
ndr_push_winreg_DeleteValue(struct ndr_push
*ndr
, int flags
, const struct winreg_DeleteValue
*r
)
1282 if (flags
& NDR_IN
) {
1283 if (r
->in
.handle
== NULL
) {
1284 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
1286 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
1287 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.value
));
1289 if (flags
& NDR_OUT
) {
1290 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
1292 return NDR_ERR_SUCCESS
;
1295 static enum ndr_err_code
ndr_pull_winreg_DeleteValue(struct ndr_pull
*ndr
, int flags
, struct winreg_DeleteValue
*r
)
1297 TALLOC_CTX
*_mem_save_handle_0
;
1298 if (flags
& NDR_IN
) {
1299 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
1300 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
1302 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1303 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
1304 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
1305 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
1306 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.value
));
1308 if (flags
& NDR_OUT
) {
1309 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
1311 return NDR_ERR_SUCCESS
;
1314 _PUBLIC_
void ndr_print_winreg_DeleteValue(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_DeleteValue
*r
)
1316 ndr_print_struct(ndr
, name
, "winreg_DeleteValue");
1318 if (flags
& NDR_SET_VALUES
) {
1319 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
1321 if (flags
& NDR_IN
) {
1322 ndr_print_struct(ndr
, "in", "winreg_DeleteValue");
1324 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
1326 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
1328 ndr_print_winreg_String(ndr
, "value", &r
->in
.value
);
1331 if (flags
& NDR_OUT
) {
1332 ndr_print_struct(ndr
, "out", "winreg_DeleteValue");
1334 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
1340 _PUBLIC_
enum ndr_err_code
ndr_push_winreg_EnumKey(struct ndr_push
*ndr
, int flags
, const struct winreg_EnumKey
*r
)
1342 if (flags
& NDR_IN
) {
1343 if (r
->in
.handle
== NULL
) {
1344 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
1346 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
1347 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.enum_index
));
1348 if (r
->in
.name
== NULL
) {
1349 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
1351 NDR_CHECK(ndr_push_winreg_StringBuf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.name
));
1352 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.keyclass
));
1353 if (r
->in
.keyclass
) {
1354 NDR_CHECK(ndr_push_winreg_StringBuf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.keyclass
));
1356 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.last_changed_time
));
1357 if (r
->in
.last_changed_time
) {
1358 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, *r
->in
.last_changed_time
));
1361 if (flags
& NDR_OUT
) {
1362 if (r
->out
.name
== NULL
) {
1363 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
1365 NDR_CHECK(ndr_push_winreg_StringBuf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.name
));
1366 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.keyclass
));
1367 if (r
->out
.keyclass
) {
1368 NDR_CHECK(ndr_push_winreg_StringBuf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.keyclass
));
1370 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.last_changed_time
));
1371 if (r
->out
.last_changed_time
) {
1372 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, *r
->out
.last_changed_time
));
1374 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
1376 return NDR_ERR_SUCCESS
;
1379 _PUBLIC_
enum ndr_err_code
ndr_pull_winreg_EnumKey(struct ndr_pull
*ndr
, int flags
, struct winreg_EnumKey
*r
)
1381 uint32_t _ptr_keyclass
;
1382 uint32_t _ptr_last_changed_time
;
1383 TALLOC_CTX
*_mem_save_handle_0
;
1384 TALLOC_CTX
*_mem_save_name_0
;
1385 TALLOC_CTX
*_mem_save_keyclass_0
;
1386 TALLOC_CTX
*_mem_save_last_changed_time_0
;
1387 if (flags
& NDR_IN
) {
1388 ZERO_STRUCT(r
->out
);
1390 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
1391 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
1393 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1394 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
1395 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
1396 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
1397 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.enum_index
));
1398 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
1399 NDR_PULL_ALLOC(ndr
, r
->in
.name
);
1401 _mem_save_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1402 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.name
, LIBNDR_FLAG_REF_ALLOC
);
1403 NDR_CHECK(ndr_pull_winreg_StringBuf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.name
));
1404 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_0
, LIBNDR_FLAG_REF_ALLOC
);
1405 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_keyclass
));
1406 if (_ptr_keyclass
) {
1407 NDR_PULL_ALLOC(ndr
, r
->in
.keyclass
);
1409 r
->in
.keyclass
= NULL
;
1411 if (r
->in
.keyclass
) {
1412 _mem_save_keyclass_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1413 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.keyclass
, 0);
1414 NDR_CHECK(ndr_pull_winreg_StringBuf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.keyclass
));
1415 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_keyclass_0
, 0);
1417 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_last_changed_time
));
1418 if (_ptr_last_changed_time
) {
1419 NDR_PULL_ALLOC(ndr
, r
->in
.last_changed_time
);
1421 r
->in
.last_changed_time
= NULL
;
1423 if (r
->in
.last_changed_time
) {
1424 _mem_save_last_changed_time_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1425 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.last_changed_time
, 0);
1426 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, r
->in
.last_changed_time
));
1427 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_last_changed_time_0
, 0);
1429 NDR_PULL_ALLOC(ndr
, r
->out
.name
);
1430 *r
->out
.name
= *r
->in
.name
;
1432 if (flags
& NDR_OUT
) {
1433 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
1434 NDR_PULL_ALLOC(ndr
, r
->out
.name
);
1436 _mem_save_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1437 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.name
, LIBNDR_FLAG_REF_ALLOC
);
1438 NDR_CHECK(ndr_pull_winreg_StringBuf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.name
));
1439 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_0
, LIBNDR_FLAG_REF_ALLOC
);
1440 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_keyclass
));
1441 if (_ptr_keyclass
) {
1442 NDR_PULL_ALLOC(ndr
, r
->out
.keyclass
);
1444 r
->out
.keyclass
= NULL
;
1446 if (r
->out
.keyclass
) {
1447 _mem_save_keyclass_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1448 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.keyclass
, 0);
1449 NDR_CHECK(ndr_pull_winreg_StringBuf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.keyclass
));
1450 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_keyclass_0
, 0);
1452 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_last_changed_time
));
1453 if (_ptr_last_changed_time
) {
1454 NDR_PULL_ALLOC(ndr
, r
->out
.last_changed_time
);
1456 r
->out
.last_changed_time
= NULL
;
1458 if (r
->out
.last_changed_time
) {
1459 _mem_save_last_changed_time_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1460 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.last_changed_time
, 0);
1461 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, r
->out
.last_changed_time
));
1462 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_last_changed_time_0
, 0);
1464 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
1466 return NDR_ERR_SUCCESS
;
1469 _PUBLIC_
void ndr_print_winreg_EnumKey(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_EnumKey
*r
)
1471 ndr_print_struct(ndr
, name
, "winreg_EnumKey");
1473 if (flags
& NDR_SET_VALUES
) {
1474 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
1476 if (flags
& NDR_IN
) {
1477 ndr_print_struct(ndr
, "in", "winreg_EnumKey");
1479 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
1481 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
1483 ndr_print_uint32(ndr
, "enum_index", r
->in
.enum_index
);
1484 ndr_print_ptr(ndr
, "name", r
->in
.name
);
1486 ndr_print_winreg_StringBuf(ndr
, "name", r
->in
.name
);
1488 ndr_print_ptr(ndr
, "keyclass", r
->in
.keyclass
);
1490 if (r
->in
.keyclass
) {
1491 ndr_print_winreg_StringBuf(ndr
, "keyclass", r
->in
.keyclass
);
1494 ndr_print_ptr(ndr
, "last_changed_time", r
->in
.last_changed_time
);
1496 if (r
->in
.last_changed_time
) {
1497 ndr_print_NTTIME(ndr
, "last_changed_time", *r
->in
.last_changed_time
);
1502 if (flags
& NDR_OUT
) {
1503 ndr_print_struct(ndr
, "out", "winreg_EnumKey");
1505 ndr_print_ptr(ndr
, "name", r
->out
.name
);
1507 ndr_print_winreg_StringBuf(ndr
, "name", r
->out
.name
);
1509 ndr_print_ptr(ndr
, "keyclass", r
->out
.keyclass
);
1511 if (r
->out
.keyclass
) {
1512 ndr_print_winreg_StringBuf(ndr
, "keyclass", r
->out
.keyclass
);
1515 ndr_print_ptr(ndr
, "last_changed_time", r
->out
.last_changed_time
);
1517 if (r
->out
.last_changed_time
) {
1518 ndr_print_NTTIME(ndr
, "last_changed_time", *r
->out
.last_changed_time
);
1521 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
1527 _PUBLIC_
enum ndr_err_code
ndr_push_winreg_EnumValue(struct ndr_push
*ndr
, int flags
, const struct winreg_EnumValue
*r
)
1529 if (flags
& NDR_IN
) {
1530 if (r
->in
.handle
== NULL
) {
1531 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
1533 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
1534 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.enum_index
));
1535 if (r
->in
.name
== NULL
) {
1536 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
1538 NDR_CHECK(ndr_push_winreg_ValNameBuf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.name
));
1539 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.type
));
1541 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, *r
->in
.type
));
1543 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.value
));
1545 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, *r
->in
.size
));
1546 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
1547 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, *r
->in
.length
));
1548 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->in
.value
, *r
->in
.length
));
1550 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.size
));
1552 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->in
.size
));
1554 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.length
));
1556 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->in
.length
));
1559 if (flags
& NDR_OUT
) {
1560 if (r
->out
.name
== NULL
) {
1561 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
1563 NDR_CHECK(ndr_push_winreg_ValNameBuf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.name
));
1564 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.type
));
1566 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, *r
->out
.type
));
1568 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.value
));
1570 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, *r
->out
.size
));
1571 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
1572 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, *r
->out
.length
));
1573 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->out
.value
, *r
->out
.length
));
1575 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.size
));
1577 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.size
));
1579 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.length
));
1580 if (r
->out
.length
) {
1581 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.length
));
1583 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
1585 return NDR_ERR_SUCCESS
;
1588 _PUBLIC_
enum ndr_err_code
ndr_pull_winreg_EnumValue(struct ndr_pull
*ndr
, int flags
, struct winreg_EnumValue
*r
)
1591 uint32_t _ptr_value
;
1593 uint32_t _ptr_length
;
1594 TALLOC_CTX
*_mem_save_handle_0
;
1595 TALLOC_CTX
*_mem_save_name_0
;
1596 TALLOC_CTX
*_mem_save_type_0
;
1597 TALLOC_CTX
*_mem_save_value_0
;
1598 TALLOC_CTX
*_mem_save_size_0
;
1599 TALLOC_CTX
*_mem_save_length_0
;
1600 if (flags
& NDR_IN
) {
1601 ZERO_STRUCT(r
->out
);
1603 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
1604 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
1606 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1607 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
1608 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
1609 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
1610 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.enum_index
));
1611 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
1612 NDR_PULL_ALLOC(ndr
, r
->in
.name
);
1614 _mem_save_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1615 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.name
, LIBNDR_FLAG_REF_ALLOC
);
1616 NDR_CHECK(ndr_pull_winreg_ValNameBuf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.name
));
1617 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_0
, LIBNDR_FLAG_REF_ALLOC
);
1618 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_type
));
1620 NDR_PULL_ALLOC(ndr
, r
->in
.type
);
1625 _mem_save_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1626 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.type
, 0);
1627 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, r
->in
.type
));
1628 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_type_0
, 0);
1630 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_value
));
1632 NDR_PULL_ALLOC(ndr
, r
->in
.value
);
1637 _mem_save_value_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1638 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.value
, 0);
1639 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.value
));
1640 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.value
));
1641 if (ndr_get_array_length(ndr
, &r
->in
.value
) > ndr_get_array_size(ndr
, &r
->in
.value
)) {
1642 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.value
), ndr_get_array_length(ndr
, &r
->in
.value
));
1644 NDR_PULL_ALLOC_N(ndr
, r
->in
.value
, ndr_get_array_size(ndr
, &r
->in
.value
));
1645 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->in
.value
, ndr_get_array_length(ndr
, &r
->in
.value
)));
1646 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_value_0
, 0);
1648 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_size
));
1650 NDR_PULL_ALLOC(ndr
, r
->in
.size
);
1655 _mem_save_size_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1656 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.size
, 0);
1657 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->in
.size
));
1658 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_size_0
, 0);
1660 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_length
));
1662 NDR_PULL_ALLOC(ndr
, r
->in
.length
);
1664 r
->in
.length
= NULL
;
1667 _mem_save_length_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1668 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.length
, 0);
1669 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->in
.length
));
1670 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_length_0
, 0);
1672 NDR_PULL_ALLOC(ndr
, r
->out
.name
);
1673 *r
->out
.name
= *r
->in
.name
;
1675 if (r
->in
.size
== NULL
) return ndr_pull_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL Pointer for size_is()");
1676 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.value
, *r
->in
.size
));
1679 if (r
->in
.length
== NULL
) return ndr_pull_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL Pointer for length_is()");
1680 NDR_CHECK(ndr_check_array_length(ndr
, (void*)&r
->in
.value
, *r
->in
.length
));
1683 if (flags
& NDR_OUT
) {
1684 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
1685 NDR_PULL_ALLOC(ndr
, r
->out
.name
);
1687 _mem_save_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1688 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.name
, LIBNDR_FLAG_REF_ALLOC
);
1689 NDR_CHECK(ndr_pull_winreg_ValNameBuf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.name
));
1690 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_0
, LIBNDR_FLAG_REF_ALLOC
);
1691 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_type
));
1693 NDR_PULL_ALLOC(ndr
, r
->out
.type
);
1698 _mem_save_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1699 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.type
, 0);
1700 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, r
->out
.type
));
1701 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_type_0
, 0);
1703 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_value
));
1705 NDR_PULL_ALLOC(ndr
, r
->out
.value
);
1707 r
->out
.value
= NULL
;
1710 _mem_save_value_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1711 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.value
, 0);
1712 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.value
));
1713 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->out
.value
));
1714 if (ndr_get_array_length(ndr
, &r
->out
.value
) > ndr_get_array_size(ndr
, &r
->out
.value
)) {
1715 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
));
1717 NDR_PULL_ALLOC_N(ndr
, r
->out
.value
, ndr_get_array_size(ndr
, &r
->out
.value
));
1718 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->out
.value
, ndr_get_array_length(ndr
, &r
->out
.value
)));
1719 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_value_0
, 0);
1721 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_size
));
1723 NDR_PULL_ALLOC(ndr
, r
->out
.size
);
1728 _mem_save_size_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1729 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.size
, 0);
1730 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.size
));
1731 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_size_0
, 0);
1733 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_length
));
1735 NDR_PULL_ALLOC(ndr
, r
->out
.length
);
1737 r
->out
.length
= NULL
;
1739 if (r
->out
.length
) {
1740 _mem_save_length_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1741 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.length
, 0);
1742 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.length
));
1743 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_length_0
, 0);
1745 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
1747 if (r
->out
.size
== NULL
) return ndr_pull_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL Pointer for size_is()");
1748 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.value
, *r
->out
.size
));
1751 if (r
->out
.length
== NULL
) return ndr_pull_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL Pointer for length_is()");
1752 NDR_CHECK(ndr_check_array_length(ndr
, (void*)&r
->out
.value
, *r
->out
.length
));
1755 return NDR_ERR_SUCCESS
;
1758 _PUBLIC_
void ndr_print_winreg_EnumValue(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_EnumValue
*r
)
1760 ndr_print_struct(ndr
, name
, "winreg_EnumValue");
1762 if (flags
& NDR_SET_VALUES
) {
1763 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
1765 if (flags
& NDR_IN
) {
1766 ndr_print_struct(ndr
, "in", "winreg_EnumValue");
1768 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
1770 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
1772 ndr_print_uint32(ndr
, "enum_index", r
->in
.enum_index
);
1773 ndr_print_ptr(ndr
, "name", r
->in
.name
);
1775 ndr_print_winreg_ValNameBuf(ndr
, "name", r
->in
.name
);
1777 ndr_print_ptr(ndr
, "type", r
->in
.type
);
1780 ndr_print_winreg_Type(ndr
, "type", *r
->in
.type
);
1783 ndr_print_ptr(ndr
, "value", r
->in
.value
);
1786 if (r
->in
.length
== NULL
) return;
1787 ndr_print_array_uint8(ndr
, "value", r
->in
.value
, *r
->in
.length
);
1790 ndr_print_ptr(ndr
, "size", r
->in
.size
);
1793 ndr_print_uint32(ndr
, "size", *r
->in
.size
);
1796 ndr_print_ptr(ndr
, "length", r
->in
.length
);
1799 ndr_print_uint32(ndr
, "length", *r
->in
.length
);
1804 if (flags
& NDR_OUT
) {
1805 ndr_print_struct(ndr
, "out", "winreg_EnumValue");
1807 ndr_print_ptr(ndr
, "name", r
->out
.name
);
1809 ndr_print_winreg_ValNameBuf(ndr
, "name", r
->out
.name
);
1811 ndr_print_ptr(ndr
, "type", r
->out
.type
);
1814 ndr_print_winreg_Type(ndr
, "type", *r
->out
.type
);
1817 ndr_print_ptr(ndr
, "value", r
->out
.value
);
1820 if (r
->out
.length
== NULL
) return;
1821 ndr_print_array_uint8(ndr
, "value", r
->out
.value
, *r
->out
.length
);
1824 ndr_print_ptr(ndr
, "size", r
->out
.size
);
1827 ndr_print_uint32(ndr
, "size", *r
->out
.size
);
1830 ndr_print_ptr(ndr
, "length", r
->out
.length
);
1832 if (r
->out
.length
) {
1833 ndr_print_uint32(ndr
, "length", *r
->out
.length
);
1836 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
1842 _PUBLIC_
enum ndr_err_code
ndr_push_winreg_FlushKey(struct ndr_push
*ndr
, int flags
, const struct winreg_FlushKey
*r
)
1844 if (flags
& NDR_IN
) {
1845 if (r
->in
.handle
== NULL
) {
1846 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
1848 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
1850 if (flags
& NDR_OUT
) {
1851 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
1853 return NDR_ERR_SUCCESS
;
1856 _PUBLIC_
enum ndr_err_code
ndr_pull_winreg_FlushKey(struct ndr_pull
*ndr
, int flags
, struct winreg_FlushKey
*r
)
1858 TALLOC_CTX
*_mem_save_handle_0
;
1859 if (flags
& NDR_IN
) {
1860 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
1861 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
1863 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1864 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
1865 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
1866 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
1868 if (flags
& NDR_OUT
) {
1869 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
1871 return NDR_ERR_SUCCESS
;
1874 _PUBLIC_
void ndr_print_winreg_FlushKey(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_FlushKey
*r
)
1876 ndr_print_struct(ndr
, name
, "winreg_FlushKey");
1878 if (flags
& NDR_SET_VALUES
) {
1879 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
1881 if (flags
& NDR_IN
) {
1882 ndr_print_struct(ndr
, "in", "winreg_FlushKey");
1884 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
1886 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
1890 if (flags
& NDR_OUT
) {
1891 ndr_print_struct(ndr
, "out", "winreg_FlushKey");
1893 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
1899 _PUBLIC_
enum ndr_err_code
ndr_push_winreg_GetKeySecurity(struct ndr_push
*ndr
, int flags
, const struct winreg_GetKeySecurity
*r
)
1901 if (flags
& NDR_IN
) {
1902 if (r
->in
.handle
== NULL
) {
1903 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
1905 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
1906 NDR_CHECK(ndr_push_security_secinfo(ndr
, NDR_SCALARS
, r
->in
.sec_info
));
1907 if (r
->in
.sd
== NULL
) {
1908 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
1910 NDR_CHECK(ndr_push_KeySecurityData(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.sd
));
1912 if (flags
& NDR_OUT
) {
1913 if (r
->out
.sd
== NULL
) {
1914 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
1916 NDR_CHECK(ndr_push_KeySecurityData(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.sd
));
1917 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
1919 return NDR_ERR_SUCCESS
;
1922 _PUBLIC_
enum ndr_err_code
ndr_pull_winreg_GetKeySecurity(struct ndr_pull
*ndr
, int flags
, struct winreg_GetKeySecurity
*r
)
1924 TALLOC_CTX
*_mem_save_handle_0
;
1925 TALLOC_CTX
*_mem_save_sd_0
;
1926 if (flags
& NDR_IN
) {
1927 ZERO_STRUCT(r
->out
);
1929 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
1930 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
1932 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1933 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
1934 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
1935 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
1936 NDR_CHECK(ndr_pull_security_secinfo(ndr
, NDR_SCALARS
, &r
->in
.sec_info
));
1937 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
1938 NDR_PULL_ALLOC(ndr
, r
->in
.sd
);
1940 _mem_save_sd_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1941 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.sd
, LIBNDR_FLAG_REF_ALLOC
);
1942 NDR_CHECK(ndr_pull_KeySecurityData(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.sd
));
1943 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sd_0
, LIBNDR_FLAG_REF_ALLOC
);
1944 NDR_PULL_ALLOC(ndr
, r
->out
.sd
);
1945 *r
->out
.sd
= *r
->in
.sd
;
1947 if (flags
& NDR_OUT
) {
1948 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
1949 NDR_PULL_ALLOC(ndr
, r
->out
.sd
);
1951 _mem_save_sd_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1952 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.sd
, LIBNDR_FLAG_REF_ALLOC
);
1953 NDR_CHECK(ndr_pull_KeySecurityData(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.sd
));
1954 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sd_0
, LIBNDR_FLAG_REF_ALLOC
);
1955 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
1957 return NDR_ERR_SUCCESS
;
1960 _PUBLIC_
void ndr_print_winreg_GetKeySecurity(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_GetKeySecurity
*r
)
1962 ndr_print_struct(ndr
, name
, "winreg_GetKeySecurity");
1964 if (flags
& NDR_SET_VALUES
) {
1965 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
1967 if (flags
& NDR_IN
) {
1968 ndr_print_struct(ndr
, "in", "winreg_GetKeySecurity");
1970 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
1972 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
1974 ndr_print_security_secinfo(ndr
, "sec_info", r
->in
.sec_info
);
1975 ndr_print_ptr(ndr
, "sd", r
->in
.sd
);
1977 ndr_print_KeySecurityData(ndr
, "sd", r
->in
.sd
);
1981 if (flags
& NDR_OUT
) {
1982 ndr_print_struct(ndr
, "out", "winreg_GetKeySecurity");
1984 ndr_print_ptr(ndr
, "sd", r
->out
.sd
);
1986 ndr_print_KeySecurityData(ndr
, "sd", r
->out
.sd
);
1988 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
1994 static enum ndr_err_code
ndr_push_winreg_LoadKey(struct ndr_push
*ndr
, int flags
, const struct winreg_LoadKey
*r
)
1996 if (flags
& NDR_IN
) {
1997 if (r
->in
.handle
== NULL
) {
1998 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2000 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
2001 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.keyname
));
2002 if (r
->in
.keyname
) {
2003 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.keyname
));
2005 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.filename
));
2006 if (r
->in
.filename
) {
2007 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.filename
));
2010 if (flags
& NDR_OUT
) {
2011 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
2013 return NDR_ERR_SUCCESS
;
2016 static enum ndr_err_code
ndr_pull_winreg_LoadKey(struct ndr_pull
*ndr
, int flags
, struct winreg_LoadKey
*r
)
2018 uint32_t _ptr_keyname
;
2019 uint32_t _ptr_filename
;
2020 TALLOC_CTX
*_mem_save_handle_0
;
2021 TALLOC_CTX
*_mem_save_keyname_0
;
2022 TALLOC_CTX
*_mem_save_filename_0
;
2023 if (flags
& NDR_IN
) {
2024 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2025 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
2027 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2028 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
2029 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
2030 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
2031 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_keyname
));
2033 NDR_PULL_ALLOC(ndr
, r
->in
.keyname
);
2035 r
->in
.keyname
= NULL
;
2037 if (r
->in
.keyname
) {
2038 _mem_save_keyname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2039 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.keyname
, 0);
2040 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.keyname
));
2041 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_keyname_0
, 0);
2043 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_filename
));
2044 if (_ptr_filename
) {
2045 NDR_PULL_ALLOC(ndr
, r
->in
.filename
);
2047 r
->in
.filename
= NULL
;
2049 if (r
->in
.filename
) {
2050 _mem_save_filename_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2051 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.filename
, 0);
2052 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.filename
));
2053 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_filename_0
, 0);
2056 if (flags
& NDR_OUT
) {
2057 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
2059 return NDR_ERR_SUCCESS
;
2062 _PUBLIC_
void ndr_print_winreg_LoadKey(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_LoadKey
*r
)
2064 ndr_print_struct(ndr
, name
, "winreg_LoadKey");
2066 if (flags
& NDR_SET_VALUES
) {
2067 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
2069 if (flags
& NDR_IN
) {
2070 ndr_print_struct(ndr
, "in", "winreg_LoadKey");
2072 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
2074 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
2076 ndr_print_ptr(ndr
, "keyname", r
->in
.keyname
);
2078 if (r
->in
.keyname
) {
2079 ndr_print_winreg_String(ndr
, "keyname", r
->in
.keyname
);
2082 ndr_print_ptr(ndr
, "filename", r
->in
.filename
);
2084 if (r
->in
.filename
) {
2085 ndr_print_winreg_String(ndr
, "filename", r
->in
.filename
);
2090 if (flags
& NDR_OUT
) {
2091 ndr_print_struct(ndr
, "out", "winreg_LoadKey");
2093 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
2099 _PUBLIC_
enum ndr_err_code
ndr_push_winreg_NotifyChangeKeyValue(struct ndr_push
*ndr
, int flags
, const struct winreg_NotifyChangeKeyValue
*r
)
2101 if (flags
& NDR_IN
) {
2102 if (r
->in
.handle
== NULL
) {
2103 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2105 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
2106 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->in
.watch_subtree
));
2107 NDR_CHECK(ndr_push_winreg_NotifyChangeType(ndr
, NDR_SCALARS
, r
->in
.notify_filter
));
2108 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.unknown
));
2109 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.string1
));
2110 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.string2
));
2111 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.unknown2
));
2113 if (flags
& NDR_OUT
) {
2114 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
2116 return NDR_ERR_SUCCESS
;
2119 _PUBLIC_
enum ndr_err_code
ndr_pull_winreg_NotifyChangeKeyValue(struct ndr_pull
*ndr
, int flags
, struct winreg_NotifyChangeKeyValue
*r
)
2121 TALLOC_CTX
*_mem_save_handle_0
;
2122 if (flags
& NDR_IN
) {
2123 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2124 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
2126 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2127 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
2128 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
2129 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
2130 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->in
.watch_subtree
));
2131 NDR_CHECK(ndr_pull_winreg_NotifyChangeType(ndr
, NDR_SCALARS
, &r
->in
.notify_filter
));
2132 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.unknown
));
2133 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.string1
));
2134 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.string2
));
2135 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.unknown2
));
2137 if (flags
& NDR_OUT
) {
2138 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
2140 return NDR_ERR_SUCCESS
;
2143 _PUBLIC_
void ndr_print_winreg_NotifyChangeKeyValue(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_NotifyChangeKeyValue
*r
)
2145 ndr_print_struct(ndr
, name
, "winreg_NotifyChangeKeyValue");
2147 if (flags
& NDR_SET_VALUES
) {
2148 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
2150 if (flags
& NDR_IN
) {
2151 ndr_print_struct(ndr
, "in", "winreg_NotifyChangeKeyValue");
2153 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
2155 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
2157 ndr_print_uint8(ndr
, "watch_subtree", r
->in
.watch_subtree
);
2158 ndr_print_winreg_NotifyChangeType(ndr
, "notify_filter", r
->in
.notify_filter
);
2159 ndr_print_uint32(ndr
, "unknown", r
->in
.unknown
);
2160 ndr_print_winreg_String(ndr
, "string1", &r
->in
.string1
);
2161 ndr_print_winreg_String(ndr
, "string2", &r
->in
.string2
);
2162 ndr_print_uint32(ndr
, "unknown2", r
->in
.unknown2
);
2165 if (flags
& NDR_OUT
) {
2166 ndr_print_struct(ndr
, "out", "winreg_NotifyChangeKeyValue");
2168 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
2174 _PUBLIC_
enum ndr_err_code
ndr_push_winreg_OpenKey(struct ndr_push
*ndr
, int flags
, const struct winreg_OpenKey
*r
)
2176 if (flags
& NDR_IN
) {
2177 if (r
->in
.parent_handle
== NULL
) {
2178 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2180 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.parent_handle
));
2181 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.keyname
));
2182 NDR_CHECK(ndr_push_winreg_KeyType(ndr
, NDR_SCALARS
, r
->in
.options
));
2183 NDR_CHECK(ndr_push_winreg_AccessMask(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
2185 if (flags
& NDR_OUT
) {
2186 if (r
->out
.handle
== NULL
) {
2187 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2189 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
2190 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
2192 return NDR_ERR_SUCCESS
;
2195 _PUBLIC_
enum ndr_err_code
ndr_pull_winreg_OpenKey(struct ndr_pull
*ndr
, int flags
, struct winreg_OpenKey
*r
)
2197 TALLOC_CTX
*_mem_save_parent_handle_0
;
2198 TALLOC_CTX
*_mem_save_handle_0
;
2199 if (flags
& NDR_IN
) {
2200 ZERO_STRUCT(r
->out
);
2202 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2203 NDR_PULL_ALLOC(ndr
, r
->in
.parent_handle
);
2205 _mem_save_parent_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2206 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.parent_handle
, LIBNDR_FLAG_REF_ALLOC
);
2207 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.parent_handle
));
2208 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_parent_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
2209 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.keyname
));
2210 NDR_CHECK(ndr_pull_winreg_KeyType(ndr
, NDR_SCALARS
, &r
->in
.options
));
2211 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
2212 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
2213 ZERO_STRUCTP(r
->out
.handle
);
2215 if (flags
& NDR_OUT
) {
2216 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2217 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
2219 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2220 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
2221 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
2222 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
2223 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
2225 return NDR_ERR_SUCCESS
;
2228 _PUBLIC_
void ndr_print_winreg_OpenKey(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_OpenKey
*r
)
2230 ndr_print_struct(ndr
, name
, "winreg_OpenKey");
2232 if (flags
& NDR_SET_VALUES
) {
2233 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
2235 if (flags
& NDR_IN
) {
2236 ndr_print_struct(ndr
, "in", "winreg_OpenKey");
2238 ndr_print_ptr(ndr
, "parent_handle", r
->in
.parent_handle
);
2240 ndr_print_policy_handle(ndr
, "parent_handle", r
->in
.parent_handle
);
2242 ndr_print_winreg_String(ndr
, "keyname", &r
->in
.keyname
);
2243 ndr_print_winreg_KeyType(ndr
, "options", r
->in
.options
);
2244 ndr_print_winreg_AccessMask(ndr
, "access_mask", r
->in
.access_mask
);
2247 if (flags
& NDR_OUT
) {
2248 ndr_print_struct(ndr
, "out", "winreg_OpenKey");
2250 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
2252 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
2254 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
2260 _PUBLIC_
enum ndr_err_code
ndr_push_winreg_QueryInfoKey(struct ndr_push
*ndr
, int flags
, const struct winreg_QueryInfoKey
*r
)
2262 if (flags
& NDR_IN
) {
2263 if (r
->in
.handle
== NULL
) {
2264 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2266 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
2267 if (r
->in
.classname
== NULL
) {
2268 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2270 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.classname
));
2272 if (flags
& NDR_OUT
) {
2273 if (r
->out
.classname
== NULL
) {
2274 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2276 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.classname
));
2277 if (r
->out
.num_subkeys
== NULL
) {
2278 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2280 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.num_subkeys
));
2281 if (r
->out
.max_subkeylen
== NULL
) {
2282 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2284 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.max_subkeylen
));
2285 if (r
->out
.max_classlen
== NULL
) {
2286 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2288 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.max_classlen
));
2289 if (r
->out
.num_values
== NULL
) {
2290 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2292 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.num_values
));
2293 if (r
->out
.max_valnamelen
== NULL
) {
2294 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2296 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.max_valnamelen
));
2297 if (r
->out
.max_valbufsize
== NULL
) {
2298 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2300 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.max_valbufsize
));
2301 if (r
->out
.secdescsize
== NULL
) {
2302 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2304 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.secdescsize
));
2305 if (r
->out
.last_changed_time
== NULL
) {
2306 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2308 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, *r
->out
.last_changed_time
));
2309 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
2311 return NDR_ERR_SUCCESS
;
2314 _PUBLIC_
enum ndr_err_code
ndr_pull_winreg_QueryInfoKey(struct ndr_pull
*ndr
, int flags
, struct winreg_QueryInfoKey
*r
)
2316 TALLOC_CTX
*_mem_save_handle_0
;
2317 TALLOC_CTX
*_mem_save_classname_0
;
2318 TALLOC_CTX
*_mem_save_num_subkeys_0
;
2319 TALLOC_CTX
*_mem_save_max_subkeylen_0
;
2320 TALLOC_CTX
*_mem_save_max_classlen_0
;
2321 TALLOC_CTX
*_mem_save_num_values_0
;
2322 TALLOC_CTX
*_mem_save_max_valnamelen_0
;
2323 TALLOC_CTX
*_mem_save_max_valbufsize_0
;
2324 TALLOC_CTX
*_mem_save_secdescsize_0
;
2325 TALLOC_CTX
*_mem_save_last_changed_time_0
;
2326 if (flags
& NDR_IN
) {
2327 ZERO_STRUCT(r
->out
);
2329 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2330 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
2332 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2333 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
2334 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
2335 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
2336 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2337 NDR_PULL_ALLOC(ndr
, r
->in
.classname
);
2339 _mem_save_classname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2340 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.classname
, LIBNDR_FLAG_REF_ALLOC
);
2341 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.classname
));
2342 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_classname_0
, LIBNDR_FLAG_REF_ALLOC
);
2343 NDR_PULL_ALLOC(ndr
, r
->out
.classname
);
2344 *r
->out
.classname
= *r
->in
.classname
;
2345 NDR_PULL_ALLOC(ndr
, r
->out
.num_subkeys
);
2346 ZERO_STRUCTP(r
->out
.num_subkeys
);
2347 NDR_PULL_ALLOC(ndr
, r
->out
.max_subkeylen
);
2348 ZERO_STRUCTP(r
->out
.max_subkeylen
);
2349 NDR_PULL_ALLOC(ndr
, r
->out
.max_classlen
);
2350 ZERO_STRUCTP(r
->out
.max_classlen
);
2351 NDR_PULL_ALLOC(ndr
, r
->out
.num_values
);
2352 ZERO_STRUCTP(r
->out
.num_values
);
2353 NDR_PULL_ALLOC(ndr
, r
->out
.max_valnamelen
);
2354 ZERO_STRUCTP(r
->out
.max_valnamelen
);
2355 NDR_PULL_ALLOC(ndr
, r
->out
.max_valbufsize
);
2356 ZERO_STRUCTP(r
->out
.max_valbufsize
);
2357 NDR_PULL_ALLOC(ndr
, r
->out
.secdescsize
);
2358 ZERO_STRUCTP(r
->out
.secdescsize
);
2359 NDR_PULL_ALLOC(ndr
, r
->out
.last_changed_time
);
2360 ZERO_STRUCTP(r
->out
.last_changed_time
);
2362 if (flags
& NDR_OUT
) {
2363 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2364 NDR_PULL_ALLOC(ndr
, r
->out
.classname
);
2366 _mem_save_classname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2367 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.classname
, LIBNDR_FLAG_REF_ALLOC
);
2368 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.classname
));
2369 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_classname_0
, LIBNDR_FLAG_REF_ALLOC
);
2370 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2371 NDR_PULL_ALLOC(ndr
, r
->out
.num_subkeys
);
2373 _mem_save_num_subkeys_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2374 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.num_subkeys
, LIBNDR_FLAG_REF_ALLOC
);
2375 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.num_subkeys
));
2376 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_num_subkeys_0
, LIBNDR_FLAG_REF_ALLOC
);
2377 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2378 NDR_PULL_ALLOC(ndr
, r
->out
.max_subkeylen
);
2380 _mem_save_max_subkeylen_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2381 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.max_subkeylen
, LIBNDR_FLAG_REF_ALLOC
);
2382 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.max_subkeylen
));
2383 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_max_subkeylen_0
, LIBNDR_FLAG_REF_ALLOC
);
2384 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2385 NDR_PULL_ALLOC(ndr
, r
->out
.max_classlen
);
2387 _mem_save_max_classlen_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2388 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.max_classlen
, LIBNDR_FLAG_REF_ALLOC
);
2389 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.max_classlen
));
2390 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_max_classlen_0
, LIBNDR_FLAG_REF_ALLOC
);
2391 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2392 NDR_PULL_ALLOC(ndr
, r
->out
.num_values
);
2394 _mem_save_num_values_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2395 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.num_values
, LIBNDR_FLAG_REF_ALLOC
);
2396 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.num_values
));
2397 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_num_values_0
, LIBNDR_FLAG_REF_ALLOC
);
2398 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2399 NDR_PULL_ALLOC(ndr
, r
->out
.max_valnamelen
);
2401 _mem_save_max_valnamelen_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2402 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.max_valnamelen
, LIBNDR_FLAG_REF_ALLOC
);
2403 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.max_valnamelen
));
2404 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_max_valnamelen_0
, LIBNDR_FLAG_REF_ALLOC
);
2405 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2406 NDR_PULL_ALLOC(ndr
, r
->out
.max_valbufsize
);
2408 _mem_save_max_valbufsize_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2409 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.max_valbufsize
, LIBNDR_FLAG_REF_ALLOC
);
2410 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.max_valbufsize
));
2411 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_max_valbufsize_0
, LIBNDR_FLAG_REF_ALLOC
);
2412 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2413 NDR_PULL_ALLOC(ndr
, r
->out
.secdescsize
);
2415 _mem_save_secdescsize_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2416 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.secdescsize
, LIBNDR_FLAG_REF_ALLOC
);
2417 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.secdescsize
));
2418 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdescsize_0
, LIBNDR_FLAG_REF_ALLOC
);
2419 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2420 NDR_PULL_ALLOC(ndr
, r
->out
.last_changed_time
);
2422 _mem_save_last_changed_time_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2423 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.last_changed_time
, LIBNDR_FLAG_REF_ALLOC
);
2424 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, r
->out
.last_changed_time
));
2425 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_last_changed_time_0
, LIBNDR_FLAG_REF_ALLOC
);
2426 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
2428 return NDR_ERR_SUCCESS
;
2431 _PUBLIC_
void ndr_print_winreg_QueryInfoKey(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_QueryInfoKey
*r
)
2433 ndr_print_struct(ndr
, name
, "winreg_QueryInfoKey");
2435 if (flags
& NDR_SET_VALUES
) {
2436 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
2438 if (flags
& NDR_IN
) {
2439 ndr_print_struct(ndr
, "in", "winreg_QueryInfoKey");
2441 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
2443 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
2445 ndr_print_ptr(ndr
, "classname", r
->in
.classname
);
2447 ndr_print_winreg_String(ndr
, "classname", r
->in
.classname
);
2451 if (flags
& NDR_OUT
) {
2452 ndr_print_struct(ndr
, "out", "winreg_QueryInfoKey");
2454 ndr_print_ptr(ndr
, "classname", r
->out
.classname
);
2456 ndr_print_winreg_String(ndr
, "classname", r
->out
.classname
);
2458 ndr_print_ptr(ndr
, "num_subkeys", r
->out
.num_subkeys
);
2460 ndr_print_uint32(ndr
, "num_subkeys", *r
->out
.num_subkeys
);
2462 ndr_print_ptr(ndr
, "max_subkeylen", r
->out
.max_subkeylen
);
2464 ndr_print_uint32(ndr
, "max_subkeylen", *r
->out
.max_subkeylen
);
2466 ndr_print_ptr(ndr
, "max_classlen", r
->out
.max_classlen
);
2468 ndr_print_uint32(ndr
, "max_classlen", *r
->out
.max_classlen
);
2470 ndr_print_ptr(ndr
, "num_values", r
->out
.num_values
);
2472 ndr_print_uint32(ndr
, "num_values", *r
->out
.num_values
);
2474 ndr_print_ptr(ndr
, "max_valnamelen", r
->out
.max_valnamelen
);
2476 ndr_print_uint32(ndr
, "max_valnamelen", *r
->out
.max_valnamelen
);
2478 ndr_print_ptr(ndr
, "max_valbufsize", r
->out
.max_valbufsize
);
2480 ndr_print_uint32(ndr
, "max_valbufsize", *r
->out
.max_valbufsize
);
2482 ndr_print_ptr(ndr
, "secdescsize", r
->out
.secdescsize
);
2484 ndr_print_uint32(ndr
, "secdescsize", *r
->out
.secdescsize
);
2486 ndr_print_ptr(ndr
, "last_changed_time", r
->out
.last_changed_time
);
2488 ndr_print_NTTIME(ndr
, "last_changed_time", *r
->out
.last_changed_time
);
2490 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
2496 _PUBLIC_
enum ndr_err_code
ndr_push_winreg_QueryValue(struct ndr_push
*ndr
, int flags
, const struct winreg_QueryValue
*r
)
2498 if (flags
& NDR_IN
) {
2499 if (r
->in
.handle
== NULL
) {
2500 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2502 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
2503 if (r
->in
.value_name
== NULL
) {
2504 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2506 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.value_name
));
2507 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.type
));
2509 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, *r
->in
.type
));
2511 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.data
));
2513 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.data_size
?*r
->in
.data_size
:0));
2514 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
2515 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.data_length
?*r
->in
.data_length
:0));
2516 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->in
.data
, r
->in
.data_length
?*r
->in
.data_length
:0));
2518 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.data_size
));
2519 if (r
->in
.data_size
) {
2520 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->in
.data_size
));
2522 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.data_length
));
2523 if (r
->in
.data_length
) {
2524 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->in
.data_length
));
2527 if (flags
& NDR_OUT
) {
2528 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.type
));
2530 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, *r
->out
.type
));
2532 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.data
));
2534 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->out
.data_size
?*r
->out
.data_size
:0));
2535 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
2536 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->out
.data_length
?*r
->out
.data_length
:0));
2537 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->out
.data
, r
->out
.data_length
?*r
->out
.data_length
:0));
2539 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.data_size
));
2540 if (r
->out
.data_size
) {
2541 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.data_size
));
2543 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.data_length
));
2544 if (r
->out
.data_length
) {
2545 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.data_length
));
2547 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
2549 return NDR_ERR_SUCCESS
;
2552 _PUBLIC_
enum ndr_err_code
ndr_pull_winreg_QueryValue(struct ndr_pull
*ndr
, int flags
, struct winreg_QueryValue
*r
)
2556 uint32_t _ptr_data_size
;
2557 uint32_t _ptr_data_length
;
2558 TALLOC_CTX
*_mem_save_handle_0
;
2559 TALLOC_CTX
*_mem_save_value_name_0
;
2560 TALLOC_CTX
*_mem_save_type_0
;
2561 TALLOC_CTX
*_mem_save_data_0
;
2562 TALLOC_CTX
*_mem_save_data_size_0
;
2563 TALLOC_CTX
*_mem_save_data_length_0
;
2564 if (flags
& NDR_IN
) {
2565 ZERO_STRUCT(r
->out
);
2567 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2568 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
2570 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2571 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
2572 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
2573 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
2574 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2575 NDR_PULL_ALLOC(ndr
, r
->in
.value_name
);
2577 _mem_save_value_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2578 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.value_name
, LIBNDR_FLAG_REF_ALLOC
);
2579 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.value_name
));
2580 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_value_name_0
, LIBNDR_FLAG_REF_ALLOC
);
2581 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_type
));
2583 NDR_PULL_ALLOC(ndr
, r
->in
.type
);
2588 _mem_save_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2589 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.type
, 0);
2590 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, r
->in
.type
));
2591 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_type_0
, 0);
2593 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data
));
2595 NDR_PULL_ALLOC(ndr
, r
->in
.data
);
2600 _mem_save_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2601 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.data
, 0);
2602 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.data
));
2603 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.data
));
2604 if (ndr_get_array_length(ndr
, &r
->in
.data
) > ndr_get_array_size(ndr
, &r
->in
.data
)) {
2605 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
));
2607 NDR_PULL_ALLOC_N(ndr
, r
->in
.data
, ndr_get_array_size(ndr
, &r
->in
.data
));
2608 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->in
.data
, ndr_get_array_length(ndr
, &r
->in
.data
)));
2609 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_0
, 0);
2611 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_size
));
2612 if (_ptr_data_size
) {
2613 NDR_PULL_ALLOC(ndr
, r
->in
.data_size
);
2615 r
->in
.data_size
= NULL
;
2617 if (r
->in
.data_size
) {
2618 _mem_save_data_size_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2619 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.data_size
, 0);
2620 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->in
.data_size
));
2621 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_size_0
, 0);
2623 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_length
));
2624 if (_ptr_data_length
) {
2625 NDR_PULL_ALLOC(ndr
, r
->in
.data_length
);
2627 r
->in
.data_length
= NULL
;
2629 if (r
->in
.data_length
) {
2630 _mem_save_data_length_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2631 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.data_length
, 0);
2632 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->in
.data_length
));
2633 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_length_0
, 0);
2636 if (r
->in
.data_size
== NULL
) return ndr_pull_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL Pointer for size_is()");
2637 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.data
, r
->in
.data_size
?*r
->in
.data_size
:0));
2640 if (r
->in
.data_length
== NULL
) return ndr_pull_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL Pointer for length_is()");
2641 NDR_CHECK(ndr_check_array_length(ndr
, (void*)&r
->in
.data
, r
->in
.data_length
?*r
->in
.data_length
:0));
2644 if (flags
& NDR_OUT
) {
2645 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_type
));
2647 NDR_PULL_ALLOC(ndr
, r
->out
.type
);
2652 _mem_save_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2653 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.type
, 0);
2654 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, r
->out
.type
));
2655 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_type_0
, 0);
2657 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data
));
2659 NDR_PULL_ALLOC(ndr
, r
->out
.data
);
2664 _mem_save_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2665 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.data
, 0);
2666 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.data
));
2667 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->out
.data
));
2668 if (ndr_get_array_length(ndr
, &r
->out
.data
) > ndr_get_array_size(ndr
, &r
->out
.data
)) {
2669 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
));
2671 NDR_PULL_ALLOC_N(ndr
, r
->out
.data
, ndr_get_array_size(ndr
, &r
->out
.data
));
2672 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->out
.data
, ndr_get_array_length(ndr
, &r
->out
.data
)));
2673 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_0
, 0);
2675 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_size
));
2676 if (_ptr_data_size
) {
2677 NDR_PULL_ALLOC(ndr
, r
->out
.data_size
);
2679 r
->out
.data_size
= NULL
;
2681 if (r
->out
.data_size
) {
2682 _mem_save_data_size_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2683 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.data_size
, 0);
2684 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.data_size
));
2685 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_size_0
, 0);
2687 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_length
));
2688 if (_ptr_data_length
) {
2689 NDR_PULL_ALLOC(ndr
, r
->out
.data_length
);
2691 r
->out
.data_length
= NULL
;
2693 if (r
->out
.data_length
) {
2694 _mem_save_data_length_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2695 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.data_length
, 0);
2696 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.data_length
));
2697 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_length_0
, 0);
2699 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
2701 if (r
->out
.data_size
== NULL
) return ndr_pull_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL Pointer for size_is()");
2702 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.data
, r
->out
.data_size
?*r
->out
.data_size
:0));
2705 if (r
->out
.data_length
== NULL
) return ndr_pull_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL Pointer for length_is()");
2706 NDR_CHECK(ndr_check_array_length(ndr
, (void*)&r
->out
.data
, r
->out
.data_length
?*r
->out
.data_length
:0));
2709 return NDR_ERR_SUCCESS
;
2712 _PUBLIC_
void ndr_print_winreg_QueryValue(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_QueryValue
*r
)
2714 ndr_print_struct(ndr
, name
, "winreg_QueryValue");
2716 if (flags
& NDR_SET_VALUES
) {
2717 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
2719 if (flags
& NDR_IN
) {
2720 ndr_print_struct(ndr
, "in", "winreg_QueryValue");
2722 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
2724 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
2726 ndr_print_ptr(ndr
, "value_name", r
->in
.value_name
);
2728 ndr_print_winreg_String(ndr
, "value_name", r
->in
.value_name
);
2730 ndr_print_ptr(ndr
, "type", r
->in
.type
);
2733 ndr_print_winreg_Type(ndr
, "type", *r
->in
.type
);
2736 ndr_print_ptr(ndr
, "data", r
->in
.data
);
2739 if (r
->in
.data_length
== NULL
) return;
2740 ndr_print_array_uint8(ndr
, "data", r
->in
.data
, r
->in
.data_length
?*r
->in
.data_length
:0);
2743 ndr_print_ptr(ndr
, "data_size", r
->in
.data_size
);
2745 if (r
->in
.data_size
) {
2746 ndr_print_uint32(ndr
, "data_size", *r
->in
.data_size
);
2749 ndr_print_ptr(ndr
, "data_length", r
->in
.data_length
);
2751 if (r
->in
.data_length
) {
2752 ndr_print_uint32(ndr
, "data_length", *r
->in
.data_length
);
2757 if (flags
& NDR_OUT
) {
2758 ndr_print_struct(ndr
, "out", "winreg_QueryValue");
2760 ndr_print_ptr(ndr
, "type", r
->out
.type
);
2763 ndr_print_winreg_Type(ndr
, "type", *r
->out
.type
);
2766 ndr_print_ptr(ndr
, "data", r
->out
.data
);
2769 if (r
->out
.data_length
== NULL
) return;
2770 ndr_print_array_uint8(ndr
, "data", r
->out
.data
, r
->out
.data_length
?*r
->out
.data_length
:0);
2773 ndr_print_ptr(ndr
, "data_size", r
->out
.data_size
);
2775 if (r
->out
.data_size
) {
2776 ndr_print_uint32(ndr
, "data_size", *r
->out
.data_size
);
2779 ndr_print_ptr(ndr
, "data_length", r
->out
.data_length
);
2781 if (r
->out
.data_length
) {
2782 ndr_print_uint32(ndr
, "data_length", *r
->out
.data_length
);
2785 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
2791 static enum ndr_err_code
ndr_push_winreg_ReplaceKey(struct ndr_push
*ndr
, int flags
, const struct winreg_ReplaceKey
*r
)
2793 if (flags
& NDR_IN
) {
2795 if (flags
& NDR_OUT
) {
2796 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
2798 return NDR_ERR_SUCCESS
;
2801 static enum ndr_err_code
ndr_pull_winreg_ReplaceKey(struct ndr_pull
*ndr
, int flags
, struct winreg_ReplaceKey
*r
)
2803 if (flags
& NDR_IN
) {
2805 if (flags
& NDR_OUT
) {
2806 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
2808 return NDR_ERR_SUCCESS
;
2811 _PUBLIC_
void ndr_print_winreg_ReplaceKey(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_ReplaceKey
*r
)
2813 ndr_print_struct(ndr
, name
, "winreg_ReplaceKey");
2815 if (flags
& NDR_SET_VALUES
) {
2816 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
2818 if (flags
& NDR_IN
) {
2819 ndr_print_struct(ndr
, "in", "winreg_ReplaceKey");
2823 if (flags
& NDR_OUT
) {
2824 ndr_print_struct(ndr
, "out", "winreg_ReplaceKey");
2826 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
2832 static enum ndr_err_code
ndr_push_winreg_RestoreKey(struct ndr_push
*ndr
, int flags
, const struct winreg_RestoreKey
*r
)
2834 if (flags
& NDR_IN
) {
2835 if (r
->in
.handle
== NULL
) {
2836 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2838 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
2839 if (r
->in
.filename
== NULL
) {
2840 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2842 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.filename
));
2843 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.flags
));
2845 if (flags
& NDR_OUT
) {
2846 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
2848 return NDR_ERR_SUCCESS
;
2851 static enum ndr_err_code
ndr_pull_winreg_RestoreKey(struct ndr_pull
*ndr
, int flags
, struct winreg_RestoreKey
*r
)
2853 TALLOC_CTX
*_mem_save_handle_0
;
2854 TALLOC_CTX
*_mem_save_filename_0
;
2855 if (flags
& NDR_IN
) {
2856 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2857 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
2859 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2860 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
2861 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
2862 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
2863 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2864 NDR_PULL_ALLOC(ndr
, r
->in
.filename
);
2866 _mem_save_filename_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2867 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.filename
, LIBNDR_FLAG_REF_ALLOC
);
2868 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.filename
));
2869 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_filename_0
, LIBNDR_FLAG_REF_ALLOC
);
2870 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.flags
));
2872 if (flags
& NDR_OUT
) {
2873 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
2875 return NDR_ERR_SUCCESS
;
2878 _PUBLIC_
void ndr_print_winreg_RestoreKey(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_RestoreKey
*r
)
2880 ndr_print_struct(ndr
, name
, "winreg_RestoreKey");
2882 if (flags
& NDR_SET_VALUES
) {
2883 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
2885 if (flags
& NDR_IN
) {
2886 ndr_print_struct(ndr
, "in", "winreg_RestoreKey");
2888 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
2890 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
2892 ndr_print_ptr(ndr
, "filename", r
->in
.filename
);
2894 ndr_print_winreg_String(ndr
, "filename", r
->in
.filename
);
2896 ndr_print_uint32(ndr
, "flags", r
->in
.flags
);
2899 if (flags
& NDR_OUT
) {
2900 ndr_print_struct(ndr
, "out", "winreg_RestoreKey");
2902 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
2908 static enum ndr_err_code
ndr_push_winreg_SaveKey(struct ndr_push
*ndr
, int flags
, const struct winreg_SaveKey
*r
)
2910 if (flags
& NDR_IN
) {
2911 if (r
->in
.handle
== NULL
) {
2912 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2914 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
2915 if (r
->in
.filename
== NULL
) {
2916 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
2918 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.filename
));
2919 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.sec_attrib
));
2920 if (r
->in
.sec_attrib
) {
2921 NDR_CHECK(ndr_push_KeySecurityAttribute(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.sec_attrib
));
2924 if (flags
& NDR_OUT
) {
2925 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
2927 return NDR_ERR_SUCCESS
;
2930 static enum ndr_err_code
ndr_pull_winreg_SaveKey(struct ndr_pull
*ndr
, int flags
, struct winreg_SaveKey
*r
)
2932 uint32_t _ptr_sec_attrib
;
2933 TALLOC_CTX
*_mem_save_handle_0
;
2934 TALLOC_CTX
*_mem_save_filename_0
;
2935 TALLOC_CTX
*_mem_save_sec_attrib_0
;
2936 if (flags
& NDR_IN
) {
2937 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2938 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
2940 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2941 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
2942 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
2943 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
2944 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
2945 NDR_PULL_ALLOC(ndr
, r
->in
.filename
);
2947 _mem_save_filename_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2948 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.filename
, LIBNDR_FLAG_REF_ALLOC
);
2949 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.filename
));
2950 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_filename_0
, LIBNDR_FLAG_REF_ALLOC
);
2951 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sec_attrib
));
2952 if (_ptr_sec_attrib
) {
2953 NDR_PULL_ALLOC(ndr
, r
->in
.sec_attrib
);
2955 r
->in
.sec_attrib
= NULL
;
2957 if (r
->in
.sec_attrib
) {
2958 _mem_save_sec_attrib_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2959 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.sec_attrib
, 0);
2960 NDR_CHECK(ndr_pull_KeySecurityAttribute(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.sec_attrib
));
2961 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sec_attrib_0
, 0);
2964 if (flags
& NDR_OUT
) {
2965 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
2967 return NDR_ERR_SUCCESS
;
2970 _PUBLIC_
void ndr_print_winreg_SaveKey(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_SaveKey
*r
)
2972 ndr_print_struct(ndr
, name
, "winreg_SaveKey");
2974 if (flags
& NDR_SET_VALUES
) {
2975 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
2977 if (flags
& NDR_IN
) {
2978 ndr_print_struct(ndr
, "in", "winreg_SaveKey");
2980 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
2982 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
2984 ndr_print_ptr(ndr
, "filename", r
->in
.filename
);
2986 ndr_print_winreg_String(ndr
, "filename", r
->in
.filename
);
2988 ndr_print_ptr(ndr
, "sec_attrib", r
->in
.sec_attrib
);
2990 if (r
->in
.sec_attrib
) {
2991 ndr_print_KeySecurityAttribute(ndr
, "sec_attrib", r
->in
.sec_attrib
);
2996 if (flags
& NDR_OUT
) {
2997 ndr_print_struct(ndr
, "out", "winreg_SaveKey");
2999 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
3005 static enum ndr_err_code
ndr_push_winreg_SetKeySecurity(struct ndr_push
*ndr
, int flags
, const struct winreg_SetKeySecurity
*r
)
3007 if (flags
& NDR_IN
) {
3008 if (r
->in
.handle
== NULL
) {
3009 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
3011 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
3012 NDR_CHECK(ndr_push_security_secinfo(ndr
, NDR_SCALARS
, r
->in
.sec_info
));
3013 if (r
->in
.sd
== NULL
) {
3014 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
3016 NDR_CHECK(ndr_push_KeySecurityData(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.sd
));
3018 if (flags
& NDR_OUT
) {
3019 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
3021 return NDR_ERR_SUCCESS
;
3024 static enum ndr_err_code
ndr_pull_winreg_SetKeySecurity(struct ndr_pull
*ndr
, int flags
, struct winreg_SetKeySecurity
*r
)
3026 TALLOC_CTX
*_mem_save_handle_0
;
3027 TALLOC_CTX
*_mem_save_sd_0
;
3028 if (flags
& NDR_IN
) {
3029 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
3030 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
3032 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3033 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
3034 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
3035 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
3036 NDR_CHECK(ndr_pull_security_secinfo(ndr
, NDR_SCALARS
, &r
->in
.sec_info
));
3037 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
3038 NDR_PULL_ALLOC(ndr
, r
->in
.sd
);
3040 _mem_save_sd_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3041 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.sd
, LIBNDR_FLAG_REF_ALLOC
);
3042 NDR_CHECK(ndr_pull_KeySecurityData(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.sd
));
3043 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sd_0
, LIBNDR_FLAG_REF_ALLOC
);
3045 if (flags
& NDR_OUT
) {
3046 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
3048 return NDR_ERR_SUCCESS
;
3051 _PUBLIC_
void ndr_print_winreg_SetKeySecurity(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_SetKeySecurity
*r
)
3053 ndr_print_struct(ndr
, name
, "winreg_SetKeySecurity");
3055 if (flags
& NDR_SET_VALUES
) {
3056 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
3058 if (flags
& NDR_IN
) {
3059 ndr_print_struct(ndr
, "in", "winreg_SetKeySecurity");
3061 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
3063 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
3065 ndr_print_security_secinfo(ndr
, "sec_info", r
->in
.sec_info
);
3066 ndr_print_ptr(ndr
, "sd", r
->in
.sd
);
3068 ndr_print_KeySecurityData(ndr
, "sd", r
->in
.sd
);
3072 if (flags
& NDR_OUT
) {
3073 ndr_print_struct(ndr
, "out", "winreg_SetKeySecurity");
3075 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
3081 static enum ndr_err_code
ndr_push_winreg_SetValue(struct ndr_push
*ndr
, int flags
, const struct winreg_SetValue
*r
)
3083 if (flags
& NDR_IN
) {
3084 if (r
->in
.handle
== NULL
) {
3085 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
3087 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
3088 NDR_CHECK(ndr_push_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.name
));
3089 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, r
->in
.type
));
3090 if (r
->in
.data
== NULL
) {
3091 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
3093 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.size
));
3094 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->in
.data
, r
->in
.size
));
3095 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.size
));
3097 if (flags
& NDR_OUT
) {
3098 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
3100 return NDR_ERR_SUCCESS
;
3103 static enum ndr_err_code
ndr_pull_winreg_SetValue(struct ndr_pull
*ndr
, int flags
, struct winreg_SetValue
*r
)
3105 TALLOC_CTX
*_mem_save_handle_0
;
3106 if (flags
& NDR_IN
) {
3107 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
3108 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
3110 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3111 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
3112 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
3113 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
3114 NDR_CHECK(ndr_pull_winreg_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.name
));
3115 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, &r
->in
.type
));
3116 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.data
));
3117 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
3118 NDR_PULL_ALLOC_N(ndr
, r
->in
.data
, ndr_get_array_size(ndr
, &r
->in
.data
));
3120 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->in
.data
, ndr_get_array_size(ndr
, &r
->in
.data
)));
3121 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.size
));
3123 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.data
, r
->in
.size
));
3126 if (flags
& NDR_OUT
) {
3127 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
3129 return NDR_ERR_SUCCESS
;
3132 _PUBLIC_
void ndr_print_winreg_SetValue(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_SetValue
*r
)
3134 ndr_print_struct(ndr
, name
, "winreg_SetValue");
3136 if (flags
& NDR_SET_VALUES
) {
3137 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
3139 if (flags
& NDR_IN
) {
3140 ndr_print_struct(ndr
, "in", "winreg_SetValue");
3142 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
3144 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
3146 ndr_print_winreg_String(ndr
, "name", &r
->in
.name
);
3147 ndr_print_winreg_Type(ndr
, "type", r
->in
.type
);
3148 ndr_print_ptr(ndr
, "data", r
->in
.data
);
3150 ndr_print_array_uint8(ndr
, "data", r
->in
.data
, r
->in
.size
);
3152 ndr_print_uint32(ndr
, "size", r
->in
.size
);
3155 if (flags
& NDR_OUT
) {
3156 ndr_print_struct(ndr
, "out", "winreg_SetValue");
3158 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
3164 static enum ndr_err_code
ndr_push_winreg_UnLoadKey(struct ndr_push
*ndr
, int flags
, const struct winreg_UnLoadKey
*r
)
3166 if (flags
& NDR_IN
) {
3168 if (flags
& NDR_OUT
) {
3169 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
3171 return NDR_ERR_SUCCESS
;
3174 static enum ndr_err_code
ndr_pull_winreg_UnLoadKey(struct ndr_pull
*ndr
, int flags
, struct winreg_UnLoadKey
*r
)
3176 if (flags
& NDR_IN
) {
3178 if (flags
& NDR_OUT
) {
3179 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
3181 return NDR_ERR_SUCCESS
;
3184 _PUBLIC_
void ndr_print_winreg_UnLoadKey(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_UnLoadKey
*r
)
3186 ndr_print_struct(ndr
, name
, "winreg_UnLoadKey");
3188 if (flags
& NDR_SET_VALUES
) {
3189 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
3191 if (flags
& NDR_IN
) {
3192 ndr_print_struct(ndr
, "in", "winreg_UnLoadKey");
3196 if (flags
& NDR_OUT
) {
3197 ndr_print_struct(ndr
, "out", "winreg_UnLoadKey");
3199 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
3205 static enum ndr_err_code
ndr_push_winreg_InitiateSystemShutdown(struct ndr_push
*ndr
, int flags
, const struct winreg_InitiateSystemShutdown
*r
)
3207 if (flags
& NDR_IN
) {
3208 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.hostname
));
3209 if (r
->in
.hostname
) {
3210 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, *r
->in
.hostname
));
3212 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.message
));
3213 if (r
->in
.message
) {
3214 NDR_CHECK(ndr_push_lsa_StringLarge(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.message
));
3216 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.timeout
));
3217 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->in
.force_apps
));
3218 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->in
.do_reboot
));
3220 if (flags
& NDR_OUT
) {
3221 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
3223 return NDR_ERR_SUCCESS
;
3226 static enum ndr_err_code
ndr_pull_winreg_InitiateSystemShutdown(struct ndr_pull
*ndr
, int flags
, struct winreg_InitiateSystemShutdown
*r
)
3228 uint32_t _ptr_hostname
;
3229 uint32_t _ptr_message
;
3230 TALLOC_CTX
*_mem_save_hostname_0
;
3231 TALLOC_CTX
*_mem_save_message_0
;
3232 if (flags
& NDR_IN
) {
3233 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_hostname
));
3234 if (_ptr_hostname
) {
3235 NDR_PULL_ALLOC(ndr
, r
->in
.hostname
);
3237 r
->in
.hostname
= NULL
;
3239 if (r
->in
.hostname
) {
3240 _mem_save_hostname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3241 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.hostname
, 0);
3242 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, r
->in
.hostname
));
3243 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_hostname_0
, 0);
3245 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_message
));
3247 NDR_PULL_ALLOC(ndr
, r
->in
.message
);
3249 r
->in
.message
= NULL
;
3251 if (r
->in
.message
) {
3252 _mem_save_message_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3253 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.message
, 0);
3254 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.message
));
3255 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_message_0
, 0);
3257 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.timeout
));
3258 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->in
.force_apps
));
3259 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->in
.do_reboot
));
3261 if (flags
& NDR_OUT
) {
3262 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
3264 return NDR_ERR_SUCCESS
;
3267 _PUBLIC_
void ndr_print_winreg_InitiateSystemShutdown(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_InitiateSystemShutdown
*r
)
3269 ndr_print_struct(ndr
, name
, "winreg_InitiateSystemShutdown");
3271 if (flags
& NDR_SET_VALUES
) {
3272 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
3274 if (flags
& NDR_IN
) {
3275 ndr_print_struct(ndr
, "in", "winreg_InitiateSystemShutdown");
3277 ndr_print_ptr(ndr
, "hostname", r
->in
.hostname
);
3279 if (r
->in
.hostname
) {
3280 ndr_print_uint16(ndr
, "hostname", *r
->in
.hostname
);
3283 ndr_print_ptr(ndr
, "message", r
->in
.message
);
3285 if (r
->in
.message
) {
3286 ndr_print_lsa_StringLarge(ndr
, "message", r
->in
.message
);
3289 ndr_print_uint32(ndr
, "timeout", r
->in
.timeout
);
3290 ndr_print_uint8(ndr
, "force_apps", r
->in
.force_apps
);
3291 ndr_print_uint8(ndr
, "do_reboot", r
->in
.do_reboot
);
3294 if (flags
& NDR_OUT
) {
3295 ndr_print_struct(ndr
, "out", "winreg_InitiateSystemShutdown");
3297 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
3303 static enum ndr_err_code
ndr_push_winreg_AbortSystemShutdown(struct ndr_push
*ndr
, int flags
, const struct winreg_AbortSystemShutdown
*r
)
3305 if (flags
& NDR_IN
) {
3306 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
3308 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, *r
->in
.server
));
3311 if (flags
& NDR_OUT
) {
3312 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
3314 return NDR_ERR_SUCCESS
;
3317 static enum ndr_err_code
ndr_pull_winreg_AbortSystemShutdown(struct ndr_pull
*ndr
, int flags
, struct winreg_AbortSystemShutdown
*r
)
3319 uint32_t _ptr_server
;
3320 TALLOC_CTX
*_mem_save_server_0
;
3321 if (flags
& NDR_IN
) {
3322 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
3324 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
3326 r
->in
.server
= NULL
;
3329 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3330 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
3331 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, r
->in
.server
));
3332 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
3335 if (flags
& NDR_OUT
) {
3336 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
3338 return NDR_ERR_SUCCESS
;
3341 _PUBLIC_
void ndr_print_winreg_AbortSystemShutdown(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_AbortSystemShutdown
*r
)
3343 ndr_print_struct(ndr
, name
, "winreg_AbortSystemShutdown");
3345 if (flags
& NDR_SET_VALUES
) {
3346 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
3348 if (flags
& NDR_IN
) {
3349 ndr_print_struct(ndr
, "in", "winreg_AbortSystemShutdown");
3351 ndr_print_ptr(ndr
, "server", r
->in
.server
);
3354 ndr_print_uint16(ndr
, "server", *r
->in
.server
);
3359 if (flags
& NDR_OUT
) {
3360 ndr_print_struct(ndr
, "out", "winreg_AbortSystemShutdown");
3362 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
3368 _PUBLIC_
enum ndr_err_code
ndr_push_winreg_GetVersion(struct ndr_push
*ndr
, int flags
, const struct winreg_GetVersion
*r
)
3370 if (flags
& NDR_IN
) {
3371 if (r
->in
.handle
== NULL
) {
3372 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
3374 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
3376 if (flags
& NDR_OUT
) {
3377 if (r
->out
.version
== NULL
) {
3378 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
3380 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.version
));
3381 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
3383 return NDR_ERR_SUCCESS
;
3386 _PUBLIC_
enum ndr_err_code
ndr_pull_winreg_GetVersion(struct ndr_pull
*ndr
, int flags
, struct winreg_GetVersion
*r
)
3388 TALLOC_CTX
*_mem_save_handle_0
;
3389 TALLOC_CTX
*_mem_save_version_0
;
3390 if (flags
& NDR_IN
) {
3391 ZERO_STRUCT(r
->out
);
3393 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
3394 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
3396 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3397 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
3398 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
3399 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
3400 NDR_PULL_ALLOC(ndr
, r
->out
.version
);
3401 ZERO_STRUCTP(r
->out
.version
);
3403 if (flags
& NDR_OUT
) {
3404 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
3405 NDR_PULL_ALLOC(ndr
, r
->out
.version
);
3407 _mem_save_version_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3408 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.version
, LIBNDR_FLAG_REF_ALLOC
);
3409 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.version
));
3410 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_version_0
, LIBNDR_FLAG_REF_ALLOC
);
3411 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
3413 return NDR_ERR_SUCCESS
;
3416 _PUBLIC_
void ndr_print_winreg_GetVersion(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_GetVersion
*r
)
3418 ndr_print_struct(ndr
, name
, "winreg_GetVersion");
3420 if (flags
& NDR_SET_VALUES
) {
3421 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
3423 if (flags
& NDR_IN
) {
3424 ndr_print_struct(ndr
, "in", "winreg_GetVersion");
3426 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
3428 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
3432 if (flags
& NDR_OUT
) {
3433 ndr_print_struct(ndr
, "out", "winreg_GetVersion");
3435 ndr_print_ptr(ndr
, "version", r
->out
.version
);
3437 ndr_print_uint32(ndr
, "version", *r
->out
.version
);
3439 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
3445 static enum ndr_err_code
ndr_push_winreg_OpenHKCC(struct ndr_push
*ndr
, int flags
, const struct winreg_OpenHKCC
*r
)
3447 if (flags
& NDR_IN
) {
3448 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.system_name
));
3449 if (r
->in
.system_name
) {
3450 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, *r
->in
.system_name
));
3452 NDR_CHECK(ndr_push_winreg_AccessMask(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
3454 if (flags
& NDR_OUT
) {
3455 if (r
->out
.handle
== NULL
) {
3456 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
3458 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
3459 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
3461 return NDR_ERR_SUCCESS
;
3464 static enum ndr_err_code
ndr_pull_winreg_OpenHKCC(struct ndr_pull
*ndr
, int flags
, struct winreg_OpenHKCC
*r
)
3466 uint32_t _ptr_system_name
;
3467 TALLOC_CTX
*_mem_save_system_name_0
;
3468 TALLOC_CTX
*_mem_save_handle_0
;
3469 if (flags
& NDR_IN
) {
3470 ZERO_STRUCT(r
->out
);
3472 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_system_name
));
3473 if (_ptr_system_name
) {
3474 NDR_PULL_ALLOC(ndr
, r
->in
.system_name
);
3476 r
->in
.system_name
= NULL
;
3478 if (r
->in
.system_name
) {
3479 _mem_save_system_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3480 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.system_name
, 0);
3481 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, r
->in
.system_name
));
3482 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_system_name_0
, 0);
3484 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
3485 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
3486 ZERO_STRUCTP(r
->out
.handle
);
3488 if (flags
& NDR_OUT
) {
3489 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
3490 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
3492 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3493 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
3494 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
3495 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
3496 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
3498 return NDR_ERR_SUCCESS
;
3501 _PUBLIC_
void ndr_print_winreg_OpenHKCC(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_OpenHKCC
*r
)
3503 ndr_print_struct(ndr
, name
, "winreg_OpenHKCC");
3505 if (flags
& NDR_SET_VALUES
) {
3506 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
3508 if (flags
& NDR_IN
) {
3509 ndr_print_struct(ndr
, "in", "winreg_OpenHKCC");
3511 ndr_print_ptr(ndr
, "system_name", r
->in
.system_name
);
3513 if (r
->in
.system_name
) {
3514 ndr_print_uint16(ndr
, "system_name", *r
->in
.system_name
);
3517 ndr_print_winreg_AccessMask(ndr
, "access_mask", r
->in
.access_mask
);
3520 if (flags
& NDR_OUT
) {
3521 ndr_print_struct(ndr
, "out", "winreg_OpenHKCC");
3523 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
3525 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
3527 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
3533 static enum ndr_err_code
ndr_push_winreg_OpenHKDD(struct ndr_push
*ndr
, int flags
, const struct winreg_OpenHKDD
*r
)
3535 if (flags
& NDR_IN
) {
3536 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.system_name
));
3537 if (r
->in
.system_name
) {
3538 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, *r
->in
.system_name
));
3540 NDR_CHECK(ndr_push_winreg_AccessMask(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
3542 if (flags
& NDR_OUT
) {
3543 if (r
->out
.handle
== NULL
) {
3544 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
3546 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
3547 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
3549 return NDR_ERR_SUCCESS
;
3552 static enum ndr_err_code
ndr_pull_winreg_OpenHKDD(struct ndr_pull
*ndr
, int flags
, struct winreg_OpenHKDD
*r
)
3554 uint32_t _ptr_system_name
;
3555 TALLOC_CTX
*_mem_save_system_name_0
;
3556 TALLOC_CTX
*_mem_save_handle_0
;
3557 if (flags
& NDR_IN
) {
3558 ZERO_STRUCT(r
->out
);
3560 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_system_name
));
3561 if (_ptr_system_name
) {
3562 NDR_PULL_ALLOC(ndr
, r
->in
.system_name
);
3564 r
->in
.system_name
= NULL
;
3566 if (r
->in
.system_name
) {
3567 _mem_save_system_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3568 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.system_name
, 0);
3569 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, r
->in
.system_name
));
3570 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_system_name_0
, 0);
3572 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
3573 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
3574 ZERO_STRUCTP(r
->out
.handle
);
3576 if (flags
& NDR_OUT
) {
3577 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
3578 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
3580 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3581 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
3582 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
3583 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
3584 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
3586 return NDR_ERR_SUCCESS
;
3589 _PUBLIC_
void ndr_print_winreg_OpenHKDD(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_OpenHKDD
*r
)
3591 ndr_print_struct(ndr
, name
, "winreg_OpenHKDD");
3593 if (flags
& NDR_SET_VALUES
) {
3594 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
3596 if (flags
& NDR_IN
) {
3597 ndr_print_struct(ndr
, "in", "winreg_OpenHKDD");
3599 ndr_print_ptr(ndr
, "system_name", r
->in
.system_name
);
3601 if (r
->in
.system_name
) {
3602 ndr_print_uint16(ndr
, "system_name", *r
->in
.system_name
);
3605 ndr_print_winreg_AccessMask(ndr
, "access_mask", r
->in
.access_mask
);
3608 if (flags
& NDR_OUT
) {
3609 ndr_print_struct(ndr
, "out", "winreg_OpenHKDD");
3611 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
3613 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
3615 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
3621 _PUBLIC_
enum ndr_err_code
ndr_push_winreg_QueryMultipleValues(struct ndr_push
*ndr
, int flags
, const struct winreg_QueryMultipleValues
*r
)
3623 uint32_t cntr_values_1
;
3624 if (flags
& NDR_IN
) {
3625 if (r
->in
.key_handle
== NULL
) {
3626 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
3628 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.key_handle
));
3629 if (r
->in
.values
== NULL
) {
3630 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
3632 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.num_values
));
3633 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
3634 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.num_values
));
3635 for (cntr_values_1
= 0; cntr_values_1
< r
->in
.num_values
; cntr_values_1
++) {
3636 NDR_CHECK(ndr_push_QueryMultipleValue(ndr
, NDR_SCALARS
, &r
->in
.values
[cntr_values_1
]));
3638 for (cntr_values_1
= 0; cntr_values_1
< r
->in
.num_values
; cntr_values_1
++) {
3639 NDR_CHECK(ndr_push_QueryMultipleValue(ndr
, NDR_BUFFERS
, &r
->in
.values
[cntr_values_1
]));
3641 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.num_values
));
3642 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
3644 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, *r
->in
.buffer_size
));
3645 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
3646 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, *r
->in
.buffer_size
));
3647 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, *r
->in
.buffer_size
));
3649 if (r
->in
.buffer_size
== NULL
) {
3650 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
3652 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->in
.buffer_size
));
3654 if (flags
& NDR_OUT
) {
3655 if (r
->out
.values
== NULL
) {
3656 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
3658 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.num_values
));
3659 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
3660 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.num_values
));
3661 for (cntr_values_1
= 0; cntr_values_1
< r
->in
.num_values
; cntr_values_1
++) {
3662 NDR_CHECK(ndr_push_QueryMultipleValue(ndr
, NDR_SCALARS
, &r
->out
.values
[cntr_values_1
]));
3664 for (cntr_values_1
= 0; cntr_values_1
< r
->in
.num_values
; cntr_values_1
++) {
3665 NDR_CHECK(ndr_push_QueryMultipleValue(ndr
, NDR_BUFFERS
, &r
->out
.values
[cntr_values_1
]));
3667 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.buffer
));
3668 if (r
->out
.buffer
) {
3669 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, *r
->out
.buffer_size
));
3670 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
3671 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, *r
->out
.buffer_size
));
3672 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->out
.buffer
, *r
->out
.buffer_size
));
3674 if (r
->out
.buffer_size
== NULL
) {
3675 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
3677 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.buffer_size
));
3678 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
3680 return NDR_ERR_SUCCESS
;
3683 _PUBLIC_
enum ndr_err_code
ndr_pull_winreg_QueryMultipleValues(struct ndr_pull
*ndr
, int flags
, struct winreg_QueryMultipleValues
*r
)
3685 uint32_t cntr_values_1
;
3686 uint32_t _ptr_buffer
;
3687 TALLOC_CTX
*_mem_save_key_handle_0
;
3688 TALLOC_CTX
*_mem_save_values_1
;
3689 TALLOC_CTX
*_mem_save_buffer_0
;
3690 TALLOC_CTX
*_mem_save_buffer_size_0
;
3691 if (flags
& NDR_IN
) {
3692 ZERO_STRUCT(r
->out
);
3694 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
3695 NDR_PULL_ALLOC(ndr
, r
->in
.key_handle
);
3697 _mem_save_key_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3698 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.key_handle
, LIBNDR_FLAG_REF_ALLOC
);
3699 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.key_handle
));
3700 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_key_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
3701 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.values
));
3702 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.values
));
3703 if (ndr_get_array_length(ndr
, &r
->in
.values
) > ndr_get_array_size(ndr
, &r
->in
.values
)) {
3704 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
));
3706 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
3707 NDR_PULL_ALLOC_N(ndr
, r
->in
.values
, ndr_get_array_size(ndr
, &r
->in
.values
));
3709 memcpy(r
->out
.values
, r
->in
.values
, (ndr_get_array_size(ndr
, &r
->in
.values
)) * sizeof(*r
->in
.values
));
3710 _mem_save_values_1
= NDR_PULL_GET_MEM_CTX(ndr
);
3711 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.values
, 0);
3712 for (cntr_values_1
= 0; cntr_values_1
< ndr_get_array_length(ndr
, &r
->in
.values
); cntr_values_1
++) {
3713 NDR_CHECK(ndr_pull_QueryMultipleValue(ndr
, NDR_SCALARS
, &r
->in
.values
[cntr_values_1
]));
3715 for (cntr_values_1
= 0; cntr_values_1
< ndr_get_array_length(ndr
, &r
->in
.values
); cntr_values_1
++) {
3716 NDR_CHECK(ndr_pull_QueryMultipleValue(ndr
, NDR_BUFFERS
, &r
->in
.values
[cntr_values_1
]));
3718 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_values_1
, 0);
3719 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.num_values
));
3720 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
3722 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
3724 r
->in
.buffer
= NULL
;
3727 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3728 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
3729 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.buffer
));
3730 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.buffer
));
3731 if (ndr_get_array_length(ndr
, &r
->in
.buffer
) > ndr_get_array_size(ndr
, &r
->in
.buffer
)) {
3732 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
));
3734 NDR_PULL_ALLOC_N(ndr
, r
->in
.buffer
, ndr_get_array_size(ndr
, &r
->in
.buffer
));
3735 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, ndr_get_array_length(ndr
, &r
->in
.buffer
)));
3736 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
3738 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
3739 NDR_PULL_ALLOC(ndr
, r
->in
.buffer_size
);
3741 _mem_save_buffer_size_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3742 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer_size
, LIBNDR_FLAG_REF_ALLOC
);
3743 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->in
.buffer_size
));
3744 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_size_0
, LIBNDR_FLAG_REF_ALLOC
);
3745 NDR_PULL_ALLOC_N(ndr
, r
->out
.values
, r
->in
.num_values
);
3746 memcpy(r
->out
.values
, r
->in
.values
, (r
->in
.num_values
) * sizeof(*r
->in
.values
));
3747 NDR_PULL_ALLOC(ndr
, r
->out
.buffer_size
);
3748 *r
->out
.buffer_size
= *r
->in
.buffer_size
;
3750 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.values
, r
->in
.num_values
));
3753 NDR_CHECK(ndr_check_array_length(ndr
, (void*)&r
->in
.values
, r
->in
.num_values
));
3756 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.buffer
, *r
->in
.buffer_size
));
3759 NDR_CHECK(ndr_check_array_length(ndr
, (void*)&r
->in
.buffer
, *r
->in
.buffer_size
));
3762 if (flags
& NDR_OUT
) {
3763 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.values
));
3764 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->out
.values
));
3765 if (ndr_get_array_length(ndr
, &r
->out
.values
) > ndr_get_array_size(ndr
, &r
->out
.values
)) {
3766 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
));
3768 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
3769 NDR_PULL_ALLOC_N(ndr
, r
->out
.values
, ndr_get_array_size(ndr
, &r
->out
.values
));
3771 memcpy(r
->out
.values
, r
->in
.values
, (ndr_get_array_size(ndr
, &r
->out
.values
)) * sizeof(*r
->in
.values
));
3772 _mem_save_values_1
= NDR_PULL_GET_MEM_CTX(ndr
);
3773 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.values
, 0);
3774 for (cntr_values_1
= 0; cntr_values_1
< ndr_get_array_length(ndr
, &r
->out
.values
); cntr_values_1
++) {
3775 NDR_CHECK(ndr_pull_QueryMultipleValue(ndr
, NDR_SCALARS
, &r
->out
.values
[cntr_values_1
]));
3777 for (cntr_values_1
= 0; cntr_values_1
< ndr_get_array_length(ndr
, &r
->out
.values
); cntr_values_1
++) {
3778 NDR_CHECK(ndr_pull_QueryMultipleValue(ndr
, NDR_BUFFERS
, &r
->out
.values
[cntr_values_1
]));
3780 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_values_1
, 0);
3781 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
3783 NDR_PULL_ALLOC(ndr
, r
->out
.buffer
);
3785 r
->out
.buffer
= NULL
;
3787 if (r
->out
.buffer
) {
3788 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3789 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.buffer
, 0);
3790 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.buffer
));
3791 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->out
.buffer
));
3792 if (ndr_get_array_length(ndr
, &r
->out
.buffer
) > ndr_get_array_size(ndr
, &r
->out
.buffer
)) {
3793 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
));
3795 NDR_PULL_ALLOC_N(ndr
, r
->out
.buffer
, ndr_get_array_size(ndr
, &r
->out
.buffer
));
3796 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->out
.buffer
, ndr_get_array_length(ndr
, &r
->out
.buffer
)));
3797 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
3799 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
3800 NDR_PULL_ALLOC(ndr
, r
->out
.buffer_size
);
3802 _mem_save_buffer_size_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3803 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.buffer_size
, LIBNDR_FLAG_REF_ALLOC
);
3804 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.buffer_size
));
3805 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_size_0
, LIBNDR_FLAG_REF_ALLOC
);
3806 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
3807 if (r
->out
.values
) {
3808 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.values
, r
->in
.num_values
));
3810 if (r
->out
.values
) {
3811 NDR_CHECK(ndr_check_array_length(ndr
, (void*)&r
->out
.values
, r
->in
.num_values
));
3813 if (r
->out
.buffer
) {
3814 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.buffer
, *r
->out
.buffer_size
));
3816 if (r
->out
.buffer
) {
3817 NDR_CHECK(ndr_check_array_length(ndr
, (void*)&r
->out
.buffer
, *r
->out
.buffer_size
));
3820 return NDR_ERR_SUCCESS
;
3823 _PUBLIC_
void ndr_print_winreg_QueryMultipleValues(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_QueryMultipleValues
*r
)
3825 uint32_t cntr_values_1
;
3826 ndr_print_struct(ndr
, name
, "winreg_QueryMultipleValues");
3828 if (flags
& NDR_SET_VALUES
) {
3829 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
3831 if (flags
& NDR_IN
) {
3832 ndr_print_struct(ndr
, "in", "winreg_QueryMultipleValues");
3834 ndr_print_ptr(ndr
, "key_handle", r
->in
.key_handle
);
3836 ndr_print_policy_handle(ndr
, "key_handle", r
->in
.key_handle
);
3838 ndr_print_ptr(ndr
, "values", r
->in
.values
);
3840 ndr
->print(ndr
, "%s: ARRAY(%d)", "values", (int)r
->in
.num_values
);
3842 for (cntr_values_1
=0;cntr_values_1
<r
->in
.num_values
;cntr_values_1
++) {
3844 if (asprintf(&idx_1
, "[%d]", cntr_values_1
) != -1) {
3845 ndr_print_QueryMultipleValue(ndr
, "values", &r
->in
.values
[cntr_values_1
]);
3851 ndr_print_uint32(ndr
, "num_values", r
->in
.num_values
);
3852 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
3855 ndr_print_array_uint8(ndr
, "buffer", r
->in
.buffer
, *r
->in
.buffer_size
);
3858 ndr_print_ptr(ndr
, "buffer_size", r
->in
.buffer_size
);
3860 ndr_print_uint32(ndr
, "buffer_size", *r
->in
.buffer_size
);
3864 if (flags
& NDR_OUT
) {
3865 ndr_print_struct(ndr
, "out", "winreg_QueryMultipleValues");
3867 ndr_print_ptr(ndr
, "values", r
->out
.values
);
3869 ndr
->print(ndr
, "%s: ARRAY(%d)", "values", (int)r
->in
.num_values
);
3871 for (cntr_values_1
=0;cntr_values_1
<r
->in
.num_values
;cntr_values_1
++) {
3873 if (asprintf(&idx_1
, "[%d]", cntr_values_1
) != -1) {
3874 ndr_print_QueryMultipleValue(ndr
, "values", &r
->out
.values
[cntr_values_1
]);
3880 ndr_print_ptr(ndr
, "buffer", r
->out
.buffer
);
3882 if (r
->out
.buffer
) {
3883 ndr_print_array_uint8(ndr
, "buffer", r
->out
.buffer
, *r
->out
.buffer_size
);
3886 ndr_print_ptr(ndr
, "buffer_size", r
->out
.buffer_size
);
3888 ndr_print_uint32(ndr
, "buffer_size", *r
->out
.buffer_size
);
3890 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
3896 static enum ndr_err_code
ndr_push_winreg_InitiateSystemShutdownEx(struct ndr_push
*ndr
, int flags
, const struct winreg_InitiateSystemShutdownEx
*r
)
3898 if (flags
& NDR_IN
) {
3899 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.hostname
));
3900 if (r
->in
.hostname
) {
3901 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, *r
->in
.hostname
));
3903 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.message
));
3904 if (r
->in
.message
) {
3905 NDR_CHECK(ndr_push_lsa_StringLarge(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.message
));
3907 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.timeout
));
3908 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->in
.force_apps
));
3909 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->in
.do_reboot
));
3910 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.reason
));
3912 if (flags
& NDR_OUT
) {
3913 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
3915 return NDR_ERR_SUCCESS
;
3918 static enum ndr_err_code
ndr_pull_winreg_InitiateSystemShutdownEx(struct ndr_pull
*ndr
, int flags
, struct winreg_InitiateSystemShutdownEx
*r
)
3920 uint32_t _ptr_hostname
;
3921 uint32_t _ptr_message
;
3922 TALLOC_CTX
*_mem_save_hostname_0
;
3923 TALLOC_CTX
*_mem_save_message_0
;
3924 if (flags
& NDR_IN
) {
3925 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_hostname
));
3926 if (_ptr_hostname
) {
3927 NDR_PULL_ALLOC(ndr
, r
->in
.hostname
);
3929 r
->in
.hostname
= NULL
;
3931 if (r
->in
.hostname
) {
3932 _mem_save_hostname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3933 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.hostname
, 0);
3934 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, r
->in
.hostname
));
3935 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_hostname_0
, 0);
3937 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_message
));
3939 NDR_PULL_ALLOC(ndr
, r
->in
.message
);
3941 r
->in
.message
= NULL
;
3943 if (r
->in
.message
) {
3944 _mem_save_message_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3945 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.message
, 0);
3946 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.message
));
3947 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_message_0
, 0);
3949 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.timeout
));
3950 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->in
.force_apps
));
3951 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->in
.do_reboot
));
3952 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.reason
));
3954 if (flags
& NDR_OUT
) {
3955 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
3957 return NDR_ERR_SUCCESS
;
3960 _PUBLIC_
void ndr_print_winreg_InitiateSystemShutdownEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_InitiateSystemShutdownEx
*r
)
3962 ndr_print_struct(ndr
, name
, "winreg_InitiateSystemShutdownEx");
3964 if (flags
& NDR_SET_VALUES
) {
3965 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
3967 if (flags
& NDR_IN
) {
3968 ndr_print_struct(ndr
, "in", "winreg_InitiateSystemShutdownEx");
3970 ndr_print_ptr(ndr
, "hostname", r
->in
.hostname
);
3972 if (r
->in
.hostname
) {
3973 ndr_print_uint16(ndr
, "hostname", *r
->in
.hostname
);
3976 ndr_print_ptr(ndr
, "message", r
->in
.message
);
3978 if (r
->in
.message
) {
3979 ndr_print_lsa_StringLarge(ndr
, "message", r
->in
.message
);
3982 ndr_print_uint32(ndr
, "timeout", r
->in
.timeout
);
3983 ndr_print_uint8(ndr
, "force_apps", r
->in
.force_apps
);
3984 ndr_print_uint8(ndr
, "do_reboot", r
->in
.do_reboot
);
3985 ndr_print_uint32(ndr
, "reason", r
->in
.reason
);
3988 if (flags
& NDR_OUT
) {
3989 ndr_print_struct(ndr
, "out", "winreg_InitiateSystemShutdownEx");
3991 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
3997 static enum ndr_err_code
ndr_push_winreg_SaveKeyEx(struct ndr_push
*ndr
, int flags
, const struct winreg_SaveKeyEx
*r
)
3999 if (flags
& NDR_IN
) {
4001 if (flags
& NDR_OUT
) {
4002 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
4004 return NDR_ERR_SUCCESS
;
4007 static enum ndr_err_code
ndr_pull_winreg_SaveKeyEx(struct ndr_pull
*ndr
, int flags
, struct winreg_SaveKeyEx
*r
)
4009 if (flags
& NDR_IN
) {
4011 if (flags
& NDR_OUT
) {
4012 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
4014 return NDR_ERR_SUCCESS
;
4017 _PUBLIC_
void ndr_print_winreg_SaveKeyEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_SaveKeyEx
*r
)
4019 ndr_print_struct(ndr
, name
, "winreg_SaveKeyEx");
4021 if (flags
& NDR_SET_VALUES
) {
4022 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
4024 if (flags
& NDR_IN
) {
4025 ndr_print_struct(ndr
, "in", "winreg_SaveKeyEx");
4029 if (flags
& NDR_OUT
) {
4030 ndr_print_struct(ndr
, "out", "winreg_SaveKeyEx");
4032 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
4038 static enum ndr_err_code
ndr_push_winreg_OpenHKPT(struct ndr_push
*ndr
, int flags
, const struct winreg_OpenHKPT
*r
)
4040 if (flags
& NDR_IN
) {
4041 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.system_name
));
4042 if (r
->in
.system_name
) {
4043 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, *r
->in
.system_name
));
4045 NDR_CHECK(ndr_push_winreg_AccessMask(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
4047 if (flags
& NDR_OUT
) {
4048 if (r
->out
.handle
== NULL
) {
4049 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
4051 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
4052 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
4054 return NDR_ERR_SUCCESS
;
4057 static enum ndr_err_code
ndr_pull_winreg_OpenHKPT(struct ndr_pull
*ndr
, int flags
, struct winreg_OpenHKPT
*r
)
4059 uint32_t _ptr_system_name
;
4060 TALLOC_CTX
*_mem_save_system_name_0
;
4061 TALLOC_CTX
*_mem_save_handle_0
;
4062 if (flags
& NDR_IN
) {
4063 ZERO_STRUCT(r
->out
);
4065 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_system_name
));
4066 if (_ptr_system_name
) {
4067 NDR_PULL_ALLOC(ndr
, r
->in
.system_name
);
4069 r
->in
.system_name
= NULL
;
4071 if (r
->in
.system_name
) {
4072 _mem_save_system_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4073 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.system_name
, 0);
4074 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, r
->in
.system_name
));
4075 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_system_name_0
, 0);
4077 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
4078 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
4079 ZERO_STRUCTP(r
->out
.handle
);
4081 if (flags
& NDR_OUT
) {
4082 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
4083 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
4085 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4086 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
4087 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
4088 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
4089 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
4091 return NDR_ERR_SUCCESS
;
4094 _PUBLIC_
void ndr_print_winreg_OpenHKPT(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_OpenHKPT
*r
)
4096 ndr_print_struct(ndr
, name
, "winreg_OpenHKPT");
4098 if (flags
& NDR_SET_VALUES
) {
4099 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
4101 if (flags
& NDR_IN
) {
4102 ndr_print_struct(ndr
, "in", "winreg_OpenHKPT");
4104 ndr_print_ptr(ndr
, "system_name", r
->in
.system_name
);
4106 if (r
->in
.system_name
) {
4107 ndr_print_uint16(ndr
, "system_name", *r
->in
.system_name
);
4110 ndr_print_winreg_AccessMask(ndr
, "access_mask", r
->in
.access_mask
);
4113 if (flags
& NDR_OUT
) {
4114 ndr_print_struct(ndr
, "out", "winreg_OpenHKPT");
4116 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
4118 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
4120 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
4126 static enum ndr_err_code
ndr_push_winreg_OpenHKPN(struct ndr_push
*ndr
, int flags
, const struct winreg_OpenHKPN
*r
)
4128 if (flags
& NDR_IN
) {
4129 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.system_name
));
4130 if (r
->in
.system_name
) {
4131 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, *r
->in
.system_name
));
4133 NDR_CHECK(ndr_push_winreg_AccessMask(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
4135 if (flags
& NDR_OUT
) {
4136 if (r
->out
.handle
== NULL
) {
4137 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
4139 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
4140 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
4142 return NDR_ERR_SUCCESS
;
4145 static enum ndr_err_code
ndr_pull_winreg_OpenHKPN(struct ndr_pull
*ndr
, int flags
, struct winreg_OpenHKPN
*r
)
4147 uint32_t _ptr_system_name
;
4148 TALLOC_CTX
*_mem_save_system_name_0
;
4149 TALLOC_CTX
*_mem_save_handle_0
;
4150 if (flags
& NDR_IN
) {
4151 ZERO_STRUCT(r
->out
);
4153 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_system_name
));
4154 if (_ptr_system_name
) {
4155 NDR_PULL_ALLOC(ndr
, r
->in
.system_name
);
4157 r
->in
.system_name
= NULL
;
4159 if (r
->in
.system_name
) {
4160 _mem_save_system_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4161 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.system_name
, 0);
4162 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, r
->in
.system_name
));
4163 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_system_name_0
, 0);
4165 NDR_CHECK(ndr_pull_winreg_AccessMask(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
4166 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
4167 ZERO_STRUCTP(r
->out
.handle
);
4169 if (flags
& NDR_OUT
) {
4170 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
4171 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
4173 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4174 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
4175 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
4176 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
4177 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
4179 return NDR_ERR_SUCCESS
;
4182 _PUBLIC_
void ndr_print_winreg_OpenHKPN(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_OpenHKPN
*r
)
4184 ndr_print_struct(ndr
, name
, "winreg_OpenHKPN");
4186 if (flags
& NDR_SET_VALUES
) {
4187 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
4189 if (flags
& NDR_IN
) {
4190 ndr_print_struct(ndr
, "in", "winreg_OpenHKPN");
4192 ndr_print_ptr(ndr
, "system_name", r
->in
.system_name
);
4194 if (r
->in
.system_name
) {
4195 ndr_print_uint16(ndr
, "system_name", *r
->in
.system_name
);
4198 ndr_print_winreg_AccessMask(ndr
, "access_mask", r
->in
.access_mask
);
4201 if (flags
& NDR_OUT
) {
4202 ndr_print_struct(ndr
, "out", "winreg_OpenHKPN");
4204 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
4206 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
4208 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
4214 static enum ndr_err_code
ndr_push_winreg_QueryMultipleValues2(struct ndr_push
*ndr
, int flags
, const struct winreg_QueryMultipleValues2
*r
)
4216 if (flags
& NDR_IN
) {
4218 if (flags
& NDR_OUT
) {
4219 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
4221 return NDR_ERR_SUCCESS
;
4224 static enum ndr_err_code
ndr_pull_winreg_QueryMultipleValues2(struct ndr_pull
*ndr
, int flags
, struct winreg_QueryMultipleValues2
*r
)
4226 if (flags
& NDR_IN
) {
4228 if (flags
& NDR_OUT
) {
4229 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
4231 return NDR_ERR_SUCCESS
;
4234 _PUBLIC_
void ndr_print_winreg_QueryMultipleValues2(struct ndr_print
*ndr
, const char *name
, int flags
, const struct winreg_QueryMultipleValues2
*r
)
4236 ndr_print_struct(ndr
, name
, "winreg_QueryMultipleValues2");
4238 if (flags
& NDR_SET_VALUES
) {
4239 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
4241 if (flags
& NDR_IN
) {
4242 ndr_print_struct(ndr
, "in", "winreg_QueryMultipleValues2");
4246 if (flags
& NDR_OUT
) {
4247 ndr_print_struct(ndr
, "out", "winreg_QueryMultipleValues2");
4249 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
4255 static const struct ndr_interface_call winreg_calls
[] = {
4258 sizeof(struct winreg_OpenHKCR
),
4259 (ndr_push_flags_fn_t
) ndr_push_winreg_OpenHKCR
,
4260 (ndr_pull_flags_fn_t
) ndr_pull_winreg_OpenHKCR
,
4261 (ndr_print_function_t
) ndr_print_winreg_OpenHKCR
,
4266 sizeof(struct winreg_OpenHKCU
),
4267 (ndr_push_flags_fn_t
) ndr_push_winreg_OpenHKCU
,
4268 (ndr_pull_flags_fn_t
) ndr_pull_winreg_OpenHKCU
,
4269 (ndr_print_function_t
) ndr_print_winreg_OpenHKCU
,
4274 sizeof(struct winreg_OpenHKLM
),
4275 (ndr_push_flags_fn_t
) ndr_push_winreg_OpenHKLM
,
4276 (ndr_pull_flags_fn_t
) ndr_pull_winreg_OpenHKLM
,
4277 (ndr_print_function_t
) ndr_print_winreg_OpenHKLM
,
4282 sizeof(struct winreg_OpenHKPD
),
4283 (ndr_push_flags_fn_t
) ndr_push_winreg_OpenHKPD
,
4284 (ndr_pull_flags_fn_t
) ndr_pull_winreg_OpenHKPD
,
4285 (ndr_print_function_t
) ndr_print_winreg_OpenHKPD
,
4290 sizeof(struct winreg_OpenHKU
),
4291 (ndr_push_flags_fn_t
) ndr_push_winreg_OpenHKU
,
4292 (ndr_pull_flags_fn_t
) ndr_pull_winreg_OpenHKU
,
4293 (ndr_print_function_t
) ndr_print_winreg_OpenHKU
,
4298 sizeof(struct winreg_CloseKey
),
4299 (ndr_push_flags_fn_t
) ndr_push_winreg_CloseKey
,
4300 (ndr_pull_flags_fn_t
) ndr_pull_winreg_CloseKey
,
4301 (ndr_print_function_t
) ndr_print_winreg_CloseKey
,
4306 sizeof(struct winreg_CreateKey
),
4307 (ndr_push_flags_fn_t
) ndr_push_winreg_CreateKey
,
4308 (ndr_pull_flags_fn_t
) ndr_pull_winreg_CreateKey
,
4309 (ndr_print_function_t
) ndr_print_winreg_CreateKey
,
4314 sizeof(struct winreg_DeleteKey
),
4315 (ndr_push_flags_fn_t
) ndr_push_winreg_DeleteKey
,
4316 (ndr_pull_flags_fn_t
) ndr_pull_winreg_DeleteKey
,
4317 (ndr_print_function_t
) ndr_print_winreg_DeleteKey
,
4321 "winreg_DeleteValue",
4322 sizeof(struct winreg_DeleteValue
),
4323 (ndr_push_flags_fn_t
) ndr_push_winreg_DeleteValue
,
4324 (ndr_pull_flags_fn_t
) ndr_pull_winreg_DeleteValue
,
4325 (ndr_print_function_t
) ndr_print_winreg_DeleteValue
,
4330 sizeof(struct winreg_EnumKey
),
4331 (ndr_push_flags_fn_t
) ndr_push_winreg_EnumKey
,
4332 (ndr_pull_flags_fn_t
) ndr_pull_winreg_EnumKey
,
4333 (ndr_print_function_t
) ndr_print_winreg_EnumKey
,
4338 sizeof(struct winreg_EnumValue
),
4339 (ndr_push_flags_fn_t
) ndr_push_winreg_EnumValue
,
4340 (ndr_pull_flags_fn_t
) ndr_pull_winreg_EnumValue
,
4341 (ndr_print_function_t
) ndr_print_winreg_EnumValue
,
4346 sizeof(struct winreg_FlushKey
),
4347 (ndr_push_flags_fn_t
) ndr_push_winreg_FlushKey
,
4348 (ndr_pull_flags_fn_t
) ndr_pull_winreg_FlushKey
,
4349 (ndr_print_function_t
) ndr_print_winreg_FlushKey
,
4353 "winreg_GetKeySecurity",
4354 sizeof(struct winreg_GetKeySecurity
),
4355 (ndr_push_flags_fn_t
) ndr_push_winreg_GetKeySecurity
,
4356 (ndr_pull_flags_fn_t
) ndr_pull_winreg_GetKeySecurity
,
4357 (ndr_print_function_t
) ndr_print_winreg_GetKeySecurity
,
4362 sizeof(struct winreg_LoadKey
),
4363 (ndr_push_flags_fn_t
) ndr_push_winreg_LoadKey
,
4364 (ndr_pull_flags_fn_t
) ndr_pull_winreg_LoadKey
,
4365 (ndr_print_function_t
) ndr_print_winreg_LoadKey
,
4369 "winreg_NotifyChangeKeyValue",
4370 sizeof(struct winreg_NotifyChangeKeyValue
),
4371 (ndr_push_flags_fn_t
) ndr_push_winreg_NotifyChangeKeyValue
,
4372 (ndr_pull_flags_fn_t
) ndr_pull_winreg_NotifyChangeKeyValue
,
4373 (ndr_print_function_t
) ndr_print_winreg_NotifyChangeKeyValue
,
4378 sizeof(struct winreg_OpenKey
),
4379 (ndr_push_flags_fn_t
) ndr_push_winreg_OpenKey
,
4380 (ndr_pull_flags_fn_t
) ndr_pull_winreg_OpenKey
,
4381 (ndr_print_function_t
) ndr_print_winreg_OpenKey
,
4385 "winreg_QueryInfoKey",
4386 sizeof(struct winreg_QueryInfoKey
),
4387 (ndr_push_flags_fn_t
) ndr_push_winreg_QueryInfoKey
,
4388 (ndr_pull_flags_fn_t
) ndr_pull_winreg_QueryInfoKey
,
4389 (ndr_print_function_t
) ndr_print_winreg_QueryInfoKey
,
4393 "winreg_QueryValue",
4394 sizeof(struct winreg_QueryValue
),
4395 (ndr_push_flags_fn_t
) ndr_push_winreg_QueryValue
,
4396 (ndr_pull_flags_fn_t
) ndr_pull_winreg_QueryValue
,
4397 (ndr_print_function_t
) ndr_print_winreg_QueryValue
,
4401 "winreg_ReplaceKey",
4402 sizeof(struct winreg_ReplaceKey
),
4403 (ndr_push_flags_fn_t
) ndr_push_winreg_ReplaceKey
,
4404 (ndr_pull_flags_fn_t
) ndr_pull_winreg_ReplaceKey
,
4405 (ndr_print_function_t
) ndr_print_winreg_ReplaceKey
,
4409 "winreg_RestoreKey",
4410 sizeof(struct winreg_RestoreKey
),
4411 (ndr_push_flags_fn_t
) ndr_push_winreg_RestoreKey
,
4412 (ndr_pull_flags_fn_t
) ndr_pull_winreg_RestoreKey
,
4413 (ndr_print_function_t
) ndr_print_winreg_RestoreKey
,
4418 sizeof(struct winreg_SaveKey
),
4419 (ndr_push_flags_fn_t
) ndr_push_winreg_SaveKey
,
4420 (ndr_pull_flags_fn_t
) ndr_pull_winreg_SaveKey
,
4421 (ndr_print_function_t
) ndr_print_winreg_SaveKey
,
4425 "winreg_SetKeySecurity",
4426 sizeof(struct winreg_SetKeySecurity
),
4427 (ndr_push_flags_fn_t
) ndr_push_winreg_SetKeySecurity
,
4428 (ndr_pull_flags_fn_t
) ndr_pull_winreg_SetKeySecurity
,
4429 (ndr_print_function_t
) ndr_print_winreg_SetKeySecurity
,
4434 sizeof(struct winreg_SetValue
),
4435 (ndr_push_flags_fn_t
) ndr_push_winreg_SetValue
,
4436 (ndr_pull_flags_fn_t
) ndr_pull_winreg_SetValue
,
4437 (ndr_print_function_t
) ndr_print_winreg_SetValue
,
4442 sizeof(struct winreg_UnLoadKey
),
4443 (ndr_push_flags_fn_t
) ndr_push_winreg_UnLoadKey
,
4444 (ndr_pull_flags_fn_t
) ndr_pull_winreg_UnLoadKey
,
4445 (ndr_print_function_t
) ndr_print_winreg_UnLoadKey
,
4449 "winreg_InitiateSystemShutdown",
4450 sizeof(struct winreg_InitiateSystemShutdown
),
4451 (ndr_push_flags_fn_t
) ndr_push_winreg_InitiateSystemShutdown
,
4452 (ndr_pull_flags_fn_t
) ndr_pull_winreg_InitiateSystemShutdown
,
4453 (ndr_print_function_t
) ndr_print_winreg_InitiateSystemShutdown
,
4457 "winreg_AbortSystemShutdown",
4458 sizeof(struct winreg_AbortSystemShutdown
),
4459 (ndr_push_flags_fn_t
) ndr_push_winreg_AbortSystemShutdown
,
4460 (ndr_pull_flags_fn_t
) ndr_pull_winreg_AbortSystemShutdown
,
4461 (ndr_print_function_t
) ndr_print_winreg_AbortSystemShutdown
,
4465 "winreg_GetVersion",
4466 sizeof(struct winreg_GetVersion
),
4467 (ndr_push_flags_fn_t
) ndr_push_winreg_GetVersion
,
4468 (ndr_pull_flags_fn_t
) ndr_pull_winreg_GetVersion
,
4469 (ndr_print_function_t
) ndr_print_winreg_GetVersion
,
4474 sizeof(struct winreg_OpenHKCC
),
4475 (ndr_push_flags_fn_t
) ndr_push_winreg_OpenHKCC
,
4476 (ndr_pull_flags_fn_t
) ndr_pull_winreg_OpenHKCC
,
4477 (ndr_print_function_t
) ndr_print_winreg_OpenHKCC
,
4482 sizeof(struct winreg_OpenHKDD
),
4483 (ndr_push_flags_fn_t
) ndr_push_winreg_OpenHKDD
,
4484 (ndr_pull_flags_fn_t
) ndr_pull_winreg_OpenHKDD
,
4485 (ndr_print_function_t
) ndr_print_winreg_OpenHKDD
,
4489 "winreg_QueryMultipleValues",
4490 sizeof(struct winreg_QueryMultipleValues
),
4491 (ndr_push_flags_fn_t
) ndr_push_winreg_QueryMultipleValues
,
4492 (ndr_pull_flags_fn_t
) ndr_pull_winreg_QueryMultipleValues
,
4493 (ndr_print_function_t
) ndr_print_winreg_QueryMultipleValues
,
4497 "winreg_InitiateSystemShutdownEx",
4498 sizeof(struct winreg_InitiateSystemShutdownEx
),
4499 (ndr_push_flags_fn_t
) ndr_push_winreg_InitiateSystemShutdownEx
,
4500 (ndr_pull_flags_fn_t
) ndr_pull_winreg_InitiateSystemShutdownEx
,
4501 (ndr_print_function_t
) ndr_print_winreg_InitiateSystemShutdownEx
,
4506 sizeof(struct winreg_SaveKeyEx
),
4507 (ndr_push_flags_fn_t
) ndr_push_winreg_SaveKeyEx
,
4508 (ndr_pull_flags_fn_t
) ndr_pull_winreg_SaveKeyEx
,
4509 (ndr_print_function_t
) ndr_print_winreg_SaveKeyEx
,
4514 sizeof(struct winreg_OpenHKPT
),
4515 (ndr_push_flags_fn_t
) ndr_push_winreg_OpenHKPT
,
4516 (ndr_pull_flags_fn_t
) ndr_pull_winreg_OpenHKPT
,
4517 (ndr_print_function_t
) ndr_print_winreg_OpenHKPT
,
4522 sizeof(struct winreg_OpenHKPN
),
4523 (ndr_push_flags_fn_t
) ndr_push_winreg_OpenHKPN
,
4524 (ndr_pull_flags_fn_t
) ndr_pull_winreg_OpenHKPN
,
4525 (ndr_print_function_t
) ndr_print_winreg_OpenHKPN
,
4529 "winreg_QueryMultipleValues2",
4530 sizeof(struct winreg_QueryMultipleValues2
),
4531 (ndr_push_flags_fn_t
) ndr_push_winreg_QueryMultipleValues2
,
4532 (ndr_pull_flags_fn_t
) ndr_pull_winreg_QueryMultipleValues2
,
4533 (ndr_print_function_t
) ndr_print_winreg_QueryMultipleValues2
,
4536 { NULL
, 0, NULL
, NULL
, NULL
, false }
4539 static const char * const winreg_endpoint_strings
[] = {
4540 "ncacn_np:[\\pipe\\winreg]",
4545 static const struct ndr_interface_string_array winreg_endpoints
= {
4547 .names
= winreg_endpoint_strings
4550 static const char * const winreg_authservice_strings
[] = {
4554 static const struct ndr_interface_string_array winreg_authservices
= {
4556 .names
= winreg_authservice_strings
4560 const struct ndr_interface_table ndr_table_winreg
= {
4563 {0x338cd001,0x2244,0x31f1,{0xaa,0xaa},{0x90,0x00,0x38,0x00,0x10,0x03}},
4566 .helpstring
= NDR_WINREG_HELPSTRING
,
4568 .calls
= winreg_calls
,
4569 .endpoints
= &winreg_endpoints
,
4570 .authservices
= &winreg_authservices